一、一切都是对象

从今天开始记录《Thinking in Java》的学习。

1.java里内存那些事

java里面(几乎)一切都是对象,操纵对象的标识符是对象的一个引用(reference),可以拥有一个引用,但不一定需要有一个对象与它关联,比如:

String s;

以上只是一个引用,不是对象,但字符串可以用带引号的文本初始化:

String s = "asdf";

但是,更通用的对象初始化方法是使用new关键字(通常在创建一个引用的同时进行初始化):

String s = new String("asdf");

各种存储位置:

1)寄存器:速度最快,但java中不能直接控制

2)堆栈:或者说栈,速度仅次于寄存器,位于RAM,存放对象的引用,存放基本类型的变量,栈中的每一项都有确切的生命周期

3)堆:位于RAM,存放所有的对象(包括包装类的对象),new一下即可分配,比较方便,但是需要更多的时间

4)常量存储:常量值放在代码内部,或者ROM中(例如:字符串池。这里他讲的不详细,就先这么理解吧)

5)非RAM存储:存活在程序之外,比如流对象和持久化对象。

2.作用域

作用域即花括号的位置,以下的方式不允许:

{
    int x = 10;
    {
        int x = 20;
    }
}

由于java对象没有生命周期(栈中的引用和基本类型有生命周期),所以当new的对象,可以存活于作用域之外:

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

引用在作用域终点消失,但是s指向的String对象仍然存在,但是作用域之后无法再访问(除非传递或复制对象引用),垃圾回收器会判断出不再使用的对象,释放它占用的内存空间,也就是说只需要创建对象,一旦不再需要,它们机会自行消失。

3.类

1.字段

字段可以如下构成:

1)初始化了的对象

2)基本类型(仅当是类的成员时会被初始化为默认值,局部变量未初始化将会编译错误,所以最好明确地对变量进行初始化)

普通字段不能在对象间共享(static这种针对类调用的可以)。

2.方法

在向方法传递参数的时候,传递的实际上是引用(但不是引用传递!!!实际上还是值传递,对于对象,传递的是引用的拷贝!)。

return的含义:1.已经做完,离开此方法。2.如果此方法产生了一个值,要通过return返回(无返回值也可以有return语句)。

4.Last but not least

用反向域名来作为包名划分子目录,同一个文件内每个类都有唯一的标识符。

使用import导包(java中的包全是类库),*可以导入一个目录下的全部类,但是仅限一层。

static:

1)只有一份

2)某个域或方法不予它的类的任何对象关联

注意:

1)非static域和方法必须知道他们一起运作的特定对象

2)static方法不能不通过对象访问非static域或方法

3)static域或方法可以通过对象调用,但常常是通过类名直接调用(使用类名引用static变量为编译器优化提供了更好的机会)

helloworld:

java.lang会自动导入到每一个java文件中,其中包含了System类,System类中的一个属性out是一个静态的PrintStream对象(out是System类的属性,同时也是PrintStream的对象,所以可以调用PrintStream中的println()方法)。

在运行java程序时,在终端输入的"java Demo x y z"分别对应String[] args中的args[0]、args[1]、args[2]...

注释:

javadoc会生成HTML格式的文档

类、域、方法三种类型的注释文档分别在需要注释的三种元素的前面:

/** A class comment */
public class Documentation1{
    /** A field comment */
    public int i;
    /** A method comment */
    public void f() {}
}

 

转载于:https://www.cnblogs.com/mvplzl/p/4409647.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值