Java的两大数据类型:基本数据类型/内置数据类型;引用数据类型。
基本数据类型:java提供了8种,6种数字类型,1种字符类型,1种布尔类型。 6中数字类型中有4个整数类型,2个浮点型。整数类型是:默认是int 型,浮点类型是:默认是double 型。这两个默认我没明白。
byte short int long float double ; boolean char 。
关于java的基本数据类型,引用数据类型,java常量可以参考这篇文章https://www.cnblogs.com/1130136248wlxk/articles/5105524.html
当遇到这个问题 Java中有哪些基本数据类型?它们有什么区别和相同点?
区别的话:它们的存储的时候所占空间不同,4个整数类型的数据 都是有符号的以二进制补码表示的整数。
引出个问题,在64位和32位系统中,基本数据类型占空间有什么区别?
参考http://www.cnblogs.com/jerryshao2015/p/4457133.html
String是基本数据类型吗?String类是否能够继承? String不是基本数据类型,String属于引用类型。
String类是一个final类,因此不能被继承。
1 为什么String不是基本类型,为什么不用基本类型存呢?
暂时这个吧https://zhidao.baidu.com/question/982742464454051939.html 参考它
java虚拟机处理基础类型与引用类型的方式是不一样的,对于基本类型,java虚拟机会为其分配数据类型实际占用的内存空间,而对于引用类型变量,他仅仅是一个指向堆区中某个实例的指针。
emm有新想法了再来撤蛋,因为string太肥了。,。
2 为什么String是final类,为什么让它不被继承
关于final的理解。 先说它在java中的解释
被final修饰的类不能被继承,即它不能拥有自己的子类
被final修饰的方法不能被重写 final修饰的变量,无论是类属性、对象属性、还是局部变量,都需要进行初始化操作。
---方法为啥不能被重写。。。类比于,我们有时候将一些常用的方法封装到一个工具中,那么这些方法是不是就可以用final声明
但是哈,为啥部门代码,工具类上面只用了static????
---为啥他修饰类里面的东西都要初始化。。。final干啥的,用了它就是为了防止被修改的,那你修饰了一个东东,不进行初始化,那就是它里面啥value都没有,那你是要干啥??用着玩,吗
final修饰的常量是不可以改变的...类比于 π,这个值你改它干啥,为了防止变量中它被修改所以用final修饰它。
final修饰的变量什么的,参考这篇 https://www.cnblogs.com/aristole/p/8016448.html 对于对象引用使用final:使得引用恒定不变,一旦引用被初始化指向一个对象,就无法再把 它改为指向另一个对象。然而,对象自身却是可以被修改的,java并没有提供使任何对象恒定不变的途径。
上面这句话说的意思应该是,老子说:有朋自远方来,final xx指向这个老子。 老子又说:有锅从天上来。
就是什么呢,final修饰的东西final b = new xx()的时候,b一开始就指向这个new xx(),这个时候就只能修改new xx()中的内容。
孔子是圣人,孔子不是圣人,一开始在这里指定了就不能改成指向别的,比如改成我是圣人 哈哈哈
参考代码 https://blog.csdn.net/pan_junbiao/article/details/84989697
打比方: 中华文明,里面很多东西传承,比方说什么礼仪乐,那么礼这个我们把它不断的传承,可以把礼想为放在那里的一个东西,某种行为成为礼,那这种行为就是固定的,放到礼里面去,礼这个不需要什么继承,你要学什么东西,那就直接去里面取。避免以讹传讹,有人修改里面的东西。其实圣人就好比是个final的东西,和现在在专家一样,他们说的些东西可以认为是final的
这个例子我打的比方不好。 再说说方法,当有个人发明了1+1=2的时候,这个方法就不断被扩散出去了,这种就定为final方法,重写没必要,只能说我们人类的传播是广播,没有人吧这个重写,因为建立在客观的认知上的。
final修饰的是我们客观上存在的东西,所以当用它来修饰类的一部分,类属性,对象属性,等的时候都要赋值。
扒来的图 https://www.cnblogs.com/hellowhy/p/6536590.html