Java面试题大全2023版.docx
《Java面试题大全2023版.docx》由会员分享,可在线阅读,更多相关《Java面试题大全2023版.docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java面试题大全2023版一、Java基础JDK和JRE有什么区别?JDK : Java Development Kit的简称,java开发工具包,提供了 java的开发环境和运行环境。JRE : Java Runtime Environment的简称,java运行环境,为java的运行提供了所需 环境。具体来说JDK其实包含了 JRE ,同时还包含了编译java源码的编译器javac ,还包含 了很多java程序调试和分析的工具。简单来说:如果你需要运行java程序,只需安 装JRE就可以了,如果你需要编写java程序,需要安装JDK。1. =和equals的区别是什么?=解读对于基本类型
2、和引用类型=的作用效果是不同的,如下所示:基本类型:比较的是值是否相同;引用类型:比较的是引用是否相同;代码解读:因为x和y指向的是同一个引用,所以=也是true ,而new String。方 法则重写开辟了内存空间,所以=结果为false ,而equals比较的一直是值,所以 结果都为true。equals解读equals本质上就是=,只不过String和Integer等重写了 equals方法,把它变成了 值比较。原来是String重写了 Object的equals方法,把引用比较改成了值比较。总结:=对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而equals默认情况下是引用
3、比较,只是很多类重新了 equals方法,比如String. Integer 等把它变成了值比较,所以一般情况下equals比较的是值是否相等。2. 两个对象的hashCode。相同,则equals。也一定为true ,对吗?不对,两个对象的hashCode。相同,equals。不一定true0代码解读:很显然通话和重地的hashCode。相同,然而equals()则为false , 因为在散列表中,hashCode。相等即两个键值对的哈希值相等,然而哈希值相等,并 不一定能得出键值对相等。3. final在java中有什么作用?final修饰的类叫最终类,该类不能被继承。final修饰的方法
4、不能被重写。final修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改。4. java 中的 Math.round(-1.5)等于多少?等于-1 ,因为在数轴上取值时,中间值(0.5 )向右取整,所以正0.5是往上取整,负 0.5是直接舍弃。5. String属于基础的数据类型吗?String 不属于基础类型,基础类型有 8 种:byte、boolean, char、short、int、float, long、double ,而 String 属于对象。6. java中操作字符串都有哪些类?它们之间有什么区别? 操作字符串的类有:String. String Buffer, Stri
5、ngBuilder0String和StringBufferx StringBuilder的区别在于String声明的是不可变的对象,每次 操作都会生成新的String对象,然后将指针指向新的String对象,而StringBuffer. StringBuilder可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况 下最好不要使用StringoString Buffer和StringBuilder最大的区别在于,String Buffer是线程安全的,而 StringBuilder是非线程安全的,但StringBuilder的性能却高于String Buffer,所以在 单线程环境下
6、推荐使用StringBuilder,多线程环境下推荐使用StringBuffer0String str=与 String str=new String(T)一样吗?不一样,因为内存的分配方式不一样。String str=i”的方式,java虚拟机会将其分配 到常量池中;而String str=new String(i)则会被分到堆内存中。7. 如何将字符串反转?使用 StringBuilder 或者 stringBuffer 的 reverse。方法。8. String类的常用方法都有那些?indexOf():返回指定字符的索引。charAt():返回指定索引处的字符。replace():字符
7、串替换。trim():去除字符串两端空白。split():分割字符串,返回一个分割后的字符串数组。getBytes():返回字符串的byte类型数组。length():返回字符串长度。toLowerCase():将字符串转成小写字母。toUpperCase():将字符串转成大写字符。substring():截取字符串。equals():字符串比较。9. 抽象类必须要有抽象方法吗? 不需要,抽象类不一定非要有抽象方法。 上面代码,抽象类并没有抽象方法但完全可以正常运行。10. 普通类和抽象类有哪些区别?普通类不能包含抽象方法,抽象类可以包含抽象方法。抽象类不能直接实例化,普通类可以直接实例化。1
8、1. 抽象类能使用final修饰吗?不能,定义抽象类就是让其他类继承的,如果定义为final该类就不能被继承,这样彼 此就会产生矛盾,所以final不能修饰抽象类,如下图所示,编辑器也会提示错误信息: 14.接口和抽象类有什么区别?实现:抽象类的子类使用extends来继承;接口必须使用implements来实现接口。构造函数:抽象类可以有构造函数;接口不能有。main方法:抽象类可以有main方法,并且我们能运行它;接口不能有main方法。实现数量:类可以实现很多个接口 旦是只能继承一个抽象类。访问修饰符:接口中的方法默认使用public修饰;抽象类中的方法可以是任意访问修 饰符。15. j
9、ava中I。流分为几种?按功能来分:输入流(input)、输出流(output) 0按类型来分:字节流和字符流。字节流和字符流的区别是:字节流按8位传输以字节为单位输入输出数据,字符流按16位传输以字符为单位输入输出数据。16. BIO、NIO、AIO有什么区别?BIO : Block 10同步阻塞式10,就是我们平常使用的传统10 ,它的特点是模式简单使 用方便,并发处理能力低。NI0 : New 10同步非阻塞10 ,是传统10的升级,客户端和服务器端通过Channel(通道)通讯,实现了多路复用。AI0 : Asynchronous 10是NI0的升级,也叫NI02 ,实现了异步非堵塞1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 试题 大全 2023
限制150内