一、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---abstractset和hashset元素不有序,不允许元素重复
treeset 元素有序,但是不允许元素重复
ma