1、String是引用类型;String是final的类,是不可以被继承的。
String
2、基本类型只有8种:byte,short,int,long,float,double,char,boolean。
3、基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上。
引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。
不论是基本数据类型还是引用类型,他们都会先在栈中分配一块内存,对于基本类型来说,这块区域包含的是基本类型的内容;而对于对象类型来说,这块区域包含的是指向真正内容的指针,真正的内容被手动的分配在堆上。
4、栈区内存由系统自动分配,函数结束时释放;堆区内存由程序员自己申请,并指明大小,用户忘释放时,会造成内存泄露,不过进程结束时会由系统回收。
5、final是Java的关键字
5.1、防止任何继承类改变它的本来含义
5.2、提高效率,会用方法主体内实际代码的一个副本来替换方法调用。这样做可避免方法调用时的系统开销。
常规代码插入方法:将自变量压入堆栈;跳至方法代码并执行它;跳回来;清除堆栈自变量;最后对返回值进行处理。
6、如果说整个类都是final(在它的定义前冠以final关键字),就表明自己不希望从这个类继承,或者不允许其他任何人采取这种操作。总而言之,我们的类肯定不需要进行任何改变;或者出于安全方面的理由,我们不希望进行子类化(子类处理)。
7、继承String本身是一个错误的行为,对String类型最好的重用方式是关联关系(has-a)和依赖关系(use-a)而不是继承关系(is-a)