好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

编程语言--JAVA答案.docx

39页
  • 卖家[上传人]:豆浆
  • 文档编号:19548872
  • 上传时间:2017-11-19
  • 文档格式:DOCX
  • 文档大小:965.06KB
  • 编程语言--JAVA答案
    / 39 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • JAVA 答案1、D ( Arraylist 的内存结构是数组,当超出数组大小时创建一个新的数组,把原数组中元素拷贝过去其本质是顺序存储的线性表,插入和删除操作会引发后续元素移动,效率低,但是随机访问效率高LinkedList 的内存结构是用双向链表存储的,链式存储结构插入和删除效率高,不需要移动但是随机访问效率低,需要从头开始向后依次访问)2、B ( 1. 要使用 t.start()才启动这个线程2. 题目中的 synchronized 关键字修饰了 static 方法,产生对 Class 对象的加锁,但是Java 的内置锁是可重入的,所以不会死锁)3、B (JDBC 提供两套接口,一个面向数据库厂商,一个面向 JDBC 使用者)4、B ( A、for 循环的话,很灵活,但是代码不够简洁 .B、System.arraycopy() 源码可以看到是 native 方法: native 关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如 C和 C++)实现的文件中 可以将 native 方法比作 Java 程序同C程序的接口public static native void arraycopy(Object src, int srcPos,Object dest, int destPos,int length); C、选项有误,copyOf 不是 System 的方法,而是 Arrays 的方法,下面是源码,可以看到本质上是调用的 arraycopy 方法。

      ,那么其效率必然是比不上 arraycopy 的123456public static int[] copyOf(int[] original, int newLength) {int[] copy = new int[newLength];System.arraycopy(original, 0, copy, 0,Math.min(original.length, newLength));return copy;}Dclone 的话,返回的是 Object【】 ,需要强制转换 一般用 clone 效率是最差的,CD 可以排除具体的理由不好说不过一致的说法和实验证明是 arraycopy()效率高!)5、D (动态 INCLUDE 用 jsp:include 动作实现 它总是会检查所含文件中的变化 , 适合用于包含动态页面 , 并且可以带参数各个文件分别先编译,然后组合成一个文件静态 INCLUDE 用 include 伪码实现 , 定不会检查所含文件的变化 , 适用于包含静态页面 先将文件的代码被原封不动地加入到了主页面从而合成一个文件,然后再进行翻译,此时不允许有相同的变量。

      以下是对 include 两种用法的区别 , 主要有两个方面的不同 ;一 : 执行时间上 :是在翻译阶段执行在请求处理阶段执行 .二 : 引入内容的不同 :引入静态文本 (html,jsp), 在 JSP 页面被转化成 servlet 之前和它融和到一起 .引入执行页面或 servlet 所生成的应答文本 .)6、D (String 类型和数组属于引用传递,但执行 change 方法后,数组改变的是 ch[0],也就是 ch 数组引用未改变,但其所指向内容的值被改变)7、C (运行时数据区包括:虚拟机栈区,堆区,方法区,本地方法栈 ,程序计数器虚拟机栈区 :也就是我们常说的栈区,线程私有,存放基本类型,对象的引用和returnAddress ,在编译期间完成分配堆区 , JAVA 堆,也称 GC 堆,所有线程共享,存放对象的实例和数组, JAVA堆是垃圾收集器管理的主要区域方法区 :所有线程共享,存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据这个区域的内存回收目标主要是针对常量池的对象的回收和对类型的卸载程序计数器 :线程私有,每个线程都有自己独立的程序计数器,用来指示下一条指令的地址。

      )8、D (D :含有抽象方法的类( 包括直接定义了抽象方法;继承一个抽象父类,但没有完全实现父类包含的抽象方法;实现一个接口,但没有完全实现接口包含的抽象方法)只能被定义成抽象类A:用于修饰抽象类或者抽象方法B:final 修饰的类不能被继承C:抽象类不能被实例化,无法使用 new 关键字调用抽象类的构造器创建抽象类的实例,即使抽象类不包含抽象方法,也不能被实例化)9、AB (String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全)String 类代表字符串Java 程序中的所有字符串字面值(如 “abc” )都是String 类的对象字符串是常量 ;它们的值在创建之后不能改变所以可以共享它们StringBuffer 是字符串缓存区,它的内容可以被修改,长度也可以改变,StringBuffer 类是线程安全的,也就是说多个线程可以安全的访问 StringBuffer 对象StringBuilder 与 StringBuffer 类似,都是字符串缓冲区,但 StringBuilder 不是线程安全的,如果你只是在单线程中使用字符串缓冲区,那么 StringBuilder 的效率会更高些。

      值得注意的是 StringBuilder 是在 JDK1.5 版本中增加的以前版本的 JDK 不能使用该类)10、CDE (==默认比较的是对象或者变量所存储的地址,equals 方法 则可以则继承的类里重写,包装类中的 equals 实际比较的是所存储的变量值,而对象直接用==则比较的是地址(s==u) ,因为, s 是 Integer 类型, u 是 Long 类型,两个不同类型的引用不能进行== 比较 (s==t) , s 是指向一个 9 的引用,而 t 也是一个指向 9 的引用,虽然都是指向 9 ,但却是指向不同的 9 ,即是两个不同的引用因此 == 比较返回的是假s.equals(t)) , Integer 的 equals 方法如下:public boolean equals(Object obj) {if (obj instanceof Integer) {return value == ((Integer)obj).intValue();}return false ;}是 Integer 的实例且 value 值也相等的情况下返回真,其他返回假在这里, s 和 t 都是 Integer 类型且值都为 9 ,因此结果为真。

      s.equals(9)) , 在进行 equals 比较之前,会对 9 调用 Integer.valueOf 方法,进行自动装箱 , 由于 IntegerCache 中已经存在 9 ,所以,直接返回其引用,引用相同,equals 就自然相同了所以结果为真s.equals( new Integer(9)) ,直接创建了一个新的 Integer 实例,但且值也为 9 ,所以,满足条件,返回真)11、C (关键字 static(类方法,实例方法) 1:静态方法和静态变量是属于某一个类,而不属于类的对象 2:静态方法和静态变量的引用直接通过类名引用 3:在静态方法中不能调用非静态的方法和引用非静态的成员变量非静态方法中可以调用静态方法和变量,即(反之,则可以) 静态方法) )12、B (操作步骤就是先解码再编码,用 new String(src,"GBK")解码得到字符串用getBytes("UTF-8")得到 UTF8 编码字节数组)13、C (这里的参数如果为空,则默认 false这里的 true 和 false 代表未获取到 Session 时是否创建为 true 时,当 request.getSession 未获取到 Session 就创建一个新的 Session,并放入 request 域中)14、B (方法摘要protected Object clone() 创建并返回此对象的一个副本。

      boolean equals(Object obj) 指示其他某个对象是否与此对象“ 相等 ”protected void finalize() 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法Class getClass() 返回此 Object 的运行时类int hashCode() 返回该对象的哈希码值void notify() 唤醒在此对象监视器上等待的单个线程void notifyAll() 唤醒在此对象监视器上等待的所有线程String toString() 返回该对象的字符串表示void wait() 其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待voidwait(long timeout) 在其他线程调用此对象的 notify() 方法或notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待voidwait(long timeout, int nanos) 在其他线程调用此对象的 notify()方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。

      15、C (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~127 之间,所以前三条语句返回的是同一个对象(在缓存区已创建的对象),而 i04 使用 new 新创建了一个新的对象,所以 i04 与前面三个对象都不一样 )16、A (Servlet 的生命周期分为 5 个阶段:加载、创建、 初始化、处理客户请求、卸载1)加载:容器通过类加载器使用 servlet 类对应的文件加载 servlet(2)创建:通过调用 servlet 构造函数创建一个 servlet 对象(3)初始化:调用 init 方法初始化(4)处理客户请求:每当有一个客户请求,容器会创建一个线程来处理客户请求(5)卸载:调用 destroy 方法让 servlet 自己释放其占用的资源init()方法和 destroy()方法只会调用一次)17、D (最终类就是被 final 修饰的类,最终方法就是被 final 修饰的方法。

      最终类不能被继承,最终方法不能被重写)18、A (基本类型四类八种,其余全是引用类型四类八种:整数(byte short int long) 浮点数(float double)字符型(char) 逻辑性(boolean)注意大小写,大写的是封装基本类型的引用类型byte – Byte short – Short int – Integer long - Longfloat – Float double – Double char – Character boolean – Boolean )19、ABCD (普通的 java 对象是通过 new 关键字把对应类的字节码文件加载到内存,然后创建该对象的反射是通过一个名为 Class 的特殊类,用 Clas 敏感词 orName("className");得到类的字。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.