**
**
1. Java的三个特性
特性 | 解释 |
---|---|
封装 | 将一些对象的特有属性和行为进行封装,如果不公开用private修饰属性.如果想操作这些属性,可以通过对应的get,set方法对其进行调用和修改。 |
继承 | 使用现有的一个类,保留它自身的属性和方法来创建类,使用Extends关键字。子类可以使用父类的方法,同时也可以对已有的方法进行更新,以及新增属性和方法。 |
多态 | 即声明使用父类,实现使用其子类 。(父类引用变量指向子类对象),属于一个向上转型的过程。 |
关于多态还是了解不算深刻,有句官话是这样的,多态就是指程序中定义的引用变量
所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定。
个人理解就是我们所引用的变量到底会指向的是哪个类的实例、只有在程序运行的时候才知道,
FU f= new zi1();
FU f =new zi2();
FU f =new zi3();除了可以使用父类共性内容还可以使用子类更强大的功能。
对多态的理解属实有待提高,只会使用可不行啊o(╥﹏╥)o。
2. JVM、JDK、JRE的概念及区别
1.JVM
运行Java字节码的虚拟机即为JVM,省略来叫就是Java虚拟机。
针对不同的操作系统,例如Linux,Windows,Macos等,JVM对于相同的字节码所给出的结果是一样的。
2.JDK
JDK包括了JRE,还有一些编译器(javac)和工具,使用它可以进行创建和编译Java程序。即需要进行Java编程的话
就需要安装JDK。
3.JRE
JRE就是包括Java程序运行时所需要的的环境,包含了JVM以及其他Java运行所必须的内容。如Java类库,Java命令等。
即只需要运行Java程序的话可以只安装JRE。如果时要编程则需要安装JDK。
3. Java基本数据类型及其封装类
Java基本数据类型与封装类是需要牢记的。
**关于这个Boolean类型的大小,我也是一头雾水,觉得暂时没必要去深究,在心里留个心眼以后解决吧。
基本类型 | 封装类型 | 大小(字节) |
---|---|---|
byte | Byte | 1 |
boolean | Boolean | |
short | Short | 2 |
int | Integer | 4 |
long | Long | 8 |
float | Float | 4 |
double | Double | 8 |
char | Character | 2 |
4. Java抽象类与接口
1.抽象类和普通类的区别
1).它两都可以被继承,但是普通类被继承后可以不去重写父类的方法,而抽象类子类则必须重写父类
方法,除非子类也是抽象类。
2).普通类可以实例化调用,而抽象类不可以。抽象类只是一种抽象,无法被直接使用。
2.接口
接口是被用来声明一系列有相同特种或行为动作的集合,他自身只有其特征,但是不做实现。即它是
用来描述某种能力,比如吃饭。可以被其他的类继承,分别实现各自的行为功能,这些功能是可以多样的。
例如声明吃东西的接口,继承具体实现可以是猴子吃,狗狗吃,鸟吃,也可以是人吃。即不同的继承实现方式。
3.抽象类
抽象类即用abstract修饰的类。跟接口类似。抽象类中可以没有抽象方法,但是有抽象方法的类一定是抽象类。
抽象方法也需要用abstract修饰,无方法体。
如果普通子类继承父抽象类,则必须重写全部的抽象方法。如果没有全部实现,则该子类也需要用abstract来修饰。
5. 成员变量与局部变量的区别
1).从语法上看,成员变量是属于类的,局部变量实在方法中定义或者作为参数存在。
而且成员变量可以被public.,private,static修饰,而局部变量则不可以。但是都可以被final修饰
2).从存储位置来看,成员变量属于对象,位于堆内存中,而局部变量则位于栈内存里。
3)从生命周期来看,成员变量随对象存在而存在,消亡而消亡。局部变量则是用完即被销毁。
4)成员变量未赋值是,有默认赋值,而局部变量则不会自动赋值。