1.输出结果(A)
A.it me
B.him her it me
C.him her
D.me
解析:根据switch()括号里的值,进行匹配,走相应的case,case没有break就继续往下走。
2.A
3.B
A.HelloSogou
B.SogouHello
C.Hello
D.结果不确定
解析:这里调用 t.run();并没有启动一个新的线程,启动一个新线程要用t.start();所以执行顺序是先执行run(),再执行 System.out.print("Hello");
4.以下哪个区域不属于新生代?C
A.eden区
B.from区
C.元数据区
D.to区
5.A
A.ABDCBDCB
B.ABCDABCD
C.编译时出错
D.运行时抛出异常
解析:for循环三条语句的执行顺序 for(第一条语句;第二条语句;第三条语句;) 首次循环时先执行前两句。以后的每次循环结束,都是执行最后一条语句,然后执行判断语句(也就是第二条语句)条件成立进入下一次循环。 第一条语句只会被执行一次。
6.A
A.Line 3 and Line 4
B.Line 1 only
C.Line 3 only
D.Line 4 only
解析:short类型转为byte类型出错 ,a1*a2结果为int类型,转为byte类型出错。
7.A
8.A
解析:
9.D
解析:方法重载的返回值的类型可以不同,因为判断方法重载的方法主要是根据方法的参数不同来判定;方法重写的返回值类型需要相同,重写就是子类继承了父类的方法,并在此方法上重写属于自己的特征,既然是继承过来的,那么它的返回值类型就必须要相同。
10.B
11.C
解析:定义数组,等号左边不能出现数字,也就是数组的不管什么大小 ,不能出现在左边。
12.B
13.C
解析:ResultSet跟普通的数组不同,索引从1开始而不是从0开始。
14.D
解析:DynaValidatorActionForm 动态验证表单,Validation 确认。
15.BD
16.BD
17.AE
解析:线程安全的map:HashTable,SynchronizedMap,ConcurrentHashMap
18.D
19.ABCD
20.EF
解析:
定义数据类型:byte 、short 、int、 long、 float、 double、 char、 boolean、 void、 class、 interface
定义数据类型值:true、 false、 null
定义流程控制语句:if else、 switch、 case、 default、 while、 do for、 break 、continue、 return
定义访问权限修饰符:public、 protected、 private
定义继承关系:extends、 implements
定义实例对象:new 、this 、super、 instanceof
定义函数类型:static 、final、 abstract 、synchronized
处理异常:try、 catch、 finally、 throw、 throws
包:package、 import
其他的一些修饰:native 、assert 、volatile、transient
21.D
解析:int 是八大基本数据类型之一(byte,char,short,int,long,float,double,boolean)Integer 是 int 包装类;int是基本数据类型,默认值为0,Integer 是类,默认值为null;Integer 表示的是对象,用一个引用指向这个对象,int是基本数据类型,直接存储数值。
22.A
23.D
A.A,A
B.A,B
C.B,B
D.AB,B
24.C
25.C
26.C
解析:运行java命令,没有T11对应的类,会报找不到或者无法加载主类。
27.C
解析:
面向对象的五大基本原则:单一职责原则(SRP)开放封闭原则(OCP) 里氏替换原则(LSP) 依赖倒置原则(DIP) 接口隔离原则(ISP)
28.AC
29.ACD
30.BC
解析:隐藏细节是封装。
31.在使用 interface 声明一个外部接口时,只可以使用( D )修饰符修饰该接口。
A.private B.protected C.private protected D.public
解析:java限制了类或接口的声明,就仅限于public和默认。
32.下列程序段执行后t3的结果是(A)。
int t1=2, t2=3, t3;
t3=t1 A.2 B.4 C.5 D.6 解析:三目运算符t3=t1=2 33.main 方法是 Java Application 程序执行的入口点,以下描述哪项是合法的(B)。 A.public static void main() B.public static void main(String args[]) C.public static int main(String[] arg) D.public void main(String arg[]) 解析:java中的main方法,必须满足以下要求: 方法的名字必须是main,方法必须是public static void 类型的,方法必须接收一个字符串数组的参数 34.java有8种基本类型,请问byte、int、long、char、float、double、boolean各占多少个字节?B A.1 2 8 2 4 8 1 B.1 4 8 2 4 8 1 C.1 4 4 2 4 4 2 D.1 4 4 2 4 8 2 解析:byte1个字节、short2个字节、char2个字节、int4个字节、long8个字节、float4个字节、double8个字节、boolean1个字节 35.只有实现了(A)接口的类,其对象才能序列化。 A.Sertalizable B.Cloneable C.Comparable D.Writeable 解析:Serializable要实现序列化对象必须要实现的接口。 36.下列程序执行后结果为( A) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 A.Result=150Result=150 B.Result=100Result=100 C.Result=100Result=150 D.Result=150Result=100 37.定义类中成员变量时不可能用到的修饰是(B) A.final B.void C.protected D.static 解析:void是修饰方法的,没有返回值,final是修饰常量的,protected是保护的,static是静态的 38.有程序片段如下,以下表达式结果为 true 的是(B ) Float s=new Float(0.1f); Float t=new Float(0.1f); Double u=new Double(0.1); A.s==t B.s.equals(t) C.u.equals(s) D.t.equals(u) 解析: A比较的是两个对象的地址,显然不同的对象地址不同,A是false。B同属于Float对象且值相等,true。C和D比较的对象不同,false。 39.下列代码的执行结果是:( B ) 1 2 3 4 5 6 A.1和1 B.1和1.0 C.1.0和1 D.1.0和1.0 解析:100%3--int 100%3.0--double 40.一个类的构造器不能调用这个类中的其他构造器。(B ) A.正确 B.错误 41.下面程序的运行结果是(B) String str1 = "hello"; String str2 = "he" + new String("llo"); System.err.println(str1 == str2); A.ture B.false C.exception D.无输出 解析:String str1 = "hello";这里的str1指的是方法区的字符串常量池中的“hello”; String str2 = "he" + new String("llo");这里的str2必须在运行时才知道str2是什么,所以它是指向的是堆里定义的字符串“hello”,所以这两个引用是不一样的。 42.When is the text “Hi there”displayed?C 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 A)Never B )Each time a new object of type Statictest is created C Once when the class is loaded into the Java virtual machine D) Only when the maino method is executed 解析:类中静态语句块仅在类加载时被执行一次。 43.多态的表现形式有(A) A.重写 B.抽象 C.继承 D.封装 解析:一种是父类与子类之间表现-重写 还有一种是重载。 44.指出下列程序运行的结果(B) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A.good and abc B.good and gbc C.test ok and abc D.test ok and gbc 45.如果一个接口Cow有个方法drink(),有个类Calf实现接口Cow,则在类Calf中正确的是? (C ) A.void drink(){…} B.protected void drink(){…} C. public void drink(){…} D.以上语句都可以用在类Calf中 解析:子类重写父类方法时,方法的访问权限不能小于原访问权限,在接口中,方法的默认权限就是public,所以子类重写后只能是public 46.以下代码段执行后的输出结果为D 1 2 3 4 5 6 7 A.-1 B.2 C.1 D.-2 解析:取模运算,结果的符号和被除数符号一致。 47.设三个整型变量 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( A )。 A.3 B.3.5 C.4 D.5 解析:y是2,返回的结果是2+(z--/++x),再来看z--/++x,结果应该是3/2,但是因为x,y,z都是int型的,所以最后的返回值只能是int,这时候z--/++x的值就是1,那么最终的结果就是2+1=3 48.建立Statement对象的作用是?C A.连接数据库 B.声明数据库 C.执行SQL语句 D.保存查询结果 49.以下哪个不能用来处理线程安全D A.synchronized关键字 B.volatile关键字 C.Lock类 D.transient关键字 解析:synchrozied关键字称作同步,主要用来给方法、代码块加锁,被加锁的代码段,同一时间内多线程同时访问同一对象的加锁方法/代码块时,只能有一个线程执行能执行方法/代码块中的代码,其余线程必须等待当前线程执行完以后才执行该方法/代码块。 volatile关键字保证了不同线程对该变量操作的内存可见性,禁止了指令重排序.。Lock接口提供了与synchronized关键字类似的同步功能,但需要在使用时手动获取锁和释放锁。 transient关键字让某些被修饰的成员属性变量不被序列化。 50.B 解析:类的加载包括:加载,验证,准备,解析,初始化。 51.下列不正确的 Java 语言标识符是( C) A.Sky B.$Computer C.for D.NULL 标识符必须满足以下组成规则:可以由数字、字母、下划线 _ 、美元符 $ 组成;不能以数字开头,当然下划线和美元符其实是可以开头的,但不推荐;标识符不能是关键字;不能是Java内置类的名称;可以为任意长度,但必须是一个连续的词;严格区分大小。 52.当编译并运行下面程序时会发生什么结果(D) 1 2 3 4 5 6 7 8 9 10 11 A.编译错误,指明run方法没有定义 B.运行错误,指明run方法没有定义 C.编译通过并输出0到9 D.编译通过,但无输出 53.在一个基于分布式的游戏服务器系统中,不同的服务器之间,哪种通信方式是不可行的(A) A.管道 B.消息列队 C.高速缓存数据库 D.套接字 解析:要求是对于不同的服务器之间的通信,是要求全双工形式的,而管道只能是半双工,虽然可以双向,但是同一时间只能有一个方向传输。 54.对文件名为Test.java的java代码描述正确的是(C) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 A.输出:0000 B:输出:123 C.编译报错 D.输出:No name 解析:父类没有无参的构造函数,所以子类需要在自己的构造函数中显式调用父类的构造函数。 55.下面的类哪些可以处理Unicode字符?ABC A. Inputstream Reader B. Bufferedreader C. Writer D. Pipedinputstream 56.关于Java中的数组,下面的一些描述,哪些描述是准确的:( ACF ) A.数组是一个对象,不同类型的数组具有不同的类 B.数组长度是可以动态调整的 C.数组是一个连续的存储结构 D.一个固定长度的数组可类似这样定义: int array[100] E.两个数组用 equals方法比较时,会逐个便利其中的元素,对每个元素进行比较 F.可以二维数组,且可以有多维数组,都是在Java中合法的 解析:A 数组是对象,因为可以调用方法,从上面的输出结果可以看出不同类型的数组具有不同的类;B 数组长度是不能动态调整的;C Java中的数组中的数据是连续存储在一块内存中的,所以可以通过下标(即偏移量)的方式访问;E 数组的equals方法是object的equals,比较的是内存地址 58.以下哪种JAVA得变量声明方式可以避免程序在多线程竞争情况下读到不正确的值( AB ) A volatile B static volatile C synchronized D static 解析: synchronized不是修饰变量的它修饰方法或代码块或对象。 59.(不定项选择题)下列说法错误的有(ACD ) A在类方法中可用this来调用本类的类方法 B在类方法中调用本类的类方法时可直接调用 C在类方法中只能调用本类中的类方法 D在类方法中绝对不能调用实例方法 解析:A-类方法是指类中被static修饰的方法,无this指针。 C-类方法是可以调用其他类的static方法的。 60.ABE 解析:Thread可以被继承,用于创建新的线程;Number类可以被继承,Integer,Float,Double等都继承自Number类;用final关键词修饰的类就是不能继承的类;Math类的声明为 public final class Mathextends Object不能被继承;ClassLoader可以被继承,用户可以自定义类加载器。 61.在某个类A中存在一个方法:void set(int x),以下不能作为这个方法的重载的声明的是(A) A) void set(int y) B)int set(int x, double y) C) double set(int x,int y) D)void set(int x,int y) 解析:方法重载------方法名称相同,参数列表不同(可以是参数的类型,个数,顺序不同) 62.在JAVA中, 下列标识符合法的是(C) A)3kyou B)@163 C)name D) while 解析:标识符命名-----1)大驼峰式:主要针对类名,接口名。所有单词的首字母大写 2)小驼峰是:主要针对于变量名,函数名。除了第一个单词之外,其他单词首字母大写 3)常量规范:所有单词字母大写,单词与单词之间用下划线分隔 4)包名规范:所有单词字母小写,单词与单词之间用句号 . 分隔 63.下面程序段执行完成后,则变量sum的值是( B ) int b[][]={{1}, {2,2}, {2,2,2}}; int sum=0; for(int i=0;i for(int j=0;j sum+=b[i][j]; } } 解析:二维数组的遍历,每个元素之和。 64.关于类的叙述正确的是(B) A)在类中定义的变量称为类的成员变量,在别的类中可以直接使用 B) 局部变量的作用范围仅仅在定义它的方法内,或者是在定义它的控制流块中 C) 使用别的类的方法仅仅需要引用方法的名字即可 D)只要没有定义不带参数的构造函数,JVM都会为类生成一个默认构造函数 解析:A在类中定义的变量称为类的成员变量,在别的类中不可以直接使用局部变量的 ; C使用别的类的方法需要通过该类的对象引用方法的名字 ; D只要没有定义任何构造函数,JVM都会为类生成一个默认构造函数。 65.以下哪个接口的定义是正确的?( D ) A) interface B{ void print(){};} B)interface B{ static void print();} C) abstract interface B extends A1, A2//A1、A2为已定义的接口{ abstract void print(){};} D) interface B{ void print();} 解析:A,接口中方法的默认修饰符时public abstract,抽象方法可是没有方法体的,没有大括号{} ;B,JDK8中,接口中的方法可以被default和static修饰,但是被修饰的方法必须有方法体;C,接口是可以多继承的。和A选项一样,抽象方法不能有方法体。 66.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。A A.正确 B.错误 解析:所有异常都是Exception的子类。比如用Exception,因为所有异常都是Exception的子类,如果把Exception放在前边捕获,后边的catch将永远不会执行 67.Java的Daemon线程,setDaemon( )设置必须要?A A.在start之前 B.在start之后 C.前后都可以 解析:setDaemon()方法必须在线程启动之前调用,当线程正在运行时调用会产生异常。 68.AWT 中用来表示文本框的类是 ( A ) A) TextField B)Menu C) Label D)List 解析:B、Menu表示下拉菜单;C、Label表示标签 ;D、List表示列表框 69.下列java程序的输出结果为_B_。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A hello and ab B hello and cb c hello and a D test ok and ab E test ok and cb F test ok and c 70.下列方法定义中 , 正确 的是 (A) A)int x( ){ char ch='a'; return (int)ch; } B)void x( ){ ..return true; } C)int x( ){ ..eturn true; } D)int x( int a, b){ return a+b;} 解析:style="color: rgb(102,102,102);">A.Java中涉及到byte、short和char类型都可以强制转化为int,符合返回类型 A正确 ;B.方法中定义为void应该没有返回值,但返回值为boolean类型 B错;C.方法中类型为int,应该返回int类型值,但是返回值为boolean类型 C错 ;D.方法应该定义为int(int a,int b) 71.下列修饰符中,能够使得某个成员变量可被它所在包访问到和它的子类访问到的是(A ) A.protected B.public C.private D.应不加修饰符 72.下列关于一个类的静态成员的描述中,不正确的是D A该类的对象共享其静态成员变量的值 解析:静态数据成员变量的值可以修改。 73.A 是抽象父类或接口, B , C 派生自 A ,或实现 A ,现在 Java 源代码中有如下声明: 1) A a0=new A(); 2) A a1 =new B(); 3)A a2=new C(); 问以下哪个说法是正确的?( A) A第1行不能通过编译 B第1、2行能通过编译,但第3行编译出错 c第1、2、3行能通过编译,但第2、3行运行时出错 D第1行、第2行和第3行的声明都是正确的 解析:抽象类和接口都不能被实例化。 74.下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?B A.private B.无修饰符 C.public D.protected 75.要导入java/awt/event下面的所有类,叙述正确的是?(C) Aimport java.awt. *和import java. awt.event.*都可以 解析:导包只可以导到当前层,不可以再导入包里面的包中的类。 76.设有下面两个赋值语句: a = Integer.parseInt("1024"); b = Integer.valueOf("1024").intValue(); 下述说法正确的是(D) A)a是整数类型变量,b是整数类对象。 解析:parseInt得到的是基础数据类型int,valueof得到的是装箱数据类型Integer,然后再通过valueInt转换成int,所以选择D 77.关于ASCII码和ANSI码,以下说法不正确的是(D) A标准ASCII只使用7个bit 解析:A、标准ASCII只使用7个bit,扩展的ASCII使用8个bit。 C、ANSI通常使用 0x00~0x7f 范围的1 个字节来表示 1 个英文字符,即ASCII码 ;D、ASCII码包含一些特殊空字符。 78.下列哪一项不属于Swing的顶层容器?(B) A.JApplet B.JTree C.JDialog D.JFrame 解析:顶层容器是指可以不能被其他容器包含 ,是容纳其他容器的容器组件,顶层容器包含JApplet、JDialog、JFrame和JWindow及其子类.JFrame中就可以放Jtree(树形组件) 79.有如下一段代码,请选择其运行结果(C) 1 2 3 4 5 6 7 8 9 10 A.true true B.false flase C.ture flase D.flase ture 解析:判断a==MESSAGE 同一份字符串常量在内存中只有一份,是同一地址,返回true;再次比较(b+c)==MESSAGE 这相当于 new String(b+c)==MESSAGE,这里new了一个String对象,所以返回false 80.假定str0,...,str4后序代码都是只读引用。Java 7中,以上述代码为基础,在发生过一次FullGC后,上述代码在Heap空间(不包括PermGen)保留的字符数为(C) 1 2 3 4 5 6 A.5 B.10 C.15 D.20 解析:substring实际是new,5字符 ;str3和4也都是new,每个5字符 分别都会创建新的对象 ;常量池是PermGen的,因此是一共15字符 81.在 myjsp.jsp 中,关于下面的代码说法错误的是: ( A ) <%@ page language="java" import="java.util.*" errorPage="error.jsp" isErrorPage="false" %> A该页面可以使用exception对象 解析:exception是JSP九大内置对象之一,其实例代表其他页面的异常和错误。只有当页面是错误处理页面时,即isErroePage为true时,该对象才可以使用。对于C项,errorPage的实质就是JSP的异常处理机制,发生异常时才会跳转到errorPage指定的页面,没必要给errorPage再设置一个errorPage。所以当errorPage属性存在时, isErrorPage属性值为false 82.在创建派生类对象,构造函数的执行顺序(A) A基类构造函数,派生类对象成员构造函数,派生类本身的构造函数 B派生类本身的构造函数,基类构造函数,对象成员构造函数 C基类构造函数,派生类本身的构造函数,派生类对象成员构造函数 D对象成员构造函数,基类构造函数,派生类本身的构造函数 83.关于 java 的异常处理机制的叙述哪些正确?AB A不论程序是否发生错误及捕捉到异常情况,都会执行 finallys部分 B当try区段的程序发生异常时,才会执行catch区段的程序 C catch部分捕捉到异常情况时,才会执行 finally部分 D其它选项都不正确 84.关于Java以下描述正确的有( CD ) AClass类是0bject类的超类 解析:A.class类是Object的派生类B.每个类都使用Object类作为超类,而final修饰的类不能被继承D.Class类中的forName()方法返回与带有给定字符串名的类或接口相关联的Class对象(装载其他类) 85.Java 提供的事件处理模型是一种人机交互模型。它有三个基本要素(ABD) A.事件源 B.事件对象 C.事件过程 D.事件监听器 86.关于Java中的ClassLoader下面的哪些描述是错误的:( BDF ) A默认情况下,Java应用启动过程涉及三个 ClassLoader: Boostrap, Extension,System B一般的 ClassLoader情况不同装载的类是不相同的,但接口类例外,对于同一接口所有类装载器装载所获得的类是相同的 C类装载器需要保证类装载过程的线程安全 DClassLoaderloadClass的在装载一个类时,如果该类不存在它将返回null EClassLoader的父子结构中,默认装载采用了父优先 F所有 ClassLoader装载的类都来自CLASSPATH环境指定的路径 解析:B、一个类,由不同的类加载器实例加载的话,会在方法区产生两个不同的类,彼此不可见,并且在堆中生成不同Class实例。D、装载一个不存在的类的时候,因为采用的双亲加载模式,所以强制加载会直接报错java.lang.SecurityException: Prohibited package name: java.lang 。F、自定义类加载器实现 继承ClassLoader后重写了findClass方法加载指定路径上的class 87.关于身份证号,以下正确的正则表达式为( A ) A. isIDCard=/^[1-9]\d{7}(0\d)|(1[0-2]))(([0|1|2]\d|3[0-1])\d{3}$/ B. isIDCard=/^[1-9]\d{7}(0\d)|(1[0-2]))(([0|1|2]\d|3[9-1])\d{3}$/ c. isIDCard=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1]\d{4}$/ D. isIDCard=/^[1-9]\d{5}[1-9]\d{3}((9\d)|(1[0-2]))(([0|1|2]\d)|3[0-1]\d{4}$/ 88.下面几个关于Java里queue的说法哪些是正确的(AC) ALinkedBlockingQueue是一个可选有 界队列,不允许null值 解析:A、LinkedBlockingQueue是一个基于节点链接的可选是否有界的阻塞队列,不允许null值。B、LinkedBlockingQueue是一个线程安全的阻塞队列,实现了先进先出等特性。 89.以下关于Histroy对象的属性或方法描述正确的是(AD) Abcak回到浏览器载入历史URL地址列表的当前URL的前一一个URL 解析:length 返回浏览器历史列表中的URL数量。所以C中表述的长度信息是错误的。 back() 加载 history列表中的前一个URL。 forward() 加载 history 列表中的下一个URL。 go() 加载history列表中的某个具体页面。 90.以下JAVA程序的运行结果是什么( D ) 1 2 3 4 5 6 7 8 9 10 11 12 A. 1 1 B.1.0 1.0 C 1 1.0 D.1.0 0 解析:三目运算符的使用(类型转换) 91.关于finally,下面哪个描述正确? (B) A在catch块之前但在try块之后执行finally块 解析:如果try或者catch里有 System.exit(0);这段就不会执行finally;System.exit(status);这个方法是用来结束当前正在运行中的java虚拟机。 92.下面有关JDK中的包和他们的基本功能,描述错误的是C A java.awt:包含构成抽象窗口工具集的多个类,用来构建和管理应用程序的图形用户界面 解析:java.awt: 包含构成抽象窗口工具集的多个类,用来构建和管理应用程序的图形用户界面;java.lang:提供java编成语言的程序设计的基础类;java.io: 包含提供多种输出输入功能的类;java.net: 包含执行与网络有关的类,如URL,SCOKET,SEVERSOCKET;java.applet: 包含java小应用程序的类;java.util: 包含一些实用性的类 93.下列程序段的输出结果是:( B ) A.ture B.flase C.1 D.0 解析:优先级排序是:'>','<','&&','||'。 即 b=(x>50&&y>60)||(x>50&&y<-60)||(x<-50&&y>60)||(x<-50&&y<-60);x>50结果为0,x<-50结果为0,所以括号中的表达式结果都为0,四个0或的结果0。b为boolean类型,所以输出为false。 94.以下表达式的类型和值是什么?(注意整数除法)(D) 1 A.int -3 B.int -4 C.double -5.5 D.double -6.0 解析:在进行运算的时候会自动向较高级别转换 short s1= 1; s1 = s1 + 1; 这句话编译会报错,因为s1+1会自动转换成int类型进行计算,需要类型强制转换 95.下面关于构造方法的说法不正确的是 (B) A构造方法也属于类的方法,可以创建对象的时候给成员变量赋值 B构造方法不可以重载 C构造方法没有返回值 D.构造方法一定要和类名相同 解析:构造方法也是类的方法,可以在创建对象时为成员变量赋值 ;构造方法可以进行重载,但是参数列表必须不相同,不以返回值和访问级别进行区分 ;构造方法没有返回值 ;构造方法一定要与定义为public的类同名 96.Java中基本的编程单元为:A A.类 B.函数 C.变量 D.数据 97.假设 A 类有如下定义,设 a 是 A 类同一个包下的一个实例,下列语句调用哪个是错误的?(C) class A{ int i; static String s; void method1() { } static void method2() { } } A.System.out.println(a.i); B.a.method1(); C.A.method1(); D.A.method2() 解析:非静态方法只能通过实例对象来调用,不能直接通过类名调用。静态方法(static)才能通过类名直接调用. 98.以下会产生信息丢失的类型转换是( B ) A.float a=10 B.int a=(int) 8846.0 C.byte a=10; int b=-a D. double d=100 解析:会产生信息丢失不如说丢失精度,这样可能更容易明白,而精度丢失只会发生在从大范围到小范围的转换 99.假设有以下代码String s = "hello";String t = "hello";char c [ ] = {'h','e','l','l','o'};下列选项中返回false的语句是B A.s.equals(t); B.t.equals(c); C.s==t; D.t.equals(new String("hello")) 100.String str1 = “abc”,“abc”分配在内存哪个区域?C A.堆 B.栈 C.字符串常量区 D.寄存器 解析:用new创建的对象在堆区 ;函数中的临时变量在栈去 ;java中的字符串在字符串常量区 101.java Thread中,run方法和start方法的区别,下面说法错误的是B .A通过调用Thread类的start()方法来启动一个线程,这时此线程是处于就绪状态,并没有运行 B他们都可以实现了多线程运行 Crun方法是thread的一个普通方法调用 D.调用start方法后,一旦得到cpu时间片,就开始执行run()方法 102.客户端要获取一个socket对象通过实例化,而服务器获得一个socket对象则通过什么方法的返回值?A A.getRemoteSocketAddress() B.getlnputStream() C.getOutputStream() 解析:通过建立一个SocketAddress对象,可以在多次连接同一个服务器时使用这个SocketAddress对象。在Socket类中提供了两个方法:getRemoteSocketAddress和getLocalSocketAddress,通过这两个方法可以得到服务器和本机的网络地址。而且所得到的网络地址在相应的Socket对象关闭后任然可以使用。 103.默认类型等价表示是哪一项:C A.public String NAME="default"; B.public static String NAME="default"; C.public static final String NAME="default"; D.private String NAME="default"; 解析:接口中的变量默认是public static final 的,方法默认是public abstract 的 104.Which of the following can be applied to constructors:E A.final B.static C.synchronized D.native E.None of these 解析:构造方法不能被子类继承,所以用final修饰没有意义。构造方法用于创建一个新的对象,不能作为类的静态方法,所以用static修饰没有意义。此外,Java语言不支持native或synchronized的构造方法。 105.下面哪个Set类是排序的?B A.LinkedHashSet B.TreeSet C.HashSet D.AbstractSet 解析:TreeSet自然排序,LinkedHashSet按添加顺序排序 106.下面关于静态方法说明正确的是B A在静态方法中可用this来调用本类的类方法 解析:A.静态成员随类的加载而加载,这个时候对象都还没有,this代表当前对象,所以this不能用于static方法中.C还可以调用静态变量D.可以通过对象进行调用 107.以下代码段执行后的输出结果为D 1 2 3 4 5 6 7 A.-1 B.2 C.1 D.-2 解析:取模运算,余数的符号跟被除数符号相同 108.J2EE中,当把来自客户机的HTTP请求委托给servlet时,会调用HttpServlet的( A )方法 A.service B.doget C.dopost D.init 109.此代码片段输出正确的值是(A) 1 2 3 4 5 6 7 8 9 10 A.String is:g String is:g B.String is:103 String is:g C.String is:g String is:103 D.String is:103 String is:103 解析:返回的都是字符串,只有char变成 int 的时候才会变为对应的assic码 110.String s = new String("xyz");创建了几个StringObject?A A.两个或一个都有可能 B.两个 C.一个 D.三个 111.下列关于包(package)的描述,正确的是(D) A包(package)是Java中描述操作系统对多个源代码文件组织的一种方式。 解析:为了更好地组织类,Java提供了包机制。包是类的容器,用于分隔类名空间。如果没有指定包名,所有的示例都属于一个默认的无名包。Java中的包一般均包含相关的类,java是跨平台的,所以java中的包和操作系统没有任何关系,java的包是用来组织文件的一种虚拟文件系统。A错;import语句并没有将对应的java源文件拷贝到此处仅仅是引入,告诉编译器有使用外部文件,编译的时候要去读取这个外部文件。B错;Java提供的包机制与IDE没有关系。C错;定义在同一个包(package)内的类可以不经过import而直接相互使用。 112.下面有关java object默认的基本方法,说法错误的是?B Aequals(Object obj)指示某个其他对象是否与此对象“相等” 解析:Object中没有copy方法 113.以下哪项可能包含菜单条(B ) A.Panel B.Frame C.Applet D.Dialog 解析:Frame是Window的直接子类,一个Frame对象就是一个有标题有边界的顶层窗口; Panel是Container的直接子类,一个Panel对象用来添加组件和其他Panel对象的容器。 114.以下程序的输出结果为D 1 2 3 4 5 6 7 8 9 10 11 12 13 A.BD B.DB C.C D.编译错误 解析:子类构造方法在调用时必须先调用父类的,由于父类没有无参构造,必须在子类中显式调用 115.代码片段: 1 2 3 4 5 关于上面代码片段叙述正确的是(C) A.输出结果:13 B.语句:b6=b4+b5编译出错 C.语句:b3=b1+b2编译出错 D.运行期抛出异常 解析:被final修饰的变量是常量,这里的b6=b4+b5可以看成是b6=10;在编译时就已经变为b6=10了;而b1和b2是byte类型,java中进行计算时候将他们提升为int类型,再进行计算,b1+b2计算后已经是int类型,赋值给b3,b3是byte类型,类型不匹配,编译不会通过,需要进行强制转换。 Java中的byte,short,char进行计算时都会提升为int类型。 116.下列关于容器集合类的说法正确的是C A LinkedL ist继承自List BAbstractSet继承自Set CHashSet继承自AbstractSet DWeakMap继承自HashMap 解析:linkedlist类是实现了List接口,而不是继承 ;AbstractSet类实现Set接口;HashSet继承AbstractSet类,同时也实现se 117.下列选项中属于面向对象程序设计语言特征的是(ABD) A.继承性 B.多态性 C.相似性 D. 封装性 118.下面程序输出结果为(BC) public class Demo{ A程序异常,编译不通过 119.关于Java的一些概念,下面哪些描述是正确的:( BF ) A 所有的Java异常和错误的基类都是java.lang.Exception,包括java.lang.RuntimeException 解析:java异常和错误的基类Throwable,包括Exception和Error ;try...catch...finally finally不管什么异常都会执行 ;java是面向对象的,但是不是所有的都是对象,基本数据类型就不是对象,所以才会有封装类的; 如果是等待清理队列中如果又被调用,则不会执行finallize方法 ;JAVA跨平台性 ,实现在任意平台的java程序都可以在其他平台运行 120.下面有关forward和redirect的描述,正确的是(BCD) A forward是服务器将控制权转交给另外一个内部服务器对象,由新的对象来全权负责响应用户的请求
class
A {
public
int
func1(
int
a,
int
b) {
return
a - b;
}
}
class
B
extends
A {
public
int
func1(
int
a,
int
b) {
return
a + b;
}
}
public
class
ChildClass {
public
static
void
main(String[] args) {
A a =
new
B();
B b =
new
B();
System.out.println(
"Result="
+ a.func1(
100
,
50
));
System.out.println(
"Result="
+ b.func1(
100
,
50
));
}
public
class
Test3{
public
static
void
main(String args[]){
System.out.println(
100
%
3
);
System.out.println(
100
%
3.0
);
}
}
public
class
StaticTest
{
static
{
System.out.println(“Hi there”);
}
public
void
print()
{
System.out.println(“Hello”);
}
public
static
void
main(String args[])
{
StaticTest st1 =
new
StaticTest();
st1.print();
StaticTest st2 =
new
StaticTest();
st2.print();
}
}
public
class
Example{
String str =
new
String(
"good"
);
char
[ ] ch = {
'a'
,
'b'
,
'c'
};
public
static
void
main(String args[]){
Example ex =
new
Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str +
" and "
);
System.out.print(ex.ch);
}
public
void
change(String str,
char
ch[ ]){
str =
"test ok"
;
ch[
0
] =
'g'
;
}
}
public
class
Test {
public
static
void
main(String args[]) {
int
x = -5;
int
y = -12;
System.out.println(y % x);
}
}
public
class
Bground
extends
Thread{
public
static
void
main(String argv[]){
Bground b =
new
Bground();
b.run();
}
public
void
start(){
for
(
int
i=
0
;i<
10
;i++){
System.out.println(
"Value of i = "
+i);
}
}
}
class
Person {
String name =
"No name"
;
public
Person(String nm) {
name = nm;
}
}
class
Employee extends Person {
String empID =
"0000"
;
public
Employee(String id) {
empID = id;
}
}
public
class
Test {
public
static
void
main(String args[]) {
Employee e =
new
Employee(
"123"
);
System.out.println(e.empID);
}
}
57.B
public
class
Example{
String str=
new
String(
"hello"
);
char
[]ch={
'a'
,
'b'
};
public
static
void
main(String args[]){
Example ex=
new
Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+
" and "
);
System.out.print(ex.ch);
}
public
void
change(String str,
char
ch[]){
str=
"test ok"
;
ch[
0
]=
'c'
;
}
}
B静态成员变量可被该类的所有方法访问
C该类的静态方法能访问该类的静态成员变量
D该类的静态数据成员变量的值不可修改
B只能是import java.awt.*
C只能是import java.awt.event.*
Dimport java.awt.*和import java. awt. event. *都不可以
B)a是整数类对象,b是整数类型变量。.
C)a和b都是整数类对象并且它们的值相等。
D)a和b都是整数类型变量并且它们的值相等。
B在简体中文的Windows系统中,ANSI就是GB2312
CASCII码是ANSI码的子集
DASCII码都是可打印字符
public
class
StringDemo{
private
static
final
String MESSAGE=
"taobao"
;
public
static
void
main(String [] args) {
String a =
"tao"
+
"bao"
;
String b=
"tao"
;
String c=
"bao"
;
System.out.println(a==MESSAGE);
System.out.println((b+c)==MESSAGE);
}
}
static
String str0=
"0123456789"
;
static
String str1=
"0123456789"
;
String str2=str1.substring(
5
);
String str3=
new
String(str2);
String str4=
new
String(str3.toCharArray());
str0=
null
;
B该页面发生异常会转向error.jsp
C存在errorPage属性时,isErrorPage 是默认为false
D ) error.jsp 页面一定要有isErrorPage属性且值为true
BObject类是一个final类
CString类是一个final类
DClass类可以装载其它类
BPriorityQueue,LinkedBlockingQueue都是线程不安全的
CPriorityQueue是一个无界队列, 不允许nulI值,入队和出队的时间复杂度是0 (log(n))
DPriorityQueue,ConcurrentLinkedQueue都遵循FIFO原则
C、PriorityQueue是一个***队列,不允许null值,入队和出队的时间复杂度是O(log(n))。D、PriorityQueue是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素。ConcurrentLinkedQueue是一个基于链接节点的***线程安全队列,该队列的元素遵循FIFO原则。
Bgo表示刷新当前页面
Clength保存历史URL地址列表的长度信息
Dforward转到浏览器载入历史URL地址列表的当前URL的下一个URL。
public
static
void
main(String[] args) {
Object o1 =
true
?
new
Integer(
1
) :
new
Double(
2.0
);
Object o2;
if
(
true
) {
o2 =
new
Integer(
1
);
}
else
{
o2 =
new
Double(
2.0
);
}
System.out.print(o1);
System.out.print(
" "
);
System.out.print(o2);
}
Bfinally块会被执行无论是否抛出异常
C只有在执行catch块之后才执行finally块
D都不是
Bjava.io:包含提供多种输出输入功能的类
Cjava.lang:包含执行与网络有关的类,如URL,SCOKET, SEVERSOCKET
D java.util:包含一些实用性的类
public void complicatedexpression_r(){
int x=20, y=30;
boolean b;
b = x > 50 && y > 60 || x > 50 && y < -60 || x < -50 && y > 60 || x < -50 && y < -60;
System.out.println(b);
}
-
5
+
1
/
4
+
2
*-
3
+
5.0
public
interface
IService {String NAME=
"default"
;}
B在静态方法中调用本类的静态方法时可直接调用
C在静态方法中只能调用本类中的静态方法
D在静态方法中绝对不能调用实例方法
public
class
Test {
public
static
void
main(String args[]) {
int
x = -5;
int
y = -12;
System.out.println(y % x);
}
}
public
class
CharToString {
public
static
void
main(String[] args)
{
char
myChar =
'g'
;
String myStr = Character.toString(myChar);
System.out.println(
"String is: "
+myStr);
myStr = String.valueOf(myChar);
System.out.println(
"String is: "
+myStr);
}
}
B import语句将所对应的Java源文件拷贝到此处执行。
C包( package)是Eclipse组织Java项目 特有的一种方式。
D定义在同一个包( package)内的类可以不经过import而直接相互使用。
Bcopy()创建并返回此对象的一个副本
Cwait()导致当前的线程等待,直到其他线程调用此对象的notify()方法或notifyAll()方法
DtoString()返回该对象的字符串表示
class
Base{
public
Base(String s){
System.out.print(
"B"
);
}
}
public
class
Derived
extends
Base{
public
Derived (String s) {
System.out.print(
"D"
);
}
public
static
void
main(String[] args){
new
Derived(
"C"
);
}
}
byte
b1=
1
,b2=
2
,b3,b6;
final
byte
b4=
4
,b5=
6
;
b6=b4+b5;
b3=(b1+b2);
System.out.println(b3+b6);
public static void main (String [] args) {
String lx = “LeXin”;
String nb = lx;
lx = “Fenqile”;
System.out.println(nb);
}
}
B程序编写正常,可正常运行
C程序输出值为"LeXin”
D程序输出值为"Fenqile"
B通过try .. catch .. finally语句,finally中的语句部分无论发生什么异常都会得到执行
Cjava中所有的数据都是对象
D Java通过垃圾回收回收不再引用 的变量,垃圾回收时对象的finallize方法一定会得到执行
E Java是跨平台的语言, 无论通过哪个版本的Java编写的程序都能在所有的Java运行平台中运行
FJava通过synchronized进行访问的同步,synchronized作用非静态成员方法和静态成员方法上同步的目标是不同的
B执行forward时,浏览器不知道服务器发送的内容是从何处来,浏览器地址栏中还是原来的地址
C执行redirect时,服务器端告诉浏览器重新去请求地址
D forward是内部重定向,redirect是外部重定向
Eredirect默认将产生301 Permanently moved的HTTP响应