Think In Java 学习整理 第二章 一切都是对象

2.1 用引用操纵对象

  操纵对象的标示符实际上是对象的一个“引用(reference)” 可以将这个引用想象为遥控器来操作电视机(对象)。

  String s; 创建了一个引用,而不是一个对象 . 安全的做法进行初始化 String  s = "asf"; 

2.2 必须由你创建所有对象

  用new关键字来创建一个对象 String  s = new String("asdf");

  2.2.1 存储在什么地方

    1) 寄存器 最快的存储区,在处理器的内部,空间有限。

    2) 堆栈 位于RAM(随机访问存储器),由堆栈指针来存取数据 数据类型:一般为对象的引用,而不是对象本身,还有基本的数据类型(后面有提到)。

    3)堆 通用的内存池  用于存放所有的Java对象  只要new一个对象的时候才会为对象分配存储的空间。

    4)常量存储 直接放在程序代码的内部

    5)非RAM存储  数据指流对象和持久化对象

  2.2.2 特例:基本类型

     java中需要存储一些小的、简单的变量.直接存储"值",置于堆栈中

    这些变量有:boolean char byte short int long float double void   

    高精度计算的类:BigInteger 和 BigDecimal

  2.2.3 Java中的数组

     java数组确保会被初始化,并不能在它的范围之外访问它。

    创建一个数组对象时就是创建了一个引用数组,每个引用都会默认的被初始化为一个特定的值,数组的默认值为null。

    也可以创建一个有基本类型的数组  初始化后的内存全部为零。

 2.3 永远不要销毁对象 

  2.3.1 基本类型的作用域中的变量名不能被重复使用。

  2.3.2 对象的作用域

    如 {

        String s = new String("a string");

      }

    引用s在作用域终点就消失了,而s指向的String对象继续占据内存空间。java的垃圾回收器 会销毁不使用的对象。

 2.4 创建新的数据类型:类

  字段可以是任何类型的对象,可以通过其引用与其进行通信,也可以是基本类型的一种,如果字段是某个对象的引用,那么必须初始化该引用以便它与一个实际对象相关联。

  基本成员的默认值 在java中当变量作为类的成员时,就会有默认值 ,而其他的不会有,如方法中的局部变量,就没有默认值,必须对方法中的变量进行初始化操纵。

  java中的方法只能作为类的一部分来创建 方法只有通过对象才能被调用(static方法除外)

    这种调用方法的行为称为"发送消息给对象"

  参数列表:为了提供方法内部功能的实现。

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

 2.6 static关键字

  static关键字的使用范围:为某个特定域分配单一存储空间和没有对象也能调用的方法

  这个域或是方法不会和任何实例对象关联在一起 。

  使用static方法 不能调用其他非static域或是方法,只有通过对象的方式来调用非static域和方法。

  被static修饰的变量、方法 被称为静态变量、静态方法 可以用类名.变量名\方法名的形式,来调用

  static字段对某个类来说只有一份存储空间,而非static字段对每个对象有一个存储空间。

  static方法的重要用法是在不创建任何对象的前提下就可以调用它。

 

 

 

  

  

  

    

posted @ 2013-02-26 14:51  lichl  阅读(166)  评论(0编辑  收藏  举报