FAQ(JAVA基础二)整理(4)

2019-05-27 18:01

}

System.out.println(C); }

catch(Exception e){

System.out.println(e.getMessage()); } } }

61.java是否存在内存泄露

答案:存在,当一个对象引用另一对象后,当另一对象为空时,会出现内存泄露。

62.String类的值是否可以改变

答案:String类的值在初始后不能改变,如果要改变,可转换为StringBuffer类,这个类的值是可以动态改变的。(这里主要考String 和 StringBuffer 的区别)

63.java 有几种修饰符?默认的是什么?

答案:(注:修饰符是影响类、变量及成员方法的生存空间和可访问性的关键字) 修饰符 类 成员方法 成员变量 局部变量 abstract √ √ - - static - √ √ - public √ √ √ - protected - √ √ - private - √ √ -

private protected - √ √ - synchronized - √ - - native - √ - - volatile - - √ - final √ √ √ - transient - - √ √

以下是访问控制修饰符: 默认为friendly 修饰符 同类 同包 子孙类 不同包 public √ √ √ √ protected √ √ √ - friendly √ √ - -

private √ - - -

64.toString方法的概述

答案:因为每个类都继承了Object类,所以都实现了toString()方法。 通过toString()方法可以决定所创建对象的字符串表达形式。

65.Object类的概述

答案:Object类是所有其他的类的超类,Object的一个变量可以引用任何其他类的对象。因为数组是作为类实现的,所以Object的一个变量也可以引用任何数组,它包括以下几种方法:

clone() equals() finalize() getClass() hashCode() notify() notifyAll() toString() wait()

66.java特点

答案:java具有以下几个主要特点: 1) 简单性

2) 面向对象:JAVA是完全面向对象的,它支持静态和动态风格的代码继承及重用 3) 分布式:包括数据分布和操作分布

4) 健壮性:java系统仔细检测对内存的每次访问,确认它是否合法,而且在编译和运行

程序时,都要对可能出现的问题进行检查,以消除错误的产生。 5) 结构中立

6) 安全性:java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这

样就防止程序员使用木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。

7) 与平台无关:java写的应用程序不用修改就可在不同的软硬平台上运行。平台无关性

有两种:源代码级和目标代码级。 Java主要靠JAVA虚拟机在目标代码级上实现平台无关性

8) 解释执性:运行JAVA程序时,它首先被编译成字节代码,字节代码非常类似机器码,

执行效率非常高。 9) 高性能 10) 多性程

11) 动态性:它允许程序动态的装入运行时需要的类。

67.什么叫抽象类?抽象类跟接口有什么区别?为什么引进数据接口概念?

答案:具有关键字abstract ,在实现内容上没有完全定义的类就叫抽象类。

抽象类和接口的区别如下:

① 在类继承抽象类时,只需实现部分具体方法和全部抽象方法,而实现接口则要实现里面的全部方法。

②在接口中无成员变量,而抽象类中可有成员变量。 在Java中引进接口主要是为了解决多继承的问题。

68.doGet与doPut的区别?

答案:doPut会把地址作为一个文件写到服务器,而doGet不会,而只显示在地址栏。

69.多线程实现有那几种方法,同步有哪几种方法?

答案:实现同步主要有两种方法:1.synchronized 2.wait notify 。实现多线程主要继承Thread 类和实现Runnable接口。

70.JSP页面的跳转?

答案:jsp页面实现跳转主要有jsp:forward 和 sendRedirect 两种方法

jsp:forward:在本容器内跳转 。 跳转后,地址栏地址不变 。效率高。跳转后立即结束本页的内容。

sendRedirect:在容器之间的跳转,跳转后地址栏地址为跳转后的地址,效率较低。 通常采用jsp:forward方式跳转。

71.类变量的初始化

答案:在Java中类变量在局部中一定要初始化,因为局部变量会覆盖全局变量,否则会报错:变量未初始化。全局变量则可以不初始化,而到具体的内部方法或其他的类成员中初始化。

72.数组的定义

答案:数组是作为一种对象实现的。数组元素可以包含作何类型值,但数组里面的每个元素的类型必须一致

创建数组步聚如下: 1) 声明 2) 构造 3) 初始化

Java代码查错:

73.以下有何错误:

abstract class Name { private String name;

public abstract boolean isStupidName(String name) {} }

答案:错。abstract method必须以分号结尾,且不带花括号。

74.查错

public class Something { void doSomething () { private String s = \ int l = s.length(); } } 有错吗?

答案:错。局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量(final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。

75.查错误

abstract class Something {

private abstract String doSomething (); }

这好像没什么错吧?

答案:错。abstract的methods不能以private修饰。abstract的methods就是让子类implement(实现)具体细节的,怎么可以用private把abstractmethod封锁起来呢? (同理,abstract method前不能加final)。

76.查错误

public class Something {

public int addOne(final int x) { return ++x; } }

这个比较明显。

答案: 错。int x被修饰成final,意味着x不能在addOne method中被修改。

77.查错误

public class Something {

public static void main(String[] args) { Other o = new Other(); new Something().addOne(o); }

public void addOne(final Other o) { o.i++; } }

class Other { public int i; }

和上面的很相似,都是关于final的问题,这有错吗?

答案:正确。在addOne method中,参数o被修饰成final。如果在addOne method里我们修改了o的reference(比如: o = new Other();),那么如同上例这题也是错的。但这里修改的是o的member vairable(成员变量),而o的reference并没有改变。

78.查错误

class Something { int i;

public void doSomething() { System.out.println(\ } }

有什么错呢? 看不出来啊。

答案:正确。输出的是\。int i属於instant variable (实例变量,或叫成员变量)。instant variable有default value。int的default value是0。

79.查错误

class Something {


FAQ(JAVA基础二)整理(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:施工方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: