javaoo总结
1、Java语言的特点是什么?
easy 面向对象,跨平台,多线程,健壮性和安全性
2、如何编译和执行java文件?产生帮助文档用什么命令?
javac文件 **.java
3、虚拟机的工作流程是什么?
编写源文件(*.java)--编译成*.class字节码文件--类加载--字节码校验--解释器---操作系统
4、main方法怎么书写?
public static void main (String []args){}
5、什么是标识符?标识符有几种?标识符的命名规则是什么?
可以命名的地方叫做标识符,通常使用标识符名类,方法,变量
标识符有两种:系统标识符和用户标识符
标识符的命名规则为: 必须为字母,数字,下划线,$不能已数字开始
标识符的规范:1.见名知义 2.类名已大写字母开始
采用驼峰命名;3、变量名和方法名以小写字母开始,采用驼峰命名;4、常量全部用大写字母。
6、Java中基本数据类型有哪些?各占几个字节?Java中引用数据类型有哪些?
八种基本数据类型:byte(1)、short(2)、int(4)、long(8)、float、double、char、boolean
java中引用类型:类、接口、数组
基本数据类型和引用数据类型区别:基本类型变量存放具体数据、而引用类型变量存放对象地址
7、Java中char类型用什么编码?
unicode
8、变量三要素是什么?
变量类型,变量名,变量值
9、Java的注释有几种?
多行注释,单行注释,文档注释
10、定义常量用什么关键字?
finally
11、什么是对象?什么是类?对象和类的关系是什么?
对象: 对象是有明确的定义和特征,行为,万物皆为对象,对象因关注而产生
类: 具有相同行为和属性的一组对象集合
对象和类的关系:类是对象的抽象,对象是类的具体体现和实例,对象的类的具体的体现
12、变量按作用域划分有哪几种?局部变量使用时需要注意什么问题?
局部变量:存放在栈空间,方法或语句块结束,局部变量销毁。
成员变量(属性):存放在堆空间,随对象的产生而产生,随对象的销毁而销毁。
静态变量(类变量):存放在数据段中,长驻内存,虚拟机关闭消失。
局部变量使用时需要注意:1、局部变量使用前必须初始化。2、局部变量使用时,需要注意作用域。3、局部变量只能声明为默认或final
13、静态变量和成员变量有什么区别?应该怎么调用?
1.成员变量存放在堆空间中,是对象的组成部分,对象和对象之间属性彼此独立,静态变量存放在数据段中,是独立在对象之外的变量,很多对象共享员工静态变量。 2.静态变量加载的时机在对象之前,静态方法不能直接调用成员方法或者成员变量。 3.成员变量的调用:对象,成员变量调用. 静态变量的调用类名. 对象. 都可以调用。但是推荐使用类名.调用。所以静态变量也成为类变量
14、垃圾回收GC回收什么样的对象?
没有被变量指向的对象,同时没有被使用的对象
15、什么是包?包的作用是什么?如何导入别的包中的类?什么样的类不需要导入?
包就是文件夹 作用是通过包来组织类,通过包来做到信息隐藏 import java.lang.*不用导入 本包中的类和java.lang的类无需导入可以直接使用
16、静态方法能直接调用成员方法或属性吗?为什么?
不能 因为静态方法在对象产生之前就首先被加载,所以静态变量不能直接调用成员变量和成员方法
17、当传递和返回对象,传递和返回的是什么?
引用(地址)
18、什么是构造方法?构造方法的作用是什么?
构造方法:就是构造方法的方法名和类名相同,没有返回值,利用构造方法,可以产生该类的对象包括(void)
作用:1.为对象分配空间 2.如果没有加载,则加载类 3.初始化成员变量 4.返回对象的引用
19、创建对象有几种方式?
new对象 Clone方法(克隆) 反序列化 反射机制
20、this和super各代表什么含义?
this表示当前对象 super表示父类对象
21、数组如何定义?
数组类型 [] 变量名 = new 数组类型[数组长度] 或者 数组类型 [] 变量名 = {数组元素};
22、数组、字符串、集合各自的长度如何获得?
数组、字符串长度用.length()、集合的长度用.size()。
23、数组有哪些特点?
1、数组是一串连续的内存空间,通过下标访问元素。下标从0开始最大下标为数组长度-1.2、数组元素都是变量,变量的类型为定义数组的类型。3、数组创建之后,会对每个元素进行初始化int--0、double--0.0、引用类型--null。4、数组的长度不可以改变
24、继承用什么关键字?子类继承父类,构造方法第一句应该如何书写?
extends super();
25、重写和重载的区别是什么?重写有什么要求?
重载:发生在同一个类中。两个方法的方法名相同,参数列表不同(参数类型、个数、顺序)和返回类型无关。调用时,根据方法的参数来决定调用哪个方法。
重写:重写发生在父类和子类之间,子类的方法名、参数列表、返回类型与父类相同。子类重写父类的方法,调用时,会优先调用子类重写的方法。
重写的要求:子类方法的访问修饰符要大于或等于父类访问修饰符,抛出的异常要小于或等于父类方法抛出的异常
26、项目开发的步骤。
需求分期
设计
编码实现
调试
维护
27、说出下列代码执行结果
a、public class Test{
public static void main(String[] args){
int j;
System.out.println(j);
}
}
编译错误 j没有初始化
b、public class Test{
static int j;
public static void main(String args){
System.out.println(j);
}
}
编译通过,但运行时找不到程序入口点
c、public class Test{
int j;
public int getNum(){
return this.j;
}
public static void main(String[] args){
System.out.println(getNum());
}
}
编译错误,静态方法不能直接调用非静态方法
d、public class Test{
public String x;
public static void main(String[] args){
Test t = new Test();
String y = "";
System.out.println(t.x.equals(y));
}
}
运行错误,构造方法会初始化成员变量,x属性由于是引用类型,所以被初始化为null。当对null调用方法或者属性时,会抛出空指针异常。
28、说出代码执行结果。
public class Test{
public int x = 8;
public void move(int x){
System.out.println(x);
System.out.println(this.x);
}
public static void main(String[] args){
Test t = new Test();
t.move(6);
}
}
6.8
29、下列哪一行进行了垃圾回收
Object o1 = new Object();
Object o2 = new Object();
Object[] array = new Object[2];
o1 = o2;
o2 = array[0];
Array[0] = new Object();
o1 = array[0];垃圾回收
o1 = o2;
30、说说下面的方法哪些重载了构造方法?
public class Test{
public Test(int x){}
}
a、public Test(int y){}
b、public Test(String y){}
c、public void Test(String x){}
d、public int Test(int y,String x){}
e、public Test(int y,String x){}
f、public Test(String x,int y){}
bef
31、说出代码执行结果
public class X{
public X(){
System.out.println("XXX");
}
}
class Y extends X{
public Y(){
System.out.println("yyy");
}
public static void main(String[] aa){
Y y = new Y();
}
}
xxxyyy
32、说出代码执行结果
public class X{
public int x;
public int y;
public X(int x){
this.y = x;
}
}
class Child extends X{
public Child(int x){
super(x);
}
}
class Test{
public static void main(String[] aa){
Child c = new Child(10);
System.out.println(c.x);
}
}
0