工作生活

Java 学习笔记

2019-07-01  本文已影响0人  w4irdo
  1. 变量名第一个单词首字母小写,其余单词首字母大写

  2. java 区分大小写,price Price 是不同变量

  3. 变量名可以字母、下划线(_)、美元符号($)开头,其余不可。

  4. 数据类型:


  5. 自动类型转换满足特定条件:

    • 目标类型能与原类型兼容,如 double 可以兼容 int,但是 char 无法兼容 int
    • 目标类型大于原类型,如 double 类型长度为 8 字节,int 类型为 4 字节。所以 double 类型的变量可以直接存放 int 类型,但反过来不行。
  6. 强制类型转换:

    • 语法: (数据类型)数值
      double avg1=75.8;
      int avg2=(int)avg1;

    但注意,这种强制转换会直接截断小数位,造成数据丢失!

  7. 常量名一般是大写字符!

    • 单行注释://
    • 多行注释: /* 开头,*/ 结尾
    • 文档注释: /** 开头,*/ 结尾
  8. 比较运算符:

    • 、<、>=、<= 只能操作数值
      - ==、!= 可以操作数值类型,也可以操作引用类型

  9. 逻辑运算符:


短路现象:

  • ( one > two ) && ( one < three ) 中,如果能确定左边 one > two 运行结果为 false , 则系统就认为已经没有必要执行右侧的 one < three 啦。
  • 同理,在( one > two ) || ( one < three ) 中,如果能确定左边表达式的运行结果为 true , 则系统也同样会认为已经没有必要再进行右侧的 one < three 的执行啦!
  1. 条件运算符(?:)也称为三元运算符:

语法形式:
- 布尔表达式 ? 表达式1 : 表达式2

  1. 运算符优先级:

1 的优先级最高,11 的优先级最低


  1. 数组:

scores = new int[5]
names = new String[5]
int[] scores = new int[5];
int[] scores = {78,91,84,68}
int[] scores = new int[]{78,91,84,68}

Arrays.sort(scores);

Arrays.toString(scores);

  1. foreach for 语句的特殊简化版本

  2. void 表示如果方法不返回任何值,则任何值类型指定为 void;
    如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值。

  3. Java 中无参无返回值方法的使用:


  1. Java 中无参带返回值方法的使用:
  1. Java 中带参无返回值方法的使用:


  2. Java 中带参带返回值方法的使用:


  3. 重载:

    • static 使用之静态变量:
  1. 通过初始化块进行数据赋值:


静态初始化块只在类加载时后执行且只执行一次
静态初始化块只能给静态变量赋值,不能初始化普通的成员变量

  1. 封装:


  2. 访问修饰符:


  3. 成员内部类:

    • 外部类不能直接使用内部类的成员和方法(可先创建内部类的对象,通过内部类的对象来访问)
    • 如果外部类和内部类具有相同的成员变量和方法,内部类默认访问自己的成员变量和方法,如果要访问外部类的成员变量,可以使用 this 关键字:
  4. 静态内部类:

    • 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问
    • 创建静态内部类对象时,不需要外部类的对象,可以直接 内部类 对象名 = new 内部类()
  5. 方法内部类:

    • 方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。


    • 注意:由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能使用访问控制符static 修饰符

  6. 重写:

语法规则:

  1. 继承的初始化顺序:
  1. final 关键字:


  2. super 关键字:

    • 在对象内部使用,可以代表父类对象。
      1. 访问父类属性 super.age
      1. 访问父类方法 super.eat()
    • 子类的构造过程当中必须调用其父类的构造方法
  3. Object类:如果没有继承父类,默认继承 Object 类

  1. 多态(继承时多态实现的基础):
  1. 接口:










  2. Java 中的异常抛出:


class 自定义异常类 extends 异常类型{
}
  1. 字符串:
    String 类位于 java.lang 包,默认导入所有程序。

注意:

  1. 通过 String s1="爱慕课"; 声明了一个字符串对象, s1 存放了到字符串对象的引用。
    然后通过 s1="欢迎来到:"+s1; 改变了字符串 s1 ,其实质是创建了新的字符串对象,变量 s1 指向了新创建的字符串对象
  2. 一旦一个字符串在内存中创建,则这个字符串将不可改变。如果需要一个可以改变的字符串,我们可以使用StringBuffer或者StringBuilder
  3. 每次new一个字符串就是产生一个新的对象,即便两个字符串的内容相同,使用 ”==” 比较时也为 false ,如果只需比较内容是否相同,应使用 equals() 方法
  1. 字符串 str 中字符的索引从0开始,范围为 0 到 str.length()-1
  2. 使用 indexOf 进行字符或字符串查找时,如果匹配返回位置索引;如果没有匹配结果,返回 -1
  3. 使用 substring(beginIndex , endIndex) 进行字符串截取时,包括 beginIndex 位置的字符,不包括 endIndex 位置的字符(类似于 Python 切片)
  1. StringBuilder 类:
  1. 包装类:


  1. 基本类型和包装类之间的转换:

JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了。

装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱
拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱

  1. 基本类型和字符串之间的转换:
  1. 使用 Date 和 SimpleDateFormat 类表示时间:

注意

  1. Calendar 类的应用:
    (更推荐使用 Calendar 类进行时间和日期的处理)
  1. Math 类操作数据:
    -常用方法:
  1. 集合与数组的对比:


  1. 泛型不能用基本类型,要用强制转换成包装类。

  2. Map 接口:


  1. HashMap 类:


  1. Java 集合框架:
上一篇 下一篇

猜你喜欢

热点阅读