Java面试总结
文章平均质量分 82
文章乃参考、转载其他博客所得,仅供自己学习作笔记使用!!!
乌蹄踏雪
这个作者很懒,什么都没留下…
展开
-
Java面试题总结(十三)
121.说一下类加载的执行过程?122.怎么判断对象是否可以被回收?123.java 中都有哪些引用类型?124.说一下 jvm 有哪些垃圾回收算法?125.说一下 jvm 有哪些垃圾回收器?126.详细介绍一下 CMS 垃圾回收器?127.新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?128.简述分代垃圾回收器是怎么工作的?129.说一下 jvm 调优的工具?130.常用的 jvm 调优的参数都有哪些?...原创 2021-10-08 17:06:26 · 102 阅读 · 0 评论 -
Java面试题总结(十二)
111.说一下 mysql 常用的引擎?MySQL - 常用存储引擎区别总结(2020最新版)112.说一下 mysql 的行锁和表锁?深入理解数据库行锁与表锁详解 MySql InnoDB 中的三种行锁(记录锁、间隙锁与临键锁)MySQL中的锁(表锁、行锁)全网最全的一篇数据库MVCC详解,不全我负责113.说一下乐观锁和悲观锁?面试官:你了解乐观锁和悲观锁吗?114.mysql 问题排查都有哪些手段?1.使用 show processlist 命令查看当前所有连接信息。(1)pro原创 2021-09-28 15:58:47 · 74 阅读 · 0 评论 -
Java面试题总结(十一)
101.一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几?一般情况下,我们创建的表的类型是InnoDB,如果新增一条记录(不重启mysql的情况下),这条记录的id是8;但是如果重启MySQL的话,这条记录的ID是6。因为InnoDB表只把自增主键的最大ID记录到内存中,所以重启数据库或者对表OPTIMIZE操作,都会使最大ID丢失。但是,如果我们使用表的类型是MylSAM,那么这条记录的ID就是8。因为MylSAM表会把自增主键的最原创 2021-09-24 15:37:24 · 262 阅读 · 0 评论 -
Java面试题总结(七)
61.说一下 tcp 粘包是怎么产生的?62.get 和 post 请求有哪些区别?63.如何实现跨域?87.说一下 JSONP 实现原理?88.说一下你熟悉的设计模式?89.简单工厂和抽象工厂有什么区别?90.为什么要使用 spring?91.解释一下什么是 aop?92.解释一下什么是 ioc?93.spring 有哪些主要模块?94.spring 常用的注入方式有哪些?95.spring 中的 bean 是线程安全的吗?96.spring 支持几种 bean 的作用域?97.原创 2021-09-23 10:23:43 · 76 阅读 · 0 评论 -
Java面试题总结(六)
51.什么是 XSS 攻击,如何避免?什么是跨站脚本?如何防范 XSS 攻击前端安全系列(一):如何防止XSS攻击?什么是XSS攻击?如何防御XSS攻击?52.什么是 CSRF 攻击,如何避免?前端安全系列(二):如何防止CSRF攻击?53.throw 和 throws 的区别?throws和throw的区别54.final、finally、finalize 有什么区别?1、final修饰符(关键字)。2、finally是在异常处理时提供finally块来执行任何清除操作。不管有没有异常原创 2021-09-07 20:58:21 · 86 阅读 · 0 评论 -
Java面试题总结(五)
41.动态代理是什么?有哪些应用?怎么实现动态代理?Java学习笔记:动态代理是什么?怎么实现?有哪些应用?Java中的动态代理是什么Java:聊聊JDK和CGLib动态代理实现和区别42.为什么要使用克隆?想对一个对象进行处理,又想保留原有的数据进行接下来的操作,就需要克隆了。克隆分浅克隆和深克隆,浅克隆后的对象中非基本对象和原对象指向同一块内存,因此对这些非基本对象的修改会同时更改克隆前后的对象。深克隆可以实现完全的克隆,可以用反射的方式或序列化的方式实现。43.如何实现对象克隆?深拷贝和浅原创 2021-09-07 14:25:57 · 107 阅读 · 0 评论 -
Java面试题总结(四)
31.多线程锁的升级原理是什么?什么是锁升级(锁膨胀)? JVM优化synchronized的运行机制,当JVM检测到不同的竞争状态时,就会根据需要自动切换到合适的锁,这种切换就是锁的升级。升级是不可逆的,也就是说只能从低到高,也就是无锁->偏向锁->轻量级锁->重量级锁,不能够降级锁分级别原因:没有优化以前,synchronized是重量级锁(悲观锁),使用 wait 和 notify、notifyAll 来切换线程状态非常消耗系统资源;线程的挂起和唤醒间隔很短暂,这样很浪费资原创 2021-09-02 21:11:01 · 111 阅读 · 0 评论 -
Java面试题总结(三)
21.创建线程有哪几种方式?一、继承Thread类创建线程类(1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。(2)创建Thread子类的实例,即创建了线程对象。(3)调用线程对象的start()方法来启动该线程。二、通过Runnable接口创建线程类(1)定义runnable接口的实现类,并重写该接口的run()方法,该run()方法的方法体同样是该线程的线程执行体。(2)创建 Runnable实现类的实例,原创 2021-08-25 20:35:28 · 128 阅读 · 0 评论 -
Java面试题总结(一)
JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。JDK顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。原创 2021-08-23 19:53:41 · 117 阅读 · 0 评论 -
Java面试题总结(二)
11.抽象类必须要有抽象方法吗?抽象类不一定有抽象方法;但是包含一个抽象方法的类一定是抽象类。解释:抽象方法:java中的抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。抽象方法与抽象类:当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写。abstract抽象类不能用new实例化对象,abstract方法只允许声明不能实现。如果一个类中含有abstract方法,那么这个类必须用abstra原创 2021-08-24 19:49:08 · 675 阅读 · 0 评论