牛客网面试金典-Java工程师
来源于牛客网面试金典
婷婷T
Bug层出不穷,人生永无止境
展开
-
面试-计算机网络
一、你知道TCP协议、IP协议、Http协议分别在哪一层? 答:传输层、网络层、应用层。 二、请你说明一下,TCP协议的4次握手? 答:由于TCP连接是全双工的,因此每个方向都必须单方向进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动...原创 2020-01-26 18:35:41 · 98 阅读 · 0 评论 -
面试-MyBatis
一、请问MyBatis中的动态SQL是什么意思? 答:对于一些复杂的查询,我们可能会指定多个查询条件,但是这些条件可能存在也可能不存在,需要根据用户指定的条件动态指定的条件动态生成SQL语句。如果不使用持久层框架我们可能需要自己拼接sql语句。如果不使用持久层框架我们可能需要自己拼接SQL语句,还好MyBatis提供了动态Sql的功能来解决这个问题。MyBatis中用于实现动态SQL的元素主要有...原创 2020-01-26 15:09:47 · 127 阅读 · 0 评论 -
面试-Spring
一、请你谈谈Spring中自动装配的方式有哪些? 答:①no:不进行自动装配,手动设置Bean的依赖关系。 ②byName:根据Bean的名字进行自动装配。 ③byType:根据Bean的类型进行自动装配。 ⑤constructor:类似于byType,不过是应用于构造器的参数,如果正好有一个Bean与构造器的参数类型相同则可以自动装配,否则会导致错误。 ⑥autodetect:如果有默...原创 2020-01-26 14:46:20 · 119 阅读 · 0 评论 -
面试-GC
一、请你简单描述一下垃圾回收器的基本原理是什么?还有垃圾回收器可以马上回收内存吗?并且有什么办法可以主动通知虚拟机进行垃圾回收呐? 答:对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址,大小以及使用情况。 通常,GC采用有向图的方式记录和管理队中的所有对象。通过这种方式确定哪些对象是“可达的”,哪些对象是“不可达的”,GC就有责任回收这些内存空间。 可以,程序员可以手动执行Sy...原创 2020-01-22 21:21:35 · 124 阅读 · 0 评论 -
面试-反射
一、请说明一下java中反射的实现过程和作用分别是什么? 答:java语言编译之后会生成一个.class文件,反射就死通过字节码文件找到某一个类,类中的方法以及属性等。反射的实现主要借助一下四个类:Class:类的对象。Constructor:类的构造器。Field:类中的属性对象。Method:类中的方法对象。 作用:反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名...原创 2020-01-22 20:56:43 · 125 阅读 · 0 评论 -
面试-JDK
一、请问JDK和JRE的区别是什么? 答:jre:是java运行环境,是将要执行java程序的java虚拟机。它同时也包含了执行applet需要的浏览器插件。 jdk:是java开发工具包,是完整的java软件开发包,包含了jre,编译器和其他的工具,可以让开发者开发、编译、执行java应用程序。 ...原创 2020-01-22 20:50:36 · 114 阅读 · 0 评论 -
面试-锁
一、请你简述一下synchronized与java.util.concurrent.locks.Lock的相同之处和不同之处? 答:相同点:Lock能完成synchronized所实现的所有功能; 不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动会释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。 二、Jav...原创 2020-01-22 20:43:51 · 2720 阅读 · 0 评论 -
面试-线程
一、如何保证线程安全? 答:通过合理的时间调度,避开贡献资源的存取冲突。另外,在并行任务设计上可以通过适当的策略,保证任务与任务之间不存在共享资源,设计一个规则来保证一个客户的计算工作和数据访问只会被一个线程或一台工作机完成,而不是把一个客户的计算工作分配给多个线程去完成。 二、请你简要说明一下线程的基本状态以及状态之间的关系? 答:其中Running表示运行状态,Runnable表示就绪状...原创 2020-01-22 20:13:26 · 99 阅读 · 0 评论 -
面试-集合
一、请说明List、Map、Set三个接口存取元素时,各有什么特点? 答:①List以特定索引来存取元素,可以有重复元素。 ②Set不能存放重复元素(用对象的equals()方法来区分元素是否重复)。 ③Map保存键值对映射,映射关系可以是一对一或者是多对一。 Set和Map容器都有基于哈希存储和排序树的两种实现版本,基于哈希存储的版本理论存取时间复杂度为O(1),而基于排序树版本的实现在...原创 2020-01-22 17:51:43 · 132 阅读 · 0 评论 -
面试-面向对象
一、若对一个类不重写,它的equals()方法是如何比较的? 答:比较的是对象的地址。 二、请你解释hashcode()和equals()方法有什么联系? 答:①相等的对象必须具有相等的哈希码; ②如果两个对象的hashcode相同,它们并不一定相同。 三、请解释java中的概念,什么是构造函数?什么是构造函数重载?什么是复制构造函数? 答:当新对象被创建的时候,构造函数会被调用。每一...原创 2020-01-22 15:26:53 · 191 阅读 · 0 评论 -
面试-关键字
一、请你讲讲Java里面的final关键字是怎么用的? 答:①final修饰一个类时,表示这个类不能被继承。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为fianl方法。 ②使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义。第二个原因就是效率。在早期的Java实现版本中,会将fianl方法转为内嵌调...原创 2020-01-22 12:34:33 · 100 阅读 · 0 评论 -
面试-Java SE
Java基础 一、Java中是如何支持正则表达式操作的? 答:Java中的String类提供了支持正则表达式操作的方法,包括:matches()、replaceAll()、replaceFirst()、split()。此外,Java中可以用Pattern类表示正则表达式对象,他提供了丰富的API进行各种正则表达式操作。 二、请你简单描述一下正则表达式及其用途? 答:在编写处理字符串的程序时...原创 2020-01-22 11:59:20 · 765 阅读 · 0 评论 -
面试-操作系统
一、谈谈,64位和32位的区别? 答:操作系统只是硬件和应用软件中间的一个平台。32位操作系统针对的32位的CPU设计。64位操作系统针对的64位的CPU设计。 二、谈谈,CentOS和Linux的关系? 答:CentOS是Linux众多的发行版本之一,linux有三大发行版本(Slackware/debian/redhat),而Redhat有收费的商业版和免费的开源版,商业版的业内称为RH...原创 2020-01-26 18:48:42 · 139 阅读 · 0 评论