Java2016年面试整理.docx

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java基础JVM(原理,加载过程)(1). Java类的加载是动态的:为了节省内存开销。它并不会一次性将所有类全部加载后再运行,而是保证程序运行的基础类(像是基类)完全加载到jvm中,至于其他类,则在需要的时候才加载。(2). Java的类加载器有三个,对应Java的三种类: BootstrapLoader // 负责加载系统类 ExtClassLoader //负责加载扩展类(就是继承类和实现类)AppClassLoader //负责加载应用类(程序员自定义的类)(3).类加载器协同工作,使用委托模型机制,当类加载器需要加载类的时候,先请示其Parent(即上一层加载器)在其有哪些信誉好的足球投注网站路径载入,如果找不到,才在自己的有哪些信誉好的足球投注网站路径有哪些信誉好的足球投注网站该类。这样的顺序其实就是加载器层次上自顶而下的有哪些信誉好的足球投注网站,因为加载器必须保证基础类的加载。之所以是这种机制,还有一个安全上的考虑:如果某人将一个恶意的基础类加载到jvm,委托模型机制会有哪些信誉好的足球投注网站其父类加载器,显然是不可能找到的,自然就不会将该类加载进来。加载过程(1)装载:查找和导入class文件;(2)连接:a.检查:检查载入的class文件数据的正确性;b.准备:为类的静态变量分配存储空间;c.解析:将符号引用转换成直接引用(这一步是可选的)(3).初始化:初始化静态变量,静态代码块。这样的过程在程序调用类的静态成员的时候开始执行,所以静态方法main()才会成为一般程序的入口方法。类的构造器也会引发该动作。请描述一下JVM加载class文件的原理机制在Java中,类装载器把一个类装入Java虚拟机中,要经过三个步骤来完成:装载、链接和初始化,其中链接又可以分成校验、准备、解析 装载:查找和导入类或接口的二进制数据; 链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的; 校验:检查导入类或接口的二进制数据的正确性; 准备:给类的静态变量分配并初始化存储空间; 解析:将符号引用转成直接引用;初始化:激活类的静态变量,初始化Java代码和静态Java代码块单例模式为什么能保证只有一个实例存在原理在于它的构造函数是私有的,你不能去new 它,该单例类里面已经实例化好了一个了,并且是static的,并提供一个获取该实例的方法!客户端只能通过该方法获取这个已经实例化好了的,这样就保证了只有一个实例存在!建立sql索引应该遵循什么原则索引字段建议建立NOT NULL约束经常与其他表进行连接的表,在连接字段上应该建立索引;经常出现在Where子句中的字段且过滤性很强的,特别是大表的字段,应该建立索引;可选择性高的关键字 ,应该建立索引;可选择性低的关键字,但数据的值分布差异很大时,选择性数据比较少时仍然可以利用索引提高效率复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:A、正确选择复合索引中的第一个字段,一般是选择性较好的且在where子句中常用的字段上;B、复合索引的几个字段经常同时以AND方式出现在Where子句中可以建立复合索引;否则单字段索引;C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;频繁DML的表,不要建立太多的索引;不要将那些频繁修改的列作为索引列;== 与 equals 的区别?基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,boolean。他们之间的比较,应用双等号(==),比较的是他们的值。复合数据类型(类):当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址(确切的说,是堆内存地址)。注:对于第二种类型,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。因为每new一次,都会重新开辟堆内存空间。对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是基于他们在内存中的存放位置的地址值的,因为Object的equals方法也是用双等号(==)进行比较的,所以比较后的结果跟双等号(==)的结果相同。JSP页面的跳转? jsp页面实现跳转主要有jsp:forward 和 sendRedirect 两种方法 jsp:forward:在本容器内跳转 。 跳转后,地址栏地址不变 。效率高。跳转后立即结束本页的内容。 sendRedirect:在容器之间的跳转,跳转后地址栏地址为跳转后的地址,效率较低。 通常采用jsp:forward方式跳转。 解释GLOBAL_NAMES设为TRUE的用途:?GLOBAL_NAMES指明联接数据库的方式。如果这个

文档评论(0)

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

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

1亿VIP精品文档

相关文档