Java编程思想学习录(连载之:一切都是对象)

96
CodeSheep
2017.12.30 11:54* 字数 583
Macbook Air

注: 本文原载于 My Personal Blog:CodeSheep · 程序羊


还是有必要学习一下关于·一切都是对象

说Java是一种纯粹的面向对象的语言,可能这话主要是针对和C++的比较而言,毕竟C++提供了向C的后向兼容的能力,致使C++好像面向对象得不那么纯粹,这话我大概同意吧。

Java均是在用reference来操作对象

比较安全的做法是:创建引用的同时对其进行初始化

对象由我们来创建但却不需要我们来销毁

  • 对于基本类型

    • 无需用new,java视其为非引用的自动变量,并置于stack之中
    • 基本类型有其包装器类,这才允许将其创建于heap之中,当然包装完之后也不能叫基本类型对象了
    • java所有数值都有正负,不支持无符号
    • BigInteger和BigDecimal是Java支持的两大高精类型
  • 对于数组

    • java在每个数组上用了一点内存开销以及运行时的下标检查为代价,带来了收益是:java确保数组会被初始化(对象数组元素初始化为null,基本类型数组元素初始化为0),且不会越界访问
  • 对于class

    • 基本数据类型成员会确保有默认值(但该条款不适用与局部变量)
    • 称呼上惯用方法来取代函数;方法名和参数列表成为方法签名;调用方法的行为称为发消息给对象
  • 关于作用域

    • java不允许覆盖一个较大作用域的变量,如下:
{
  int x = 12;
  {
    int x = 96; // 这在Java里是不合法的
  }
}
  • 关于Static对象
    • 一份存储空间
    • 直接使用类名来引用static成员更常见
  • 关于一个java程序
    • java.lang肯定会被自动导入到每一个java文件中
    • 一个java源码文件 = 一个编译单元
    • java源文件名 = 源文件中仅有的一个public类名,且该类必须包含一个main()方法(当然一个java文件中无public类也是ok的!)
    • 每个java类都有一个main()方法是OK的,这样还便于单元测试!

CodeSheep
Java沉思录
Web note ad 1