javaoo总结一
1、Java语言的特点是什么?
简单、面向对象、跨平台、多线程 、垃圾回收、健壮性和安全性
2、如何编译和执行java文件?产生帮助文档用什么命令?
编译:javac 文件名
执行: java 类名
产生帮助文档: javadoc 文件名
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、定义常量用什么关键字?当一个引用类型的变量申明为常量是什么意思?
定义常量用:final
当一个引用类型变量声明为常量时,表示该变量不能指向别的对象,但属性值可以改变。
11、什么是对象?什么是类?对象和类的关系是什么?
对象:对象是存在的具体实体,具有明确定义的特征和行为;万物皆对象,对象因我而产生。
类:具有相同行为和属性的一组对象的集合
对象和类的对象:类是对象的抽象,对象是类的具体体现和实例
12、变量按作用域划分有哪几种?局部变量使用时需要注意什么问题?
局部变量:存放在栈空间,方法或语句块结束,局部变量销毁。
成员变量(属性):存放在堆空间,随对象的产生而产生,随对象的销毁而销毁。
静态变量(类变量):存放在数据段中,长驻内存,虚拟机关闭消失。
局部变量使用时需要注意:1、局部变量使用前必须初始化。2、局部变量使用时,需要注意作用域。3、局部变量只能声明为默认或final
13、静态变量和成员变量有什么区别?应该怎么调用?
1、成员变量存放在堆空间中,是对象的组成部分。对象和对象之间属性彼此独立。静态变量存放数据段中,是独立在对象之外的变量,很多对象共享一个静态变量。2、静态变量加载时机在对象之前。静态方法不能直接调用成员方法或成员变量。3、成员变量的调用:对象.成员变量调用。静态变量的调用:类名.和对象.都可以调用。但是推荐使用类名.调用。所以,静态变量也成为类变量。
14、垃圾回收GC回收什么样的对象?
没有被变量所指向的对象
15、什么是包?包的作用是什么?如何导入别的包中的类?什么样的类不需要导入?
包就是文件夹。
包的作用:1、通过包来组织类;2、通过包可以做到信息隐藏。
导入包:import
本包中的类和java.lang.*不需要导入
16、静态方法能直接调用成员方法或属性吗?为什么?
不能,因为静态方法在对象生成之前就首先被加载,所以静态变量不能直接调用成员变量和成员方法。
17、当传递和返回对象,传递和返回的是什么?
引用(地址)
18、什么是构造方法?构造方法的作用是什么?
构造方法:构造方法的方法名和类名相同,没有返回类型,利用构造方法,可以产生该类的对象。
作用:1、为对象分配空间 2、如果类没有加载,则加载类 3、初始化成员变量 4、返回对象的引用
19、this和super各代表什么含义?
this 表示当前对象 super表示父类对象
20、数组如何定义?数组、字符串、集合各自的长度如何获得?
数组类型 [] 变量名 = new 数组类型[数组长度] 或者 数组类型 [] 变量名 = {数组元素};
数组、字符串长度用.length()、集合的长度用.size()。
21、数组有哪些特点?
1、数组是一串连续的内存空间,通过下标访问元素。下标从0开始最大下标为数组长度-1.2、数组元素都是变量,变量的类型为定义数组的类型。3、数组创建之后,会对每个元素进行初始化int--0、double--0.0、引用类型--null。4、数组的长度不可以改变
22、私有属性+get/set方法和公有属性的区别
1、私有属性不能直接访问,只有通过公有的get方法和set方法取值或者设值。一旦删掉get/set方法,可以直接将该属性做成只读或只写属性,而公有属性做不到。
2、可以通过修改器在设置属性时,做数据合法性的验证,从而避免非法数据的赋值,但公有属性做不到。
23、继承用什么关键字?子类继承父类,构造方法第一句应该如何书写?
继承用extends 子类继承父类用构造方法第一句使用super(),调用父类的构造方法产生父类对象。然后在父类基础上,扩展子类特有的属性和方法。
24、重写和重载的区别是什么?重写有什么要求?
重载:发生在同一个类中。两个方法的方法名相同,参数列表不同(参数类型、个数、顺序)和返回类型无关。调用时,根据方法的参数来决定调用哪个方法。
重写:重写发生在父类和子类之间,子类的方法名、参数列表、返回类型与父类相同。子类重写父类的方法,调用时,会优先调用子类重写的方法。
重写的要求:子类方法的访问修饰符要大于或等于父类访问修饰符,抛出的异常要小于或等于父类方法抛出的异常
25、Java中一个类能同时继承多个类吗?所有类的父类是什么?
java中的继承为单根继承,一个类只能继承一个父类,所有类的父类是object类
26、构造方法能继承吗?构造方法能重载吗?
构造方法不能继承,但是子类对象创建时需要调用父类的构造方法,产生父类对象。
构造方法能重载,通过重载方法完成属性的初始化操作。
27、final、finally、finalize的区别是什么?
final是修饰符。修饰类,表示该类不能被继承修饰方法,表示该方法不能被子类重写,修饰变量,表示该变量的值不能变化。
finally是语句块、表示无论是否发生异常都要执行的语句块。一般用于流的关闭,数据库关闭这些清理工作。
finalize是一个方法。在object中定义。当该对象被垃圾回收之前,会自动调用该方法。
28、访问修饰符有哪些?各自作用范围是什么?
private:只在本类可以访问。
默认:本包中的类可以访问
protect:本包和不同包的子类可以使用
public:本包和非本包中的类都可以使用
29、什么是内部类?内部类class文件是怎样命名的?
内部类:定义在类当中的类。内部类相当于外部类的属性,它的对象产生必须依赖于外部类对象.
外部类名$内部类名.class
30、什么是多态?多态有什么特点?
多态是指允许使用父类变量指向子类对象。允许使用接口变量指向实现类对象。但反过来不行。
多态的特点:相同行为,不同的实现方式
31、面向对象的特征有哪些?
继承、封装、多态
32、什么是抽象类?什么是抽象方法?定义抽象类的关键字是什么?
抽象类:拥有抽象方法的类。
抽象方法:只有方法定义没有方法的实现。
关键字:abstract
33、接口如何定义?实现接口用什么关键字?一个类实现接口必须做什么?
定义接口用:interface
实现接口:implement
实现一个接口必须重写接口中的定义的所有抽象方法。否则,该类只能是抽象类
34、接口中定义的方法修饰符是什么?接口中定义的变量修饰符是什么?
接口中定义方法的修饰符:public abstract
接口中定义的变量修饰符:public final static
35、抽象类和接口的区别是什么?
一、抽象类和接口都不能直接实例化。抽象类变量只能指向子类对象,接口变量只能指向实现类对象;
二、抽象类中可以有抽象方法,也可以有具体方法,但接口中只能有抽象方法;
三、抽象类中定义的变量是普通属性,但是接口中定义的变量是公共的静态的常量;
四、一个类只能继承一个抽象类,但可以实现多个接口。
36、异常的API结构是怎样的?Error和Exception有什么区别?
异常的API结构:Throwable为父类,该类有两个子类Error(错误)和Exception(异常)。其中Error可以捕获,但不能处理。而Exception可以捕获,可以处理。
37、异常的执行顺序怎样?如果在try块中有return,finally会执行吗?
先执行try块中的内容,顺序执行,如果有异常发生,转向catch块执行,同时终止try块中的其它代码。无论有无异常,都会指向finally语句块。
如果在try块中有return,finally会在跳出方法之前执行
38、finally是否在任何时候都会执行?
不是,关闭虚拟机不会执行。System.exit(0)
39、throw 和throws的区别是什么?
trow是语句,显示抛出异常。throw new Exception
thows是方法修饰符,表示该方法可能会抛出某个异常。那么调用该方法时,就必须处理该方法抛出的异常。
40、异常分为几种?如何区分?
异常分2种:编译期异常(检查异常)和运行期异常(非检查异常)。
编译期异常必须处理,否则编译错误。运行期异常可处理可不处理,不处理也会通过编译。所有运行期异常都是RuntimeException的子类
41、如何得到当前工作目录?
System.getProperty("user.dir");
42、String x = "abc" 和 String x = new String("abc")有什么区别?
String x = "abc":x变量指向常量池中的“abc”常量对象。
String x = new String("abc"):x变量执行堆中的字符串对象。但堆中字符串对象的产生必须以常量池中的字符串常量对象做为模板
43、String和StringBuffer的区别?
String 具有长度不可变化的特性,当对String做添加、替换、删除时,不会改变对象的内容,而是产生新的对象,所以String做频繁操作时,效率较低。
StringBuffer是缓冲区对象,当对StringBuffer对象操作时,不能产生新的对象。
一般使用时,先用StringBuffer完成字符串相关操作,再用toString()转换成String。
44、如何将字符串转化为基本数据类型?
int x =Integer.parseInt("232")
45、如何将日期对象进行"2011-12-10"格式化输出?
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
s.format(new Date());
46、javaBean规范有哪些内容?
1、必须提供公有的无参构造方法
2、属性私有+get/set访问进行访问和设置
3、该类必须实现序列化接口
47、集合的作用是什么?集合框架的API结构是怎样的?
集合的作用是:存储、检索、操作、传输数据。
集合框架(JCF)包括三个部分:接口、实现类和算法
接口:Collection是List和Set的父接口,另外还有一个Map接口
实现类:List:ArrayList Set:HashSet Map:HashMap.
算法:Iterator(迭代算法),Collection(算法类)
48、List、Set、Map集合各自有什么特点?
Liset:线性,元素可以重复
Set:元素不可重复
Map:一个元素包含两个对象,键值对,而且,键对象不可重复
49、集合元素如何添加?如何删除?如何遍历?
添加:add() put()
删除:remove()
遍历:1、for(int i = 0;i<list.size();i++){Object obj = list.get(i)}
2、Iterator it = list.iterator();
while(it.hasNext()){Object obj = it.next()};
3、for(Object x : list){}
50、集合如何进行排序?
Collections.sort(list,new Comparator){public int compare(Object o1,Object o2)}