Java基础面试题

Java基础面试题,第1张

Java基础面试题 1.JDK和JRE有什么区别

        JDK:是Java的开发工具包,提供了Java的开发环境和运行环境

        JRE:是Java的运行环境,为Java的运行了提供了所需环境

具体来说JDK及时包含了编辑JRE,同时还包含了编译Javac,还包含了很多Java程序调试和分析的工具。简单来说:如果你需要运行Java的程序,只需要安装JER就可以了,如果你需要编写Java程序,需要安装JDK

2.==和equals的区别是什么

==对于基本类型来说是比较值,对于引用来说是引用;

equals默认情况下是应用比较,只是很多类重新了equals方法,比如String、Intteger 等把变成了值比较,所以一般情况下equals比较是否相等。

原理上来说:==判断两个变量和实例是否在同一个内存里,如果在为true,如果不在为false,

                      equals判断两个变量和实例在同一个内存了的值是否相同,如果相同为true,如果不同为false。

3.两个对象的HashCode()相同,则equals()也一定true,对吗?

答:不对,两个对象的hashCode()相同,equals()不一定true

4.fianl 在Java中有什么作用?

fianl  他修饰的类叫做最终类,该类不能被继承。

fianl 他修饰的方法不能被重写

fianl 他修饰的变量叫做常量,常量必须是初始化,初始化之后值不能被修改。

5.Java中的Math.round(-1.5)等于多少

等于-1,应为在数轴上取值时,中间值(0.5)想右取整,所以正0.5是象上取整,负0.5是直接舍去

6.String属于基础的基本类型吗?

String不属于基础类型,基础类型8种:byte、boolean、char、short、int、f'loat、long、doubble

而String属于对象

 7.Java中 *** 作字符串都有哪些类?他们之间有什么区别?

*** 作字符串的类有:String、StringBuffer、StringBuilder

String 和StringBuffer、StringBuilder的区别在于String声明的是不可变的对象,每次 *** 作都会生成新的String对象,然后将指针指向新的String的对象,而StringBuffer、StringBuilder可以在原有对象的基上进行 *** 作,所以在经常改变字符串内容的情况下最好不要使用String.

StringBuffer和StringBuilder最大的区别在于StringBuffer是线程安全的,而StrinBuilder是非线程安全的,但StringBuilder的性能却高于StringBuffer,所以单线程情况下使用StringBuilder,多线程环境下使用StringBuffer。

8.普通类和抽象类区别

普通类:普通类不可以有抽象方法,抽象类可以有抽象方法

抽象类:普通类可以实例化,而抽象类不可以实例化

9.final可以修饰抽象类吗?

答:不能,因为定义的抽象类是让其他类继承的,而定义final该类的不是被继承的,这样彼此会产生矛盾,所以final不能修饰抽象类

10.接口与抽象类的有什么区别

实现:接口必须是用implements来实现接口,而抽象类是extends来继承

构造函数:抽象类可以构造函数,接口不可以有构造函数

实现数量:类可以实现很多接口,但只能继承一个抽象类。

访问修饰符:接口中的方法默认使用public修饰,抽象类中的方法可以是任意的访问修饰符。

11.如果将字符串进行反转

使用StringBuider或者是StringBuffer的reverse()方法

12.String类的常用方法都有哪些

indexOf():返回指定字符的索引

charAt():反正指定索引处的字符

replace():字符串替换

equals():字符的比较

length():返回字符串的长度

13.抽象类必须有抽象方法吗?

抽象类不一定要有抽象方法

14.接口与抽象类有什么区别

实现:抽象类的子类是用extends来继承,接口必须是用implements来实现接口。

构造函数:抽象类可有构造函数,接口没有构造函数。

实现接口:类可以实现多个接口,类只能继承一个抽象类。

15 Java中IO流分几种?

按功能来分:输入流(input)、输出流(output)

按类型来分:字节流和字符流。

字节流和字符流的区别是:字节流按8位传输以字节位单位输入输出数据,字符流按16位传输与字符为单位输入输出数据。

16.Files的常用方法都有那些

Files. exists():检测文件路径是否存在。

Files. createFile():创建文件。

Files. createDirectory():创建文件夹。

Files. delete():删除一个文件或目录。

Files. copy():复制文件。

Files. move():移动文件。

Files. size():查看文件个数。

Files. read():读取文件。

Files. write():写入文件。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5120720.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存