首页 > 代码库 > Java编程思想总结笔记Chapter 2

Java编程思想总结笔记Chapter 2

  本章介绍Java程序的基本组成部分,体会到Java中几乎一切都是对象。

 

第二章   一切都是对象

目录:

  • 2.1 用引用操纵对象
  • 2.2 必须由你创建所有对象
  • 2.3 永远不需要销毁对象
  • 2.4 创建新的数据类型:类
  • 2.5 方法、参数和返回值
  • 2.6 构建一个Java程序
  • 2.7 你的第一个Java程序
  • 2.8 注释和嵌入式文档
  • 2.9 编码风格

2.1 用引用操纵对象

一切都看作对象,操纵的标识符实际上是对象的一个“引用”,遥控器(引用)操纵电视机(对象),想调控电视,只需通过遥控器,且遥控器是独立存在的。

2.2 必须由你创建所有对象

一旦创建了一个引用,就希望它能与一个新的对象相关联,通常用new操作符来实现这一目的。

String s = new String("Jiancheng");

 

五个不同的地方可以存储数据:

  • 寄存器:位于CPU内部,寄存器的数量极其有限,所以寄存器根据需求进行分配,速度最快。
  • 堆栈:位于通用RAM(随机访问寄存器)中,Java编译器必须知道存储在堆栈内所有数据的大小和生命周期,“堆栈指针”向下移动则分配新内存,向上移动则释放内存,速度仅次于寄存器,基本数据类型和引用存放在此。
  • 堆:位于RAM区,用于存放所有Java对象,编译器不用知道数据大小和生命周期.
  • 常量存储:常量值通常直接存放在程序代码内部。
  • 非RAM存储:完全存活在程序之外,不受程序的任何控制,例子是流对象持久化对象,在流对象中,对象转换成字节流,通常被发送到另一台机器。在"持久化"对象中,对象被存放于硬盘上,即使程序终止,它们仍可以保持自己的状态。

 9种基本类型:

 技术分享

boolean类型所占内存储空间的大小没有明确指定,仅定义为能够取字面值true或false。

高精度数字:

  • BigInteger:支持任意精度的整数
  • BigDecimal:支持任意精度的定点数

操作与对基本类型所能执行的操作相似,但必须以方法调用方式取代运算符方式来实现。

Java中的数组:
数组会被初始化,而且不能在它的范围之外被访问。这种范围检查,是以每个数组上少量的内存开销及运行时的下标检查为代价(换来安全性和效率)。

 2.3 永远不需要销毁对象

作用域:

技术分享

------------------------------------------------------------------

技术分享

对象的作用域:

Java的作用和基本类型差别很大,new创建一个Java对象后,它可以存活于作用域之外。只要你需要这个对象,就会一直保留下去,直到垃圾回收器辨别到该对象不会再被引用并释放该对象的内存空间,这样就消除了内存泄漏的问题。

2.4 创建新的数据类型:类

类决定了某一对象的外观与行为,确定了对象的类型。

基本成员默认值:

技术分享

当变量作为类的成员使用时,Java才确保给定其默认值,来确保基本类型成员变量得到初始化(初始值可能不是你想要的,最好自己初始化)。注意默认初始化的方法不适用于非某个类的字段变量,忘记初始化,Java会在编译时给你返回一个错误。

2.6 构建一个Java程序

static关键字:

下面两种情况需要使用static

  • 只想为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象。
  • 某个方法不与包含它的类的任何对象关联在一起,就是没有创建对象,也能够调用这个方法。
class StatiTest{
  static i = 47; //可以直接StatiTest.i这样调用
}

 

StatiTest st1 = new StatiTest();
StatiTest st2 = new StatiTest();
其中st1.i和st2.i指向同一存储空间,因此他们具有相同的值。

static作用于某个方法,区别在于用法在不创建任何对象的前提下就可以调用它,类.方法()。

2.9 编码风格

 驼峰风格:

  • 类,每个单词的首字母采用大写
  • 方法、字段及对象等,第一个单词的首字母采用小写,其余首字母大写

总结:

本章容易理解,对Java语言及它的一些基本思想有一个总体的认识,大多数知识点也接触过,但容易把细节的地方忘记,多看无碍。

转载注明:http://www.cnblogs.com/wujiancheng/

 Java编程思想总结笔记The first chapter

Java编程思想总结笔记Chapter 2