1
、面向对象的特征有哪些方面
1.
抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,
以便更充分地注意与当前
目标有关的方面。
抽象并不打算了解全部问题,
而只是选择其中的一部分,
暂时
不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
2.
继承:
继承是一种联结类的层次模型,
并且允许和鼓励类的重用,
它提供了一种明确表
述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,
新类称为原始类的派生类
(子类)
,
而原始类称为新
类的基类
(父类)
。
派生类可以从它的基类那里继承方法和实例变量,
并且类可
以修改或增加新的方法使之更适合特殊的需要。
3.
封装:
封装是把过程和数据包围起来,
对数据的访问只能通过已定义的界面。
面向对象
计算始于这个基本概念,
即现实世界可以被描绘成一系列完全自治、
封装的对象,
这些对象通过一个受保护的接口访问其他对象。
4.
多态性:
多态性是指允许不同类的对象对同一消息作出响应。
多态性包括参数化多态性和
包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的
解决了应用程序函数同名问题。
2
、
String
是最基本的数据类型吗
?
基本数据类型包括
byte
、
int
、
char
、
long
、
float
、
double
、
boolean
和
short
。
java.lang.String
类是
final
类型的,因此不可以继承这个类、不能修改这个
类。为了提高效率节省空间,我们应该用
StringBuffer
类
3
、
int
和
Integer
有什么区别
Java
提供两种不同的类型:引用类型和原始类型(或内置类型)。
Int
是
java
的原始数据类型,
Integer
是
java
为
int
提供的封装类。
Java
为每个原始类型
提供了封装类。
原始类型封装类
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
引用类型和原始类型的行为完全不同,
并且它们具有不同的语义。
引用类型和原
始类型具有不同的特征和用法,
它们包括:
大小和速度问题,
这种类型以哪种类
型的数据结构存储,
当引用类型和原始类型用作某个类的实例数据时所指定的缺
省值。对象引用实例变量的缺省值为
null
,而原始类型实例变量的缺省值与它
们的类型有关。
4
、
String
和
StringBuffer
的区别
JAVA
平台提供了两个类:
String
和
StringBuffer
,
它们可以储存和操作字符串,
即包含多个字符的字符数据。这个
String
类提供了数值不可改变的字符串。而
59
、
java
中实现多态的机制是什么?
方法的重写
Overriding
和重载
Overloading
是
Java
多态性的不同表现。重写
Overriding
是父类与子类之间多态性的一种表现,重载
Overloading
是一个类中
多态性的一种表现。
60
、
垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办
法主动通知虚拟机进行垃圾回收?
对于
GC
来说,当程序员创建对象时,
GC
就开始监控这个对象的地址、大小以
及使用情况。通常,
GC
采用有向图的方式记录和管理堆
(heap)
中的所有对象。
通过这种方式确定哪些对象是
"
可达的
"
,哪些对象是
"
不可达的
"
。当
GC
确定一
些对象为
"
不可达
"
时,
GC
就有责任回收这些内存空间。可以。程序员可以手动
执行
System.gc()
,通知
GC
运行,但是
Java
语言规范并不保证
GC
一定会执行。
61
、静态变量和实例变量的区别?
static i = 10; //
常量
class A a;
a.i =10;//
可变
62
、什么是
java
序列化,如何实现
java
序列化?
序列化就是一种用来处理对象流的机制,
所谓对象流也就是将对象的内容进行流
化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。
序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现
Serializable
接口,该接口没有需要实
现的方法,
implements Serializable
只是为了标注该对象是可被序列化的,
然后使
用一个输出流
(
如:
FileOutputStream)
来构造一个
ObjectOutputStream(
对象流
)
对
象,接着,使用
ObjectOutputStream
对象的
writeObject(Object obj)
方法就可以将
参数为
obj
的对象写出
(
即保存其状态
)
,要恢复的话则用输入流。
63
、是否可以从一个
static
方法内部发出对非
static
方法的调用?
不可以
,
如果其中包含对象的
method()
;不能保证对象初始化
.
64
、
List
、
Map
、
Set
三个接口,存取元素时,各有什么特点?
List
以特定次序来持有元素,可有重复元素。
Set
无法拥有重复元素
,
内部排序。
Map
保存
key-value
值,
value
可多值。
|