1. 数据类型相关:
- 默认小数为 double 类型,后面也可以加 D 或 d,但这纯属多此一举,如:1.0d,但因为是默认所以可以不加直接写出1.0 小数,如果要指明是float,须在后面加f ,如:1.0f
-
- byte、short、char类型混合运算时,先各自转换成int类型再做运算。
多种数据类型混合运算时,各自先转换成容量最大的那一种再做运算。 - 强制类型转化:大容量赋值给小容量
注:long转float不需要强制类型转换(虽然long的字节数看起来比float多,但是取值范围反而比float小),byte转char需要强制类型转换(可能因为char是无符号类型,byte是有符号的) - 自动类型转换,小容量自动赋值给大容量。容量从小到大排序为:byte<short(char)<int<long<float<double,其中short和char都占用两个字节,但是char可以表示更大的正整数。
boolean类型不能转换
- byte、short、char类型混合运算时,先各自转换成int类型再做运算。
- long类型和int类型做相关运算会转换成float类型。
2. 命名规则:
- java语言中规定标识符:
由大小写字母、数字、下划线、和美元符号组成,但不能以数字开头。标识符不能使用java中的关键字。 - 包的名称由一个小写字母序列组成。
- 类的名称由大写字母开头,其他字母都由小写的单词组成。
- 类的实例的名称由一个小写字母开头,后面的单词由大写字母开头。
3. 静态:
- 静态方法内不能使用this关键字,this是引用对象,而静态方法是类的方法。
- 静态方法不占用对象的内存空间,而非静态方法占有对象的内容空间。
- 构造方法:不能重写但是可以重载,因为构造方法不能被继承。
- 只能在构造方法中使用this调用其他的构造方法,不能在成员方法中使用。
- 在构造方法中,使用this调用构造方法的语句必须是该方法的第一条执行语句,且只能出现一次。
4.final关键字:
- final修饰的类不能被继承。
- final修饰的方法不能被子类重写。
- final修饰的变量是常量,只能被赋值1次(如果修饰的是成员变量,必须在声明的同时进行赋值;如果修饰的是局部变量,则可以先声明,在进行赋值,但也只能赋值一次。)
5.抽象和接口:
抽象类:
- abstract class定义,里面可以有普通方法可以有抽象方法。
- 不能创建实例对象,所有抽象方法必须由实现类(子类)里实现,如果子类没有实现抽象类的所有方法,则这个子类也是抽象类。
- 由2可知,抽象类不可以有抽象构造方法和抽象静态方法,但可以有普通构造方法和普通静态方法。
接口:
- 是特殊的抽象类,其中所有方法都是抽象方法。
- 所有的方法默认用public abstract修饰,所有的变量默认用public static final修饰
- 不可以有构造方法和静态方法,不能有普通变量
- jdk8之后,接口中可以实现默认方法和静态方法。jdk9之后,接口中可以实现私有方法。
一个类可以实现多个接口,但只能继承一个抽象类。
6.成员变量和局部变量:
成员变量:
- 分为实例变量和静态变量(类变量),区别是是否有static修饰。
- 不需要显式的初始化赋值
局部变量:
- 必须要初始化。
- 当代码执行到该变量被赋值的代码时局部变量才会被创建