昨天面试了一家,自己基础还是不好,当成一次失败的经验吧,至少知道了哪里的不足,加油加油!
包含的模块有:java基础,容器,多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM ,如下图所示
java基础
1.JDK和JRE有什么区别?
JDK:,Java工具包,提供了Java的开发环境和运行环境
JRE:java运行环境 ,为java的运行提供了环境
具体来说,JDK其实包含了JRE,同时还包含了编译Java编码的编译器Javac,还包含了很多java程序调试和分析的工具,简单来说,如果你需要运行java程序,只需要安装JRE就够了,如果需要编译java文件,必须要安装JDK
2.== 和 equals的区别是什么?
2.== 和 equals的区别是什么?
双==号 解读
> 如果是整型变量,则比的是值是否相同
> 如果是引用类型,则比的是引用地址是否相同
equals解读
> 则比较的是值是否相同。
举例: String s = new String("张三");
String s2 = new String("张三");
System.out.println(s.equals(s2)); 结果为true
3.两个对象的hashCode()相同,则他们的equals()也一定为true,对吗
不一定 ,在散列表中,hashCode()相等即两个键值对的哈希值相等,然而哈希值相等,但是键值对却不一定相等
4.final 在Java中有什么作用
final修饰的类叫最终类,该类不能被继承
final修饰的方法,该方法不能被重写
final修饰变量的时候,变量变常量,必须初始化值,并且值还不能修改
5.java中的Math.rount(-1.5)结果是多少
因为在数轴上取值时,中间值0.5向右取整,所以正0.5取整为1,反之,-0.5直接舍弃
6.String属于基本的数据类型吗
不属于 ,基本数据类型分为4类8种 整型:byte short int long 浮点型:float double 字符型:char 布尔值 : boolean
7.Java中操作字符串都有哪些类,它们之间有什么区别
操作字符串的类有 String StringBuffer StringBuilder
String 和StringBuffer StringBuilder的区别在于 String声明的都是不可变的对象,每次操作都会生成新的对象,然后将指针指向新的String对象 ,而StringBuffer和StringBuilder是在原有对象的基本上继续操作,所以经常改变字符串内容的情况下最好的不要用String
StringBuffer和StringBuffer 最大的区别在于 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(0 ) 去除字符串两端空白
split() 分隔字符串,返回一个分割后的字符串数组
getBytes() 返回字符串的byte类型数组
length() 获取字符串的长度
toLowerCase() 将字符串转成小写字母
toUpperCase() 将字符串转成大写字符
subString () 截取字符串
equals() 字符串比较
11.抽象类必须用抽象方法吗
11.抽象类必须用抽象方法吗
不必须 ,不一定非要用抽象方法
12. 普通类和抽象类有哪些区别
普通类不能包括抽象方法,抽象类可以包含抽象方法
抽象类不能直接实例化 ,普通类可以直接实例化
13.抽象类能用final修饰吗?
不能 ,抽象类就是让其他类继承的,如果定义为final,该类就不能被继承,这样彼此就会出产生矛盾 ,所以final不能修饰抽象类
14.接口和抽象类有什么区别
实现: 抽象类的子类是要用extends来继承的 ,而implements接口是用来实现的
构造函数: 抽象类可以有构造函数,接口不能有
类可以实现很多接口,但只能继承一个抽象类
15.java中IO流分为几种
两种 Input输入流 output输出流
字节流和字符流
字节流是按8位传输以字节为单位进行输入和输出
字符流是按16位传输以字符为单位进行输入和输出
16.BIO NIO AIO有什么区别
BIO : Block IO 同步阻塞式IO 就是我们平常使用的传统IO ,特点是模式简单使用方便,并发处理能力低
NIO: Non IO 同步非阻塞IO,是传统IO的升级,客户端和服务端通过Channel(通道)通讯.实现了多路复用
AIO:Asynchronous IO 是NIO的升级。也叫NIO2,实现了异步非阻塞IO,异步IO的操作基于事件和回调机制
17.Files的常用方法都有哪些
files.copy() 复制文件
files.delete() 删除文件
files.exists() 检测文件是否存在
files.createFile(): 创建文件
Files.createDirectory(); 创建文件夹
files.size() 查看文件的个数
files.write() 写入文件
files.read() 读取文件
files.move() 移动文件
18.Java容器都有哪些
Java容器分为Collection 和 Map 两大类,其下又有很多子类
Collection :存放独立元素的序列
: 存放key-value的键值对
Collect 其下有List和set 两大子类
List
1 ArrayList
2.linkedList
3.Vector
4.Stack
Set
1.HashSet
2.LinkedHashSet
3.TreeSet
Map 其下有HashMap TreeMap ConcurrentHashMap Hashtable
HashMap
1.LinkedHashMap
19.Collection 和Collections 有什么区别
Collection是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法,所有集合都是它的子类,比如List Set等
Collections是一个包装类 包含了很多静态方法,不能被实例化 就像一个工具类,比如提供的排序方法:Collections.sort(list)
20.List Set Map之间的区别是什么
List列表 set集 map映射
List(元素可重复性 有序性)
set(具有唯一性,无序性)
Map(采用键值对<key,value>存储元素,key键唯一,value可重复)
21.HashMap 和 Hashtable有什么区别
存储: HashMap 运行key 和 value 为null ,而Hashtable不允许
线程安全:Hashtable是线程安全的,而HashMap是非线程安全的
推荐使用:在Hashtable的类注释可以看到。Hashtable是保留类不建议使用,推荐在单线程环境下用HashMap替代,如果需要多线程使用则用ConcurrentHashMap替代
本文作者:
黄广志
本文链接: https://github.com/ggzhi/ggzhi.github.io/2020/03/26/%E9%9D%A2%E8%AF%95%E9%A2%98%E6%80%BB%E7%BB%93/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://github.com/ggzhi/ggzhi.github.io/2020/03/26/%E9%9D%A2%E8%AF%95%E9%A2%98%E6%80%BB%E7%BB%93/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!