阅读下面一段代码,代码的输出结果是()
Integer in1 = new Integer(10);
Integer in2 = new Integer(10);
Integer in3 = 10;
Integer in4 = 10;
System.out.print(in1 == in2);
System.out.print(in1 == in3);
System.out.print(in3 == in4);(1分)
A.falsefalsetrue
B.truetruetrue
C.falsefalsefalse
D.falsetruefalse
若为 System.out.println(in1.equals(in2));,则显示true
用new Integer()的时候,java并没有调用valueOf()方法,也就是并没有进行自动装包,而只是单纯的new了两个Integer对象。所以==判断为false,equals判断为true
已知String s=“abcdefg”,则s.substring(2,5)的返回值为()
A、“bcde”
B、"cde"
C、“cdef”
D、“def”
String s(int begin,inr end)//返回一个新字符串,包括头不包括尾,字符串的第一位是0
假如indexOf()方法未能找到所指定的子字符串,那么其返回值为( )
A、false
B、0
C、-1
D、以上答案都不对
int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。
int indexOf(String str, intstartIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。
如果在指定的索引位置之后没有找到子字符串,则返回-1。如果子字符串为空字符串或者搜索索引超出了字符串的长度,则返回字符串的长度
3、下列选项中,哪个是程序正确的输出结果?()
class StringDemo{
public static void main(String[] args){
String s1 = “a”;
String s2 = “b”;
show(s1,s2);
System.out.println(s1+s2);
}
public static void show(String s1,String s2){
s1 = s1 +”q”;
s2 = s2 + s1;
}
}
A、ab
B、aqb
C、aqbaq
D、aqaqb
System类的getProperties()方法的作用是()
A、获取当前的操作系统的属性
B、获取当前JVM的属性
C、获取指定键指示的操作系统属性
D、获取指定键指示的JVM的属性
下列对于Runtime的描述中,正确的是( )
A、每一个Java应用程序运行时都产生一个Runtime类实例
B、Runtime实例可以将应用程序和运行环境相结合
C、Runtime类有构造函数
D、Runtime实例需要被创建后才可以通过getRuntime()方法获取
3、若double val = Math.ceil(-11.9);,则val的值是( )
A、11.9
B、-11.0
C、-11.5
D、-12.0
Math.ceil(x);向上取整
Math.floor(x);向下取整
2、下列选项中,关于包装类描述错误的是()
A、包装类的作用之一就是将基本类型包装成引用类型
B、包装类它可以完成在基本类型与String类型之间的转换
C、包装类一共有八个,对应的基本数据类型
D、我们可以继承包装类,以完成自定义包装
2-22
下列不可作为java语言标识符的是()。(1分)
A.a2
B.$2
C._2
D.22
标识符必须以字母、下划线、美元符号开头($、_)。
标识符可以由字母、数字、下划线、美元符号($、_)组成。
标识符不能是 JAVA 中的关键字。
标识符不能以数字开头。
下面的方法,当输入为2的时候返回值是多少?( )
public int getValue(int i) {
int result = 0;
switch (i) {
case 1:
result = result + i;
case 2:
result = result + i * 2;
case 3:
result = result + i * 3;
}
return result;
}
A.0
B.2
C.4
D.10
case 2后面没有break,继续往下运行,即result=0→0+2*2=4→4+2*3=10
修饰符总结
类别 | 访问修饰符 | 非访问修饰符 |
类修饰符 | public (公共类修饰符 | abstract (抽象类修饰符 抽象方法必须要有抽象符,在修饰类时必须放在类名前 声明抽象方法不可写出大括号、不能实例化 |
final (最终类,不能被继承 | ||
属性修饰符 | public、 private、 protected | static(静态域修饰符 )、 final 、 volatile 、 transient |
方法修饰符 | public 、 private、 protected 、 默认修饰符 | abstract(抽象方法控制符,只有方法的定义而没有方法体和操作实现)、static、 final、 native 、synchronized |
类方法中不能出现this或者super关键字;
在定义一个类的成员时,可以使用private(私有修饰符)、protected(保护访问修饰符)、public(权限修饰符)等关键字说明这个成员的访问权限。
最终方法:final void A(){
}
最终类:final class A {
}
注意:
public :公开;可以被所有其他类所访问。
private:私有;只能被自己访问和修改。仅修饰内部类
protected:保护;自身、子类及同一个包中类可以访问。
当类中的一个成员方法被下面哪个修饰符修饰后,该方法只能在本类中被访问
A. public
B. private
C. final
D.default
下列关于static的说法不正确的是
A. 可以定义静态方法,但不能定义静态变量
B. class前不可以是用static作为修饰符
C. static可以把普通的成员方法变为一个静态方法
D. static可以把一个普通方法变为一个类方法
下面关于import,class和package的声明顺序哪个是正确的 A
A. package,import,class
B. class,import,package
C. import,package,class
D. package,class,import
下列哪种说法是正确的
A. 实例方法可直接调用超类的实例方法
B. 实例方法可直接调用超类的类方法
C. 实例方法可直接调用其他类的实例方法
D. 实例方法可直接调用本类的类方法
你怎样强制对一个对象立即进行垃圾收集?(1分)
A.调用 System.gc()
B.调用System.gc(), 同时传递要进行垃圾收集对象的引用
C.调用 Runtime.gc()
D.给这个对象的所有引用设置一个新的值(例如null)
E.垃圾收集是不能被强迫立即执行
垃圾收集:检查并释放不再使用的内存
这个过程是自动的,我们不能指定收集哪些内存,也不清楚具体的回收时间
只能通过System.gc建议执行
下面关于Java的引用的说法正确的是__
A.引用实际上就是指针
B.引用本身是原始类型(primitive type)
C.引用就是对象本身
D.一个对象只能被一个引用所指示
5、在Servlet处理请求的方式为?
A.以进程的方式
B.以程序的方式
C.以线程的方式
D.以响应的方式
13、以下关于异常的说法正确的是
A. 一旦出现异常,程序运行就终止了
B. 如果一个方法申明将抛出某个异常,它就必须真的抛出那个异常
C. 在catch子句中匹配异常是一种精确匹配
D. 可能抛出系统异常的方法是不需要申明异常的
重载&重写
重载Overloading | 重写Overiding |
方法名称相同 | 方法名称相同 |
列表参数类型、个数、顺序不同 | 参数列表相同 |
与返回值无关,可以相同可以不同 | 返回值类型相同 |
发生在一个类中 | 发生在继承类中 不能发生在同类中,只能发生在子类中 |
构造方法可以重载但不能重写,构造方法也不能被继承
下面哪个函数是public void aMethod(){...}的重载函数?( )(1分)
A.void aMethod( ){...}
B.public int aMethod(){...}
C.public void aMethod ( ){...}
D.public int aMethod ( int m){...}
下列方法头中哪一个不与其他方法形成重载(overload)关系?( )
A.void mmm()
B.void mmm(int i)
C.void mmm(String s)
D.int mm()
一个类在重写其父类的某个方法时,在重写方法的定义中,哪个部分可以与父类被重写方法的定义不同?
A.访问修饰符
B.方法名
C.返回值类型
D.方法形参
在某个类中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是( )(1分)
A.public get (float x)
B.int getSort(int y)
C.double getSort(int x,. int y)
D.void get(int x, int y)
编译并运行以下程序,以下描述哪个选项是正确的( )
class A{
protected boolean equals(){
return super.equals();
}
}
A.编译通过运行无异常
B.编译通过但运行时出错
C.行2出错,不能成功编译
D.不能成功编译,行3出错
要产生[20,999]之间的随机整数使用哪个表达式? ( )
A.(int)(20+Math.random()*97)
B.20+(int)(Math.random()*980)
C.(int)Math.random()*999
D.20+(int)Math.random()*980
Math.random():返回一个浮点数,伪随机数在范围从 0 到 小于 1
在Java中,能实现多重继承效果的方式是( )。
A.接口
B.继承
C.内部类
D.适配器
下面的概念,哪个不是关于对象的多态性的体现。
A.方法的重载
B.方法的继承
C.方法的覆盖
D.对象的上、下转型
面向对象的三大特性:封装、继承、多态。
多态:允许不同类的对象对同一消息做出响应。
→作用:消除类型之间的耦合关系。
→多态存在的三个必要条件:1、要有继承;2、要有重写;3、父类引用指向子类对象。
在使用super 和this关键字时,以下描述正确的是
A.在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
B.this()和super()可以同时出现在一个构造函数中
C.super()和this()不一定要放在构造方法内第一行
D.this()和super()可以在static环境中使用,包括static方法和static语句块
20.面向对象程序设计方法的优点包含:
A.可重用性
B.可扩展性
C.易于管理和维护
D.简单易懂