问题:请讲下java中垃圾回收器有哪些? 分析:该问题主要考察hotspot虚拟机下实现的垃圾回收器 回答要点: 主要从以下几点去考虑, 1.垃圾回收器的种类 2.每种垃圾回收器的着重点是什么 前边的文章中分享了"如何设计一个垃圾回收器"."垃圾回收算法"."垃圾回收中的并行并发"等,今天打算分享下hotspot虚拟机中的垃圾回收器. 先看下垃圾回收器的分类,分类标准有按照垃圾回收线程和用户线程的关系.工作的内存区域 垃圾回收线程和用户线程的关系…
问题:请讲下在java中有哪些垃圾回收算法 分析:该问题主要考察对java中垃圾回收的算法以及使用场景 回答要点: 主要从以下几点去考虑, 1.GC回收算法有哪些 2.每种算法的使用场景 3.基于垃圾回收算法有哪些垃圾回收器 在<java面试一日一题:如何判断一个对象是否为垃圾对象>中知道了java中判断一个对象是否存活,是否可被回收使用的是可达性分析算法,找出了可回收的对象,那么有哪些回收算法可以回收这些对象那 复制算法 复制算法就是从一个地方复制到另外一个地方,针对垃圾回收来说,就是把活着…
问题:请讲下mysql中常用的引擎有哪些? 分析:该问题主要考察对mysql存储引擎的理解,及区别是什么? 回答要点: 主要从以下几点去考虑, 1.mysql的存储引擎的基本概念? 2.mysql中常用的存储引擎有哪些及各自的区别是什么? 从上篇<java面试一日一题:请讲下对mysql的理解>已经知道了mysql从整体架构上分为两部分,一部分是server层,另外一部分是存储引擎层.说的简单点存储引擎就是用来实际管理mysql中的数据,为了适用于不同的场景有了不同的存储引擎.比较常用的存储引…
问题:请讲下在什么情况下会发生类加载? 分析:该问题主要考察对java中类加载的知识,什么是类加载,为什么会发生类加载,什么情况下发生类加载? 回答要点: 主要从以下几点去考虑 1.什么是类加载: 2.为什么会发生类加载: 3.什么情况下发生类加载: 大家都知道java程序要运行,必须要把源文件(.java)编译成字节码(.class),jvm的输入是字节码文件,需要把字节码文件加载到jvm内存中,如何解析字节码文件,按照什么样的规则去解析,解析后放在内存中的什么位置,这些过程可以理解未类加载.…
问题:请讲下mysql中undo log的作用 分析:mysql中有很多日志,例,bin log undo log redo log,要弄清楚这些日志的作用,就要了解这些日志出现的背景及要解决的问题: 回答要点: 主要从以下几点去考虑 1.undo log产生的背景: 2.undo log的作用: 开发中经常使用到mysql数据库,用mysql数据库时在新建库或表的时候,最常使用的存储引擎是innodb,在innodb中经常提到事务,那么事务是怎么实现的,可参见:<java面试一日一题:mysq…
问题:如果让你设计一个垃圾回收器,你会考虑哪些问题 分析:该问题主要考察对java中垃圾回收器的理解,要理解怎么回收:一款好的垃圾回收器有哪些衡量指标 回答要点: 主要从以下几点去考虑, 1.垃圾回收线程和用户线程的关系: 2.垃圾回收器的衡量指标: 3.基于垃圾回收算法有哪些垃圾回收器 上篇文章分享了垃圾回收的算法,有了垃圾回收的算法就要使用,垃圾回收器就是实现了垃圾回收算法. 要设计一款垃圾回收器,要考虑以下几个问题, 垃圾回收线程和用户线程的关系 这句话要怎么理解,一个java进程中有很多…
问题:请讲下java中垃圾回收器的串行.并行.并发 分析:该问题主要考察在垃圾回收过程中垃圾回收线程和用户线程的关系 回答要点: 主要从以下几点去考虑, 1.串行.并行.并发的概念 2.如何考虑串行.并行.并发的这种关系 计算机执行程序实际是在CPU上执行,由于在计算机上会存在多个程序,也就是多个进程,每个进程中又存在多个线程,线程作为CPU执行的最小单位,是通过争夺CPU时间片的方式来执行的,也就是多个线程在轮番获得CPU时间片,从而获得执行机会,由于CPU执行的时间很快,所以在用户层面上来说…
问题:请讲下在java中如何判断一个对象是否为垃圾 分析:该问题主要考察对java中的垃圾回收,用什么方式去识别一个对象是垃圾: 回答要点: 主要从以下几点去考虑, 1.GC回收的是什么,回收发生在内存的那部分? 2.怎么判断一个对象是否可以被回收? 3.垃圾回收的算法有哪些? 都说C/C++语言难学,难的点其实不是语言本身,而是在内存管理方面,因为在C/C++中需要开发者自己管理内存,包括申请内存和释放内存,不恰当的释放内存经常导致程序崩溃,而在java中开发者却不需要关心何时释放内存.很多人…
问题:请讲下java中的线程池 分析:在面试中经常问到线程池的问题,要掌握其基本概念,使用方法,注意事项等,引申下tomcat中默认的线程数是多少 回答要点: 主要从以下几点去考虑, 1.为什么要使用线程池 2.线程池的基本参数 3.为什么不使用java提供的线程池,而是使用自己创建 4.如何设置线程数大小: 5.线程池在tomcat中的使用: 为什么要使用线程池 在日常的开发过程中,经常要用到多线程,那么为什么不直接新建一个线程,而是选择使用线程池那,因为线程的创建要消耗系统资源,占用CPU的…
问题:请讲下rabbitMQ的工作模式 分析:该问题纯属概念题,需要掌握rabbtiMQ的基础知识,同时该题也是切入MQ的一个引子: 回答要点: 主要从以下几点去考虑, 1.rabbitMQ的基本概念? 2.交换机的概念? rabbitmq有以下几种工作模式, 简单模式 简单模式,是一个生产者对应一个消费者,mq起到一个代理的作用, 使用场景:可以作为一个队列来使用,比如发邮件功能,生产者把要发送的邮件交给MQ,发邮件服务从MQ中获取邮件进行发送,很好的解耦特性的体现 工作队列模式 工作队列模式…