java面试100题。

一、Java 基础

1.JDK 和 JRE 有什么区别?

jdk 是java的开发工具包,jre是java开发的运行环境

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

== 比较的是内存中的地址是否相等,equals比较的是内容是否相等

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

两个对象相等,他们的hashcode()一定相等,

两个对象的hashcode()相等,equal()不一定为true。

hashcode相等即是两个键值对的哈希值相等,然而哈希值相等,并不一定能得出键值对相等

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

修饰的类不能被继承

修饰的方法不能被重写

修饰的变量叫做常量,常量必须初始化,初始化之后不能修改了

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

-1

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

不是 基本类型是 :int ,short char long byte boolean double float

string 属于对象

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

String ,StringBuffer,Stringbuilder

区别:

string 声明的是不可修改的对象,每次操作都会生成一个新的string对象

stringbuffer,和stringbuilder可以在原对象的基础上进行操作,所以经常改变字符串的情况不要使用string

stringbuffer和stringbuilder的区别就是,stringbuffer线程安全,stringbuilder是非线程安全的。

stringbuilder的性能高于stringbuffer,所以在单线程环境下推荐使用stringbuilder,  多线程环境下推荐使用stringbuffer

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来继承,接口必须使用implements来实现接口。

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

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

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

 

15.java 中 IO 流分为几种?

按照功能划分:输入流input,输出流output

按照类型划分:字节流和字符流

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

 

以InputStream(输入)/OutputStream(输出)为后缀的是字节流;

          以Reader(输入)/Writer(输出)为后缀的是字符流。

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

 

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

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

creatFile():创建文件。

creatdirectory():创建文件夹

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

copy():复制文件。

move():移动文件

size():文件的个数

read():读文件

write():写文件

二、容器

18.java 容器都有哪些?

容器分为collection 和Map两大类

collection里面有list  (arraylist ,linkedlist,vector stack)

                        set (hashset,linkedhashset,treeset)

map 里面有  hashmap (linkhashmap)

                  treemap

                   hashtable

 

19.Collection 和 Collections 有什么区别?

collection 是一个集合接口,它提供了对集合对象的基本操作通用的接口方法,所有的集合都是他的子类,list set

collections 是一个包装类,包含了很多静态方法不能被实例化,就像一个工具类。

 

20.List、Set、Map 之间的区别是什么?

list 元素有序,允许元素重复

set---a

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值