1.JDK、JRE、JVM三者的关系?
JVM是Java虚拟机,是虚拟出来的一个系统,我们常说的hotsport是JVM的一种实现;JRE是Java的最小运行环境,它包含JVM和系统类库;JDK是Java的最小开发环境,它包含JRE+编译运行工具。
2.Java的基本数据类型?
byte(1个字节)
short(2个字节)
char(2个字节)
int(4个字节)
long(8个字节)
double(8个字节)
float(4个字节)
boolean(1个字节)
3.在进行小数计算的时候,可以使用double吗?
如果是对精确度要求不高的时候可以使用double进行小数计算,但如果是对精度要求高的时候则不能使用,例如在银行项目中对资金的一些计算,如果使用double可能会丢失精度,导致结果不正确。(我们可以使用JDK提供的BigDecimal进行计算)
4.什么是逻辑与和短路与(&和&&)?
逻辑与和短路与都是需要整个判断都为true的时候表达式才为true,当某一个判断为false时逻辑与会继续执行后续判断,短路与则不会再继续执行了。(逻辑或和短路或也是如此)
5.switch...case判断条件可以使用字符串类型吗?
在jdk1.7之前只能使用整形,在jdk1.7开始可以使用字符串类型
6.如何定义一个方法?
修饰词,返回值类型,方法名,参数列表,方法体
7.你能说明方法中return的用法吗?
无返回值方法时,return用于结束方法;有返回值方法时,return用于结束方法并返回值给调用方。
8.请你说一下面向对象的特征?那什么是封装、什么是继承、什么是多态?
封装、继承、多态;
我们把一些具有相同属性或行为的类抽取出来,就是封装;对类的封装,就是封装的对象的属性和行为;对方法的封装,封装的是具体的功能。
继承是为了代码的重用,Java中的继承是单继承的,一旦继承子类就具有父类+子类的属性和行为;
我们声明一个父类型的引用指向子类型的对象,就是多态。多态的主要表现形式就是重写和重载。
9.重写和重载有什么区别?
重写发生在父子类中,方法名称相同,参数列表相同;
重载发生在同一个类中,方法名称相同,参数列表不同;
10.抽象类和接口有什么区别?
接口只能包含常量和抽象方法,接口之间可以继承,接口可以被多实现
抽象类可以包含抽象方法,也可以包含非抽象方法,必须被继承,因为java是单继承的,所以在继承一个类时我觉得应该要慎重考虑。
11.Java中常用的循环方式有哪些?你能说说他们的区别吗?
while循环、do...while循环、for循环,while循环可能一次都不执行、do...while循环至少会执行一次,for循环也有可能一次都不执行,但是我们最常用的循环方式。
12.break和continue有什么区别?
break用于结束循环,continue用于跳过本次循环。
13.什么是嵌套循环?如何跳出嵌套循环?你觉得嵌套循多了有什么样的问题?
嵌套循环就是循环中套循环,外层循环控制行,内层循环控制列,运行规则遵循外层循环走一次,内层循环走所有次;当我们想跳出整个嵌套循环的时候,可以使用outer:标签来定义循环,使用break outer来跳出整个循环;嵌套循环我觉得一般需要控制在3层以内,如果嵌套太多可读性不好,并且可能存在设计问题。
14.不写类的构造方法可以吗?如果写了类的有参构造方法,还会有缺省构造方法吗?
不写类的构造方法,java编译器默认会有缺省无参构造方法;如果写了类的有参构造方法,不会生成缺省方法。
15.类的构造器可以被重写吗?那可以被重载吗?
类的构造器不可以被重写,但可以被重载。
16.基本类型画“==”号和引用类型画“==”号有什么区别?那引用类型要判断内容是否相等应该怎么办?
基本类型画“==”号是判断两个值是否相等;
引用类型画“==””号是判断两个对象在堆的内存地址是否相同;
如果引用类型需要判断内容是否相等,应该使用equals方法;
17.你能说说java中的this和super关键字吗?
java中的this代表的是指向对象本身的一个指针,super是发生在继承关系中的,代表的是指向父类对象的一个指针。
this.成员变量名,是访问本类的成员变量;如果参数super.成员变量名,是访问的父类的成员变量。
this.方法名,是访问本类的方法,我们在调用方法时,可以不写this,编译器会自动生成一个隐式的this;super.方法名,是访问父类的方法。
this(),是访问的本类的构造方法;super()是访问父类的构造方法,并且在初始化子类时,一定会先初始化父类。默认子类中的构造器会隐式的调用super()方法。
18.请你说一下java中的final关键字?
final关键字用于修饰变量、方法、类;
被final修饰的变量,不可以被重新赋值;
被final修饰的类不可被继承;
被final修饰的方法不能被重写。
19.请你说一下java中的static关键字?
static修饰的变量,称为静态变量,存在于方法区(元空间)中;通过类名.变量来访问,当所有对象数据都一样时使用。
static修饰的方法,称为静态方法,存在于方法区(元空间)中;通过类名.方法名来访问,当方法的操作仅与参数有关而与对象无关时使用,例如咱们常写的工具类当中的方法。
还有一种static静态块,在被类加载时自动执行,存在于方法区(元空间)中,常常用于加载静态资源,例如图片,音频,读取文档等。
20.什么是内部类?内部类分类有哪些?
在Java中,可以将一个类的定义放在另外一个类的定义内部,这就是内部类 ;
内部类可以分为四种:成员内部类、局部内部类、匿名内部类和静态内部类。



