您的位置:首页 > 编程语言 > Java开发

ThinkingInJava_2

2015-10-21 00:00 246 查看
摘要: 第二章有关于介绍面向对象思想与Java起步要掌握的一些基础理念

今天Gloria在我这住,我说我换了个博客,她说:你是不是怕我看你的啥啊?我立马将博客的新地址发到了她的工作邮箱,以备“检阅”。嘿嘿~~我一起毕业如今和我合租的哥们儿那天讲了一句话,也是很传统的一句话:有个姑娘在家,真好。是的是很好,今天Gloria帮我收拾了我自从住进来就没动过的衣柜,井井有条了,很舒心!谢谢Gloria,有你真好。

1、在Java中所有对对象的操纵都是用“引用(reference)”来实现的
2、Java对于内存的几个划分:
①寄存器:最快的存储区,因为它位于处理器的内部,你并不能在程序中控制寄存器
②堆栈:位于通用RAM(随机访问存储器)上面,通过堆栈指针对堆栈进行控制,向上移动为释放内存,向下移动则为分配内存,Java里面的引用便存在这里面
③堆:一种通用的内存池,也位于RAM中,用于存放Java的对象,这个也是Java垃圾回收器主要回收的区域
④常量存储:常量值通常存在这个地方,这样做是安全的,因为他们永远不会被改变
⑤非RAM存储:这个主要用于持久化的存储,在计算机断电之后RAM是会被清除的,非RAM存储能长久保存我们所要保存的数据
3、Java中的除了“一切都是对象”的对象进行处理之外,还有几个基本类型,这些基本类型都存储在堆栈之上,下面是基本类型的一些总结:
boolean 没有大小 没有最小值 没有最大值 Boolean
char 16bit Unicode0 Unicode2^16-1 Character
byte 8bit -128 127 Byte
short 16bit -2^15 2^15-1 Short
int 32bit -2^31 2^31-1 Integer
long 64bit -2^63 2^63-1 Long
float 32bit IEEE754 IEEE754 Float
double 64bit IEEE754 IEEE754 Double
并没有无符号数值类型,不过可以通过移位之类的运算进行模拟,boolean类型所占的存储空间大小没有明确的指定,仅定义为能够取字面值true或false
4、高精确计算类BigInteger(任何大小的整数而不会丢失任何信息)和BigDecimal(任何精度的定点数)
5、c++中将一个较大的作用域的变量“隐藏”起来的做法,在Java中是不允许的,设计者们的思维是认为这么做会导致程序的混乱。例子:

{
int x = 12;
{
int x =96;//c++可以Java不可以
}
}

5、对于默认值的设定,只有当变量作为类成员变量使用时,Java才会给定其默认值,以确保那些是基本类型的成员变量得到初始化(老的c++并没有,而c++11加入了此功能);然而初始化这种变量,并不适用于局部变量,如果局部变量没有初始化(手动),Java在编译时候会报错。基本类型的默认值统计如下:
boolean false
char '\u0000'(null)
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d
6、方法名和参数列表(他们合起来被称为“方法签名”)唯一地标示出某个方法。
7、参数传递当中,基本类型的传递为值传递,对于对象类型的参数传递,其实都是引用传递。这两个在传递的过程之中,其实都是在方法的内部进行了一次隐藏的复制,前者是对基本类型的变量进行了复制,而后者则是对引用进行了复制,与原引用同时指向一个对象。
8、当生命一个事物是static的时候,就意味着这个域或是方法不会与包含它的那个类的任何对象实例关联在一起,所以,即使从未创建某个类的任何对象,也可以调用static方法或是访问其static的域。static的一个重要的用法就是不创建任何的对象的前提下就可以使用他。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: