版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hf19931101/article/details/82914481
Java编程思想读书笔记(2)
二.对象
-
把一切都当成是对象来处理,用reference来操控对象。reference可单独创建,使用时需使其跟某个对象相关联。使用new来创建对象使其同reference相关联。
-
数据可以存储在以下六个地方:
- 寄存器:在处理器里,反应最快,由编译器分配,数量有限,不能直接控制。
- 栈:在常规内存区里,通过栈指针对其进行访问,速度仅次于寄存器,存储的数据的大小和生命周期必须是已知的。通常将对象的reference存在其中而不直接存储对象。
- 堆:多用途的内存池。所有对象都保存在堆里,可动态分配数据大小和生命周期,存储分配和清理比栈慢一些。
- 静态存储:里面的数据在整个程序运行期间都能访问,使用static来指明。
- 常量存储:常量值存储,例如字符串池。
- 非内存的存储:数据独立于程序。例如:流对象和持久化的(persistent)对象。
- Primitive类型:
Primitive类型 | 大小 | 最小 | 最大 | Wrapper类型 |
---|---|---|---|---|
boolean | – | – | – | Boolean |
char | 16-bit | Unicode 0 | Unicode 2^16-1 | Character |
byte | 8-bit | -128 | +127 | Byte |
short | 16-bit | -2^15 | +2^15-1 | Shot |
int | 32-bit | -2^31 | +2^32-1 | Integer |
long | 64-bit | -2^63 | +2^63-1 | Long float |
double | 64-bit | IEEE754 | IEEE754 | Double |
void | – | – | – | Void |
高精度数据:BigInteger和BigDecimal,它们属于“包装容器类”。
BigInteger:支持任意精度的整数。
BigDecimal:支持任意精度的浮点数。
- Java确保数组会被初始化,并且不能在它的范围之外被使用。创建对象的数组时,实际上是在创建reference数组。这些reference会被自动的初始化为null。
注:如果使用一个null的引用,在运行时将会报错。
- Java中不允许将一个较大的作用域变量隐藏起来的做法。如下面的定义是不合法的。
{ int x = 12; { int x = 90; //illegal } }
- 类的字段。基本成员默认值:
基本类型 | 默认值 |
---|---|
boolean | false |
char | ‘\u000’(null) |
byte | (byte)0 |
short | (short)0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
对于局部变量,Java同样没有默认值(同C++),但是编译时会报错,而C++仅仅是给出警告。
- 通过static关键字可以满足两种情形:
- 只想为某特定域分配单一存储空间,而不去考虑要创建多少个对象,甚至根本就不创建任何对象
- 希望某个方法不与包含它的类的任何对象关联在一起。
- main()函数
public static void main (String[ ] args)
java在命令行运行的时候要用到java命令:
java Test value1 value2
后面就是两个参数,在main里面args[]就是2个长度的数组,其中value1存在args[0]中,value2存在args[1]中。
- javadoc标签
- @see:引用其他类。允许用户引用其他类的文档
- {@link package.class#member label}:同上一个标签类似,只是它用于行内
- {@ docRoot}:产生到文档根目录的相对路径,用于文档树页面的显示超链接。
- {@inheritDoc}:从当前这个类的最直接的基类中继承相关文档到当前的文档注释中
- @version: 格式:@version version-information
- @author: 格式:@author author-information
- @since: 指定程序代码最早使用的版本
- @param:用于方法文档中,形式如下:@param parameter-name description
- @return:用于方法文档,格式:@return description
- @throws:说明异常,格式:@throws fully-qualified-class description
- @deprecated:指出一些旧特性已由改进的新特性所取代,建议用户不要再使用。