1.java的数据类型
- 基本数据类型
- 数值型
- 整数类型(byte,short,int,long)
- 浮点类型(float,double)
- 字符型(char)
- 布尔型(boolean)
- 数值型
- 引用数据类型
- 类(class)
- 接口(interface)
- 数组([])
2.switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上
在 Java 5 以前,switch(expr)中,expr 只能是 byte、short、char、int。从 Java5 开始,Java 中引入了枚举类型,expr 也可以是 enum 类型,从 Java 7 开始,expr 还可以是字符串(String),但是**长整型(long)**在目前所有的版本中都是不可以的。
3.java中的访问修饰符
java中的访问修饰符用来控制其他类对该类成员变量和方法的访问权限
- private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
- default (即缺省,什么也不写,不使用任何关键字): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
- protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
- public : 对所有类可见。使用对象:类、接口、变量、方法
4.java中的运算符
1.算术运算符
-
基本四则运算符 + - * / %
-
增量赋值运算符 += -= *= /= %=
-
自增、自减运算符 ++ –
2.关系运算符
- 关系运算符主要有六个:== != < > <= >=
3、逻辑运算符
逻辑运算符主要有三个:&& || !
4、位运算符
& | ~ ^
5、移位运算
移位运算符有三个:<< >> >>>
6、条件运算符
条件运算符只有一个: 表达式1?表达式2:表达式3
5.java面向对象的5个原则
- 单一职责原则(类的功能要单一)
- 开发封闭原则(一个模型对比扩展是开放的,对于修改是封闭的)
- 里氏替换原则(子类可以替换父类,可以出现在父类能够出现的任何地方)
- 依赖倒置原则(依赖于抽象,而不是依赖于具体)
- 接口分离原则(把这几个功能拆分成不同的接口,比在一个接口里要好的多)
6.内部类
内部类可以分为4种:
-
成员内部类:成员内部类可以访问外部类所有的变量和方法,包括静态和非静态,私有和公有。
-
局部内部类:定义在实例方法中的局部类可以访问外部类的所有变量和方法,定义在静态方法中的局部类只能访问外部类的静态变量和方法。
-
匿名内部类:
匿名内部类必须继承一个抽象类或者实现一个接口。
匿名内部类不能定义任何静态成员和静态方法。
当所在的方法的局部变量需要被匿名内部类使用时,必须声明为 final。
匿名内部类不能是抽象的,它必须要实现继承的类或者实现的接口的所有抽象方法。
-
**静态内部类 **:静态内部类可以访问外部类所有的静态变量,而不可访问外部类的非静态变量
内部类的优点:
- 一个内部类对象可以访问创建它的外部类对象的内容,包括私有数据!
- 内部类不为同一包的其他类所见,具有很好的封装性;
- 内部类有效实现了“多重继承”,优化 java 单继承的缺陷。
- 匿名内部类可以很方便的定义回调。
7.对象反射的三种方式
- 类名.class
- Class.forName
- 对象.getClass()