![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
徐明曉
这个作者很懒,什么都没留下…
展开
-
Java后台开发面试实战(十八):类加载器
感谢牛客网网友提供的面试经验!Java中的类加载机制指虚拟机把描述类的数据从Class 文件加载到内存,并对数据进行== 校验、转换、解析和初始化==,最终形成可以被虚拟机直接使用的 Java 类型。类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括了:加载、验证、准备、解析、初始化、使用、卸载七个阶段。类加载机制的保持则包括前面五个阶段。加载:加载是指将类的.clas...原创 2020-04-27 09:05:12 · 120 阅读 · 0 评论 -
Java后台开发面试实战(一):java基础
面经来源:牛客网,感谢网友小米提供的信息!注:本系列文章只截取涉及专业知识的问题,并总结口语化的答案。1. Spring可以被继承吗?此题涉及Spring框架的基本知识,首先要知道Spring和继承两个名词的含义。1. 什么是Spring: link.2.什么是继承:可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。Spring支持继承,可以分为类继承和属性继承。...原创 2020-03-30 18:21:58 · 399 阅读 · 0 评论 -
Java后台开发面试实战(二):TCP三次握手四次挥手
感谢牛客网网友提供的面试经验!1. 解释一下TCP三次握手四次挥手图片来源:https://www.jianshu.com/p/29868fb82890答: 嗯…(稍作思考),TCP协议是一种可靠的协议,在正式传输数据之前必须通过三次握手建立连接并且互相交换窗口大小。在传输结束之后,通过四次挥手来确认双方都结束数据交互。三次握手详细来说,在数据传输开始前:第一次握手:客户端向服务端...原创 2020-03-30 21:58:19 · 391 阅读 · 2 评论 -
Java后台开发面试实战(三):ACID
感谢牛客网网友提供的面试经验!1. 事务的四种特性?原子性(Atomicity):事务作为一个整体被执行 ,要么全部执行,要么全部不执行;一致性(Consistency):保证数据库状态从一个一致状态转变为另一个一致状态;隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行;持久性(Durability):一个事务一旦提交,对数据库的修改应该永久保存...原创 2020-03-30 22:44:00 · 209 阅读 · 0 评论 -
Java后台开发面试实战(四):设计模式
感谢牛客网网友提供的面试经验!1. 设计模式的六大原则?单一职责原则(Single responsibility principle,SRP):单一职责规定了一个类应该只有一个发生变化的原因。如果一个类承担了多个职责,则会导致多个职责耦合在一起。但部分职责发生变化的时候,可能会导致其余职责跟着受到影响,也就是说我们的程序耦合性太强,不利于变化。里氏替换原则(Liskov Substitut...原创 2020-03-31 14:31:50 · 182 阅读 · 0 评论 -
Java后台开发面试实战(五):Java集合
感谢牛客网网友提供的面试经验!1. 集合常用的有哪几种?从map,list,set三大接口下分类别回答map接口下的:HashMap(首先想起最常用的hashmap,无序,线程不安全,底层是数组加链表加红黑树),HashTable(然后想起线程安全的hashtable),HashTree(然后想起有序的hashtree,底层是红黑树),LinkedHashMap(然后想起有...原创 2020-03-31 16:09:24 · 161 阅读 · 0 评论 -
Java后台开发面试实战(六):数据库
感谢牛客网网友提供的面试经验!1. 讲一下数据库索引结构?数据库的索引结构是B+树。2. 讲一下B+树相对于B-树的优势?/为什么使用B+树?相比于其他查找树(B-树),B+树单一节点存储更多的关键字,也就是说B+树更加矮胖,使得查询时的平均IO次数更少,查询效率更高;B+树的关键字信息全部存储在叶子结点中,非叶子结点只存储索引地址。所以查询都要从根节点查找到叶子节点,也就是说查...原创 2020-03-31 17:03:04 · 164 阅读 · 0 评论 -
Java后台开发面试实战(七):操作系统
感谢牛客网网友提供的面试经验!1. 讲一下线程和进程的区别和联系?进程是操作系统资源分配的最小的单位,线程是CPU调度和执行的最小单位。他们的联系可以分为以下四点(可以把把进程比作火车,线程比作车厢。):一个进程里会包含多个线程(一辆火车有多节车厢)。进程要比线程消耗更多的计算机资源(采用多列火车相比多个车厢更耗资源)进程间不会相互影响,一个线程挂掉将导致整个进程挂掉(一列火车不会影响...原创 2020-03-31 20:53:55 · 302 阅读 · 0 评论 -
Java后台开发面试实战(八):讲讲HashMap
感谢牛客网网友提供的面试经验!1. HashMap是什么?HashMap是map接口下常用的集合,它具有查询快,插入删除方便的优点。2. HashMap的底层是怎样的?HashMap的底层是在JDK1.7的时候,是数组和链表;在JDK1.8的时候,底层是数组加链表加红黑树。3. HashMap的扩容机制是怎样的?HashMap的初始容量16,加载因子为0.75,扩容增量是原容量的1倍。...原创 2020-03-31 21:30:43 · 151 阅读 · 0 评论 -
Java后台开发面试实战(九):计算机网络
感谢牛客网网友提供的面试经验!1. 讲一下ISO七层模型?答:应用层->表示层->会话层->传输层->网络层->数据链路层->物理层应用层:由用户自己规定,规定各个应用之间消息传递的形式等,包括各机互访协议,分布式数据库协议等。包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协...原创 2020-04-01 20:05:04 · 455 阅读 · 0 评论 -
Java后台开发面试实战(十):讲一下redis
感谢牛客网网友提供的面试经验!1. redis是什么?2. redis是什么?答:redis(Remote Dictionary Server远程字典服务),是一款高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库。分布式: 把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给多个计算机进行处理,最后把这些计算结果综合起...原创 2020-04-01 21:26:44 · 298 阅读 · 0 评论 -
Java后台开发面试实战(十一):Java并发编程
感谢牛客网网友提供的面试经验!1. 说一说自己对于 synchronized 关键字的了解?synchronized关键字解决的是多个线程之间访问资源的同步性,synchronized 关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。2. 谈一下你对 volatile 关键字的理解?volatile 关键字是用来保证有序性和可见性的。我们所写的代码,不一定是按照我们自己...原创 2020-04-07 22:10:01 · 126 阅读 · 0 评论 -
Java后台开发面试实战(十二):垃圾回收
感谢牛客网网友提供的面试经验!1. 什么是垃圾回收?随着程序的运行,内存中存在的实例对象、变量等信息占据的内存越来越多,如果不及时进行垃圾回收,必然会带来程序性能的下降,甚至会因为可用内存不足造成一些不必要的系统异常。2. 垃圾回收的主要场所?查找哪些对象是正在被当前系统使用的。上面分析的堆和栈的区别,其中栈是真正进行程序执行地方,所以要获取哪些对象正在被使用,则需要从 Java 栈开始。...原创 2020-04-08 11:44:25 · 237 阅读 · 0 评论 -
Java后台开发面试实战(十三):JVM
感谢牛客网网友提供的面试经验!图片来源:https://blog.csdn.net/gushidefengzheng/article/details/786539211. 说一下 JVM 的主要组成部分?类加载器(ClassLoader)运行时数据区(Runtime Data Area)执行引擎(Execution Engine)本地库接口(Native Interface)...原创 2020-04-08 20:49:31 · 150 阅读 · 0 评论 -
Java后台开发面试实战(十四):线程池
感谢牛客网网友提供的面试经验!参考链接:https://www.jianshu.com/p/50fffbf21b391. 什么是线程池?线程池是指在初始化一个多线程应用程序过程中创建一个线程集合,然后在需要执行新的任务时重用这些线程而不是新建一个线程(提高线程复用,减少性能开销)。java.util.concurrent.ThreadPoolExecutor类就是一个线程池。2. 线程池有...转载 2020-04-11 15:31:54 · 242 阅读 · 0 评论 -
Java后台开发面试实战(十五):TCP 流量控制和拥塞控制
感谢牛客网网友提供的面试经验!参考链接:https://www.jianshu.com/p/50fffbf21b391. 什么是“拥塞”?当提供给任何网络的负载能力超过它的处理能力时,拥塞便会产生。2. TCP流量控制和拥塞控制有什么区别?TCP协议有两个比较重要的控制算法,一个是流量控制,另一个就是阻塞控制。TCP协议通过滑动窗口来进行流量控制,它是控制发送方的发送速度从而使接受者来...原创 2020-04-14 17:30:11 · 422 阅读 · 0 评论 -
Java后台开发面试实战(十六):HTTP
感谢牛客网网友提供的面试经验!1. 谈下 HTTP 1.0 和 1.1、1.2 的主要变化?HTTP1.1 的主要变化:HTTP1.0 提出了长连接,HTTP 可以在一次 TCP 连接中不断发送请求。然后 HTTP1.1 支持只发送 header 而不发送 body。原因是先用 header 判断能否成功,再发数据,节约带宽,事实上,post 请求默认就是这样做的。HTTP1.1 的 ...原创 2020-04-14 21:52:44 · 144 阅读 · 0 评论 -
Java后台开发面试实战(十七):死锁
感谢牛客网网友提供的面试经验!1. 什么是死锁?死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。 如下图所示:如果此时有一个线程 A,已经持有了锁 A,但是试图获取锁 B,线程 B 持有锁 B,而试图获取锁 A,这种情况下就会产生死锁。2. 怎么避免死锁?银行家算法当进程首次申请资源时,要测试该进程对资源的最大需...原创 2020-04-14 22:29:49 · 149 阅读 · 0 评论