Java基础50问与答
来源:互联网 发布:js格式化代码插件 编辑:程序博客网 时间:2024/06/06 00:26
1、什么是面向对象?什么是面向过程?
面向对象:最小单元应该是类
最小单元是方法,由方法组成的程序
2、什么是面向对象的三大特征?
封装,继承,多态
private extends 父类的变量接收子类对象
3、在Java中是否可以直接访问类?为什么?
类是不能直接访问的,但是可以获取对象,根据对象来运行类中方法等。
静态属性,可以没有对象的基础上,直接调用类的静态属性和静态方法。
4、成员变量和局部变量是否可以默认初始化?不同类型的变量默认初始化的值是什么?
成员变量可以
局部变量不可以默认初始化,必须显式的赋值
int 0
byte 0
short 0
long 0L
float 0.0F
double 0.0
char \u0000 ''
boolean false
引用(String ,数组,对象) null
-------------------------------------------
5、局部变量的赋值不一定非要在声明变量时进行,只要在调用变量前完成就可以,这句话对么?
对 int i; i=100; System.out.println(i);
6、this关键字在什么情况下使用?
当在一个方法内部、局部变量和成员变量发生命名的冲突的时候,使用this,代表类所产生的对象
7、包有什么作用?
多人开发,避免类名的冲突的解决机制
package 打包
import 导包
8、什么是静态引入?
可以再导入包的时候将某一个类中所有的static的成员一次性引入。可以在调用的静态的方法和属性,不需要类名
import static 包.类.*;
9、类有几种访问你权限?成员变量和方法有几种访问权限?分别代表什么含义?
类有两种 public 默认
成员属性和方法有 4种
public
protected
默认
private
10、一个文件中是否可以有多个类? 可以,但是实际开发的时候,不建议
一个文件中是否可以有多个public类?不可以,一个文件有且只能有一个public类
文件名是否可以和类名不一致? 可以
声明包的语句是否必须放在程序的第一句?是
导入包的语句是否可以放在第一句?先打包,在导包
11、在封装时?访问器是否必须叫做set<成员变量>和get<成员变量> 对
12、final类型的非静态成员变量一旦初始化就不能修改吗?
final 表示最终的
13、final类型的非静态成员引用变量一旦初始化后,就意味着指向的对象内容不能改变,这句话对么?
错
14、类的成员包括哪几种?
属性 方法 代码块 内部类
代码块(很少):静态的代码块(绝大多数,给静态属性变量赋值);
代码块在编译的时候只会执行一次。
static{
}
15、final类型的非静态成员变量的初始化在什么时候进行?
有两种:
定义常量的时候初始化
通过构造函数初始化
16、static类型的成员变量初始化在对象产生之前进行,对吗?
对
17、静态成员的调用有几种方法?建议是用哪种方法?
两种
一种:通过类名调用(推荐)
另一种:通过引用调用(不推荐)
18、静态方法是否可以直接访问非静态成员?不行
19、非静态方法中是否可以直接访问静态成员?
可以
20、final和static是否可以一起使用?
可以,如果是常量的话,建议这么使用
21、静态的最终变量是否可以默认初始化?
final static int i; 错的
22、方法中是否可以声明静态变量? 绝对不可以
23、Java中所有的类都直接或间接继承自Object类,这句话对么?
是的
24、子类只能有一个父类,但是一个类可以有多个子类,这句话对吗? 对
25、是不是所有的成员变量都可以被继承?请列举所有可能发生的情况。
private 不可以
final 变量:不可以改
方法:不可以重写
类 :继承
protected 可以
默认:可以
public 可以
static 可以
26、成员变量是否可以被重写?重写和隐藏有什么区别?方法是否可以被重写?方法是否可以被隐藏?
变量 不能被重写
方法可以被重写
27、是不是只有具有继承关系的两个引用变量才可以进行比较?
是(后续讲)
28、重写方法时返回值类型是否必须一致?
静态方法没有重写
不一定要一致,返回的是父子类的关系。jdk5.0
29、重写方法时访问权限是否必须一致?
大于等于
30、静态方法是否可以被继承?
可以
31、静态方法是否可以被重写?
静态方法不可以被重写
32、重载的方法参数列表不相同,但是返回值类型和访问权限可以相同也可以不相同,这句话对吗?
对
33、final修饰类、属性和方法分别代表什么含义?
final修饰类 不能继承
属性 不能被修改
方法 不能被重写
34、final的方法不能被继承,这句话对吗?错的
35、属性是否可以加上abstract关键字?
abstract只能修饰方法和类
36、final和abstract是否可以同时使用? 不可以
37、private和abstract是否可以同时使用? 不可以
private修饰的方法和属性是不能子类继承
38、抽象方法必须在子类中实现,这句话对吗?
不一定,
39、接口可以多实现,对吗? 对
40、接口中只能包含常量属性,不能有变量属性,对吗?为什么?对,变量属性在对象
41、接口中的方法可以有静态方法,也可以有最终方法,这句话对吗?为什么?
接口只能有抽象。
42、接口中的方法必须是public的,对吗?对的
43、instanceof有什么作用?
可以判断变量是哪个类的对象
44、构造器有几种访问权限?构造器的访问权限是否必须和类保持一致?
public 默认 protected private
private的单例模式的时候才会使用
45、构造器可以有返回值,对吗?
没有
46、构造器是否可以是private的?
单例模式下可以使用private修饰构造器
47、每一个类都要有构造器,对吗?
必须要有的
48、如果子类构造器没有显示调用父类构造器,则默认在子类每一个构造器的第一句会调用父类的无参构造器,对吗?
不一定
49、自己编写的调用父类构造器的代码必须在子类构造器的第一句,对吗?super()
50、请描述Java程序的加载过程。
静态属性
静态语句块
类属性
语句块
构造器
请按照初始化的先后顺序排序。
打印下面代码就可以验证答案:
class A
{
A(){System.out.println("静态A属性被创建");}
};
class B
{
B(){System.out.println("B被创建");}
};
class C
{
public static A a=new A(); // 静态属性
public B b=new B(); // 非静态属性
static{ // 静态语句块
System.out.println("静态语句块");
}
{ // 非静态语句块
System.out.println("非静态语句块");
}
C(){ // 构造器
System.out.println("构造器");
}
public static void main(String[] args){
C c=new C();
}
};
面向对象:最小单元应该是类
最小单元是方法,由方法组成的程序
2、什么是面向对象的三大特征?
封装,继承,多态
private extends 父类的变量接收子类对象
3、在Java中是否可以直接访问类?为什么?
类是不能直接访问的,但是可以获取对象,根据对象来运行类中方法等。
静态属性,可以没有对象的基础上,直接调用类的静态属性和静态方法。
4、成员变量和局部变量是否可以默认初始化?不同类型的变量默认初始化的值是什么?
成员变量可以
局部变量不可以默认初始化,必须显式的赋值
int 0
byte 0
short 0
long 0L
float 0.0F
double 0.0
char \u0000 ''
boolean false
引用(String ,数组,对象) null
-------------------------------------------
5、局部变量的赋值不一定非要在声明变量时进行,只要在调用变量前完成就可以,这句话对么?
对 int i; i=100; System.out.println(i);
6、this关键字在什么情况下使用?
当在一个方法内部、局部变量和成员变量发生命名的冲突的时候,使用this,代表类所产生的对象
7、包有什么作用?
多人开发,避免类名的冲突的解决机制
package 打包
import 导包
8、什么是静态引入?
可以再导入包的时候将某一个类中所有的static的成员一次性引入。可以在调用的静态的方法和属性,不需要类名
import static 包.类.*;
9、类有几种访问你权限?成员变量和方法有几种访问权限?分别代表什么含义?
类有两种 public 默认
成员属性和方法有 4种
public
protected
默认
private
10、一个文件中是否可以有多个类? 可以,但是实际开发的时候,不建议
一个文件中是否可以有多个public类?不可以,一个文件有且只能有一个public类
文件名是否可以和类名不一致? 可以
声明包的语句是否必须放在程序的第一句?是
导入包的语句是否可以放在第一句?先打包,在导包
11、在封装时?访问器是否必须叫做set<成员变量>和get<成员变量> 对
12、final类型的非静态成员变量一旦初始化就不能修改吗?
final 表示最终的
13、final类型的非静态成员引用变量一旦初始化后,就意味着指向的对象内容不能改变,这句话对么?
错
14、类的成员包括哪几种?
属性 方法 代码块 内部类
代码块(很少):静态的代码块(绝大多数,给静态属性变量赋值);
代码块在编译的时候只会执行一次。
static{
}
15、final类型的非静态成员变量的初始化在什么时候进行?
有两种:
定义常量的时候初始化
通过构造函数初始化
16、static类型的成员变量初始化在对象产生之前进行,对吗?
对
17、静态成员的调用有几种方法?建议是用哪种方法?
两种
一种:通过类名调用(推荐)
另一种:通过引用调用(不推荐)
18、静态方法是否可以直接访问非静态成员?不行
19、非静态方法中是否可以直接访问静态成员?
可以
20、final和static是否可以一起使用?
可以,如果是常量的话,建议这么使用
21、静态的最终变量是否可以默认初始化?
final static int i; 错的
22、方法中是否可以声明静态变量? 绝对不可以
23、Java中所有的类都直接或间接继承自Object类,这句话对么?
是的
24、子类只能有一个父类,但是一个类可以有多个子类,这句话对吗? 对
25、是不是所有的成员变量都可以被继承?请列举所有可能发生的情况。
private 不可以
final 变量:不可以改
方法:不可以重写
类 :继承
protected 可以
默认:可以
public 可以
static 可以
26、成员变量是否可以被重写?重写和隐藏有什么区别?方法是否可以被重写?方法是否可以被隐藏?
变量 不能被重写
方法可以被重写
27、是不是只有具有继承关系的两个引用变量才可以进行比较?
是(后续讲)
28、重写方法时返回值类型是否必须一致?
静态方法没有重写
不一定要一致,返回的是父子类的关系。jdk5.0
29、重写方法时访问权限是否必须一致?
大于等于
30、静态方法是否可以被继承?
可以
31、静态方法是否可以被重写?
静态方法不可以被重写
32、重载的方法参数列表不相同,但是返回值类型和访问权限可以相同也可以不相同,这句话对吗?
对
33、final修饰类、属性和方法分别代表什么含义?
final修饰类 不能继承
属性 不能被修改
方法 不能被重写
34、final的方法不能被继承,这句话对吗?错的
35、属性是否可以加上abstract关键字?
abstract只能修饰方法和类
36、final和abstract是否可以同时使用? 不可以
37、private和abstract是否可以同时使用? 不可以
private修饰的方法和属性是不能子类继承
38、抽象方法必须在子类中实现,这句话对吗?
不一定,
39、接口可以多实现,对吗? 对
40、接口中只能包含常量属性,不能有变量属性,对吗?为什么?对,变量属性在对象
41、接口中的方法可以有静态方法,也可以有最终方法,这句话对吗?为什么?
接口只能有抽象。
42、接口中的方法必须是public的,对吗?对的
43、instanceof有什么作用?
可以判断变量是哪个类的对象
44、构造器有几种访问权限?构造器的访问权限是否必须和类保持一致?
public 默认 protected private
private的单例模式的时候才会使用
45、构造器可以有返回值,对吗?
没有
46、构造器是否可以是private的?
单例模式下可以使用private修饰构造器
47、每一个类都要有构造器,对吗?
必须要有的
48、如果子类构造器没有显示调用父类构造器,则默认在子类每一个构造器的第一句会调用父类的无参构造器,对吗?
不一定
49、自己编写的调用父类构造器的代码必须在子类构造器的第一句,对吗?super()
50、请描述Java程序的加载过程。
静态属性
静态语句块
类属性
语句块
构造器
请按照初始化的先后顺序排序。
打印下面代码就可以验证答案:
class A
{
A(){System.out.println("静态A属性被创建");}
};
class B
{
B(){System.out.println("B被创建");}
};
class C
{
public static A a=new A(); // 静态属性
public B b=new B(); // 非静态属性
static{ // 静态语句块
System.out.println("静态语句块");
}
{ // 非静态语句块
System.out.println("非静态语句块");
}
C(){ // 构造器
System.out.println("构造器");
}
public static void main(String[] args){
C c=new C();
}
};
0 0
- Java基础50问与答
- Java基础面试50问
- 基础几何算法答与问
- 国外基础几何算法答与问
- java基础23问
- Java基础几问
- java基础经典五十问
- Java面试:基础32问
- java基础经典五十问
- 国外基础几何算法答与问(算法)
- 关于SOA之问与答 基础篇
- windows问与答
- DT问与答
- QTP 问与答
- 幽默:问与答
- 问与答
- QTP问与答
- 2.7 问与答
- jQuery转义
- Android启动界面之SplashActivity的设计
- 2010辽宁省赛 NBUT 1222 English Game【字典树+DP】
- hdu 2566 统计硬币
- 黑马程序员----异常处理机制的概括
- Java基础50问与答
- spring的IOC和DI
- Kafka命令行常用命令说明
- RMQ(st在线算法模板)
- 01 java.lang.Object
- xxxccc
- 通向码农的道路(服务器架构设计(一))
- HDU 2066 一个人的旅行 dijkstra&&spfa
- 优化Android Studio/Gradle构建