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 本身是不可能指向实实在在的内存区的.

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

  • 相关阅读:
    python 操作ie登陆土豆网
    python网络编程学习笔记(3):socket网络服务器
    python趣味编程:借书方案(排列组合)
    扑克牌洗牌
    C#开发的两个原则的深入讨论(转)
    软件文档知多少?(转)
    反射点滴Common
    使用ASP.NET加密口令(转)
    asp.net 备份和恢复SQL SERVER 数据库
    编程规范程序员们都应该这样写代码(转)
  • 原文地址:https://www.cnblogs.com/moveofgod/p/2998036.html
Copyright © 2011-2022 走看看