1、Java基础

• 为什么JVM调优经常会将-Xms和-Xmx参数设置成一样;
• Java线程池的核心属性以及处理流程;
• Java内存模型,方法区存什么;
• CMS垃圾回收过程;
• Full GC次数太多了,如何优化;
• 直接内存如何管理的;
• Java线程池的几个参数的意义和实现机制;
• Java线程池使用无界任务队列和有界任务队列的优劣对比;
• CountDownLatch和CyclicBarrier的区别;
• Java中有哪些同步方案(重量级锁、显式锁、并发容器、并发同步器、CAS、volatile、AQS等)
• 如果你的项目出现了内存泄露,怎么监控这个问题呢;
• 标记清除和标记整理的区别和优缺点,为何标记整理会发生stop the world;
• 线程池,如何根据CPU的核数来设计线程大小,如果是计算机密集型的呢,如果是IO密集型的呢?
• 让你设计一个cache如何设计;
• String中hashcode是怎么实现的;
• JDK中哪些实现了单例模式?
• 多个线程同时读写,读线程的数量远远高于写线程,你认为应该如何解决并发的问题?你会选择加什么样的锁?
• 线程池内的线程如果全部忙,提交一个新的任务,会发⽣什么?队列全部塞满了之后,还是忙,再提交会发生什么?
• synchronized关键字锁住的是什么东西?在字节码中是怎么表示的?在内存中的对象上表现为什么?
• wait/notify/notifyAll方法需不需要被包含在synchronized块中?这是为什么?

https://blog.csdn.net/qq_42145871/article/details/81950949

(1)为什么wait()必须在同步(Synchronized)方法/代码块中调用?

答:调用wait()就是释放锁,释放锁的前提是必须要先获得锁,先获得锁才能释放锁。

(2)为什么notify(),notifyAll()必须在同步(Synchronized)方法/代码块中调用?

答:notify(),notifyAll()是将锁交给含有wait()方法的线程,让其继续执行下去,如果自身没有锁,怎么叫把锁交给其他线程呢;(本质是让处于入口队列的线程竞争锁)

• ExecutorService你一般是怎么用的?是每个Service放一个还是个项目放一个?有什么好处?

2、数据库

• InnoDB的插入缓冲和两次写的概率和意义;
• 如果建了⼀个单列索引,查询的时候查出2列,会⽤到这个单列索引吗?(会用到)
• 如果建了⼀个包含多个列的索引,查询的时候只⽤了第⼀列,能不能⽤上这个索引?查三列呢?
• 接上题,如果where条件后⾯带有⼀个 i + 5 < 100 会使⽤到这个索引吗?
• like %aaa%会使⽤索引吗? like aaa%呢?
• drop、truncate、delete的区别?
• 平时你们是怎么监控数据库的? 慢SQL是怎么排查的?(慢查询日志)
• 你们数据库是否⽀持emoji表情,如果不⽀持,如何操作?选择什么编码方式?如果支持一个表情占几个字节?(utf8mb4);
• 如果查询很慢,你会想到的第⼀个⽅式是什么?(数据库索引)

3、Linux基础

• Linux下可以在/proc目录下可以查看CPU的核心数等;cat /proc/下边会有很多系统内核信息可供显示; 
• 说一下栈的内存是怎么分配的;
• Linux各个目录有了解过吗?/etc、/bin、/dev、/lib、/sbin这些常见的目录主要作用是什么?

linux 常用目录的作用和存放的内容:
/bin 存放使用者最长用的命令,如:cp、ls、cat,等等。
/boot 启动linux时使用的一些核心文件。
/dev 是device(设备)的缩写,这个目录下是所有linux的外围设备。
/etc 这个目录用来存放系统管理所需要的配置文件和子目录。
/home 用户的主目录,比如说有个用户叫wang,那他的目录就是/home/wang也可以用~wang来表示。
/lib 这个目录是存放着系统最基本的动态连接库,几乎所有的应用程序都须用这些共享库。
/lost+found 这个目录平时是空的,当系统不正常关机后,这里就是一些无家可归文件的避难所。
/mnt 这个目录是空的,系统提供这个目录是让用户临时挂接别的文件系统。
/proc 这个目录是一个虚拟目录,它是系统内存映射,我们可以直接通过访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存中。
/root 系统管理员(root)的主目录,作为系统的拥有者的特权。
/sbin s就是super user的意义,也就是说这里存放的是系统管理员使用的管理程序。
/tmp 这个目录是存放一些临时文件的地方。
/usr 我们用到的应用程序的文件几乎都存放这个目录下:/usr/X11R6存放X_Window的目录;/usr/bin存放着许多应用程序;/usr /sbin给超级用户使用的一些管理程序就放在这个里面;/usr/include开发和编译应用程序所需的头文件;/usr/lib存放一些常用的动态连接共享库和静态归档案库;/usr/local这是提供给一般用户的/usr目录,在这里安装软件最合适。/usr/man存放帮助文档。/usr /src开放的源代码就存在这个目录下。
/var 这个目录存放那些不断扩充的东西,为了保持usr的相对稳定,那些才、经常被修改的目录可以放在这个目录下,如/var/log日志文件。

• 说一下栈帧的内存是怎么分配的;
• Linux下排查某个死循环的线程;
• 动态链接和静态链接的区别;
• 进程的内存分布;
• 如何查找一个进程打开所有的文件;
• 说一下常使用的协议及其对应的端口;
• 为什么会有内核态,保护模式你知道吗?
• 文件是怎么在磁盘上存储的?
• 有了进程为何还要线程呢,不同进程和线程他们之间有什么不同。(进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。)
• InnoDB聚集索引B+树叶子节点和磁盘什么顺序相同;
• 文件系统,进程管理和调度,内存管理机制、虚地址保护模式;

4、网络基础

• HTTP1.0和HTTP1.1的区别;
• DHCP如何实现分配IP的; 发现阶段(DHCP客户端在网络中广播发送DHCP DISCOVER请求报文,发现DHCP服务器,请求IP地址租约)、提供阶段(DHCP服务器通过DHCP OFFER报文向DHCP客户端提供IP地址预分配)、选择阶段(DHCP客户端通过DHCP REQUEST报文确认选择第一个DHCP服务器为它提供IP地址自动分配服务)和确认阶段(被选择的DHCP服务器通过DHCP ACK报文把在DHCP OFFER报文中准备的IP地址租约给对应DHCP客户端)。
• OSI七层模型,每层都说下自己的理解和知道的,说的越多越好;(https://www.cnblogs.com/qishu...

5、框架相关

• Servlet如何保证单例模式,可不可以编程多例的哪?
• Dubbo请求流程以及原理;
• Spring框架如何实现事务的;
• 如果一个接口有2个不同的实现, 那么怎么来Autowire一个指定的实现?(可以使用Qualifier注解限定要注入的Bean,也可以使用Qualifier和Autowire注解指定要获取的bean,也可以使用Resource注解的name属性指定要获取的Bean)
• Spring框架中需要引用哪些jar包,以及这些jar包的用途;
• Spring Boot没有放到web容器,为什么能跑HTTP服务?
• Spring中循环注入是什么意思,可不可以解决,如何解决;
• Spring的声明式事务 @Transaction注解一般写在什么位置? 抛出了异常会自动回滚吗?有没有办法控制不触发回滚?
• MyBatis怎么防止SQL注入;
• Tomcat本身的参数你一般会怎么调整?
• 了解哪几种序列化协议?如何选择合适的序列化协议;
• Redis渐进式rehash过程?
• 比如我有个电商平台,做每日订单的异常检测,服务端代码应该写;

Java后端技术面试汇总(第四套)的更多相关文章

  1. Java后端技术面试汇总(第五套)

    1.Java相关 • 乐观悲观锁的设计,如何保证原子性,解决的问题:• char和double的字节,以及在内存的分布是怎样:• 对象内存布局,然后讲下对象的死亡过程?• 对象头,详细讲下:• syn ...

  2. Java后端技术面试汇总(第三套)

    1.基础题 • 怎么解决Hash冲突:(开放地址法.链地址法.再哈希法.建立公共溢出区等)• 写出一个必然会产生死锁的伪代码:• Spring IoC涉及到的设计模式:(工厂模式.单利模式..)• t ...

  3. Java后端技术面试汇总(第一套)

    面试汇总,整理一波,doc文档可点击[此处下载] 1.基础篇 1.1.Java基础 • 面向对象的特征:继承.封装和多态• final, finally, finalize 的区别• Exceptio ...

  4. Java后端技术面试汇总(第二套)

    1.Java相关 • Arraylist与LinkedList默认空间是多少:• Arraylist与LinkedList区别与各自的优势List 和 Map 区别:• 谈谈HashMap,哈希表解决 ...

  5. Java后端技术微信交流群!工作、学习、技术、资源等!期待你的加入!

    <Java后端技术>专注Java相关技术:SSM.Spring全家桶.微服务.MySQL.MyCat.集群.分布式.中间件.Linux.网络.多线程,偶尔讲点运维Jenkins.Nexus ...

  6. 【面试题】2018年最全Java面试通关秘籍 四套!(无答案)

    http://mp.weixin.qq.com/s/RQMQUufCbwlkAK62y57DAw 第一套:<2018年最全Java面试通关秘籍第一套!> 第二套:<2018年最全Ja ...

  7. 4000字干货长文!从校招和社招的角度说说如何准备Java后端大厂面试?

    插个题外话,为了写好这篇文章内容,我自己前前后后花了一周的时间来总结完善,文章内容应该适用于每一个学习 Java 的朋友!我觉得这篇文章的很多东西也是我自己写给自己的,比如从大厂招聘要求中我们能看到哪 ...

  8. Java后端技术书单

    写博客记录技术上使用的各种问题,这个只能算是一个打游击. 如果要把一个知识学透,最有效的方式就是系统学习,而系统学习就是看书,书本上有清晰的学习路线以及相应的技术栈. 下面是我收集的Java后端的技术 ...

  9. Java技术面试汇总

    1.servlet执行流程 客户端发出http请求,web服务器将请求转发到servlet容器,servlet容器解析url并根据web.xml找到相对应的servlet,并将request.resp ...

随机推荐

  1. [BZOJ1123]:[POI2008]BLO(塔尖)

    题目传送门 题目描述 Byteotia城市有n个towns.m条双向roads.每条road连接两个不同的towns,没有重复的road.所有towns连通. 输入格式 输入n,m及m条边. 输出格式 ...

  2. <context:component-scan>标签报错解决方案

  3. leetcode-hard-array-11 Container With Most Water -NO

    mycode  time limited class Solution(object): def maxArea(self, height): """ :type hei ...

  4. [Tool]截屏利器FSCapture7.6下载

    下载地址:https://pan.baidu.com/s/1XQ1P5hHwZd0NE7bdz_znQQ 或是:https://files.cnblogs.com/files/xiandedanten ...

  5. 编写 Model 层的代码

    创建 App 这里把所有 Model 划分为三类:blog 相关.配置相关和评论相关.这么分的好处是便于独立维护各个模块,也便于在开发时分配任务. blog App 创建一个名为 blog 的 app ...

  6. 阶段3 3.SpringMVC·_07.SSM整合案例_08.ssm整合之Spring整合MyBatis框架

    service能供成功的调用到service对象就算是整合成功 如果能把生成的代理对象也存大IOC的容器中.那么ServiceImpl就可以拿到这个对象 做一个注入,然后就可以调用代理对象的查询数据库 ...

  7. 七十一:flask钩子函数之关于context_processor的钩子函数

    context_processor:使用这个钩子函数,必须返回一个字典,这个字典的值在所有模板中都可以使用,这个钩子函数作用是,如果一些在很多模板中都要用到的变量,那么就可以使用此钩子函数来返回,而不 ...

  8. Java连接Sap系统调并调用RFC函数

    参考博客:https://blog.csdn.net/qq_36026747/article/details/81287462                   https://www.cnblog ...

  9. python(29)Tinker+BeautifulSoup+Request抓取美女壁纸

    原文链接:http://www.limerence2017.com/2019/10/22/python29/ 抓取准备 今天是10月24日,祝所有程序员节日快乐.今天打算写个爬虫抓取3DMGAME论坛 ...

  10. Python列表排序

    1.冒泡排序 冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.遍历数列的工作是重复地进行直到没有再需要交换,也就 ...