java基础(一)--一切都是对象

这是对java的再一次整合学习,在看《JAVA编程思想》后的一些记录;理解不当欢迎指正;

1.用引用操作对象,你拥有一个引用,并不需要有一个对象与之关联:

eg:String s;

这里创建的只是引用,并不是对象;这里其实相当于只是创建一个指针(有些不太恰当,但便于理解),但并没有一个明确指向;

安全的创建:String s = "abc";  或者String s = new String("abc");

2.存储:

a.寄存器:这是最快的存储区;寄存器根据需求分配,不能直接控制

b.堆栈:位于通用RAM中,可以通过堆栈指针从处理器获得支持;一般对对象的引用的存储;需要知道确切的生命周期;

c.堆:一种通用的内存池,用于存放所有的JAVA对象;不需要知道生命周期;

d.常量存储:常量值

e.非RAM存储:流对象和持久化对象(在其他地方存储,数据库)

3.数组:

java确保数据组会被初始化,而且不能在它的范围之外被访问。这种范围检查,是以每个数组上少量的内存开销及运行时的下表检查为代价;

a:默认没有初始化为null;一旦java看到null,就知道这个引用还没有指向某个对象。

b:创建用来存放基本数据类型的数组;为了确保初始化,置为0;

4.作用域:作用域的位置有花括号决定

在C和C++中将一个较大的作用域的变量“隐藏”起来,java中不行:

eg:java中报错,编译器将报告x已经定义过;

{

  int x = 12;

  {

    int x = 96;

  }

}

a.对象的作用域:java对象不具备和基本类型一样的生命周期;当new一个对象时,它可以存活在作用域之外

{

  String s = new String("abc");

}

引用s在作用域终点就消失了。而,s指向的对象仍然占据内存;

为了避免“内存泄漏”,java自带垃圾回收机制。

5.static关键字:

两种情况:第一种,只想为某特定域分配单一存储空间,不用考虑创建多少对象,或者不创建对象;

第二种,希望某个方法不包含与它的类的任何对象关联在一起,即没创建对象可以调用方法;

就是一个类定义了一个static数据成员,不管创建几个该类对象,都不会再对该成员分配空间;所有对象共享一块这一个数据成员;

6.javadoc:这是为了方便管理程序,生成的注释文档;需自己配置;

 

posted @ 2017-09-17 14:25  L-小太阳  阅读(342)  评论(0编辑  收藏  举报