1.下列哪种说法是正确的()
A.实例方法可直接调用超类的实例方法
B.实例方法可直接调用超类的类方法
C.实例方法可直接调用其他类的实例方法
D.实例方法可直接调用本类的类方法
类方法指的是用static关键字修饰的方法,而实例方法就是相对于类方法的其它方法
当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,当该类创建对象后,
类中的实例方法才分配入口地址,从而实例方法可以被类创建的任何对象调用执行。需要注意的是,
当我们创建第一个对象时,类中的实例方法就分配了入口地址,当再创建对象时,不再分配入口地址,
也就是说,方法的入口地址被所有的对象共享,当所有的对象都不存在时,方法的入口地址才被取消。
对于类中的类方法,在该类被加载到内存时,就分配了相应的入口地址。从而类方法不仅可以被类创建
的任何对象调用执行,也可以直接通过类名调用。类方法的入口地址直到程序退出才被取消。
对于A,不可以调用父类的private实例方法。因为private修饰的方法只有本类对象才可以调用
对于B,类方法只有本类才可以调用
对于C,跟A相同,比A更离谱
D是正确的
2.下列语句哪一个正确( )
A.Java程序经编译后会产生machine code
B.Java程序经编译后会产生byte code
C.Java程序经编译后会产生DLL
D.以上都不正确
解析:.java文件编译后是字节码,即.class文件,然后java虚拟机把.class文件翻译成字节码,让cpu来调用。这也是跨平台性的体现。所以答案是B
3.Java中将ISO8859-1字符串转成GB2312编码,语句为 ?
A. new String(String.getBytes("ISO8859-1"),GB2312)
B.new String(String.getBytes("GB2312"),ISO8859-1)
C.new String(String.getBytes("ISO8859-1"))
D.new String(String.getBytes("GB2312"))
解析:JAVA有一个public String(byte bytes[], Charset charset)函数可以用指定字节数组和编码来构造字符串。一个public byte[] getBytes(Charset charset)函数把字符串按指定编码来得到字节数组。可以用这两个函数来实现编码转
换。选A
4.下面函数将返回?
public static int func (){
try{
return 1;
}catch (Exception e){
return 2;
}finally{
return 3;
}
}
A.1 B.2 C.3 D.编译错误
解析:finally一般和try{}catch{}配套使用,try和catch执行之后总会执行finally.并且finally会覆盖前者的return。(当try和catch中有System.exit()语句时,则不会执行finally)
5.下列关于容器集合类的说法正确的是?
A.LinkedList继承自List
B.AbstractSet继承自Set
C.HashSet继承自AbstractSet
D.WeakMap继承自HashMap
解析:List、set、Map都是借口,list和set集成了Collection类。A和B应该说实现了接口而不是继承。C是正确的
6.
下面哪项技术可以用在WEB开发中实现会话跟踪实现?
A.session
B.Cookie
C.地址重写
D.隐藏域
解析:实现会话跟踪的机制
Cookies,URL重写,隐藏式表单域,Session机制
Cookies
Cookies是使用最广泛的会话跟踪机制,Cookies是有服务器创建,并把Cookies信息保存在用户机器上的硬盘上,下次用户再次访问该站点服务器的时候,保存在用户机器上硬盘的Cookies信息就被送回给服务器。一般Cookies一般不多于4KB,且用户的敏感信息如信用卡账号密码不应该保存在Cookies中。
URL重写
URL重用户在每个URL结尾附加标识回话的数据,与标识符关联的服务器保存有关与会话的数据,如我们访问某个新闻的时候,在地址栏我们一般会看到这样的信息:http://www.XXX.com/news?id=??,通常的话id后面的问号表示该条新闻在后台数据库中的新闻表的id。URL重写能够在客户端停用cookies或者不支持cookies的时候仍然能够发挥作用。
隐藏表单域
通常,在表单中我们使用隐藏表单域的时候会有这么一句代码:<input type=”hidden” name=”XXX” value=”XXX”/>。通过给type属性赋值为hidden值来实现隐藏,这样用户在浏览的时候看不到这行代码的数据,但是当用户通过查看源代码还是可以看到的。
Session机制
这个机制要慎用,特别是对于访问量很大的站点,因为这种机制是吧Session信息保存在服务器端。如果访问量特别大的话,对于服务器的承受力的要求有多高是可想而知的。
7.以下代码将打印出(C)
<span style="font-size:18px;"> public static void main (String[] args) {
String classFile = "com. jd. ". replaceA11(".", "/") + "MyClass.class";
System.out.println(classFile);</span>
- A.com. jd
- B.com/jd/MyClass.class
- C./MyClass.class
- D.com.jd.MyClass
replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:
1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;
题目中“.”,在正则表达式中表示任何符号,所以答案是C,五个字母,2个点号,两个空格被代替。
8.
检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果(D)。
|
A.test okandabc
B.test okandgbc
C.goodandabc
D.goodandgbc
解析:String类是final类型的,不能继承和修改这个类。str=“teskok”,其实是隐含的让Java生成一个新的String对象,那么就与原来的“Hello”没有任何关系,当函数结束,str作用结束.ch[]是值传递,所以可以改变。
9.下列程序的运行结果(A)
|
- A.IOException!
- B.IOException!Exception!
- C.FileNotFoundException!IOException!
- D.FileNotFoundException!IOException!Exception!
解析:
try-catch-finally 规则(异常处理语句的语法规则)
1) 必须在 try 之后添加 catch 或 finally 块。try 块后可同时接 catch 和 finally 块,但至少有一个块。
2) 必须遵循块顺序:若代码同时使用 catch 和 finally 块,则必须将 catch 块放在 try 块之后。
3) catch 块与相应的异常类的类型相关。
4) 一个 try 块可能有多个 catch 块。若如此,则执行第一个匹配块。即Java虚拟机会把实际抛出的异常对象依次和各个catch代码块声明的异常类型匹配,如果异常对象为某个异常类型或其子类的实例,就执行这个catch代码块,不会再执行其他的 catch代码块
5) 可嵌套 try-catch-finally 结构。
6) 在 try-catch-finally 结构中,可重新抛出异常。
7) 除了下列情况,总将执行 finally 做为结束:JVM 过早终止(调用 System.exit(int));在 finally 块中抛出一个未处理的异常;计算机断电、失火、或遭遇病毒攻击
由此可以看出,catch只会匹配一个,因为只要匹配了一个,虚拟机就会使整个语句退出
9.下面属于java包装类的是?
A.String
B.Long
C.Character
D.Short
解析:Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,即包装类。对应的基本类型和包装类如下表:
基本数据类型 | 包装类 |
byte | Byte |
boolean | Boolean |
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |