一切都是对象

Java是“纯粹”的面向对象程序设计语言,Java中(几乎)一切都是对象。

1、用引用操纵对象

  • 尽管一切都看作对象,但操纵的标识符实际上是对象的一个“引用”(reference)。

2、必须由你创建所有对象

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

  • 存储数据位置:

           寄存器:最快存储区,位于处理器内部。数量有限,按需分配。不能直接控制,在程序中也感觉不到其存在。

           堆栈:位于通用RAM(随机访问存储器)中。这是一种快速有效的分配存储方式,仅次于寄存器。需知道确切的生命周期。Java对象引用存储堆栈中,但Java对象并不存储其中。

           堆:通用内存池(位于RAM区),存储Java对象。堆不同于堆栈的好处是:编译器不需要知道存储的数据在堆里存活多久。但堆进行存储分配和清理可能比用堆栈进行存储分配需要更多时间。

           常量存储:存放在程序代码内部。嵌入式系统中,可以选择将其存放在ROM(只读存储器)中

           非RAM存储:数据完全存活于程序之外。两个基本的例子:流对象和持久化对象。在流对象中,对象转化为字节流。在“持久化对象”中,对象被存放于磁盘上。这种存储方式的技巧在于:把对象转化为可以存放在其他媒介上的事物,在需要的时候,可以恢复成常规的、基于RAM的对象。

  • 基本类型:

         对于这些基本数据类型,Java采用与C/C++相同的方法,不用new来创建变量,而是创建一个并非引用的“自动”变量,这个变量直接存储值,并置于堆栈中,因此更加高效。Java确定每种基本类型所占存储空间的大小。

  •            一切都是对象 

         基本类型具有的包装器类,使得可以在堆中创建一个非基本对象,用来表示对应的基本类型。 

  • 高精度数字,非基本类型

         BigInteger:支持任意精度的整数。

         BigDecimal:支持任意精度的定点数。

  • Java中数组

         创建一个数组对象,就是创建一个引用数组,并且每个引用都会被初始化为一个特定值(关键字:null)。

         创建用来存放基本数据类型的数组,编译器也能确保这种数组的初始化,因为它会将这种数组所占的内存全部置零。

3、永远不需要销毁对象

  • 作用域:决定了在其内定义的变量名的可见性和生命周期,作用域由花括号的位置决定。

  • 对象的作用域:Java对象不具备和基本类型一样的生命周期。用new创建一个Java对象,它可以存活于作用域之外。由new创建的对象,只要你需要,就会一直存在。Java有一个垃圾回收期,用来监视用new创建的所有对象并辨别那些对象不再被引用,随后,释放这些对象的内存空间,以供其他新的对象使用。

4、创建新的数据类型:类

  • class关键字定义类。

         一旦定义一个类,就可以再类中设置两种类型的元素:字段(数据成员)和方法(成员函数)。

         基本成员默认值:类的某个成员是基本数据类型,即使没有被初始化,Java也会确保它获得一个默认值。

         一切都是对象

         上述确保初始化的方法并不适用于“局部“变量(即并非某个类的字段)。

5、方法、参数和返回值

     方法的基本组成部分:名称、参数、返回值和方法体。

     方法名和参数列表唯一地标识出某个方法。

     调用方法的行为通常被称为发送消息给对方。

     参数列表中必须指定每个所传递对象的类型和名字,像Java中任何传递对象的场合一样,这里传递的实际上也是引用。

     若返回类型是void,return关键字的作用只是用来退出方法。

6、构建一个Java程序

     名字可见性:整个包名都小写;同一个文件内的每个类都有唯一的标识符。

     运用其他构件:import指示编译器导入一个包,也就是一个类库。

     static关键字:声明一个事物是static,就意味着这个域或方法不会与包含它的那个类的任何对象实例关联在一起。一个static字段对每个类都只有一份存储空间,非static字段则对每个对象有一个存储空间。

     java.lang是默认导入每个java文件中的包,类的名字必须与文件名相同。

     编译与运行:首先必须要有一个java环境,编译命令javac 类名.java,运行命令java 类名。

7、注释

    多行注释:以”/*“开始,随后是注释内容,并可跨越多行,最后以”*/“结束。

    单行注释:以”//“起头,直到句末。

    文档注释:以”/**“开始,结束于”*/“。Javadoc只能为public和protected成员进行文档注释。private和缺省成员的注释会被忽略掉,在输出结果中看不到它们。

8、编码风格

    在“java编程语言编码约定”中,代码风格是这样规定的:类名的首字母大写;如果类名由几个单词构成,采用“驼峰风格”。几乎所有其他内容—方法、字段(成员变量)以及对象的引用名称等,公认的风格与类的风格一致,只是这些标识符第一个单词的首字母采用小写。

           

                    

转载于:https://my.oschina.net/90liusq/blog/303410