一、Java 基础面试题

1.JDK 和 JRE 有什么区别?

JDK是 Java development kit,Java开发工具包,包括了Java开发环境和运行环境。
JRE是 Java runtime environment,Java运行环境。
简单来说 JDK=JRE+Javac+各种开发的时候的调试工具。如果你只运行Java程序那么jre就够了。

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

变量分为
基本类型:八种基本类型(六种数字类型一种字符类型,一种布尔类型):byte,short,int,long,float,double。
引用类型:对象,数组,String。
对于引用类型来说,==比较的是这个引用是否相同,equals比较的是引用的内容是否相同。

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

不对,但是如果两个对象的equals()相同,那么hashCode相同。
hashCode()主要是用来散列存储的时候,确定对象的存取位置。
如果重写了equals()方法,那么一定要重写hashCode()。

4.final 在 java 中有什么作用?

看final定义什么嘛:
类:那么这个类是不能被继承的,final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。
方法:那么这个方法不能被继承
变量:基本类型的变量初始化之后这个值就不能变了,引用变量的话被初始化之后这个引用就不能指向另外的对象了,但是这个引用的内容还是能变的。

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

-1

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

不属于

7.java 中操作字符串都有哪些类?它们之间有什么区别?

String,Stringbuffer,Stringbulid。
不可变:String。
可变:
线程安全:StringBuffer
线程不安全:StringBuild

8.String str="i"与 String str=new String(“i”)一样吗?

不一样,因为内存的分配方式不一样,String str=“i” ,java 虚拟机会将其分配到常量池中;而 String str=new String(“i”) 则会被分到堆内存中

9.如何将字符串反转?

使用 StringBuilder 或者 stringBuffer 的 reverse() 方法。

10.String 类的常用方法都有那些?

indexOf():返回指定字符的索引。
charAt():返回指定索引处的字符。
replace():字符串替换。
trim():去除字符串两端空白。
split():分割字符串,返回一个分割后的字符串数组。
getBytes():返回字符串的 byte 类型数组。
length():返回字符串长度。
toLowerCase():将字符串转成小写字母。
toUpperCase():将字符串转成大写字符。
substring():截取字符串。
equals():字符串比较。

11.抽象类必须要有抽象方法吗?

不一样

12.普通类和抽象类有哪些区别?

普通类不能有 抽象方法,
抽象类不能有实例。

13.抽象类能使用 final 修饰吗?

不能。抽象类是用来继承的,但是final之后就不能继承了。

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

形式的区别:

  1. 修饰符不同,一个是abstract,一个是interface
  2. 一个是extends一个是implements
  3. interface的方法默认都是用public修饰的,而抽象类就随意了
  4. 一个类只能继承一个抽象类,但是能实现很多接口。
  5. 接口中变量全部默认是用public static final修饰的常量,抽象类中不限制

实质的区别:
接口的本质是对对象能力的抽象,而抽象类是对对象特征的抽象,或者说类型的抽象。
举个例子,加热一杯水,我不管你是用煤气炉,电磁炉,微波炉加热它,我只管你有没有加热这杯水的能力。最常用的接口就是compareable接口嘛,这个接口就是不管你类是什么类型,只管你这个类有没有比较的能力,那这个类怎么才能有这个比较的能力呢?那你这个类就要override这个接口里面定义的比较的方法。

15.java 中 IO 流分为几种?

功能上分:输入流和输出流。
类型上分:字符流和字节流。
字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流按 16 位传输以字符为单位输入输出数据。

16.BIO、NIO、AIO 有什么区别?

17.Files的常用方法都有哪些?

Files.exists():检测文件路径是否存在。
Files.createFile():创建文件。
Files.createDirectory():创建文件夹。
Files.delete():删除一个文件或目录。
Files.copy():复制文件。
Files.move():移动文件。
Files.size():查看文件个数。
Files.read():读取文件。
Files.write():写入文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值