1.Java Application 源程序的主类是指包含有( )方法的类。
正确答案: A
A、public static void main方法
B、toString方法
C、init方法
D、actionPerfromed方法
解析:java程序种类:
1.内嵌于web文件中,有浏览器观看的applet
2.可独立运行的application
3.服务器端的servlets
2.如果类的方法的返回值为空,该方法的返回类型应是:( )
正确答案: A
A、void
B、null
C、abstract
D、default
解析:没有返回值一般都是说构造函数,void叫返回值为空。
1.正则表达式语法中 \d 匹配的是?()
正确答案: A
A、数字
B、非数字
C、字母
D、空白字符
解析:
\d 匹配一个数字字符。等价于 [0-9]。
\D 匹配一个非数字字符。等价于 [^0-9]。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\w 匹配字母、数字、下划线。等价于’[A-Za-z0-9_]’。
1.以下代码的输出的正确结果是()
public class Test {
public static void main(String args[]) {
String s = "祝你考出好成绩!";
System.out.println(s.length());
}
}
正确答案: D
A、24
B、16
C、15
D、8
解析:length得到的是字符,不是字节。如果是s.getBytes(“GBK”).length就是求的字节数。如果是GBK,一个中文字符占2字节,如果是UTF-8则是3个字节。
2.不考虑反射,String类型变量所指向内存空间中的内容是不能被改变的 。 ( )
正确答案: A
A、正确
B、错误
解析:指向的内容在常量池中不可以变,但是可以改变string的指向。
3.以下程序执行后,错误的结果是()
public class Test {
private String name = "abc";
public static void main(String[] args) {
Test test = new Test();
Test testB = new Test();
String result = test.equals(testB) + ",";
result += test.name.equals(testB.name) + ",";
result += test.name == testB.name;
System.out.println(result);
}
}
正确答案: A B C
A、true,true,true
B、true,false,false
C、false,true,false
D、false,true,true
解析:
1.test.equals(testB),两个对象用equals()函数比较,如果两个对象是一个则返回true,如果不是String的实例并且是两个不同的对象则返回false,当两个对象是String的实例时,则比较字符串内容是否相同.相同则返回true, 不相同返回false.
2、应该注意到作为成员变量的 name 是使用字面量直接赋值的 ( privateString name =“abc”; ) 这种赋值的执行过程是先看字符串常量池中有没有 value 数组为 [‘a’, ‘b’, ‘c’] 的 String 对象,如果没有的话就创建一个,有的话就拿到他的一个引用。
3、name 没有被static 修饰,所以每实例化一个对象都会执行 private String name =“abc”; 第一次执行的时候发现字符串常量池没有 value 数组为 [‘a’, ‘b’, ‘c’]的String 对象,所以创建一个,拿到他的一个引用,但是第二次的时候发现已经有了这样的对象了, 所以只是拿到这个拿到这个对象的一个引用而已。
4、执行 test.name == testB.name; 的时候比较的是两个name指向的内存是不是同一个(比较引用本身没有意义),所以 test.name == testB.name; 的结果是true。
4.String s = new String(“xyz”);创建了几个StringObject?
正确答案: A
A、两个或一个都有可能
B、两个
C、一个
D、三个
解析:如果在常量池中已经存在“xyz”,那么不会继续创建,只创建一个new String(“xyz”)的对象。如果常量池中没有,则会创建两个对象,一个是对象的值“xyz”,一个是new String(“xyz”)的对象。
- 1.String对象的两种创建方式:
第一种方式: String str1 = “aaa”; 是在常量池中获取对象(“aaa” 属于字符串字面量,因此编译时期会在常量池中创建一个字符串对象),
第二种方式: String str2 = new String(“aaa”) ; 一共会创建两个字符串对象一个在堆中,一个在常量池中(前提是常量池中还没有 “aaa” 字符串对象)。
System.out.println(str1==str2);//false- 2.String类型的常量池比较特殊。它的主要使用方法有两种:
直接使用双引号声明出来的String对象会直接存储在常量池中。
如果不是用双引号声明的String对象,可以使用 String 提供的 intern 方法。 String.intern() 是一个 Native 方法,它的作用是: 如果运行时常量池中已经包含一个等于此 String 对象内容的字符串,则返回常量池中该字符串的引用; 如果没有,则在常量池中创建与此 String 内容相同的字符串,并返回常量池中创建的字符串的引用。
String s1 = new String(“AAA”);
String s2 = s1.intern();
String s3 = “AAA”;
System.out.println(s2);//AAA
System.out.println(s1 == s2);//false,因为一个是堆内存中的String对象一个是常量池中的String对象,
System.out.println(s2 == s3);//true, s2,s3指向常量池中的”AAA“
5.执行如下代码段后,变量s1引用的字符串值是( )。
String s1 = "ABCD";
String s2 = "1234";
System.out.println(s1 + s2);
正确答案: A
A、ABCD
B、1234
C、ABCD1234
D、1234ABCD
1.以下 _____ 不是 Object 类的方法()
正确答案: D
A、clone()
B、finalize()
C、toString()
D、hasNext()
1.What is the result of compiling and executing the following fragment of code:
Boolean flag = false;
if (flag = true)
{
System.out.println("true");
}
else
{
System.out.println("false");
}
正确答案: C
A、The code fails to compile at the “if” statement.
B、An exception is thrown at run-time at the “if” statement.
C、The text“true” is displayed.
D、The text“false”is displayed.
E、Nothing is displayed.
解析:
A、The code fails to compile at the “if” statement.代码在if语句处编译失败。
B、An exception is thrown at run-time at the “if” statement.运行时在if语句处抛出异常。
C、The text“true” is displayed.显示“true”。
D、The text“false”is displayed.显示“false”。
Nothing is displayed.什么都不显示
Boolean修饰的变量为包装类型,初始化值为false,进行赋值时会调用Boolean.valueOf(boolean b)方法自动拆箱为基本数据类型,因此 赋值后flag值为true,输出文本true。 如果使用==比较,则输出文本false。if的语句比较,除boolean外的其他类型都不能使用赋值语句,否则会提示无法转成布尔值。
2.设有下面两个赋值语句:
a = Integer.parseInt("1024");
b = Integer.valueOf("1024").intValue();
下述说法正确的是()
正确答案: D
A、a是整数类型变量,b是整数类对象。
B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且它们的值相等。
D、a和b都是整数类型变量并且它们的值相等。
解析:
intValue()是把Integer对象类型变成int的基础数据类型;
parseInt()是把String 变成int的基础数据类型;
Valueof()是把String 转化成Integer对象类型;(现在JDK版本支持自动装箱拆箱了。)
本题:parseInt得到的是基础数据类型int,valueof得到的是装箱数据类型Integer,然后再通过valueInt转换成int,所以选择D