后台组第一次考核总结

一.选择题

1.几种类型的数组及默认值

类型默认值
int0
double,float0.0
boolenfalse
char0或’\u’
类,数组接口null

2.
①接口中的方法默认并不都是静态的也有非静态的例如(public,abstruct)
②抽象方法必须在抽象类中,但是抽象类中可以没有抽象方法
③接口中的方法默认是public,abstract方法
④接口中的属性,都是静态变量
⑤类在实现接口的方法时,必须显示地使用public修饰符

4.
①构造方法的作用是为创建对象进行初始化工作,比如给成员变量赋值
②一个Java类必须有构造方法,就算没有写,也有系统默认的构造方法
③构造方法与类同名,不能书写返回值类型
④this关键字指向当前对象自身,super关键字指向当前对象的直接父类

8.
下题的输出结果是(D)
public static void main(String[] args) {
Integer a = 128, b = 128;
Integer c = new Integer(127);
Integer d = new Integer(127);
System.out.println(a == b);
System.out.println(c == d);
}
A.false,true B.true,true
C.编译错误 D.false,false

①integer为引用数据类型,==比较的是两者的地址,a和b并没有指向同一个空间,地址值不相同
②c和d都分别开辟了新的空间,它们也并没有指向同一个空间,因此地址值也不相同 因此答案都为false

9.
关于下列代码的执行顺序,下面描述正确的有哪些选项( )
在这里插入图片描述A.打印顺序A的静态代码块> A的构造函数
B.打印顺序A的静态代码块> A的构造代码块
C.打印顺序A的构造代码块> A的构造函数
D.打印顺序A的构造函数> A的构造代码块

①静态代码块的执行要优于非静态代码块的执行,因此A,B正确
②非静态代码块,在创建类对象时执行,不创建对象时不执行
③ 执行顺序非静态代码块>构造函数 因此c正确,D错误

10.

①子类能继承父类的所有成员
②子类继承父类以后,子类就继承了父类中所有的属性,方法
③父类中声明为private的属性或方法,子类继承父类以后,仍然认为获取了父类中私有的结构


二.填空题

1.遍历数组有两种方法

①for循环遍历
②tostring()方法遍历数组

2.int c=2|3,c的值为3

2的2进制为10,3的2进制为11
当同为1时结果为1,1|0为1,同为0时为0
则结果为11,转化成十进制结果为3

4.
2.下面程序___是__(是/否)出错
如果没出错,输出内容_____,(如果出错,错误的有____2____行。)

public class Main {
    public void static main(String[] args){
        Student s = new Student();
        s.name = "Hellen";
        System.out.println(s);
    }
}
class Student{
    private String name;
    private int age = 1;

    public Student(){}

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" + name + '-' + age + '}';
    }

①错误的为第二行,应该改为public static void main(String[] args)
②第四行也出现了错误,name的权限修饰符为private,不能进行赋值操作

5.
public static int divide(){
int i = 3;
try {
int a = 10/0;
return i;
} catch (Exception e) {
i = 4;
return i;
}finally{
i = 5;
}
}
运行结果为____4_

①若try中没有出现异常,则返回try中的值
②若出现异常进入catch中,返回catch中的值,但要注意是否有finally,如果有finally并且有return,则一定执行finally中的值
③若有finally但没有return(返回的值),就返回catch中return的值

6.
6.下列程序输出结果分别为____ ____
String s1 = “abc”;
String s2 = “abc”;
String s3 = new String(“abc”);
System.out.println(s1 == s2);
System.out.println(s1.equals(s3));

①string是一个特殊的引用类型。对于两个字符串的比较,不管是 == 和 Equals 这两者比较的都是字符串是否相同
② 由于字符串的内容相同,所以==或者equals的值都为真

8.
8.写出下列代码的运行结果______1a2b2b______
class A {
static {
System.out.print(“1”);
}
public A() {
System.out.print(“2”);
}
}

class B extends A{
static {
System.out.print(“a”);
}
public B() {
System.out.print(“b”);
}
}
public class Test2 {
public static void main(String[] args) {
A ab = new B();
ab = new B();
}
}

①执行A ab=new B()这个语句时,先执行父类,B继承A相当于,A为B的父类,先执行静态语句再执行非静态的语句,再执行非静态的构造函数,得出1a2b
②再执行ab=new B(),由于B的构造函数继承于A,应该先执行public A(),再执行public
B(),得出2b


三.简答题

1.
Java 中的几种基本数据类型是什么?默认值分别是多少?各自占用多少字节呢?对应的包装类型是什么?

基本数据类型包装类
floatFloat
byteByte
charCharacter
intInteger
shortShort
longLong
booleanBoolean
doubleDouble

占用字节数:
①float(4)
②double(8)
③byte(1)
④int(4)
⑤long(8)
⑥char(2)
⑦short(2)

2.==与equals的区别


equals是判断两个变量或者实例指向同一个内存空间的值是不是相同,只能比较引用数据类型,默认比较的是地址,需要比较值的话需要重写equals方法

==是判断两个变量或者实例是不是指向同一个内存空间,比较基本数据类型比较的是值,比较引用数据类型的时候比较的是地址

1、基本数据类型比较
  ==和Equals都比较两个值是否相等。相等为true 否则为false;
2、引用对象比较
  ==和Equals都是比较栈内存中的地址是否相等 。相等为true 否则为false;

注意:
1、string是一个特殊的引用类型。对于两个字符串的比较,不管是 == 和 Equals 这两者比较的都是字符串是否相同;
2、当你创建两个string对象时,内存中的地址是不相同的,你可以赋相同的值。所以字符串的内容相同。引用地址不一定相同,(相同内容的对象地址不一定相同),但反过来却是肯定的;
3、基本数据类型比较(string 除外) == 和 Equals 两者都是比较值;

3.
面向对象程序的三个特征是什么?并谈谈自己对面向对象的理解。

①面向对象的三个特征为:封装性,继承性,多态性
②面向对象:面向对象是向现实世界模型的自然延伸,这是一种“万物皆对象”的编程思想。在现实生活中的任何物体都可以归为一类事物,而每一个个体都是一类事物的实例。面向对象的编程是以对象为中心,以消息为驱动,所以程序=对象+消息。

4.
构造方法的特点:

1:方法名称和类同名
2:不用定义返回值类型
3:不可以写retrun语句
4:构造方法可以被重载
5:构造方法不能被继承
6:构造方法不能手动调用,在创建类实例的时候自动调用构造方法

①构造器是不能被继承的,因为每个类的类名都不相同,而构造器名称与类名相同,所以根本谈不上继承。
②由于构造器不能继承,所以就不能被重写。但是,在同一个类中,构造器是可以被重载的。

5.
this和super关键字的作用

1.属性的区别:
this访问本类中的属性,如果本类没有此属性则从父类中继续查找。super访问父类中的属性。
2.方法的区别:
this访问本类中的方法,如果本类没有此方法则从父类中继续查找。super访问父类中的方法。
3.构造的区别:
this调用本类构造,必须放在构造方法的首行。super调用父类构造,必须放在子类构造方法首行。
4.其他区别:
this表示当前对象。super不能表示当前对象
A、this. 变量和super.变量
this.变量 调用的当前对象的变量;
super.变量 直接调用的是父类中的变量。
B、this(参数)和super(参数)方法
this(参数) 调用(转发)的是当前类中的构造器;
super(参数) 用于确认要使用父类中的哪一个构造器。

6.成员变量与局部变量的区别

(1)在类中的位置不同
成员变量:类中方法外
局部变量:方法定义中或者方法声明上
(2)在内存中的位置不同
成员变量:在堆中
局部变量:在栈中
(3)生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
(4)初始化值不同
成员变量:有默认值
局部变量:没有默认值,必须定义,赋值,然后才能使用

7.&与&&的区别

①&&具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式以及后面的表达式。(如果遇到true就一直向下判断条件直到遇到false的表达式返回)
②&不具有短路的功能,逻辑运算表达式条件都会执行
则&左边为真时继续执行右边的运算,&&左边为真时不再执行右边的运算
③&还是按位与,1&1=1,1&0=0,0&0=0

9.重载和重写的区别

①方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。
②重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。
③重载对返回类型没有特殊的要求,不能根据返回类型进行区分

override(重写)

1、方法名、参数、返回值相同。

2、子类方法不能缩小父类方法的访问权限。

3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。

4、存在于父类和子类之间。

5、方法被定义为final不能被重写。

overload(重载)

1、参数类型、个数、顺序至少有一个不相同。

2、不能重载只有返回值不同的方法名。

3、存在于父类和子类、同类中。


四.反思

暑假进行的Java学习只是单一的看视频做笔记,并且没有持续且专注的看视频,没有及时的复习之前学过的知识,导致考核时有多知识点不记得,或者知识点很混乱。需要在之后的学习中多敲代码去实践,而不是单纯的看理论知识,多复习之前学过的知识,尽快赶上大家的进度,并且补上之前遗忘的知识点。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值