如果我们说另一种不同的语言,那么我们就会发觉一个有些不同的世界。
——Luduing Wittgerstein(1889~1951)
*用引用操作对象,引用就像一个门牌号,对象就是这个门牌号相对应的住户,有了门牌号可以像这个住户发送信件。当然门牌号也可以对立存在,没有相对应的住户,只是在向这个住户发送信件的时候会发生错误。
*所有的对象都必须是你去创建。
*有五个不同的地方可以存储数据:
1)寄存器。最快的存储区,位于处理器内部。不能直接控制,不能感觉到寄存器的存在。
2)堆栈。位于通用RAM(随机访问存储器)中,速度仅次于存储器。堆栈指针向下移动,则分配新的内存;诺向上移动,则释放内存。
3)堆。一种通用的内存池(也位于RAM区),用于存放所有的Java对象。好处是编译器不需要知道存储的数据在堆里存活多少时间。坏处是分配和清理必要堆栈进行存储需啊哟更多的时间。
4)常量存储。直接存放在代码内部,因为永远不会改变。可以选择存放在ROM(只读存储)中。
5)非RAM存储。完全存活在程序之外,在程序没有运行是也可以存在。比如流对象和持久化对象。
*基本对象存储于堆栈中。基本类型有:
*boolean类型所占存储空间的大小没有明确指定,仅定义为能够取字面值true或false。
*高精度数字BigInteger(支持任意井队的整数)和BigDecimal(支持任何精度的定点数)。
*在C和C++中将较大作用域的变量“隐藏”起来的做法,在Java中是不允许的。
*定义一个类,就可以在类中设置两种元素:字段(数据成员)和方法(成员函数)。
*基本成员的默认值:(并不使用于“局部”变量,即并非某个类的字段)
*字符串中的每个字符的尺寸都是16位(2个字节,以此来提供对Unicode字符集的支持)。
*static作用于字段时改变数据的创建方式(因为static字段对每个类来说都只是一份存储空间,而非static字段则是对每个对象有个存储空间),但是如果static作用于某个方法,差别缺没有那么大。static方法可以创建或使用与其他类型相同的被命名对象,因此,static方法常常拿来做“牧羊人”的角色,负责于看护于其隶属同一类型的实例群。
*注释有两种风格(/*........*/和//.......);注释文档(/**........*/)。使用javadoc的方式有两种嵌入式Html或使用“文档标签”。
*标签示例:
@see:引用其他类
{@link package.class#member label}:只用于行内,并且用“label”作为超链接文本。
{@docRoot}:该标签产生到文档根目录相对路径,用于文档页面的显式超链接。
{@inheritDoc}:该标签从当前这个类的最直接的基类中继承相关文档到当前文档注释中。
@version:可以是任何你认为适合包在版本中的说明。
@author:可以是你的姓名,邮件或者其他的信息。
@since:允许你指定程序代码最早使用的版本。
@param:使用在方法中,表示参数。
@return:使用在方法中,表示返回值的描述。
@throws:描述抛出的异常。
@deprecated(@Deprecated):表示建议用户不要再使用的旧特性。