42道最新java开发常见面试题:JavaSE基础知识

本文列举了42道常见的Java开发面试题,涵盖JVM、JRE、JDK的区别、环境变量作用、Java语言特性、逻辑运算符、数据类型、类型转换、String类特性、数组与String的区别、继承、多态、面向对象特征、内存结构、面向对象思想、重载与重写、final关键字等多个关键知识点。通过对这些内容的掌握,可以帮助Java开发者深入理解语言基础并为面试做好准备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、JVM、JRE和JDK的区别?

JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。 java语言是跨平台,jvm不是跨平台的。

JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类库。

JDK(Java Development Kit):java的开发工具,包括jre+开发工具

2、环境变量path和classpath的作用是什么?

path是配置Windows可执行文件的搜索路径,即扩展名为.exe的程序文件所在的目录,

用于指定DOS窗口命令的路径。

Classpath是配置class文件所在的目录,用于指定类搜索路径,JVM就是通过它来寻找该类的class类文件的。

3、Java语言的特性?

跨平台性、面向对象、安全性、多线程、简单易用。

4、变量有什么用?为什么要定义变量?什么时候用?

变量的作用:用来存储数据。

为什么要定义变量:用来不断的存放同一类型的常量,并可以重复使用

5、& 和 && 的区别?

&运算符有两种用法: (1)按位与; (2)逻辑与。

&&运算符是短路与运算。

&&会出现短路,如果可以通过第一个表达式判断出整个表达式的结果,则不继续后面表达式的运算;只能操作boolean类型数据

详细介绍:折叠

&&之所以称为短路运算是因为,如果&&左边的表达式的值是 false,右边的表达式会被直接短路掉,不会进行运算。

很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是 null 而且不是空字符串,应当写为 username != null &&!username.equals(""),二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的 equals 比较,否则会产生 NullPointerException 异常。

注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。

6、数据类型

(1)基本数据类型(4类8种)(字节数){数据表示范围}

整数类型:byte(1)、short(2)、int(4)、long(8)

字符类型:char(2)

布尔类型:boolean(1)(ture false)

浮点数类型:float(4)、double(8)

(2)引用数据类型:类、接口、数组

(3)数据类型表
在这里插入图片描述

7、类型转换

(1)精度从高到低 double float long int short(char) byte

自动类型转换 将一个低精度 → 高精度

强制类型转换 将一个高精度 → 低精度(精度会下降)

8、String是最基本的数据类型吗?

基本数据类型包括byte、int、char、long、float、double、boolean和short。取值范围是 -2^(字节数8-1) ~ -2^(字节数8-1) - 1,但Boolean是4个字节,而boolean数组1个字节,这是因为虚拟机用int来代替boolean,保证高效存取。而java.lang.String类是final类型的,因此不能继承也不能修改String类。String还重写了hashCode和equals方法。

9、数组和String有length()方法吗?

数组没有length()这个方法,有getLength()方法,但有length的属性。String有length()方法

10、是否可以继承String?

String 类是 final 类,不可以被继承。

继承 String 本身就是一个错误的行为,对 String 类型最好的重用方式是关联关系(Has-A)和依赖关系(UseA)而不是继承关系(Is-A)

11、new一个字符串“xyz”创建了几个对象?

两个或一个,new一个字符串会产生两个对象,一个在堆上,一个在常量池中,堆上的数据每new一次产生一个新的对象,如果常量池中有需要的对象,就不会创建新的对象,直接拿来用,所以一共创建了一个对象,若常量池中没有要用的对象,则会创建一个,所

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值