昨天面试了一家,自己基础还是不好,当成一次失败的经验吧,至少知道了哪里的不足,加油加油!
包含的模块有: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文件,必须要安装JDK2.== 和 equals的区别是什么?
2.== 和 equals的区别是什么?
双==号 解读
> 如果是整型变量,则比的是值是否相同
> 如果是引用类型,则比的是引用地址是否相同
equals解读
> 则比较的是值是否相同。
举例: String s = new String("张三");
String s2 = new String("张三");
System.out.println(s.equals(s2)); 结果为true3.两个对象的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 多线程用StringBuffer8.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 国际许可协议 进行许可。转载请注明出处!