JAVA语言系列(二):程序的基本组成


1. 存储位置

寄存器:位于处理器内部,不能直接控制
堆栈:位于RAM中,通过堆栈指针移动可以进行内存分配和释放。java系统必须知道存储在堆栈内所有项的确切生命周期,以便移动指针(这限制了程序的灵活性),对象引用和基本类型就存储在堆栈中(函数执行)。
:用于存放所有java对象,编译器不需要知道其存活多长时间。只要new即可在堆中分配。
常量存储:通常直接存放在代码内部。嵌入式系统可能存放在ROM中
非RAM存储:流对象(对象转化为字节流被发送给另一个机器)和持久化对象(磁盘)


2. 类型

基本类型

  • boolean,char(16 bit),byte(8 bit),short(16 bit),int(32 bit),long(64bit),float(32 bit),double(64 bit),void
  • 基本类型变量直接存储值并置于堆栈中
  • 基本类型具有包装器类,使得可以在堆上创建一个非基本类型对象。
  • 自动包装功能将自动地将基本类型转换为包装器类型。
  • 作为局部变量如果没有被初始化,java会在编译时返回错误。

高精度数字

  • BigInteger(任意精度整数)和BigDecimal(任意精度定点数),没有对应的基本类型。
  • 必须以方法调用的方式取代运算符来实现。

数组

  • java会确保数组会被初始化,且保证在范围内访问(少量的内存开销)。
  • 对于基本类型的数组,编译器保证了数组的初始化,全部置为0。
  • 当创建一个数组对象,实际上就是创建了一个引用数组,其中每个引用都会被初始化为null。

  • 类中包含两类元素:字段和方法
  • 字段
    字段可以是任何类型的对象,如果是引用,必须初始化该引用,以便与实际对象相关联。
    如果字段是基本数据类型,java会确保它获得一个默认值。(这并不适用于局部变量,即非类字段)
  • 方法
    返回类型描述了调用方法之后的返回值。
    参数列表给出了要传递给方法的类型和名称。对于对象来说,传递的是对象的引用,而基本数据类型例外。
    方法名称和参数列表(合起来称为方法签名)唯一标识了方法。
    调用方法通常被称为发送消息给对象
  • static
    当域被声明为static,意味着这个域不与任何对象实例关联在一起。
    对于static方法,不能简单地调用其他非static域或方法而没有指定某个命名对象。
  • static的需求
    只想为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象。
    希望某个方法不与包含它的类的任何对象关联在一起,即使不创建对象,也能调用该方法。
    static通常用来当做牧羊人角色,负责看护与其隶属同一类型的实例群。

对象

  • 操纵对象的标识符是对象的一个引用
  • 引用不一定需要和对象关联,如果向没有关联对象的引用发送消息,会返回一个运行时错误。
  • 对象只要需要,就可以一直保留下去。

3. 注释

注释文档

  • 将代码与文档链接起来,必须使用特殊的注释语法来标记文档,还需要一个工具提取注释javadoc
  • javadoc查找程序内的特殊注释标签,解析这些标签标记的信息,也将类名或方法提取

语法

  • 所有的javadoc命令只能在‘/**’注释中出现。
  • 三种类型的注释文档,分别对应于位于注释后面的三种元素:类,域和方法
  • javadoc只能为public,protected成员进行注释。
  • 使用javadoc的方式主要有两种:嵌入式HTML和文档标签。

嵌入式HTML

  • 可以通过html元素对注释进行格式化
  • 不要在嵌入式HTML中使用标题标签

标签:

  • @see:引用其他类的文档。
  • @version:包含版本说明的重要信息。
  • @author:作者信息。
  • @since:指定程序代码的最早使用版本。
  • @param:参数和具体信息
  • @return:返回值描述
  • @throws:异常和具体说明
  • @Deprecated:建议用户不要再使用的特性

4. 其他

  • java的作用域不允许隐藏:较大作用域的变量不能再较小作用域中被再次定义。
  • java.lang是默认导入到每个java文件中。

你可能感兴趣的:(JAVA语言系列(二):程序的基本组成)