第二章 一切都是对象

2.1 用引用操作对象

Java中几乎一切都是对象,操纵对象的是引用 String s;实际上只是创建了引用,并不是对象。

2.2必须由你创建所有对象

对象的存储:

1.    寄存器,最快,处理器内部,数量少,不由用户控制

2.    堆栈,栈结构,位于RAM随机访问存储器中,指针上移释放内存,下移分配内存。需要知道栈内项的确定的生命周期,一般不存对象,对象引用会存储于此。

3.    堆,通用内存池,RAM中,用于存放所有java对象。New代码执行完后,自动分配内存。灵活性高,但是在清理和存储分配时需要比栈更多的时间。

4.    常量存储,常量值直接存于程序代码中,不会被修改,存于rom(只读存储器)中

5.    非ram存储器,数据存储于程序之外,如流对象和持久化对象(存放于磁盘上)。对象转换成可以存放在其他媒介上的事物,在需要时,可恢复成常规的、基于ram的对象。

Java每种基本类型所占存储空间的大小是固定的,并不随机器的硬件结构的变化而变化(java可移植性高的原因之一)。

Boolean存储空间没有指定大小,true和false。

char-16bits,byte-8,short-16,int-32,long-64,float-32,double-64.

基本类型对应有包装器类(Byte,Short等)

java提供的两个高精度类:BigInteger(任意精度的整数) BigDecimal(任意精度的定点数) 用速度换取了精度。

数组,创建数组对象时,实际上创建了一个引用数组,并且每个引用会被自动初始化为null。在使用任何引用前,必须要为其指定一个对象。

2.3 永远不需要销毁对象

作用域(scope)由{ }来限定,表示了变量的可见性和周期

{int x=12;

{int x=10;//java中是非法的,c中允许}

}

java中的垃圾回收器自动决定 对象何时销毁。

2.4 创建类

类包括字段(数据成员)和方法(成员函数)。字段如果是某个对象的引用,必须初始化。基本数据类型会有默认的值,自动初始化。

2.5 方法、参数、返回值

方法只能通过对象来调用, int x = a.f(); 方法调用的过程是消息发送的过程。向a发送消息f();

程序似乎是一系列带有方法的对象组合,这些方法以其他对象为参数,并发送消息给其他对象。

2.6 构建一个java程序

java中名字可见性问题,采用反转域名(com.hp.java),c++中使用的是名字空间。

import导入一个包,或类库

static关键字

static放在字段之前,class StaticTest{staticint i=4;}在创建两个类对象时,他们共有一个i,i只有一份存储空间。使用类名引用static字段,是首选。 StaticTest.i

static放在方法前边,在不创建任何对象的情况下,也可以引用这个方法。

2.7第一个java程序

java.lang是默认自动导入的包,其中的输出函数,学会查找文档

2.8 注释和嵌入式文档

/* */ 和//最传统的两种

javadoc用于提取注释的工具,是jdk安装的一部分,采用编译器中的特殊技术,查找程序内的特殊注释标签。输出是一个html文档

javadoc的语法/** */

2.9 编码风格

驼峰式,类的首字母大写,其他方法、字段首字母小写

命令行参数,eclipse中,右键run configuration 中的arguments

遗留问题:用命令行编译成功,执行时报错,明天再试

解:问题在于我的文件里有package,类似于这篇文章中的问题。

http://afantihust.blog.51cto.com/2231549/684608 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值