Java面试题汇总
文章平均质量分 82
本人这一段准备找工作了!在网络上看到了好的面试题就会拿下来。
金鳞踏雨
断剑重铸之日,就是归来之时。
展开
-
【面试题】Spring源码中的getBean()为什么需要对“&“进行处理?
大家好,我是。原创 2023-10-12 01:30:25 · 291 阅读 · 0 评论 -
【面试题】有了Docker为啥还需要k8s?
Kubernetes是一个开源的容器编排平台,用于自动化和管理容器化应用程序的部署、扩展、更新和运维。K8s提供了一个强大的集群管理系统,可以协调大规模的Docker容器,确保它们在生产环境中高效、稳定地运行。Kubernetes具有自动化的负载均衡、故障恢复、伸缩和滚动更新功能,以及灵活的声明式配置方式,使开发人员和运维团队能够更轻松地管理复杂的分布式应用程序。原创 2023-09-28 16:24:14 · 239 阅读 · 0 评论 -
【面试题】notify() 和 notifyAll()方法的使用和区别
Java提供了两个方法和来唤醒在某些条件下等待的线程,但是Java中的notify和notifyAll之间存在当我们使用时,只有会被唤醒而且它不能保证哪个线程会被唤醒,这取决于。关于线程调度的算法如下:当我们使用时,那么,这些被唤醒的线程会去,谁先抢到谁就先执行,其它的就要继续等待!如何实现?在中调用即可!因此,notify和notifyAll之间的关键在于只会一个,而方法将所有。原创 2023-01-13 01:43:34 · 1283 阅读 · 0 评论 -
Java虚拟机(JVM)面试专题 下(初级程序员P6)
它是 Object 中的一个方法,如果子类重写它,垃圾回收时此方法会被调用,可以在其中进行资源释放和清理工作将资源释放和清理放在 finalize 方法中非常不好,非常影响性能,严重时甚至会引起 OOM,从 Java9 开始就被标注为 @Deprecated,不建议被使用了。原创 2023-01-03 20:28:15 · 321 阅读 · 0 评论 -
Java虚拟机(JVM)面试专题 中(初级程序员P6)
有的文章提到【Finalizer 线程会和我们的主线程进行竞争,不过由于它的优先级较低,获取到的CPU时间较少,因此它永远也赶不上主线程的步伐】这个显然是错误的,FinalizerThread 的优先级较普通线程更高,原因应该是 finalize 串行执行慢等原因综合导致。假设你自己的类加载器不用双亲委派,那么你的类加载器加载假冒的 java.lang.System 时,它需要先加载父类 java.lang.Object,而你没有用委派,找不到 java.lang.Object 所以加载会失败。原创 2022-09-19 01:38:22 · 264 阅读 · 0 评论 -
【面试题】请你谈谈MySQL性能调优的方法
【面试题】请你谈谈MySQL性能调优的方法。MySQL性能调优可以从4个方面来做1.表结构和索引2.SQL语句优化3.MySQL参数优化4.硬件及系统配置原创 2022-12-27 23:30:26 · 1301 阅读 · 1 评论 -
【面试题】深度解析Java多线程中的 run() 与 start() 有什么区别?
(1)使用 new Thread() 创建一个线程,然后调用 start0()方法进行 java层面的线程启动(2)调用本地方法start0(),去调用 JVM 中的JVM_StartThread方法进行线程创建和启动(3)调用 new JavaThread(&thread entry, sz) 进行线程的创建,并根据不同的操作系统平台调用对应的 os::reate thread 方法进行线程创建(4)新创建的线程状态为lnitialized,调用了sync->wait() 的方法进行等待,原创 2022-11-30 03:05:21 · 786 阅读 · 0 评论 -
【面试题】传统Token与JWT区别及优缺点?JWT如何实现登入功能?
JWT的全称是JSON WEB Token。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。原创 2022-11-20 23:53:53 · 1781 阅读 · 0 评论 -
【面试题】详解Cookie、localStorage、sessionStorage区别
1、存储在localStorage中,每次调用接口的时候都把它当成一个字段传给后台2、存储在cookie中,让它自动发送,不过缺点就是不能跨域3、拿到之后存储在localStorage中,每次调用接口的时候放在HTTP请求头的Authorization字段里面。token 在客户端一般存放于localStorage、cookie、或sessionStorage中。原创 2022-11-19 23:52:23 · 685 阅读 · 0 评论 -
【面试题】深入理解Cookie、Session、Token的区别
客户端使用用户名和密码请求登录。服务端收到请求,验证用户名和密码。验证成功后,服务端会生成一个token(存在redis中),然后把这个token发送给客户端。客户端收到token后把它存储起来,可以放在cookie或者Local Storage(本地存储)里。客户端每次向服务端发送请求的时候都需要带上服务端发给的token。服务端收到请求,然后去验证客户端请求里面带着token,如果验证成功,就向客户端返回请求的数据。(如果这个 Token 在服务端持久化(比如存入数据库),那它就是一个永久的身原创 2022-11-19 23:03:47 · 1459 阅读 · 0 评论 -
广东长荣科技有限公司-Java笔试题
Java工程师笔试题目(限30分钟完成)一、请参考图片回答以下问题。二、如何理解面向对象编程?三、String s = new String("Hello");s = s + " world!";这两行代码执行后,内存是如何变化的?四、Java中链表、栈、队列如何实现?五、数据库连接池的工作机制是什么?六、HttpSession的生命周期?七、Spring优缺点?Spring、Springboot、Springcloud有和区别?八、如何实现单点登录,并且保证登录安全?笔原创 2022-11-16 22:27:32 · 576 阅读 · 2 评论 -
【面试题】throws 与 throw 声明和抛出异常
使用 throws 声明抛出异常的思路是,当前方法不知道如何处理这种类型的异常,该异常应该由向上一级的调用者处理;如果 main 方法也不知道如何处理这种类型的异常,也可以使用 throws 声明抛出异常,该异常将交给 JVM 处理。是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。是指抛出的一个具体的异常类型。所以throws 是用来。,而 throw 是用来。throws 声明异常。throws 声明异常。原创 2022-11-05 20:42:10 · 988 阅读 · 0 评论 -
Redis持久化方式RDB 和AOF的实现原理、优缺点
RDB 是通过快照的方式来实现持久化的,也就是说会根据快照的触发条件,把内存里面的数据快照写入到磁盘, 以二进制的压缩文件进行存储。客户端执行一个数据变更的操作,Redis Server 就会把这个命令追加到 aof 缓冲区的末尾,然后再把缓冲区的数据写入到磁盘的 AOF 文件里面, 至于最终什么时候真正持久化到磁盘,是根据刷盘的策略来决定的。没有最好只有最合适,建议RDB 与 AOF一起用!!!原创 2022-09-15 23:31:24 · 484 阅读 · 0 评论 -
Java虚拟机(JVM)面试专题 上(初级程序员P6)
Java虚拟机(JVM)面试专题 上(初级程序员P6)JVM 内存结构、JVM 内存参数、JVM 垃圾回收、三种垃圾回收算法、GC 与分代回收算法、GC 规模、三色标记、垃圾回收器 - Parallel GC、垃圾回收器 - ConcurrentMarkSweep GC、垃圾回收器 - G1 GC原创 2022-09-10 20:10:31 · 1439 阅读 · 0 评论 -
Redis是单线程还是多线程?为什么效率这么高?
Redis确实是单线程的,但是严格的说Redis并不是全面单线程的!!!原创 2022-06-14 10:45:25 · 1197 阅读 · 0 评论 -
死锁的四个必要条件和解决办法
什么是死锁?多个并发进程因争夺系统资源而产生相互等待的现象。本质原因:系统资源有限、进程的推行顺序不合理。死锁产生的4个必要条件互斥: 某种资源一次只允许一个进程访问,即该资源一旦分配给某个进程,其他进程就不能再访问,直到该进程访问结束。占有且等待: 一个进程本身占有资源(一种或多种),同时还有资源未得到满足,正在等待其他进程释放该资源。不可抢占: 别人已经占有了某项资源,你不能因为自己也需要该资源,就去把别人的资源抢过来。循环等待: 存在一个进程链,使得每个进程都占有下一个进程原创 2022-04-13 05:10:06 · 688 阅读 · 0 评论 -
进程与线程的联系和区别?
什么是进程?什么是线程?进程与线程的区别?为何不使用多进程而是使用多线程?进程间通信的方式一、管道通信(1)无名管道(2)命名管道(FIFO)二、信号三、消息队列四、共享内存(shared memory)+信号量(semaphore)五、套接字(socket)什么是进程?进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程一般由程序,数据集合和进程控制块三部分组成。.原创 2022-04-13 04:48:50 · 360 阅读 · 0 评论 -
TCP中的三次握手与四次挥手
数据报TCP三次握手TCP四次挥手为什么连接的时候是三次握手,关闭的时候却是四次握手?为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?数据报首先要谈TCP中的三次握手与四次挥手我们必须知道TCP中的数据报。其中一行有32位,也就是4个字节。第一行,源端口号与目的端口号各占16位,这两者代表发送端与接受端的地址。第二行,是序号(seq)有32位。第三行,是确认序号(ack)有32位,注意要和下面的ACK区分开来。第四行原创 2022-04-12 03:58:27 · 401 阅读 · 0 评论 -
SpringMVC高频面试题大总结
一、SpringMVC的工作流程(超重点)1)用户发送请求至前端控制器 DispatcherServlet。2)DispatcherServlet 收到请求调用 HandlerMapping 处理器映射器。3)处理器映射器找到具体的处理器(可以根据 xml 配置、注解进⾏查找),⽣成处理器及处理器拦截器 (如果有则生成)⼀并返回给 DispatcherServlet。4)DispatcherServlet 调用 HandlerAdapter 处理器适配器。5)HandlerAdapter原创 2022-04-04 23:02:01 · 524 阅读 · 1 评论 -
MySQL学习知识点总结
(1)MySQL数据库基础(2)MySQL数据库DDL与DML(3)MySQL数据库DQL( 单表 )(4)MySQL数据库DQL( 多表 )(5)MySQL数据库约束(6)MySQL数据库视图(7)MySQL数据库备份(8)MySQL数据库存储过程与函数(9)MySQL实现JDBC-工具类、注入攻击原创 2022-04-02 17:52:10 · 1276 阅读 · 0 评论 -
Java容器高频面试题汇总
详细说明(深入说明)接口的设计目的,是对类的行为进行约束(更准确的说是⼀种“有”约束,因为接⼝不能规定类不可以有 什么行为),也就是提供⼀种机制,可以强制要求不同的类具有相同的⾏为。它只约束了行为的有无, 但不对如何实现行为进行限制。抽象类的设计目的,是代码复用。当不同的类具有某些相同的行为,可以让这些类都派生出⼀个抽象类。一定是先有子类再有抽象类!将子类中共性的方法抽取出来形成抽象类。抽象类不能被实例化,这是因为抽象类有一些方法是没有被实现!接口是对行为的抽象,表达的是 like a 的关系。原创 2022-04-02 15:41:33 · 1008 阅读 · 1 评论 -
Java基础高频面试题汇总
一、面向对象封装继承多态二、JDK、JRE、JVM之间的区别三、==和equals方法之间的区别四、final关键字的作用是什么?五、String、StringBuffer、StringBuilder的区别六、重载和重写的区别七、接口和抽象类的区别(重点)详细说明(深入说明)使用场景原创 2022-03-31 18:35:09 · 523 阅读 · 0 评论 -
Spring高频面试题大总结(二)——Beans
一、什么是Spring bean?Spring bean与Java bean有什么区别?在 Spring 中,构成应用程序主干并由Spring IoC容器管理的对象称为bean。bean是一个由Spring IoC容器实例化、组装和管理的对象。简单的来说就是:1. bean是对象,一个或者多个不限定2. bean由Spring中的IoC管理区别:JavaBean是由自己实例化出来的,而bean的对象是由Spring的IOC容器创建出来的!二、配置bean有几种方法?(4种)(1)原创 2022-03-26 22:56:29 · 445 阅读 · 0 评论 -
浅谈三层架构、MVC之间的关系
浅谈三层架构、MVC、SSM之间的关系无论是MVC还是三层架构,都是一种规范,都是奔着"低耦合,高内聚"的思想来设计的。其实就是两种东西,一个软件、一个系统,可以使用三层架构来开发;也可以使用MVC模式,它们都是一套完整的体系。原创 2022-03-07 03:31:12 · 6186 阅读 · 1 评论 -
Spring高频面试题大总结(一)——IOC
一、什么是Spring?Spring是一个生态,可以构建java应用所需要的一切设施。通常Spring指的是Spring FrameworkSpring是一个轻量级的开源容器框架Spring是为了解决企业级应用开发的业务逻辑层 和 其他各级对象和对象之间的耦合问题Spring是一个IOC和AOP的容器框架IOC:控制反转AOP:面向切面编程容器:包含并管理应用对象的生命周期(Spring可以解决对象与对象之间的耦合问题,所以Spring集中管理了对象的生命周期——创建、销毁.原创 2022-03-19 03:57:09 · 3007 阅读 · 0 评论