Think in java随手笔记--------一切都是对象

众所周知,java这门语言的核心便是面向对象,那么,在java中,对象是什么呢?相对于c++来说,java基于c++,但是java是一种更纯粹的面向对象程序设计语言。学习java这门语言,必须透彻的理解OOP的概念,在java中,(几乎)一切都是对象,在Think in java中,第二章便透彻的说明了对象这个名词,以下是我对于这一章内容的理解。

一切都是对象

  • 1.用引用操纵对象
    • 每种编程语言都有自己的操纵内存中元素的方式
    • java通过创建一个引用来操纵对象 例如以下
      String s;
      s.run();
      
      其中s为创建的引用,利用s来操纵对象,当向s发送一个消息时,s开始调用run()方法。
  • 2.必须由你创建所有对象
    • 对象的存储
      • 寄存器:最快的存储区,但是数量有限,不能够直接控制,寄存器会根据需求自动分配
      • 堆栈:快速有效的存储方式,速度仅次于寄存器;堆栈指针向上移动,释放内存,堆栈指针向下移动,分配新的内存;java对象并不存储在堆栈内
      • 堆:一种通用的内存池,用于存放java对象
      • 常量存储:用于定义并存储常量
      • 非RAM存储
    • 基本类型(基本类型表见文章最后)
      • boolean 类型所占的存储空间大小没有明确的指定,但是定义只能取true和false
      • java提供了两个可以用于高精度计算的类:BigInteger和BigDecimal
        • BigInteger支持任意精度的整数
        • BigDeciaml支持任意精度的定点数
    • java中的数组
      • 每当定义一个数组,如果并未赋值,默认数组为空,并不会报错
  • 3.永远不需要销毁对象
    • 作用域
      • 在java中作用域由花括号的位置决定。例如
       {
          int x = 12;
          //Only x available
            {
             int q = 96;    
              //Both x&q available
            }
             //Only x available
             //q is "out of scope"
      }
      
      • 定义过的变量不可以重复定义(c++中可以但是java中不允许)。例如:
      {
          int x = 12;
          {
           int x =96;//不合法
          }
      }
      
      以上的例子不合法。
    • 对象的作用域
      • 当使用new定义一个对象时,对象可以存活于作用域之外,例如:
      {
          String s = new String("a string");
      } //End of scope
      
      以上的代码中,使用new定义了一个String对象,在作用域外,s消失,但是s指向的String对象仍然占据内存空间(如果不理解s指向,请去了解内存分析方面的知识)。
  • 4.创建新的数据类型:类
    • 字段和方法
      • 在定义一个类之后,可以在类中使用两种类型的元素,第一种是字段,第二种是方法;
      • 字段:字段就是数据成员,定义一个数据,可以有不同数据类型的数据
      • 方法:方法就是用来操作的过程,有时也被称为成员函数
      • 字段实例
      class A{
          int i;
          double d;
          boolea b;
      }
      
      • 方法实例
      class B{
          i.data;
      }//data即为一个方法
      
      • 基本成员的默认值,只有当变量作为类的成员使用时,java才确保给定其默认值(意味只有在定义的类中才可以使用默认值)(默认值表在文章最后)
  • 5.方法参数和返回值
    • 参数列表
  • 6.构建一个java程序
    • 名字可见性
    • 运用其他构件
    • static关键字
  • 7.你的第一个java程序
  • 8.注释和嵌入式文档
    • 注释代码
    • 语法
    • 嵌入式HTML
    • 一些标签及其示例
    • 文档示例
  • 9.编码风格
  • 10.总结
基本类型 大小 最小值 最大值 包装器类型
boolean - - - Boolean
char 16-bit Unicode 0 Unicode 2^16-1 Character
byte 8-bit -128 +127 Byte
short 16-bit -2^15 +2^15-1 Short
int 32-bit -2^31 -2^31-1 Integer
long 64-bit -2^63 -2^63-1 Long
float 32-bit 1EEE754 1EEE754 Float
double 64-bit 1EEE754 1EEE754 Double
void - - - Void
基本类型 默认值
boolean false
char '\u0000'(null)
byte '(byte)0'
short '(short)0'
int 0
long 0L
float 0.0f
double 0.0d

你可能感兴趣的:(Think in java随手笔记--------一切都是对象)