标签:equal 整数 prim 跨域 long 常量 基础 定义 hash
我没有很牛逼的技术来概括Java的前世今身,这里主要是结合自己对Java的基础的理解,大致给到一些总结。
结合自己最近读的一些书籍,总结下,正如这句话所说:Read a bit and take it out,then come back read some more.
前三种通常称为引用类型,class实例、array是对象(Object),而primitive的值则不是Object。
primitive基本类型,一共有8种:char(字符), byte,int,short,long, (整数型) boolean(布尔),float,double(浮点型)
关键字都是小写的必须注意,详细的说明可以看我之前的一篇中有提到。
Object类定义了大概7个native关键字修饰的方法:
registerNatives();
getClass();
hashCode();
clone();
notify();
notifyAll();
wait(long timeout)
equal : 比较的是存在于堆中的值的大小;
而“==”: 比较的是存放在栈中的地址是否一样,往往 equal 为true时,“==”并不一定为true。
这个区别还是显而易见的,
从语法的角度来看,它们给出了不同的语言定义,一个abstract关键字修饰类,一个是interface
从设计层面来看,抽象类是对整个类来抽象,包括属性和方法(行为);而接口仅仅是对行为的抽象
跨域的不同:抽象类体现的是一种继承的关系extends,而interface体现的是一种实现类的关系implement
String 对象是不可变的;String是有关键字final修饰的,修饰的是常量,线程安全的
StringBuffer 和StringBuilder都继承自AbstractStringBuilder类,所以长度是可变的。
安全:
StringBuffer 对方法加了同步锁,是线程安全的;StringBuilder则没有同步锁,是非线程安全的。
性能:
String 每次修改都是创建新的String对象,指针都是指向新的对象;
StringBuffer 每次修改是对对象本身的操作,StringBuilder相比StringBuffer没有同步锁,相对来说性能有所提升,但比较小,大概10%~15%,但是却在多线程下不安全。
待续...
标签:equal 整数 prim 跨域 long 常量 基础 定义 hash
原文地址:http://www.cnblogs.com/Profound/p/7301294.html