近期java面试总结
1、String和StringBuilder、StringBuffer的区别?
String:String 的值被创建后不能修改,任何对 String 的修改都会引发新的 String 对象的生成。
StringBuffer:跟 String 类似,但是值可以被修改,使用 synchronized 来保证线程安全。
StringBuilder:StringBuffer 的非线程安全版本,没有使用 synchronized,具有更高的性能,推荐优先使用
2、人事OA项目使用了什么框架?
使用了若依框架,若依框架是一款基于SpringBoot+Vue的前后端分离极速后台开发框架。
- 前端技术栈 ES6、vue、vuex、vue-router、vue-cli、axios、element-ui
- 后端技术栈 SpringBoot、MyBatis、Spring Security、Jwt
3、你对Spring Cloud有什么了解?五大组件是什么?
SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,
为各个微服务之间提供,配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务
SpringBoot可以离开SpringCloud独立使用开发项目, 但是SpringCloud离不开SpringBoot ,属于依赖的关系
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、智能路由、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
五大组件:
Eureka : 注册中心,用于服务的注册和发现
Ribbon/Feign : 负载均衡/服务调用
Hystrix :断路器,提高分布式系统的弹性
GateWay/Zuul :网关管理,由GateWay 网关转发请求给对应的服务,服务同一的转发,以及权限管理和过虑
SpringConfig:分布式配置中心
4、你是怎么知道系统是springcloud还是springboot?
什么是微服务,SpringBoot和SpringCloud的关系和区别_Johnny_Cheung的博客-CSDN博客_springboot是微服务吗什么是微服务?就目前而言对于微服务业界没有一个统一的,标准的定义.但通常而言,微服务是一种架构模式或者说是一种架构风格,它提倡单一应用程序划分为一组小的服务,每个服务在其独立的自己的进程中,服务之间相互协调,互相配合,为用户提供最终价值.服务之间采用轻量级的通信机制互相沟通(基于Http的Restful API)每个服务都围绕着具体的业务进行构建,并且能够被独立的部署到生产环境,类生产环境进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储.https://blog.csdn.net/weixin_37519463/article/details/118408275?ops_request_misc=&request_id=&biz_id=102&utm_term=%E2%80%8C%E4%BD%A0%E6%98%AF%E6%80%8E%E4%B9%88%E7%9F%A5%E9%81%93%E7%B3%BB%E7%BB%9F%E6%98%AFspringcloud%E8%BF%98%E6%98%AFspringb&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-118408275.142%5Ev30%5Econtrol,185%5Ev2%5Econtrol&spm=1018.2226.3001.4187
5、说一下重载(Overload)和重写(Override)的区别?
方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。
重载:一个类中有多个同名的方法,但是具有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)。
重写:发生在子类与父类之间,子类对父类的方法进行重写,参数都不能改变,返回值类型可以不相同,但是必须是父类返回值的派生类。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定于自己的行为。
6、构造器是否可被 重写?
Constructor 不能被 override(重写),但是可以 overload(重载),所以你可以看到⼀个类中有多个构造函数的情况。
7、== 和 equals 的区别是什么?
==:运算符,用于比较基础类型变量和引用类型变量。
对于基础类型变量,比较的变量保存的值是否相同,类型不一定要相同。
short s1 = 1; long l1 = 1;
// 结果:true。类型不同,但是值相同
System.out.println(s1 == l1);
对于引用类型变量,比较的是两个对象的地址是否相同。
Integer i1 = new Integer(1);
Integer i2 = new Integer(1);
// 结果:false。通过new创建,在内存中指向两个不同的对象
System.out.println(i1 == i2);
equals:Object 类中定义的方法,通常用于比较两个对象的值是否相等。
equals 在 Object 方法中其实等同于 ==,但是在实际的使用中,equals 通常被重写用于比较两个对象的值是否相同。
Integer i1 = new Integer(1);
Integer i2 = new Integer(1);
// 结果:true。两个不同的对象,但是具有相同的值
System.out.println(i1.equals(i2));// Integer的equals重写方法
public boolean equals(Object obj) {if (obj instanceof Integer) {// 比较对象中保存的值是否相同return value == ((Integer)obj).intValue();}return false;
}
8、有了解过MAP吗?
Map简介_一盐难进的博客-CSDN博客Map简介HashMapTreeMapMap 的遍历小结Map 是一组成对的“键值对”对象,允许使用键 (key) 来查找值 (value)。它提供了一个映射表,可以通过某个对象来查找另一个对象。它也被称作关联数组,因为它将某些对象与另外一些对象关联在一起;或者称作字典,通过键对象来查找值对象,就像在字典中使用单词来定义一样。Map 基本特性:以 key-value 键值对的形式存储数据,...https://blog.csdn.net/f381226200/article/details/94317254?ops_request_misc=&request_id=&biz_id=102&utm_term=MAP&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-94317254.142%5Ev30%5Econtrol,185%5Ev2%5Econtrol&spm=1018.2226.3001.4187
9、有了解过hashmap底层是怎么解决哈希碰撞?
HashMap是怎么解决哈希冲突的_这个名字先用着的博客-CSDN博客_hashmap解决hash碰撞简单总结一下HashMap是使用了哪些方法来有效解决哈希冲突的:使用拉链法(使用链表)来链接拥有相同hash值的数据;使用2次扰动函数(hash函数)来降低哈希冲突的概率,使得数据分布更平均;引入红黑树进一步降低遍历的时间复杂度,使得遍历更快;什么是哈希函数?Hash,一般翻译为“散列”,也有直接音译为“哈希”的,这就是把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值(哈希值);这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输https://blog.csdn.net/weixin_38568503/article/details/123112174?ops_request_misc=&request_id=&biz_id=102&utm_term=%E2%80%8C%E6%9C%89%E4%BA%86%E8%A7%A3%E8%BF%87hashmap%E5%BA%95%E5%B1%82%E6%98%AF%E6%80%8E%E4%B9%88%E8%A7%A3%E5%86%B3%E5%93%88%E5%B8%8C%E7%A2%B0%E6%92%9E&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-123112174.142%5Ev31%5Econtrol,185%5Ev2%5Econtrol&spm=1018.2226.3001.4187HashMap是怎么解决哈希冲突的?_EmptyCupMentality的博客-CSDN博客_hashmap解决hash冲突的方法Hash一般翻译为“散列”,也有直接音译为“哈希”的,这就是把任意长度的输入通过散列算法,变换成 固定长度的输出,该输出就是散列值(哈希值);这种转换是一种压缩映射,也就是,散列值的空间通 常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入 值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。所有散列函数都有如下一个基本特性:根据同一散列函数计算出的散列值如果不同,那么输入值肯定也 不同。但是,根据同一散列函数计算出的散列值如果相同,输入值
https://blog.csdn.net/qq_42605393/article/details/118714087?ops_request_misc=&request_id=&biz_id=102&utm_term=%E2%80%8C%E6%9C%89%E4%BA%86%E8%A7%A3%E8%BF%87hashmap%E5%BA%95%E5%B1%82%E6%98%AF%E6%80%8E%E4%B9%88%E8%A7%A3%E5%86%B3%E5%93%88%E5%B8%8C%E7%A2%B0%E6%92%9E&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-118714087.142%5Ev31%5Econtrol,185%5Ev2%5Econtrol&spm=1018.2226.3001.4187
10、说一下list和set的区别?
List、Set、Map三者的区别?
List(对付顺序的好帮手): List 接口存储一组不唯一(可以有多个元素引用相同的对象)、有序的对象。
Set(注重独一无二的性质):不允许重复的集合,不会有多个元素引用相同的对象。
Map(用Key来搜索的专业户): 使用键值对存储。Map 会维护与 Key 有关联的值。两个 Key可以引用相同的对象,但 Key 不能重复,典型的 Key 是String类型,但也可以是任何对象。
11、Java创建多线程的方式?
Java多线程之如何创建多线程?_Honyelchak的博客-CSDN博客Java与多线程的关系我们平时写的好多简单程序就有多个线程参与,你可能会感到惊讶,但是事实就是这样。Java程序从main()方法开始执行,然后按照既定的代码逻辑执行,看似没有其他线程参与,但实际上Java程序天生就是多线程程序,因为执行main()方法的是一个名称为main的线程。下面我们来用Java的一个管理类验证一下:Console结果如下:可以看出来,一个Java程序得到运行不仅仅是mai...https://blog.csdn.net/m0_38072683/article/details/80433265?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165686051216782388068948%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165686051216782388068948&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-5-80433265-null-null.142%5Ev30%5Econtrol,185%5Ev2%5Econtrol&utm_term=Java%E5%88%9B%E5%BB%BA%E5%A4%9A%E7%BA%BF%E7%A8%8B%E7%9A%84%E6%96%B9%E5%BC%8F%EF%BC%9F&spm=1018.2226.3001.4187Java创建多线程的8种方式_itcats_cn的博客-CSDN博客_java创建多线程目录 Java创建启动线程的多种方式1、继承Thread类,重写run()方法2、实现Runnable接口,重写run()3、匿名内部类的方式4、带返回值的线程(实现implements Callable<返回值类型>)————以上3种方式,都没有返回值且都无法抛出异...
https://blog.csdn.net/itcats_cn/article/details/81149232?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165686051216782388068948%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165686051216782388068948&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-4-81149232-null-null.142%5Ev30%5Econtrol,185%5Ev2%5Econtrol&utm_term=Java%E5%88%9B%E5%BB%BA%E5%A4%9A%E7%BA%BF%E7%A8%8B%E7%9A%84%E6%96%B9%E5%BC%8F%EF%BC%9F&spm=1018.2226.3001.4187
12、事物有了解过吗?什么是事物?它的几大特性?
JAVA中什么是事物_奋斗的胖子——秋平的博客-CSDN博客_java中什么是事物说起来事物,就跟数据库操作有关。事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性 (isolation)和持久性(durability)的缩写。事务的原子性:表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。事务的一致性:表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态。事务...https://blog.csdn.net/weixin_41758046/article/details/89406535?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165686159216782248552605%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165686159216782248552605&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-89406535-null-null.142%5Ev30%5Econtrol,185%5Ev2%5Econtrol&utm_term=%E4%BA%8B%E7%89%A9%E6%9C%89%E4%BA%86%E8%A7%A3%E8%BF%87%E5%90%97%EF%BC%9F%E4%BB%80%E4%B9%88%E6%98%AF%E4%BA%8B%E7%89%A9%EF%BC%9F%E5%AE%83%E7%9A%84%E5%87%A0%E5%A4%A7%E7%89%B9%E6%80%A7%EF%BC%9F&spm=1018.2226.3001.4187
ACID(四大特新)
原子性(atomicty):事物是一个完整的操作。要么都执行要么都不执行。
一致性(consistency):当事物完成时,数据必须处于一致状态。
隔离性(isolation):对数据的各种操作事物必须是彼此隔离的,事物是独立的,不会影响其他事物。
持久性(durability):事物完成后,对数据库的修改被永久保存,事务日志能保持事物的持久性。
什么是事务,事务的ACID特性_敲代码的乔帮主的博客-CSDN博客_什么是事务的acid特性一.什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消撤消之前到事务开始时的所以操作。 突出事物原子性操作,要么都做,要么撤销回滚都不做。https://blog.csdn.net/Suyebiubiu/article/details/78519105?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165686159216782248552605%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165686159216782248552605&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-8-78519105-null-null.142%5Ev30%5Econtrol,185%5Ev2%5Econtrol&utm_term=%E4%BA%8B%E7%89%A9%E6%9C%89%E4%BA%86%E8%A7%A3%E8%BF%87%E5%90%97%EF%BC%9F%E4%BB%80%E4%B9%88%E6%98%AF%E4%BA%8B%E7%89%A9%EF%BC%9F%E5%AE%83%E7%9A%84%E5%87%A0%E5%A4%A7%E7%89%B9%E6%80%A7%EF%BC%9F&spm=1018.2226.3001.4187
13、什么是对象序列化?
什么是对象序列化?_羡羡ˇ的博客-CSDN博客_什么是对象序列化对象输入输出流对象序列化,transient关键字的用法为什么需要对象序列化 ? 在谈这个问题之前, 我们首先先来认识这两种流 : 对象的输出流: ObjectOutputStream , 对象的输入流: ObjectInputStream这两个流的作用是 : 用于写入对象信息与读取对象信息。 对象信息一旦写到文件上那么对象的信息就可以做到持久化了https://blog.csdn.net/xx12321q/article/details/123387258?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165710496416782395385220%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165710496416782395385220&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-123387258-null-null.142%5Ev31%5Econtrol,185%5Ev2%5Econtrol&utm_term=%E4%BB%80%E4%B9%88%E6%98%AF%E5%AF%B9%E8%B1%A1%E5%BA%8F%E5%88%97%E5%8C%96%EF%BC%9F&spm=1018.2226.3001.4187什么是对象序列化?如何实现?什么情况下使用?_JimboWonG的博客-CSDN博客_什么是对象序列化a)什么是对象序列化:对象序列化可以将一个对象保存到一个文件,可以将通过流的方式在网络上传输,可以将文件的内容读取转化为一个对象。所谓对象流也就是将对象的内容流化,可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对象流进行读写操作时引发的问题。b)序列化的实现:将需要被序列化的类实现serializable接口,该接口没有需要实现的方法,im
https://blog.csdn.net/JimboWonG/article/details/54909581?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165710496416782395385220%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165710496416782395385220&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-54909581-null-null.142%5Ev31%5Econtrol,185%5Ev2%5Econtrol&utm_term=%E4%BB%80%E4%B9%88%E6%98%AF%E5%AF%B9%E8%B1%A1%E5%BA%8F%E5%88%97%E5%8C%96%EF%BC%9F&spm=1018.2226.3001.4187
14、spring里的AOP和IOP有了解过吗?
关于Spring 的IoC和AOP的面试题,快看看你都能答上来哪些_派 大 星.的博客-CSDN博客_spring的ioc和aop面试
近期java面试总结相关推荐
- 近期Java高级开发岗面试总结
原文出处:公众号:编程大道 作者:walking 近期Java高级开发岗面试总结 哈喽大家好,我是walking,这是我的公众号:编程大道. 很久没和大家见面了,文章更新的速度略有延后.这个公众号断断 ...
- 2020年 近期出去面试Java的总结(持续更新)
近期出去面试Java的总结 一.Java基础 1.Java的类加载顺序 对于有继承关系的加载顺序 2.Java的创建对象的几种方式 1.使用new关键字 2.使用反射机制 1)使用Class类的new ...
- Java面试详解(2020版):500+ 面试题和核心知识点详解
与其在网上拼命的找面试题,不如加入我们畅快的阅读. 为了写好这些面试题,我先后拜访了一二十家互联网公司,与不同的面试官和面试者进行面对面探讨,深入了解了企业对于面试者的要求和常见的 Java 面试题型 ...
- Java面试不通过?这篇文章你看了吗?
文章目录 一.Java 基础 1.JDK 和 JRE 有什么区别? 2. == 和 equals 的区别是什么? 3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗 ...
- java面试常问问题及答案,附源代码
找大厂面试题,看套路!Java面试题及答案及面试解析请阅读严宏博士的Java模式或设计模式解释中的桥梁模式). 封装:一般认为封装是将数据和操作数据的方法绑定起来,数据的访问只能通过定义的界面进行.面 ...
- 阿里大佬耗时一年整理的Java面试常考题
就目前大环境来看,跳槽成功的难度比往年高很多.一个明显的感受:今年的面试,无论一面还是二面,都很考验Java程序员的技术功底.这不马上又到了面试跳槽的黄金段,成功升职加薪,不成功饱受打击.当然也要注意 ...
- 我的JAVA面试经验(3年左右工作经验)
前言- 致那些迷茫的JAVA面试者(特别是南京的1-4年经验),致那些奋发的年轻人,致自己.写这篇博文主要也是对我的成长道路的记录,面试受挫后的反思,及对自己的勉励. 本人介绍:3年多经验的程序员,坐 ...
- 「女程序员」JAVA面试经验(3年左右工作经验)
前言 致那些迷茫的JAVA面试者(特别是南京的1-4年经验),致那些奋发的年轻人,致自己.写这篇博文主要也是对我的成长道路的记录,面试受挫后的反思,及对自己的勉励. 本人介绍:3年多经验的程序员,坐标 ...
- 软硬皆施!Github 上爆火 2022 最新 Java 面试宝典简直总结的太全了!
Java 面试 临近金九银十,想必有不少老哥已经在为面试做准备了.大家想必也知道现在面试就是看项目经验+基本技术+个人潜力(也就是值不值得培养).总之就是每一次面试都是对我们能力的检验(无论是软实力还 ...
- java面试常见问题之Hibernate总结
1 Hibernate的检索方式 Ø 导航对象图检索(根据已经加载的对象,导航到其他对象.) Ø OID检索(按照对象的OID来检索对象.) Ø HQL检索(使用面向对象的HQL查询语言.) ...
最新文章
- 置换群和Burnside引理,Polya定理
- Dataguard配置前提条件
- HTML的br/标签和hr/标签
- 读博熬不住了,拿个硕士学位投身业界如何?看过来人怎么说
- 复制控制---复制构造函数
- 169. 多数元素 golang
- oracle逻辑备份和物理备份,Oracle备份与恢复介绍(物理备份与逻辑备份)
- 用 GDB 调试Linux程序及有用技巧
- linux git还原文件,Gitlab备份到windows、在Linux恢复
- 1c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afx.h(24) : fatal error C1189: #err
- git 公钥提交代码_gitlab上传公钥和项目代码
- Python urllib爬取百度首页
- 如何成为一个C++高级程序员
- 设定open_basedir导致PHP程序无法上传
- python二级基础题,计算机二级python部分基础操作题
- redhat linux iso下载
- 化学专业与计算机的联系PPT,计算机在化学中的应用ppt
- MCE公司:新型STAT3抑制剂
- 手机ssh发送文件到服务器,使用ssh传输文件
- 什么是异构数据源和分布式数据库