JAVA 面试题要点.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA 面试题1)Bootstrap ClassLoader负责加载$JAVA_HOME中jre/lib/rt.jar里所有的class,由C++实现,不是ClassLoader子类2)Extension ClassLoader负责加载java平台中扩展功能的一些jar包,包括$JAVA_HOME中jre/lib/*.jar或-Djava.ext.dirs指定目录下的jar包3)App ClassLoader负责记载classpath中指定的jar包及目录中class4)Custom ClassLoader?属于应用程序根据自身需要自定义的ClassLoader,如tomcat、jboss都会根据j2ee规范自行实现ClassLoader?加载过程中会先检查类是否被已加载,检查顺序是自底向上,从Custom ClassLoader到BootStrap ClassLoader逐层检查,只要某个classloader已加载就视为已加载此类,保证此类只所有ClassLoader加载一次。而加载的顺序是自顶向下,也就是由上层来逐层尝试加载此类。两个最基本的java回收算法:复制算法和标记清理算法????????????? ? 复制算法:两个区域A和B,初始对象在A,继续存活的对象被转移到B。此为新生代最常用的算法????????????????标记清理:一块区域,标记要回收的对象,然后回收,一定会出现碎片,那么引出????????????????标记-整理算法:多了碎片整理,整理出更大的内存放更大的对象两个概念:新生代和年老代????????????? ? 新生代:初始对象,生命周期短的????????????? ? 永久代:长时间存在的对象整个java的垃圾回收是新生代和年老代的协作,这种叫做分代回收。P.S:Serial New收集器是针对新生代的收集器,采用的是复制算法? ?????? Parallel New(并行)收集器,新生代采用复制算法,老年代采用标记整理? ? ? ?? Parallel ?Scavenge(并行)收集器,针对新生代,采用复制收集算法????? ? Serial Old(串行)收集器,新生代采用复制,老年代采用标记清理? ? ? ?? Parallel ? Old(并行)收集器,针对老年代,标记整理????? ? CMS收集器,基于标记清理????? ? G1收集器:整体上是基于标记清理,局部采用复制综上:新生代基本采用复制算法,老年代采用标记整理算法。cms采用标记清理。同步是害怕在操作过程的时候被其他线程也进行读取操作,一旦是原子性的操作就不会发生这种情况。因为一步到位的操作,其他线程不可能在中间干涉。另外三项都有读取、操作两个步骤,而X=1则是原子性操作。前三个都至少需要先读取,再操作,非原子操作。而D的话,直接赋值。ABC不是原子性操作,例如想x++,先获取x的值,自增一,然后再把值赋给x,三步,中间任何一步执行时都可能被其他线程访问或者修改。所以需要同步重写是子类的方法覆盖父类的方法,要求方法名和参数都相同重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法。重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准运行时数据区包括:虚拟机栈区,堆区,方法区,本地方法栈,程序计数器虚拟机栈区 :也就是我们常说的栈区,线程私有,存放基本类型,对象的引用和 returnAddress ,在编译期间完成分配。堆区 , JAVA 堆,也称 GC 堆,所有线程共享,存放对象的实例和数组, JAVA 堆是垃圾收集器管理的主要区域。方法区 :所有线程共享,存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。这个区域的内存回收目标主要是针对常量池的对象的回收和对类型的卸载。程序计数器 :线程私有,每个线程都有自己独立的程序计数器,用来指示下一条指令的地址。Integer i01 = 59. 直接赋值数字,java会自动装箱,自动调用Integer.valueOf(59).?Integer i03 = Integer.valueOf(59). ?Integer.valueOf(int i)会返回一个Integer对象,当i在-128~127之间时,会返回缓存中已创建的Integer对象。Integer i04 = new Integer(59) 返回一个新的对象。所以这道题中,59在-128~12

文档评论(0)

little28 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档