资料内容:
java基础
1. JDK 和 JRE 有什么区别?
jdk同时提供了Java的开发环境和运⾏环境⽽jre只提供了Java的运⾏环境,总的来说,jdk包
括jre
2、== 和 equals 的区别是什么?
equals是Object的⼀个⽅法,默认和==⼀样都是对⽐地址的
但是equals可以重写⽅法,重写后的equals对⽐的是数值。
3、⽅法重载与⽅法重写(⽅法覆盖)的区别:
⽅法重载:
⽅法名相同 参数列表不同,叫做⽅法重载! (⽅法名相同、参数列表不同、参数数量不同、
参数顺序不同。
⽅法重写:
前提:有继承关系
1.⽅法名相同 2:参数列表相同 3:返回值数据类型相同 4:⼦类权限>=⽗类权限不能缩⼩
5: 异常不能抛出更多
4、构造⽅法特性:
1.⽅法名与类名相同,没有返回值也没void ,构造⽅法可以重载。
2.构造⽅法是⼀个特殊的⽅法,new对象的时候调⽤ ,为了让对象的属性有值⽽存在!如果没
有显示赋值:数字为0,引⽤为null、boolean为false。
3.如果⼀个类没有构造⽅法,此时系统会⾃动添加⽆参构造,⼀旦写了,不论写的什么,系统
都不在添加 ,new对象使⽤构造⽅法时,如果传递参数找对应有参构造,如果没有传递找⽆参构造
5、基本数据类型和引⽤数据类型的区别:
基本数据类型存值
引⽤数据类型存储地址
6、静态变量和实例变量?
静态变量:最⼤特征就是共享。属于类,第⼀次加载类的时候开辟空间,⽽且仅开辟⼀次,和
对象⽆关推荐使⽤ “类名.变量名” 来调⽤,也可以使⽤“对象.变量名”,但是不管使⽤哪个调⽤,
最终改变的都是静态区的共享区域,⼀变都变了。
实例变量:属于对象,new⼀次开辟⼀次,互不影响。必须通过 “对象.属性名“ 的形式进⾏调
⽤ 、写法就是别⽤staitc修饰
7. final 在 Java 中有什么作⽤?
1、final修饰的变量叫做常量,整体都是赋值⼀次,不能⼆次赋值
2、对于局部变量来说,可以先声明后赋值,也可以声明同时做赋值,但是不可⼆次赋值
3、对于成员变量来说,构造会有默认初始值,需要规避:声明同时做赋值,或者所有构造都
赋值。
4、修饰引⽤数据类型时:地址不可更改,地址内容可以更改,修饰类:类不可继承,修饰⽅
法:此⽅法不可重写(不是不能被继承!!!!)
8、String字符串特性
1112
1: 不可变,String字符串底层是⼀个 final修饰的char数组,并且没有提供任何对这个数组操
作修改的⽅法。String地址内容是不可变的。每⼀次String变量的重新赋值都是地址的更改。
2:两种赋值形式,第⼀种:直接=赋值字符串,这种会直接去常量池中寻址,如果常量池中
有直接指向,如果没有重新开辟指向。(==⽐对地址来对⽐内容是否相等)
第⼆种:= newString赋值,这种会直接堆区开辟空间,所以就算内容相同,地址也不同,所以不
能⽤==对⽐内容是否相同。