Java基础

Java编程思想笔记2.一切都是对象

2018-11-09  本文已影响50人  卢卡斯哔哔哔

点击进入我的博客

2.1 用引用操纵对象

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

String s;
// s是一个String类型的引用, 并没有任何对象与其关联
String str = "imbug";
// 创建str引用的时候同时进行初始化

2.2 必须由你创建所有对象

使用new操作符来创建新对象并与引用关联。

String str = new String("imbug");

2.2.1 存储到什么地方

2.2.2 特殊:基本类型

问题:用new创建的对象在堆里,对访问频繁而且简单的对象代价太大。
方法:不用new创建变量,而是创建一个不是引用的变量,直接存储“值”在栈中。

基本类型 大小 最小值 最大值 包装器类型
boolean - - - Boolean
char 16bits 0 2^16-1 Character
byte 8bits -128 127 Byte
short 16bits -2^15 2^15-1 Short
int 32bits -2^31 2^31-1 Integer
long 64bits -2^63 2^63-1 Long
float 32bits - - Float
double 64bits - - Double
void - - - Void
关于存储空间

Java确定每种基本数据类型所占空间的大小,跟硬件平台无关。

关于boolean类型
关于高精度数字

Java提供了BigInteger和BitDecimal两个高精度计算的类,但是没有对应的基本类型。

2.2.3 数组

Java确保数组会被初始化,而且不能在它的范围之外被访问;这种范围检查的原理是每个数组上的少量内存开销和运行时的下标检查。
创建一个数组对象Object[] arr = new Object[10];时,实际上是创建了一个引用的数组,数组中的每个引用都自动被初始化为null;如果是创建的是基本数据类型数组,则会讲该数组所占的栈内存全部置为0。

2.3 永远不需要销毁对象

2.3.1 变量以及基本类型的作用域

Java语言中,作用域由花括号{}位置决定,在作用域中定义的变量只可作用于作用域结束之前。

2.3.2 对象的作用域

Java对象和基本类型的生命周期不一致。

{
    String str = new String("imbug");
}

上述代码中当超出}的范围之后,引用str已经消失了,但它指向的String对象仍然存在在堆内存中,但我们无法访问该对象,因为它的引用已经消失。
Java使用垃圾回收器来管理new创建的对象,并辨别那些不会再被使用的对象,然后释放其占据的内存空间。

2.4 创建新的数据类型:类

使用class关键字来表示“一种新的类型”。
在Java中,你的工作就是定义,产生这些类的对象,以及发送消息给这些对象。

class ClassName {
}
字段(数据成员):可以是任何的对象和基本数据类型
方法(成员函数):详见2.5节

2.5 方法、参数和返回值

ReturnType methonName( /* Arguement list */ ) {
    /* Method body */
}
参数列表

2.6 包名、import、static

名字可见性

Java约定以域名反转作为包名,用.来划分子目录,并且全部小写。

import关键字

使用import关键字引用其他定义好的类

static关键字

现象:创建一个class的时候,只是描述一个类的对象的外观与行为。在new创建该类的对象之后,才会分配数据存储空间,其方法才可以被外界调用。
问题:只想为特定域分配单一存储空间而不想去分配多少对象;希望某个方法不与包含它的类的任何对象关联在一起。
方法:static关键字

2.7 main方法、编译、运行

import java.util.Date;

public class Test {
    public static void main(String[] args) {
        // main方法args用于接收命令行参数
        System.out.println(new Date());
    }
}

2.8 注释和文档

2.8.1 java的注释

/* 多行注释 */
// 单行注释

2.8.2 javadoc

javadoc是用于提取注释的工具,他可以找出程序内的特殊注释标签并解析。
javadoc输出的是一个HTML文件。
所有javadoc命令都只能在/* */注释中出现。
使用javadoc有两种方式:嵌入HTML或使用文档标签
独立文档标签:@字符开头,且要置于注释行的最前面
行内文档标签:出现在任何地方,以@开头,但要放在{}
javadoc只能为publicprotect成员进行文档注释,private包内可访问的注释会被忽略,输出结果中看不到它们。使用-private标记可以把private注释也包括进去。

2.8.3 嵌入式HTML

不要在嵌入式HTML标签中使用标题如<h1><hr>,否则会跟javadoc自己的标题冲突。

2.8.4 文档标签

2.8.5 编码风格

类名:首字母大写、多个字母驼峰法
域名&方法名:首字母小写、多个字母驼峰法

上一篇 下一篇

猜你喜欢

热点阅读