Java基础面试题(20道)
·
Java基础面试题(20道)
- Java中常见的文件类型有哪些?作用是什么?
- Java中常用的指令有哪些?作用是什么?
- JVM虚拟机中类加载器和堆栈内存的作用
- 简述Java中变量的含义和特点
- Java中基本数据类型的分类,定义的关键字及默认值
- 简述除法(/) 和 取余(%)的应用场景
- 简述++、-- 运算符法则
- 逻辑与(&&)、按位与(&)区别
- 简述if...else...语句与条件运算符[()?:]的应用场景
- 简述if...else if... 与 switch语句的异同点和应用场景
- while... 与 do...while 区别
- while 、for 区别及应用场景
- 简述双重for循环的运行法则
- break continue 语句的异同点
- 运算符优先级(由高到低)
- 简述Math.random()函数和Random类的优缺点
- 简述final关键字
- 简述static关键字
- 简述构造器的作用和特点
- 简述this关键字
Java中常见的文件类型有哪些?作用是什么?
.java
//源(代)码文件,主要用于存储编写的Java源码
.class
//字节码文件,主要用于存储编译的.java文件后计算机识别的字节码数据
Java中常用的指令有哪些?作用是什么?
-
javac:编译命令,主要用于将指定的.java文件编译成同名的.class文件
-
java:运行命令,主要用于在计算机中执行指定的.class文件
JVM虚拟机中类加载器和堆栈内存的作用
- 类加载器:主要用于加载通过.class文件转换而来的class类的容器
- 栈内存:主要用于存储基本数据类型变量和值,引用数据类型的地址和被调用方法的方法栈
- 堆内存:主要用于存储通过new关键字完成引用数据类型的数据和数组的数据
简述Java中变量的含义和特点
- 含义:一个数据存储空间的表示
- 特点:随机性、唯一性,且局部变量必须定义初始值
Java中基本数据类型的分类,定义的关键字及默认值
- 数值型:byte 、 short 、int(默认类型、默认值:0) 、 long
- 浮点型:float 、 double(默认类型、默认值0.0)
- 字符型:char(默认:空格)
- 布尔型:boolean(默认:false)
简述除法(/) 和 取余(%)的应用场景
当判断数值之间的关系时,一定使用取余
简述++、-- 运算符法则
- 作为单条语句定义时,符号在前和在后,结果一致
- 作为组合语句定义时,符号在前,先运算再操作;符号在后,先执行操作,操作结果后再运算
逻辑与(&&)、按位与(&)区别
在相同条件下,当当前关系表达式能够运行整体结果时,逻辑与只会执行当前表达式,而按位与会执行所有表达式;因此实际开发中,推荐使用逻辑与,效率更高
(例:当第一个表达式为false,逻辑与即结束执行,返回false)
简述if…else…语句与条件运算符[()?:]的应用场景
当根据任意的关系表达式或逻辑表达式判断后,直接显示操作结果时,推荐使用条件运算符,代码结构更简洁;当判断后还需要执行复杂的业务逻辑时,推荐使用if…else…语句,功能更强大
简述if…else if… 与 switch语句的异同点和应用场景
-
相同点:都是进行多个条件选择判断的语句;都能够使用“}”作为结束标志
-
不同点:if…else if…:条件是任意关系表达式或逻辑表达式,结果一定是布尔型,即支持等值判断也支持范围判断
switch:条件是等值表达式,结果支持五种:byte 、 short 、char、 int 、String ;只支持等值判断还支持break关键字结束 -
应用场景:判断条件为等值,并且结果数量较少,且为物种数据类型,推荐使用switch
while… 与 do…while 区别
- while是先判断后执行
- do…while 是先执行一次 再判断
while 、for 区别及应用场景
- 区别:在相同条件下,for比while更节省内存空间
- 应用场景:实际开发中,已知循环次数,推荐使用for;未知循环次数,推荐使用while
简述双重for循环的运行法则
外循环控制行,内循环控制列;外循环执行一次,内循环执行一遍
break continue 语句的异同点
- 相同点:都能结束流程控制语句;都必须定义在任意的流程控制语句中;都对if语句不起作用
- 不同:break:终止,当流程执行到break时,自动终止,对switch语句和所有的循环语句起作用
continue:中断,当流程执行到continue时,跳过本次,执行下一次,只对所有的循环语句起作用
运算符优先级(由高到低)
() //优先级最高
++、--、!
*、/、+、-、%
> 、 >= 、 < 、 <= 、 == 、 !=
&& 、 ||
()?: //条件(三元)运算符
*= 、 /= 、 += 、 -= 、 =
简述Math.random()函数和Random类的优缺点
| 比较项 | Math.random() | Random类 |
|---|---|---|
| 优点 | 直接调用方法,节省内存空间 | 可以直接调用指定方法生成指定类型随机数 |
| 缺点 | 生成指定整数类型随机数比较麻烦 | 需要先实例化对象,再调用方法,浪费空间性能 |
简述final关键字
- 能够修饰类、成员字段、成员方法
- 特点:修饰类不能被继承;成员字段必须定义初始值,且只能被初始化一次;成员方法不能被重写
简述static关键字
- 能够修饰成员字段、成员方法、代码块
- 被修饰的字段可以通过类名打点(.)调用
- 被修饰的代码块优先主函数加载,且在运行过程中只被加载一次
- 当被static修饰的方法或代码块,调用其他类成员时,则该成员也要static修饰
简述构造器的作用和特点
- 作用:实例化对象和通过有参构造器完成值传递
- 特点:构造器方法名与类名一致;构造器方法没有返回值;构造器方法只能通过new关键字调用;实际开发中,当类没有明确定义构造器时,JVM会提供一个默认无参构造器,当类中明确定义后,则JVM虚拟机不会提供任何形式的构造器
简述this关键字
表示本(当前)类的对象,必须定义在方法体中,当且仅当参数名和成员字段名一致时,且使用参数名给同名的成员字段赋值时,必须通过this调用成员字段加以区分
更多推荐



所有评论(0)