一、Java 基础

1.JDK 、JRE 和JVM关系是什么?

答:A. JDK(Java Development Kit)即Java开发工具包,包含编写Java程序所必须的编译、运行等开发工具以及JRE,开发工具如:用于编译java程序的javac命令、用于启动JVM运行java程序的java命令、用于生成文档的javadoc命令以及用于打包的jar命令等;

  B. JRE(Java Runtime Environment)即Java运行环境,提供了运行Java应用程序所必须的软件环境,包含有Java虚拟机(JVM)和丰富的系统类库,系统类库即为java提前封装好的功能类,只需拿来直接使用即可,可以大大的提高开发效率;

C. JVM(Java Virtual Machines)即Java虚拟机,提供了字节码文件(.class)的运行环境支持;

  D. 总结:JDK包含JRE,JRE包含JVM。

2.== 和 equals 的区别是什么?

3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?

4.final 在 java 中有什么作用?

5.java 中的 Math.round(-1.5) 等于多少?

6.Java支持的数据类型有哪些?什么是自动拆装箱?

答:A. 八大基本数据类型:整数值型——byte、short、int、long,字符型——char ,浮点类型——float、double ,布尔型——boolean ;

B. 整数默认int型,小数默认是double型,float和long类型的必须加后缀F和L;

C. String是引用类型不是基本类型,引用类型声明的变量是指该变量在内存中实际存储的是一个引用地址,实体在堆中,引用类型包括类、接口、数组等,String类还是final修饰的;
       D. 包装类就属于引用类型,自动装箱和拆箱就是基本类型和引用类型之间的转换,至于为什么要转换,因为基本类型转换为引用类型后,就可以new对象,从而调用包装类中封装好的方法,进行基本类型之间的转换或者toString(当然用类名直接调用也可以,便于一眼看出该方法是静态的),还有就是如果集合中想存放基本类型,泛型的限定类型只能是对应的包装类型。

7.java 中操作字符串都有哪些类?它们之间有什么区别?

8.String str="i"与 String str=new String("i")一样吗?

9.如何将字符串反转?

10.String 类的常用方法都有那些?

11.抽象类必须要有抽象方法吗?

12.普通类和抽象类有哪些区别?

13.抽象类能使用 final 修饰吗?

14.接口和抽象类有什么区别?

15.java 中 IO 流分为几种?

16.BIO、NIO、AIO 有什么区别?

17.Files的常用方法都有哪些?

18.String和StringBuilder、StringBuffer的特点?

答:A. 相同点:可以储存和操作字符串;

B. 不同点:常量String是只读字符串,它引用的字符串内容是不能被改变的;

       变量StringBuffer和StringBuilder类表示的字符串对象可以直接进行修改;

       StringBuffer是线程安全,而StringBuilder是线程不安全的,故效率较高些。

可参考:https://www.cnblogs.com/zhuweiheng/p/8186340.html

二、容器

1.java 容器都有哪些?

答:A. 数组容器、String字符容器、java.util下集合容器(List、Set、Map)。

可参考:https://www.cnblogs.com/yfzhou/p/10097158.html

2.Collection 和 Collections 有什么区别?

答:A. Collection 是接口,是List和Set的父接口;

B. Collections是集合工具类,提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

3.List、Set、Map 的特点是什么?

答:A. List:存储元素有序且可重复;

B. Set:存储元素无序且不重复;

C. Map:储存元素是键值对,键唯一、值可重复。

4.HashMap 、 Hashtable 和ConcurrentHashMap的区别?

答:A.  相同点:都是底层数组+链表实现,实现了Map接口;

B. 不同点:HashMap是线程不安全的,Hashtable是线程安全的,ConcurrentHashMap是线程安全的;

HashMap 默认初始容量16,加载因子0.75,扩容为,旧容量乘以2,允许出现一个 null key,Hashtable 不允许有个空的 key;

        HashMap的迭代器(Iterator)是fail-fast迭代器,Hashtable的enumerator迭代器不是fail-fast的。

可参考:https://www.cnblogs.com/heyonggang/p/9112731.html

5.HashMap 和 TreeMap的区别?

答:A. 相同点:线程不安全,key值不允许重复,value值可以重复;

B. 不同点:HashMap基于哈希表实现,TreeMap基于红黑二叉树实现,不允许key和value值为null;

HashMap适用于在Map中插入、删除和定位元素,而TreeMap适用于按自然顺序或自定义顺序遍历键(key)。

  可参考:https://www.cnblogs.com/williamjie/p/9099130.html

6.说一下 HashSet 的实现原理?

7.ArrayList 、LinkedList 和 Vector的区别是什么?

答:A. ArrayList 和Vector 是使用数组方式存储数据,故索引数据快而插入和删除数据慢,而LinkedList 使用双向链表实现存储,故索引数据慢而插入和删除数据快;

  B. ArrayList 、LinkedList是线程不安全的,Vector是线程安全的,故性能上较差一些;

C. 当数据需要增长时,Vector 默认增长一倍,而ArrayList 却是一半。

8.如何实现数组和 List 之间的转换?

答:A. 数组转化为List:List<T> list = Arrays.asList(T[] a);

  B. List转为数组:T[] t = list.toArray(T[] a);

C. 二者转换体现的是适配器模式,只是转换接口,后台的数据依然是本身。

9.Array 和 ArrayList 有何区别?

答:A. Array是固定大小的,而ArrayList大小是不固定的,可增长;

B. Array可以容纳基本类型和对象,而ArrayList只能容纳对象。

10.在 Queue 中 poll()和 remove()有什么区别?

答:A. 相同点:都是从队列中取出一个元素;

B. 不同点:poll() 在获取元素失败的时候会返回空,而 remove() 失败的时候会抛出异常。

11.Map遍历的方式有哪些?
答:A. 通过Map.entrySet遍历key和value(大容量推荐使用);

  B. 通过Map.entrySet使用iterator遍历key和value(需要移除entry时使用);

C. 通过Map.keySet遍历key和value(效率低);

D. 通过Map.values()遍历所有的value,但不能遍历key。

  可参考:https://www.cnblogs.com/fqfanqi/p/6187085.html

30.哪些集合类是线程安全的?

31.迭代器 Iterator 是什么?

答:A. Iterator接口提供了很多对集合元素进行迭代的方法,每一个集合类都包含了可以返回迭代器实例的迭代方法;

  B. 迭代器可以在迭代的过程中删除底层集合的元素,但是不可以直接调用集合的remove(Object Obj)删除,可以通过迭代器的remove()方法删除。

32.Iterator 怎么使用?有什么特点?

33.Iterator 和 ListIterator 有什么区别?

34.怎么确保一个集合不能被修改?

三、多线程

35.并行和并发有什么区别?

36.线程和进程的区别?

37.守护线程是什么?

4.创建线程有哪几种方式?

答:A. 继承Thread类,重写run方法;

B. 实现Runnable接口,重写run方法;

C. 实现Callable<返回值类型>接口,重写call方法,有返回值;

D. 通过线程池(Executor接口),创建线程(固定大小FixThreadPool、单线程SingleThreadExecutor、缓存CachedThreadPool线程池),但是这些会产生OOM问题, 阿里巴巴推荐使用newThreadPool()创建线程池;

E. 匿名内部类的方式;

F. 定时器(java.util.Timer);

G. Lambda表达式的实现;

H. Spring中@Async注解。

可参考:https://blog.csdn.net/itcats_cn/article/details/81149232

39.说一下 runnable 和 callable 有什么区别?

40.线程有哪些状态?

41.sleep() 和 wait() 有什么区别?

42.notify()和 notifyAll()有什么区别?

43.线程的 run()和 start()有什么区别?

44.创建线程池有哪几种方式?

45.线程池都有哪些状态?

46.线程池中 submit()和 execute()方法有什么区别?

47.在 java 程序中怎么保证多线程的运行安全?

48.多线程锁的升级原理是什么?

49.什么是死锁?

50.怎么防止死锁?

51.ThreadLocal 是什么?有哪些使用场景?

52.说一下 synchronized 底层实现原理?

53.synchronized 和 volatile 的区别是什么?

54.synchronized 和 Lock 有什么区别?

55.synchronized 和 ReentrantLock 区别是什么?

56.说一下 atomic 的原理?

四、反射

57.什么是反射?

58.什么是 java 序列化?什么情况下需要序列化?

59.动态代理是什么?有哪些应用?

60.怎么实现动态代理?

五、对象拷贝

61.为什么要使用克隆?

62.如何实现对象克隆?

63.深拷贝和浅拷贝区别是什么?

六、Java Web

64.jsp 和 servlet 有什么区别?

65.jsp 有哪些内置对象?作用分别是什么?

66.说一下 jsp 的 4 种作用域?

67.session 和 cookie 有什么区别?

68.说一下 session 的工作原理?

69.如果客户端禁止 cookie 能实现 session 还能用吗?

70.spring mvc 和 struts 的区别是什么?

71.如何避免 sql 注入?

答:A. 定义:SQL注入,顾名思义就是通过注入SQL命令来进行攻击,更确切地说攻击者把SQL命令插入到web表单或请求参数的查询字符串里面提交给服务器,从而让服务器执行执行的该SQL;

B. 防御:过滤特殊操作字符。

可参考:https://blog.csdn.net/q649381130/article/details/79571574

7.什么是 XSS 攻击,如何避免?

答:A. 定义:XSS(Cross Site Scripting),即跨站脚本攻击,是一种常见于web应用程序中的计算机安全漏洞.XSS通过在用户端注入恶意的可运行脚本,若服务器端对用户输入不进行处理,直接将用户输入输出到浏览器,然后浏览器将会执行用户注入的脚本;

B. 防御:对用户输入进行编码和过滤。

可参考:https://blog.csdn.net/hxpjava1/article/details/81005195

73.什么是 CSRF 攻击,如何避免?

答:A. 定义:CSRF攻击,全程Cross Site Request Forgery(跨站请求伪造),攻击者通过跨站请求,以合法的用户身份进行非法操作(如转账或发帖等)。CSRF的原理是利用浏览器的Cookie或服务器的Session,盗取用户身份,从而进行操作;

B. 防御:请求令牌验证(token)。

可参考:https://blog.csdn.net/hxpjava1/article/details/81011445

七、异常

1.throw 和 throws 关键字的区别?

答:A. throw是用来抛出任意异常的,包括自定义的异常类对象,throw可以中断程序运行,因此可以用来代替return;

B. throws总是出现在一个函数头中,用来标明该成员函数可能抛出的各种异常,如果方法抛出了异常,那么调用这个方法的时候就需要处理这个异常。

2.final、finally和finalize 关键字有什么区别?

答:A. final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承,内部类要访问局部变量,局部变量必须定义成final类型;

B. finally是异常处理语句结构的一部分,表示总是执行;

C. finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收。

76.try-catch-finally 中哪个部分可以省略?

77.try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?

78.常见的异常类有哪些?

八、网络

1.简述TCP 和 UDP的区别?

答:A. TCP是面向连接的协议(建立连接三次握手、断开连接四次握手),而UDP是无连接的协议(直接发送数据);

B. TCP提供可靠服务(有重传机制,拥塞控制等),UDP不提供、因而实时性更好;

C. TCP占用资源较多(首部20字节),UDP占用资源较少(8字节);

D. TCP是点到点的,UDP支持一对一,一对多,多对一,多对多;

E. 基于TCP协议的有HTTP协议和HTTPS协议,基于UDP协议的有DNS协议等。

可参考:https://blog.csdn.net/gao1440156051/article/details/52207032

79.http 响应码 301 和 302 代表的是什么?有什么区别?

80.forward 和 redirect 的区别?

82.tcp 为什么要三次握手,两次不行吗?为什么?

83.说一下 tcp 粘包是怎么产生的?

84.OSI 的七层模型都有哪些?

85.get 和 post 请求有哪些区别?

86.如何实现跨域?

87.说一下 JSONP 实现原理?

九、设计模式

88.说一下你熟悉的设计模式?

89.简单工厂和抽象工厂有什么区别?

十、Spring/Spring MVC

90.为什么要使用 spring?

91.解释一下什么是 aop?

92.解释一下什么是 ioc?

93.spring 有哪些主要模块?

94.spring 常用的注入方式有哪些?

95.spring 中的 bean 是线程安全的吗?

96.spring 支持几种 bean 的作用域?

97.spring 自动装配 bean 有哪些方式?

98.spring 事务实现方式有哪些?

99.说一下 spring 的事务隔离?

100.说一下 spring mvc 运行流程?

101.spring mvc 有哪些组件?

102.@RequestMapping 的作用是什么?

103.@Autowired 的作用是什么?

十一、Spring Boot/Spring Cloud

104.什么是 spring boot?

105.为什么要用 spring boot?

106.spring boot 核心配置文件是什么?

107.spring boot 配置文件有哪几种类型?它们有什么区别?

108.spring boot 有哪些方式可以实现热部署?

109.jpa 和 hibernate 有什么区别?

110.什么是 spring cloud?

111.spring cloud 断路器的作用是什么?

112.spring cloud 的核心组件有哪些?

十二、Hibernate

113.为什么要使用 hibernate?

114.什么是 ORM 框架?

115.hibernate 中如何在控制台查看打印的 sql 语句?

116.hibernate 有几种查询方式?

117.hibernate 实体类可以被定义为 final 吗?

118.在 hibernate 中使用 Integer 和 int 做映射有什么区别?

119.hibernate 是如何工作的?

120.get()和 load()的区别?

121.说一下 hibernate 的缓存机制?

122.hibernate 对象有哪些状态?

123.在 hibernate 中 getCurrentSession 和 openSession 的区别是什么?

124.hibernate 实体类必须要有无参构造函数吗?为什么?

十三、Mybatis

1.mybatis 中 #{}和 ${}的区别是什么?

答:A. #{}是sql的参数占位符,防止sql注入,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PreparedStatement的参数设置方法,按序给sql的?号占位符设置参数值,比如ps.setInt(0, parameterValue),#{item.name}的取值方式为使用反射从参数对象中获取item对象的name属性值,相当于param.getItem().getName();

B. ${}是sql拼接符号,仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换。

2.mybatis 有几种分页方式?

答:A. 数组分页;

B. sql分页;

  C. 拦截器分页;

D. RowBounds分页;

E. PageHelper分页。

  可参考:https://blog.csdn.net/chenbaige/article/details/70846902

3.Mybatis传递多个参数的方式?

答:A. 采用对象来封装参数;

  B. 采用Map键值对封装参数;

  C. 使用@Param注解传递参数;

  D. 使用#{arg0}、#{arg1}或#{param1}、#{param2}获取参数。

  可参考:https://blog.csdn.net/moakun/article/details/80057181

127.RowBounds 是一次性查询全部结果吗?为什么?

128.mybatis 逻辑分页和物理分页的区别是什么?

129.mybatis 是否支持延迟加载?延迟加载的原理是什么?

130.说一下 mybatis 的一级缓存和二级缓存?

131.mybatis 和 hibernate 的区别有哪些?

132.mybatis 有哪些执行器(Executor)?

133.mybatis 分页插件的实现原理是什么?

134.mybatis 如何编写一个自定义插件?

十四、RabbitMQ

135.rabbitmq 的使用场景有哪些?

136.rabbitmq 有哪些重要的角色?

137.rabbitmq 有哪些重要的组件?

138.rabbitmq 中 vhost 的作用是什么?

139.rabbitmq 的消息是怎么发送的?

140.rabbitmq 怎么保证消息的稳定性?

141.rabbitmq 怎么避免消息丢失?

142.要保证消息持久化成功的条件有哪些?

143.rabbitmq 持久化有什么缺点?

144.rabbitmq 有几种广播类型?

145.rabbitmq 怎么实现延迟消息队列?

146.rabbitmq 集群有什么用?

147.rabbitmq 节点的类型有哪些?

148.rabbitmq 集群搭建需要注意哪些问题?

149.rabbitmq 每个节点是其他节点的完整拷贝吗?为什么?

150.rabbitmq 集群中唯一一个磁盘节点崩溃了会发生什么情况?

151.rabbitmq 对集群节点停止顺序有要求吗?

十五、Kafka

152.kafka 可以脱离 zookeeper 单独使用吗?为什么?

153.kafka 有几种数据保留的策略?

154.kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候 kafka 将如何处理?

155.什么情况会导致 kafka 运行变慢?

156.使用 kafka 集群需要注意什么?

十六、Zookeeper

157.zookeeper 是什么?

158.zookeeper 都有哪些功能?

159.zookeeper 有几种部署模式?

160.zookeeper 怎么保证主从节点的状态同步?

161.集群中为什么要有主节点?

162.集群中有 3 台服务器,其中一个节点宕机,这个时候 zookeeper 还可以使用吗?

163.说一下 zookeeper 的通知机制?

十七、MySql

1. 说一下 mysql 常用的引擎?

答:A. mysql拥有20多个“可插拔”存储引擎,支持不同的表使用不同的引擎,但为了维护方便,一般都使用一种如InnoDB;

  B. InnoDB(5.5版本后的默认引擎):灾难恢复性好、支持全部四种级别的事务、使用行级锁、实现了缓冲管理、支持热备份等;

  C. MyISAM(5.0/5.1版本的默认引擎):使用表级锁,无事务支持,只缓存索引、灾难恢复性差等;

  D. MEMORY:使用表级锁、不支持事务,可以显著提高访问数据的速度,但内存资源昂贵,只支持固定大小的行,服务器重启数据会丢失等问题;

  E. ARCHIVE:只支持insert和select,数据会被压缩。

  可参考:https://www.cnblogs.com/andy6/p/5789248.html

2. 说一下 ACID(事务特性)和事务隔离级别 ?

答:A. 事务:事务是数据库管理系统执行过程中的一个逻辑单元,由有限的操作序列构成;

  B. 事务四个特性:

     原子性(Atomic):事务作为一个整体被执行,包含在事务中的对数据库的操作要么全部被执行,要么全部都不执行;

     一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致的状态;

     隔离性(Isolation):多个事务并发执行时,一个事务的执行不应该影响其他的事务执行;

   持久性(Durability):已被提交的事务对数据库的修改应该被永久保存在数据库中。

  C. 事务隔离级别:

    读未提交(read uncommitted):存在脏读(事务可以看到其他事务更改了但还没有提交的数据)的问题;

    读提交(read committed):存在不可重复读问题;

    可重复读(repeatable read):存在幻读的问题,这个是MYSQL InnoDB引擎默认使用的事务隔离级别;

    序列化(serializable):最高级别的锁。

  可参考:https://www.cnblogs.com/huanongying/p/7021555.html

3. 数据库的三范式是什么?

答:A. 第一范式(1NF):指数据库表的每一列(属性)都是不可分割的基本数据项,这就要求数据库的每一列都只能存放单一值,即实体中的某个属性不能有多个值或不能有重复的属性;

  B. 第二范式(2NF):一个数据表符合第二范式的前提是符合第一范式,它的规则是要求数据表里的所有数据都要和该数据表的主键有完全相依的关系,如果有哪些数据只和主键的一部分有关的话,就得把它们独立出来变成另一个数据表;

C. 第三范式(3NF):第三范式的所有非键属性都只和候选键有相关性,也就是说所有非键属性互相之间应该是无关的。候选键指的是能够唯一标识一笔记录的属性的最小集合,一般我们所说的候选键指的就是主键。

  

  可参考:https://www.cnblogs.com/waj6511988/p/7027127.html

4. mysql 的内连接、左连接、右连接有什么区别?

5. mysql索引类型、区别?

答:A. 类型:单列索引(primary、normal、unique)、组合索引、fulltext和spatial;

B. 区别:primary——主键索引,索引列唯一且不能为空,一张表只能有一个主键索引;

      normal——普通索引,索引列没有任何限制;

unique——唯一索引,索引列的值必须是唯一的,但允许有空;

      fulltext——全文索引,主要用来查找文本中的关键字,而不是直接与索引中的值相比较;

spatial——空间索引,这个与GIS有关。

  

  可参考:https://www.cnblogs.com/whgk/p/6179612.html

6. mysql 索引是怎么实现的?

答:A. 索引是高效获取数据的数据结构,属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的;

B. MyISAM存储引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址;

C. InnoDB存储引擎也使用B+Tree作为索引结构,不过InnoDB的数据文件本身就是索引文件,且InnoDB的辅助索引data域存储相应记录主键的值而不是地址。

  可参考:https://www.cnblogs.com/boothsun/p/8970952.html

        https://www.cnblogs.com/weizhixiang/p/5914120.html

7. 怎么验证 mysql 的索引是否满足需求?

8. 说一下 mysql 的行锁和表锁?

答:A. 表级锁:每次操作锁住整张表,开销小,加锁快、不会出现死锁、锁定粒度大,发生锁冲突的概率最高,并发度最低;

B. 行级锁:每次操作锁住一行数据,开销大,加锁慢、会出现死锁、锁定粒度最小,发生锁冲突的概率最低,并发度也最高;

C. 页面锁:开销和加锁时间界于表锁和行锁之间,会出现死锁、锁定粒度界于表锁和行锁之间,并发度一般;

D. MyISAM只有表锁、InnoDB有行锁和表锁,如果where条件中只用到索引项,则加的是行锁,否则加的是表锁。

  可参考:https://www.cnblogs.com/deliver/p/5730616.html

      https://mp.weixin.qq.com/s?__biz=MjM5OTkxOTc0Mw==&mid=2650233418&idx=1&sn=1352b5c3a55a1f5cf6e8680999badc5a&chksm=bf37d35a88405a4ca2a52c748b519f8d2e41f6cbdbc8d95da38a6a2266359a57d9b8797fa31c&mpshare=1&scene=1&srcid=0906XqqpgE70WPyD9HAdiJ6z#rd

9. 说一下乐观锁和悲观锁?

10. mysql 问题排查都有哪些手段?

11. 如何做 mysql 的性能优化?

12. mysql的查询执行流程?

答:A. 客户端发送一条查询sql给服务器;

B. 服务器先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果,否则进入下一阶段;

C. 服务器端进行sql解析、预处理,再由优化器生成对应的执行计划;

D. mysql根据执行计划,调用存储引擎的API来执行查询;

E. 将查询结果返回给客户端(结果缓存)。

  可参考:https://www.cnblogs.com/yuyue2014/p/3826941.html

https://www.cnblogs.com/annsshadow/p/5037667.html

十八、Redis

1.redis 是什么?都有哪些使用场景?

答:A. redis是Nosql数据库中使用较为广泛的非关系型内存数据库,redis内部是一个key-value存储系统。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型,类似于Java中的map),Redis基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器;

B. 使用场景:热点数据的缓存、现时业务的运用、计数器相关问题、排行榜相关问题、分布式锁、延时操作、分页和模糊搜索、点赞和好友等相互关系的存储、队列。

  可参考:https://www.jianshu.com/p/40dbc78711c8

180.redis 有哪些功能?

181.redis 和 memecache 有什么区别?

182.redis 为什么是单线程的?

183.什么是缓存穿透?怎么解决?

184.redis 支持的数据类型有哪些?

185.redis 支持的 java 客户端都有哪些?

186.jedis 和 redisson 有哪些区别?

187.怎么保证缓存和数据库数据的一致性?

188.redis 持久化有几种方式?

189.redis 怎么实现分布式锁?

190.redis 分布式锁有什么缺陷?

191.redis 如何做内存优化?

192.redis 淘汰策略有哪些?

193.redis 常见的性能问题有哪些?该如何解决?

十九、JVM

194.说一下 jvm 的主要组成部分?及其作用?

195.说一下 jvm 运行时数据区?

196.说一下堆栈的区别?

197.队列和栈是什么?有什么区别?

198.什么是双亲委派模型?

199.说一下类加载的执行过程?

200.怎么判断对象是否可以被回收?

201.java 中都有哪些引用类型?

202.说一下 jvm 有哪些垃圾回收算法?

203.说一下 jvm 有哪些垃圾回收器?

204.详细介绍一下 CMS 垃圾回收器?

205.新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?

206.简述分代垃圾回收器是怎么工作的?

207.说一下 jvm 调优的工具?

208.常用的 jvm 调优的参数都有哪些?

java Web工程师面试题集绵的更多相关文章

  1. Java程序员面试题集(71-85)(转)

    转:http://blog.csdn.net/jackfrued/article/details/17566627 Java程序员面试题集(71-85) 摘要:这一部分主要包括了UML(统一建模语言) ...

  2. Java程序员面试题集(1-50)(转)

    转:http://blog.csdn.net/jackfrued/article/details/17339393 下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和 ...

  3. Java程序员面试题集(1-50

    下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最 ...

  4. Java程序员面试题集(136-150)(转)

    转:http://blog.csdn.net/jackfrued/article/details/17740651 Java程序员面试题集(136-150) 摘要:这一部分主要是数据结构和算法相关的面 ...

  5. Java程序员面试题集(51-70)(转)

    转:http://blog.csdn.net/jackfrued/article/details/17403101 Java程序员面试题集(51-70) 摘要:这一部分主要讲解了异常.多线程.容器和I ...

  6. java高级工程师开放面试题集<二>

    临近年关,不少人蠢蠢欲动,有童鞋问我java后端面试会面试什么? 作为一个java后端老鸟,跌打滚爬多次被面试和面试别人,总结了一些经验,希望对大家有所帮助. 特别说明,仅仅针对工作两年以上的java ...

  7. Java程序员面试题集(116-135)

    摘要:这一部分讲解基于Java的Web开发相关面试题,即便在Java走向没落的当下,基于Java的Web开发因为拥有非常成熟的解决方案,仍然被广泛应用.不管你的Web开发中是否使用框架,JSP和Ser ...

  8. Java程序员面试题集(151-180)

    Java面试题集(151-180) 摘要:这部分包含了Spring.Spring MVC以及Spring和其他框架整合以及测试相关的内容,除此之外还包含了大型网站技术架构相关面试内容. 151. Sp ...

  9. Java程序猿面试题集(181- 199)

    Java面试题集(181-199) 摘要:这部分是包括了Java高级玩法的一些专题,对面试者和新入职的Java程序猿相信都会有帮助的. 181.  182. 183. 184. 185. 186. 1 ...

随机推荐

  1. json对象转数组

    <script type="text/javascript"> var object = {"a":1,"b":2," ...

  2. 顶层const

    顶层const:指针本身是一个常量 底层const:指针所指对象是一个常量 顶层const可以表示任意的对象是常量,这一点对任何数据类型都适用,如算术类型.类.指针等 底层const则与指针和引用等复 ...

  3. const的引用

    const的引用 对常量的引用:把引用绑定到const对象上,就像绑定到其他对象上一样,不能被用作修改它所绑定的对象: ; const int &r1 = ci;//正确:引用及其对应的对象都 ...

  4. Windows防火墙配置(允许某个网段和部分IP访问某个端口)

    1.win+R 2.gpedit.msc 3.计算机配置+Windows设置+安全设置+IP安全策略,在本地计算机 4.创建IP安全策略 5.配置IP筛选器列表.筛选器操作 6.分配 192.168. ...

  5. WPF C# int.TryParse的用法

    ; if (!int.TryParse(item.Tag.ToString(), out comld)) { continue; } 没转换成功就continue 开始写成 if(GetNumber( ...

  6. Node.js的异步IO和事件轮询

     想象一下,以前我们在写程序时, 如果程序在I/O上阻塞了,当有更多请求过来时,服务器会怎么处理呢?在这种情景中通常会用多线程的方式.一种常见的实现是给每个连接分配一个线程,并为那些连接设置一个线程池 ...

  7. BIM平台 http://gzcd.bim001.cn

    BIM平台: http://gzcd.bim001.cn

  8. localstorage实现网页状态记录比如放音乐功能的实例

    <div class="music"> <a href="javascript:;" onclick="playPause();&q ...

  9. Codeforces Educational Round 37

    Solved   CodeForces 920A Water The Garden   Solved   CodeForces 920B Tea Queue   Solved   CodeForces ...

  10. Anaconda安装新模块

    如果使用import导入的新模块没有安装,则会报错,下面是使用Anaconda管理进行安装的过程:1.打开Anaconda工具,如图: 2.可通过输入 conda list 查看已安装的模块 3.如果 ...