java面试题目1-20

1jdk与jre的区别
这个题目要注意的是知道jdk是java Development Kit的简称 java开发工具包 提供了开发环境和运行环境
jre是java Runtime Environment 的简称 java运行环境

2和equals的区别是什么
解读 对于
==

对于基本类型和应用类型==的作用效果是不一样的
基本类型 :比较的是值是否相同
应用类型 :比较的是引用是否相同

equal()本质上是==
只不过一些方法会重写equals方法,把它变成了值比较
比如说String 和Integer

3 两个对象的hashCode()相同则equal也一定为true对吗

首先要知道hashCode()是干嘛 的
hashCode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值

代码示例:
String str1 = “通话”;
String str2 = “重地”;
System.out.println(String.format(“str1:%d | str2:%d”,
str1.hashCode(),str2.hashCode()));
System.out.println(str1.equals(str2));
执行的结果:
str1:1179395 | str2:1179395
false
代码解读:很显然“通话”和“重地”的 hashCode() 相同,然而 equals() 则为 false,因为在散列表中,hashCode()相等即两个键值对的哈希值相等,然而哈希值相等,并不一定能得出键值对相等。
如果要深入理解这个问题的或还需要对hashCode()的机制进行详细了解为什么两个不同的String得到的hashCode确是一样的呢

final在java中的作用
final 修饰的类叫做最终类 该类不能被继承。
final 修饰的方法不能被重写。
final 修饰的变量叫常量 而且必须初始化,初始化之后就不能后修改了 。

5. java 中的 Math.round(-1.5) 等于多少?
等于 -1,因为在数轴上取值时,中间值(0.5)向右取整,所以正 0.5 是往上取整,负 0.5 是直接舍弃。

6. String 属于基础的数据类型吗?
String 不属于基础类型,基础类型有 8 种:byte、boolean、char、short、int、float、long、double,而 String 属于对象。是引用数据类型 。

7. java 中操作字符串都有哪些类?它们之间有什么区别?
操作字符串的类有:String、StringBuffer、StringBuilder
这道题
String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。
StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于 StringBuffer,所以在单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。
那StringBuffer和StringBuilder 底层是用什么实现的呢

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 抽象类 和接口有什么区别

实现上 一个用extends 一个用implement
构造函数 : 抽象类可以有构造函数 :接口就不能有
main 方法 : 抽象类可以有main方法,并且我们能运行它;接口不能有main方法
事项的数量:类可以实现多个接口 ; 但是只能继承一个抽象类
访问权限 :接口中的方法默认使用public来修饰 ;
抽象方法中的方法可以是任意访问修饰符
作用上的区别 一般情况下什么时候考虑用抽象类,一般什么时候考虑用接口

15java中IO流是怎么分的

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

16. BIO、NIO、AIO 有什么区别?
BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。

NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。

AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。

这个还没有完全的理解 要注意

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

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

Files.createFile():创建文件。

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

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

Files.copy():复制文件。

Files.move():移动文件。

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

Files.read():读取文件。

Files.write():写入文件。

java的容器有哪些
在这里插入图片描述
java的容器大致可以分为三类 list 数组类 queue这个数列类 set 这个集合类 map 类
分别从以下点进行对比
1.有无顺序
2.元素是否可重复
3.可存放元素数量
4.底层实现
5.线程安全性
6.通常用来做什么
7.优点,特性
8.线程安全框架包
9.在现有哪些框架上用到了这些集合
在这里插入图片描述
20 Collection 和 Collections 有什么区别?

java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。
Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。

这一系列的java面试题 取自java面试207题

https://mp.weixin.qq.com/s/MXKACpJKLMxep5bXO3EHhw

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值