zoukankan      html  css  js  c++  java
  • head first java 01 ( 1 ~ 3 章 )

    - java 中的整型和boolean不通用

      int x = 1; while (x) {} 这是错误的

    - 创建对象

      需要两个类, 一个是操作类例如 Dog, 另外一个是测试类, 带有main函数.

    - main()的两种用途

    • 测试真正的类
    • 启动你的Java程序

    - 垃圾收集

    image

    image

      注意:此处的 c, d 分别在两块内存单元里, 只是他们的指向是相同的, 即 这是两个指针变量, 这两个指针变量的值是相同的, 但是它们俩本身

      的指针(地址)是不同的.

    image

    另外:

    image

    image

    image

    - 数组是对象 (只要是对象, 就会存在于堆内存中)

      数组变量实际上就是指针,

      int[] nums; // 1步, 创建指针

      nums = new int[7];  // 2步, 在堆内存中分配空间, 并将 nums指针指向该内存区域

      nums[0] = 6; // 3步, 可以使用该区域了, 可以直接使用了. 6 就是一块实实在在的内存区.

      对象数组中, 数组中保存的内容是对象的指针(引用), 而并非真正的对象.

      Dog[] pets; // 1步, 创建指针

      pets = new Dog[7]; // 2步, 在堆内存中分配空间, 并将pets指向该内存区域, 但是每个元素中存放的是指针, 该指针目前是野指针.

      pets[0] = new Dog(); // 3步, 在堆内存再分配空间来保存 Dog对象, 此时的 pets[0]中的指针(引用)指向该Dog对象的内存单元.

                           // 所以, 对象数组其实就是 2 级指针. 然后才找到实实在在的内存区域.

      pets[0].break(); // 使用内容, 由此可见, pets 本身是不可能指向实实在在的内存区的.

      注意: 对象数组在创建完以后, 还需要对每个数组成员再创建对象, 否则该数组成员就是野指针.

  • 相关阅读:
    sublime代码对齐
    sql查询结果存入DataTable,然后从DataTable取数据
    null和System.DBNull.Value的区别
    引用EChart和Bootstrap
    SSIS系列文章收藏
    Object类型的怎么判断空值
    DataGridView刷新数据
    WinFrom弹出输入框
    DataGridView更新数据到数据库
    SqlParameter防止SQL注入
  • 原文地址:https://www.cnblogs.com/moveofgod/p/2998036.html
Copyright © 2011-2022 走看看