一周总结

JAVA.png

快捷键

  • ctrl+s >>>>>>>>>>>>>>>>>>>>>>>保存
  • ctrl+/ >>>>>>>>>>>>>>>>>>>>>>>多行注释
  • ctrl+z >>>>>>>>>>>>>>>>>>>>>>>撤销
  • ctrl+点击 >>>>>>>>>>>>>>>>>>>>点击要看的类
  • ctrl+shift+f >>>>>>>>>>>>>>>>>>>自动排版
  • ctrl+o >>>>>>>>>>>>>>>>>>>>>>>看有些类
  • Ctrl+Shift+O >>>>>>>>>>>>>>>>>>快速生成import
  • ctrl +f >>>>>>>>>>>>>>>>>>>>>>> 查找、替换
  • F11>>>>>>>>>>>>>>>>>>>>>>>>> 调试程序
  • Ctrl+F1>>>>>>>>>>>>>>>>>>>>>>运行程
  • Alt+/ >>>>>>>>>>>>>>>>>>>>>>>>代码助手完成一些代码的插入
  • Ctrl+Shift+P >>>>>>>>>>>>>>>>>>定位到对于的匹配符(譬如{})

小知识

  1. 注释方法有三种
    a. //
    b. /****** 回车
    c. /*** 回车
  2. 配置classpath:
    a. java程序去classpath的目录中去寻找类
    b. java -classpath=c:\code Hello
    c. echo %path% set classpath=%classpath%;c:\code
  3. 类名与文件名的关系
    类名和文件名可以不同,编译出来的class文件的名字是类的名子 但如果类是public的,则类名必须和文件名相同,否则不能编译 一个文件可以包含多个类,但是只能有一个是public的类
  4. java 命名规范(驼峰命名法)
    a. 多个单词直接连接在一起,中间不用下划线或者横杠等
    b. 类名每个但单词首字母大写
    c. 变量名和方法名第一个字母小写,其他单词大写
    d. 尽量让名字直观易懂
  5. 如何保留需要的小数位
    DecimalFormat df=newDecimalFormat("#.00");
    /***** #表示 一个数字,不包括 0;
    *** 0表示如果没有则用0代替;保留几位就填几个0;
    */
    df.format(22.444);
  6. 改eclipse字体
    在Windows/preferences中General/Appearance/Colors and Font/Basic/text Font中的Edit;)

基本类型

八大基本类型(x(字节)*8bit) byte(字节)、short(2)、int(4)、long(8)、float(单精度 4)、double(多精度 8)、char(2)、boolean
{String不是基本类型 String是一个类}


包装类 (首字母大写)

下面两个例外:
Integer a=1;
Character c='a';
基本类型与包装类型的不同:

  1. 在Java中,一切皆对象,但八大基本类型却不是对象
  2. 声明方式的不同,基本类型无需通过new关键字来创建,而封装类型需new关键字。
  3. 存储方式及位置的不同,基本类型是直接存储变量的值保存在堆栈中能高效的存取,封装类型需要通过引用指向实例,具体的实例保存在堆中。
  4. 初始值的不同,封装类型的初始值为null,基本类型的的初始值视具体的类型而定,比如int类型的初始值为0,boolean类型为false;
  5. 使用方式的不同,比如与集合类合作使用时只能使用包装类型。
  6. 包装类是final 不会被改变
    Integer d=10;
    d=d++;//d的值仍然会是10

java 关键词

关键字包括abstract boolean break byte case catch char class continue default do double else extends false final finally float for if implements import instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient try true void volatile while
1、abstract修饰词,修饰的类是抽象类,可以包含抽象方法也可以有实例方法,但抽象方法只能存在于抽象类中,抽象方法没有方法体。
2、boolean基本数据类型,逻辑类型(取值false 和true null).
3、break返回语句常和switch语句等循环语句搭配使用
4、byte基本数据类型字节型
5、int(基本数据类型整型-232~232-1,在内存在占4个字节32位)short(短整型,占2个字节16位)long(长整型,在内存占8字节),编程系统默认数据是int类型。
6、char字符类型,在内存中占2字符。
7、float(占4个字节,后面以F结尾)和double(占8字节,后面以D结尾)类型是浮点型。
8、case常与switch搭配使用
9、class用来声明一个类。

标识符规则(不能用关键字)

  1. 第一个字符必须是字母或者_或者$
  2. 后面的字符可以是任何字符或者数字
  3. 表示符大小写敏感;(name Name 是不同的)

常量与变量

  1. 常量(不能改变)
    例: final int a; a只能给它一次赋值
  2. 变量(只能定义在方法里面)
    a. 属性(全局)变量;类除了方法还有属性
    b. 局部变量;在方法中定义的出了方法就不存在了
  3. 变量的作用域
    a. 全局变量和方法里的变量(局部变量)是可以重名的,但是先用方法中的(局部变量)
    b. 方法中的变量不能冲突;除非在相互独立的方法中
    c.局部变量只在方法中有效而全局变量类中有效
  4. 静态常量与动态常量
    静态常量可以通过 类名.+常量名直接使用而不是静态的需要先new一个对象在使用

语句

  1. for语句;
例子表示:
1到100;如果是40的倍数这该数字以后不打印;如果是五的倍数则该数字不打印
for(int i = 1; i<101; i++)
 {
    if(i == 5)
     {
     continue;
     }
   System.out.println(i);
   if(i%40 == 0)
     {
     break;
     }
 }
  1. if语句
if(i==1){
...;
}
else if(i==2){
...;
}
else
...;
  1. while语句
while(true)
{
....;
}
do
{
...;
}while(true);

a. while()先判断再执行
b. do{ }while(); 先执行再判断;

  1. switch 语句
//case只支持int byte short char   String(Enum);
public static void learnswitch(int a){
        switch(a)
        {
        case  条件1:    ........;break;
        case  条件2:    ........;break;  
        .....;
        可以写 default :       .......;break;//上述case以外的所有
        }

String 方法

  • .length(); //求字符串长度
  • .charAt((int index);//取出第index位的字符
  • .codePointAt(int index);//得到第index个字符的码
  • .isEmpty();//字符是否为空;
  • .equalsIgnoreCase();//忽略大小写;
  • .startsWith("hel",int a);//从第a位开始,后面String的字符是否与hel相同;
  • .hashCode(); //哈希数(可以通过判断两个字符串的哈希数,判断两个字符串是否相同)
  • .replace(“a”,"b");//替换String中所有a变成b;可以换成字符或者字符串及" "换成' '
  • String s2 = s2.replaceAll("[abd]+", "s");//替换s2中所有a b d字母换成s;(replaceAll支持正则表达式而replace不支持)
  • .replaceFirst() //换第一个
  • .Trim() //函数移除字符串两侧的空白字符或其他预定义字符
  • .ltrim()//移除字符串左侧的空白字符或其他预定义字符。
  • .rtrim()//移除字符串右侧的空白字符或其他预定义字符。
  • .indexOf() //查找 如果没有返回-1否则返回所在位置
  • s1.indexOf("o", 6);//查找s1中的o从第6个开始;
  • .startsWith()和.endsWith() //判断开头和结尾返回boolean类型

数组

定义:固定长度,相同类型的元素的集合;

  1. 一维数组 nums[i]:
    a. int[] nums = {3,4,2,2};
    b. int[] nums = new int[4];{可写作int[] nums; nums=new int[4];}
    c. int[] nums =new int[]{3,2,1,4};与第一个区别在于new int[] {..}可以直接return;
  2. 二维数组 nums[i][j];
    a. int[][] nums={{2,3,4},{3,2},{32,5}};//基本和一维一样
    b. int[][] nums=new int[][]{{2,3,4},{3,2},{32,5}};
    c. int[][] nums=new int[3][];
  3. for each 循环
    for(int b:a)
    System.out.println(b);打印数组a中的所有元素;
  4. 数组排序 : Arrays.sort(a);
  5. 二维数组的数组长度
    a. nums.length为有多少行
    b. nums[i].length为有多少列
    6.数组打印方式
    System.out.println(a); 结果 [Ljava.util.Date;@2a139a55(地址)
    System.out.printlen(a[0]) 结果 打印出数组a中第0位的元素
  6. 动态数组
    ArrayList<类名> a= new ArrayList<>();可以创建一个长度不固定的类的数组;(动态数组)
    a.size()得出长度;

常见异常

  1. ArrayIndexOutOfBoundsException >>>>> 数组下标越界
  2. java.lang.StackOverflowError >>>>> 堆栈溢出;死循环

常用类

  1. import 从别的包引用的类
  2. Scanner类(用于扫描输入文本)
    Scanner sc = new Scanner(System.in);得到用户输入
  3. DecimalFormat类(格式化)
    DecimalFormat df=newDecimalFormat("#.0");
    df.format(22.444);// 保留一位小数
  4. 与 String 相关的类
    StringBuffer是线程安全的(防止多个线程访问String)
    StringBuilder不是线程安全的
    SrtingBuffer 要考虑拼接前有没有其他在用 而StringBuilder不考虑直接使用
    使用+号需要创建一个新的字符串占用内存多,效率低
    concat底层用的stringbuilder
  5. Calendar 类(日历)
    Calendar key = Calendar.getInstance();创建日历;
  6. Date类 (日期)
    Date a = new Date();//得到当前日期

算法

  1. 冒泡排序算法(从后往前)
    a. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    b. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    c. 针对所有的元素重复以上的步骤,除了最后一个。
    d. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
  2. 二分查找法
  3. 递归算法
    退出条件:if(...){return ....};
    通用公式:return ......;
    a.斐波那契序列{f(n)=f(n-1)*f(n-2);}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,681评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,710评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,623评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,202评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,232评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,368评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,795评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,461评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,647评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,476评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,525评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,226评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,785评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,857评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,090评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,647评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,215评论 2 341

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,716评论 0 33
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,547评论 18 399
  • 一、初识Java 1.Java既属于编译型语言,又属于解释型语言 编译型语言:在程序执行之前,先进行编译,下次运行...
    NiklausTxt阅读 264评论 0 0
  • 歌单推荐,希望你你喜欢o(* ̄▽ ̄*)ブ IU--《三寸天堂》(翻唱) 这首歌有很多情怀,不怎么看古装剧的我却很喜...
    加梨阅读 488评论 0 1
  • 一、 昨天上午,我搭同事小张的车去单位,小张顺路先去送他老婆。星期一堵车,堵得都不知道走哪条路。 小张喜欢用导航来...
    贝子晨阅读 240评论 0 1