“Java之父”是詹姆斯·高斯林(James Gosling)
Java代码运行原理:
JDK与JVM关系:
标识符组成:数字、字母、下划线、美元符号组成,不能以数字开头
final关键字
基本数据类型:(包装类中,Integer 和 Character 有明显区别,其余都是首字母大写)
整型:byte(1) short(2) int(4) long(8)
浮点型:float(4) double(8)
字符型:char(2)
布尔类型:boolean
引用数据类型:
数组、类、接口、String 等
tips:
1、a 的值是 -128
2、小于四个字节的是数据参加运算时,会先提升为4个字节再进行运算
定义:短路与 & 短路或
按位与、按位或、按位异或
左移、右移、无符号右移
三目运算符:布尔表达式1 ? 表达式2 : 表达式3
break:某次循环下,执行完就不继续执行剩下的循环了
continue:某次循环下,当次循环不需执行了,直接执行下一次循环
重载与重写的异同点
重载(overload):
方法名相同,参数列表不同(个数、类型、顺序),与返回值类型无关
重写(覆写、覆盖override):
方法名相同,返回值类型相同(除非有父子类关系),参数列表也相同
注意事项:
不能重写静态方法
被final修饰的方法不能重写
如果子类重写父类方法,子类的权限要大于父类的权限
被private修饰的方法不能重写
Arrays.copyof
Arrays.aopyofRange
this代表当前对象的引用,哪个对象的引用调用了该方法,this就代表哪个对象
什么是封装
什么是继承
什么是多态
什么是向上转型和向下转型
什么是动态绑定
在发生继承的前提条件下,当代码运行时,通过父类引用,调用了父类和子类重写的那个方法,结果实际调用了子类的方法,这种情况就叫做动态绑定
访问修饰限定符
什么是包
静态成员变量,又叫类变量,通过类名访问
普通代码块:方法内部
实例(构造)代码块:方法外部
如果一个类不想被其他类继承,可以使用final修饰当前类,称为密封类
同理,被final修饰的方法称为密封方法
继承和组合的异同点
什么是抽象类
接口中的成员变量,默认都是public static final修饰的
接口中的抽象方法,默认都是public abstract修饰的
接口不可以进行实例化
如果接口中的方法被default修饰,那就可以有具体的实现
如果接口中的方法被static修饰,那就可以有具体的实现
类和接口之间可以使用关键字 implements 来实现
一个接口对应一个字节码文件
如果一个类不想实现这个接口当中的方法,那么此时这个类就可以被定义为抽象类,但是这个抽象类如果被继承,那么就得实现所有没有被实现的方法