java题总结(二)

45.可变长参数如何使用,写法上有什么要求?
要求在参数列表中只能有一个,并且必须在参数列表的最后一个
46.值传递和引用传递的区别?
值传递:当我们传入的参数是基本数据类型的时候,传入的是值的副本(值的拷贝),不会对原来的值发生改变
引用传递:当我们传入的参数是引用数据类型的时候,传入的是栈内存的地址,等同于我们直接操作的是当前地址的内容,所以会改变原来的值。
47.书写调试的步骤?
打断点、debug、step over(F6)
48.Arrays类toString方法的作用
将数组打印出来转换为字符串的形式
49.类和对象的关系?
类是对象的抽象
对象是类的具体
50.什么是属性和方法?
属性是对象共有的特征
方法是对象共有的行为
51.普通方法的定义格式
访问修饰符+返回值类型+方法名称
52.怎样创建对象?
类名 对象名= new对象名();
53.怎么访问对象的属性和方法?
对象名+. 访问对象的属性和方法
54.main方法能够直接调用对象吗?
不能直接调用,需要先创建对象,静态方法不能直接访问非静态的属性和方法
55.局部变量和实例变量的区别?
局部变量:定义在方法中,只能在方法中生效,基本数据类型存在栈中,没有默认值
实例变量:属性,直接定义到类中,本类可以访问,有默认值和数组一样。
56.this字节可以访问那些内容,如何访问?
属性:this.属性名
方法:this.方法名
构造方法:this(形参列表)
57.封装的作用,实现封装的步骤?
更好的使用系统,防止错误的修改属性,降低构建大型系统的风险,降低程序的耦合度。
属性私有
方法公开
58.封装中的get和set方法分别作用?
get:获取信息
set:设置值
59.String name; int age;书写实现封装及构造方法?

private String name;
private int age;
public void setName(String name){
This.name= name;
}
public String getName(){
Return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
public 类名(String name,int age){
this.name = name;
this.age = age;
}
public 类名(String name){
this.name= name;
}
public 类名(int age){
this.age = age;
}

60.如何在一个类中访问不同包的类?
使用全部限定名,包名+类名
61.类的访问修饰符,分别代表什么意思?
public:表示在本项目中都可以访问
默认不写:同包中可以访问
62.类的成员访问修饰符有哪些,分别代表什么意思?
private:本类中
默认:本包中
protected 同包+不同包的子类
public 本项中
63.static修饰的成员变量有什么特点,如何访问?static修饰的方法与普通方法有什么区别?static修饰的代码块
不依托于任何对象存在,在内存中只有一份拷贝,类名调用。
静态方法,通过类名直接调用
代码块:在加载类的时候执行,多个代码块按照顺序执行,并且只执行一次
64.静态变量与非静态变量在使用上有什么区别?
静态变量在本类中可以直接访问或者类名+.访问,在非本类中通过类名+.访问。
实例属性在本类或者非本类的静态方法都必须创建对象,通过对象名名访问,实例属性在普通方法中直接访问。
65.实例变量与静态变量的区别?
实例变量每创建一个对象,在内存中就有一份拷贝,多个对象互不影响
静态变量在内存中只有一份拷贝,供多个对象使用,节省多个内存空间
66.构造方法的写法?
访问修饰符+类名
67.分别说明方法重载和方法重写的区别?
方法重载:
同一个类中,方法名称相同,参数类别不同(个数、顺序、类型),跟返回值和访问修饰符无关
方法重写:
存在于父子类中,方法名称相同,参数列表相同,返回值相同或者是其子类,访问权限不严于父类,不能抛出比父类更多的异常。
68.静态方法如何访问?
本类中:直接访问
非本类:类名+.方法名
69.能不能在静态方法中使用super和this关键字
不能,因为在静态方法存在的时候,对象还未存在,而this代表当前对象,super代表父类对象
70.java支持多继承吗?
不支持,单根继承,一个接口继承多个接口从而实现java的多继承
71.Instanceof关键字的作用,比如a instanceof b?
判断a是否属于b类的实例(对象)
72.子类可以继承父类的那些内容?
public修饰的属性和方法
默认修饰的属性和方法,要求父子类在同包
protected修饰的属性和方法
73.三目运算符的写法?
布尔?变量1:变量2
74.Object类中的toString方法的作用是什么?我们为什么要重写?
包名+类名@16进制hash值
需要打印的属性和属性值
75.Object类中的equals方法本身的作用是什么,跟String类中的equals有什么区别?
equals本身也比较地址
String类比较内容
76.为什么要重写equals必须要重写hashcode?
因为在一些数据结构中,equals比较两个相同的对象,hash值必须一样。
77.继承实现多态的主要形式?
父类作为形参,父类作为返回值。
78.如果引用数据类型强转错误,将会出现什么异常?
ClassCastException
79.现有子类Cake父类Food,分别书写向上转型和向下转型,向上转型和向下转型可以调用那些方法?
Food food = new Cake();向上
Cake cake = (Cake)food;向下
80.==和equals的区别?
==比较基本数据类型,比较的是值
==比较引用数据类型,比较的是地址
Equals本身也比较地址,String类对其进行了重写,重写比较字符串的内容。
81.请写出抽象类的所有特点?
抽象方法使用abstract修饰,没有方法体
抽象方法必须存在于抽象类中
抽象类不能直接实例化,不能直接new对象,必须通过new子类的方式来实例化,向上转型的方式
子类必须实现父类的抽象方法,除非子类也是抽象类
子类可以选择是否重写父类的非抽象(普通方法)方法
抽象类中可以有构造方法,是给子类使用的
抽象类可以有普通属性,普通的方法,静态方法,使用方式和之前的一样。
82.写出接口的所有特点,分别标明1.7和1.8?
JDK7
接口中不能定义普通方法,接口的所有属性默认都是public static final修饰的
接口中的方法都是抽象方法,默认都是public static修饰的(不能写普通方法,不能写静态方法)
接口不能直接new对象,不能直接实例化,必须通过new子类的方式实例化
JDK8在原来JDK7的基础上
可以写普通方法,使用default关键字修饰,加载访问权限之后,返回值之前
也可以书写静态方法
83.接口和抽象类的区别是什么?什么场景使用哪个?
接口可以继承多个接口,类可以实现多个接口,只能继承一个抽象类
抽象类可以有普通方法,接口只能有抽象方法
都不能实例化
A 抽象类可以有普通属性,接口只有静态常量
B 抽象类可以有构造方法,接口不能有构造方法
C 抽象类可以有普通方法和静态方法,接口只有在JDK8开始才支持使用default关键字声明方法和静态方法
D 抽象类是extends继承,接口是implements实现
E 只能继承一个类,接口可以实现多个接口
F 抽象类中方法必须使用abstract修饰,接口中默认都是public abstract修饰的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值