java第一阶段测评(1)

java 第一阶段测评(1)

1、下面程序的运行结果为:
public class Test{
	public static void main(){
        int a = 11, b = 20;
        if(a-- == 10 && b++ == 21){
            System.out.println("ok");
        }
        System.out.println("a=" + a);
        System.out.println("b=" + b);
	}
}
2、什么是方法的重载和方法的重写,重写和重载对方法的返回值和修饰符分别有什么要求?

​ 重载:发生在同一类中,方法名相同,参数列表不同(参数类型、参数个数、参数顺序),而对返回值和修饰符无关。
​ 重写:发生在子父类之间和接口与其实现类的之间,方法名相同,参数列表相同,而一大两小(修饰符要大于等于,返回值以及返回类型要小于等于)。

3、以下代码是否报错,如果有报错请指出哪一行会编译时报错,并说出原因,如果没有直接写出结果即可
1                    public class Test{
2                       public static void main(String... args){
3                           short a = 1,b = 2;
4                           a = a+1;//编译报错
5                           b++;
6                           ++(b++);//编译报错
7                           System.out.println(a);
8                           System.out.println(b);
9                       }
10                   }
4、将以下两个数进行交换位置(不允许使用中间变量,至少写出两种方案)
int a = 10, b = 11;
5、请写出下面程序的结果。
class A{
	private String name = "小李";
	
	public A(){
		System.out.println(getName1());
		System.out.println(getName2());
	}
	public String getName1(){
		return name;
	}
	public String getName2(){
		return name;
	}
}

public class Test extends A{
	private String name = "小红";
	public Test(){
		System.out.println(getName1());
	}
	public String getName1(){
		return name;
	}
	
	public static void main(String[] args) {
		new Test();
	}
}
6、下面程序结果是什么?
Integer a = 127;
Integer b = 125;
Integer c = 2;
Integer d = b + c;
Integer f = 128;
Integer g = 128;
System.out.println(d == a);
System.out.println(f == g);
7、拥有静态成员内部类一定是静态内部类吗?如果不是请举例说明。
8、抽象方法是否可以被static关键词修饰,如果可以请说明原因,不可以也请说明原因。

​ 不可以,因为如果可以,那么就可以通过类名去调用,而抽象方法没有方法体无法去执行该抽象方法 。或者 抽象方法就是用来被子类重写的,而静态方法不能够被重写,所以冲突。

9、在java中什么是泛型的上限和下限,请使用List接口申明局部变量的方式来说明问题。

下限:List<? super String> list = new ArrayList<>(); 泛型只能为:String以及String的父类

上限:List<? extends String> list = new ArrayList<>(); 泛型只能为 String或者String的子类

10、抽象类中是否允许构造器的重载,接口是否允许构造器的重载,接口中是否允许存在静态方法或者default修饰的方法。
11、请对下面的数组进行扩容(注意:最终要的是扩容后的原数组),要求是原来的2倍(不可使用*2操作或arr.length+arr.length)。
int[] arr = {3,4,6,8};
12、下列程序在①处是否会发生异常,如果没有,输出是什么?是否会运行到②处,如果会,输出的是什么?是否会运行到③处,如果会,输出的是什么?为啥会有这样的结果。
public class TestClass{
	public static void main(String... args){
		List list = new ArrayList();
		test1(list);
		System.out.println(list.size());//①处
		test2(list);
		System.out.println(list.size());//②处
		list = test3(list);
		System.out.println(list.size());//③处
	}
	public static void test1(List list){
		list = null;
	}
	public static void test2(List list){
		list.add("aaaa");
	}
	public static List test3(List list){
		return list = null;
	}
}
13、java中常见的类加载器有哪些,他们的作用分别是什么?
  • 引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的,并不继承自 java.lang.ClassLoader
  • 扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。Java 虚拟机的实现会提供一个扩展库目录。该类加载器在此目录里面查找并加载 Java 类。
  • 系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类。一般来说,Java 应用的类都是由它来完成加载的。可以通过 ClassLoader.getSystemClassLoader() 来获取它。
14、假如T1线程和T2线程出现死锁的状况,那么请说明该状态下,线程和锁的持有情况。
15、下面程序的运行结果为多少?
public static main(String... args){
	System.out.println(result());
}

public static int result(){
	try{
		return 1;
	}catch(Exception e){
		return 2;
	}finally{
		return 3;
	}
}
16、== 与 equals 的区别是什么?

“==” 是关系运算符,而“equals”是方法

“==”比较的是相同基本数据类型之间的值,以及相同引用类型之间的地址值。比较不同类型时编译不通过:Incompatible operand types int and String。

而“equals()”方法,在两个相同引用类型没有重写Object中的equals()时,会之间调用Object的equals()代码如下:

public boolean equals(Object obj) {
        return (this == obj);
    }

可见比较的地址值。而被重写之后要按照(String和Integer等基本数据的包装类中都有重写过equals()进行相应的内容比较)自己重写的内容进行比较。代码案例如下:

@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Student other = (Student) obj;
		if (age != other.age)
			return false;
		if (gender == null) {
			if (other.gender != null)
				return false;
		} else if (!gender.equals(other.gender))
			return false;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		return true;
	}
17、请写出获取一个类类型的Class对象的几种方式?基本数据类型可以获取其Class对象吗?请举例说明。
18、字符类关系中,创建子类对象就会调用父类的构造方法,请问调用父类构造方法一定会创建父类对象吗?请举例说明。
19、创建对象一定会调用构造方法吗?如果是直接写出结果即可,如果不是请举例说明。
20、请写出几个常见的编译时异常和运行时异常?

编译时异常:

运行时异常:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值