java 概念

多态:

面向对象的三大特性:封装、继承、多态、抽象。从一定角度来看,封装和继承几乎都是为多态而准备的。

多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)

线程四个状态:就绪 运行 挂起 结束

 2. 什么是java序列化,如何实现java序列化?
序列化可以将内存中的类写入文件或数据库中。比如将某个类序列化后存为文件,下次读取时只需将文件中的数据反序列化就可以将原先的类还原到内存中。也可以将类序列化为流数据进行传输。总的来说就是将一个已经实例化的类转成文件存储,下次需要实例化的时候只要反序列化即可将类实例化到内存中并保留序列化时类中的所有变量和状态。
将需要被序列化的类实现Serializable接口,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

3. 共享锁、排他锁
共享锁:如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。
    排他锁:如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。

String 和 StringBuffer的区别
String 操作后都是产生一个新的字符串对象,而StringBuffer操作的始终是原对象,
当字符串长度大时,并且多次要进行字符串连接时,使用 StringBuffer 性能要高许多。StringBuffer 是线程同步的。

==和equals的区别
A.==可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同。
B.对于String a = “a”; Integer b = 1;这种类型的特有对象创建方式,==的时候值是相同的。
C.基本类型没有equals方法,equals只比较值(对象中的内容)是否相同(相同返回true)。
D.一个类如果没有定义equals方法,它将默认继承Object中的equals方法,返回值与==方法相同。

简述GC(Garbage Collection)垃圾收集机制
注意:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身。
1. System.gc();   Runtime.getRuntime().gc() 这两种方法用于显示通知JVM可以进行一次垃圾回收,但垃圾回收机制具体在什么时间运行是无法预知的。
2.finalize() 方法 释放对象所占用的相关资源。当垃圾回收器将要释放无用对象的内存时,先调用该对象的finalize()方法。如果在程序终止之前垃圾回收器始终没有执行垃圾回收操作,那么垃圾回收器将始终不会调用无用对象的finalize()方法。因为finalize()只有在垃圾回收器工作的时候才会被调用,也就是说,通过它进行资源释放并不能确保马上被释放,甚至可能根本不会被释放(因为垃圾回收器可能不会工作)。程序即使显式调用System.gc()或Runtime.gc()方法,也不能保证垃圾回收操作一定执行,因此不能保证无用对象的finalize()方法一定被调用。

 

synchronized和java.util.concurrent.locks.Lock的不同
A. Lock有比synchronized更精确的线程语义和更好的性能;
B. synchronized会自动释放锁.而Lock一定要求程序员手工释放.并且必须在finally从句中释放。

描述HashMap和Hashtable的区别及各自用途
A. HashTable和HashMap都实现了Map接口,都采用<key,value>的方式来存储对象
B. HashTable是线程安全的,HashMap是HashTable的非线程安全的实现(轻量级实现)
C. HashTable不允许key和value为null,HashMap允许null key和null value.

JAVA泛型的理解
什么是泛型:泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写  体验泛型代码时定义一些可变部份,那些部份在使用前必须作出指明。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。将类型参数化以达到代码复用提高软件开发工作效率的一种数据类型。泛型类是引用类型,是堆对象,主要是引入了类型参数这个概念。

多态的两个好处:
1. 应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。//继承
2. 派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。 //多态的真正作用,

java中switch()支持int类型(包含可以自动转化为int的类型char byte  以及对应的封装类型),当然还有String类型,这个以前是不支持的。

需要特别说明的是不支持long类型。

posted @ 2015-02-26 18:47  牧 天  阅读(109)  评论(0)    收藏  举报