Java 核心技术 I chap 1 ~ 4 阅读摘要

1. 前言

最近突然想学一下java, 于是就找到了 《Java 核心技术 I》这本书来研究, 并记录一些自己觉得相对重要的, 与C++中有些不太一样的东西。

2. chap 1 概述

2.1 Java 特点

  1. java 可以看成是C++语法的一个纯净版本, 简单
  2. 面向对象
  3. 可以非常容易的处理网络
  4. 安全, 不用担心内存泄露
  5. 可移植性好, 在各个平台上运行结果保证一致
  6. 多线程特性
  7. 有applet 可以用于启用java特性的浏览器上

3. chap2 java 环境

  1. 需要安装 jdk 和 jre
  2. 我们这里配置的环境实际上是直接拿了android 的开发环境, 通过测试可以直接编写java 程序

4. chap3 java 基本程序设计结构

  1. java 的所有程序内容都必须放在类中, 包括main
  2. java 中有8种基本数据类型, 与平台无关, 其中, char 类型采用utf16编码
  3. final 用来表示常量, 用C++的概念来讲, 这是一个顶层的const, 对于对象而言, 他只是限制对象的地址不能发生变化, 但是, 不会关心这个对象自身是否会发生变化。
  4. >>> 表示用 0 填充高位的 右移操作
  5. java 中的字符串本身就是 unicode 的。String 是一个不可变的字符串方法,通过编译器使得字符串实现共享。有点类似于C++中的常量字符串操作。
    • java 没有重载运算符操作
    • 一些常用的api:
      • equals
      • substring
      • length
      • charAt
      • etc
    • StringBuffer 多用于多线程, 而StringBuilder 多用于单线程, 用来表示可变字符串
  6. 输入一般需要借助一个 scanner 对象, 然后 调用 他的nextLine, nextInt, nextDouble, next等方法
    • 其他, hasnext, hasnextint 。。
    • 用system.console 的readline 可以读入密码信息, 而不回显
  7. 格式化输出, 和 C 中的 printf 非常类似
  8. 对于读入文件, 使用paths.get 转化成一个 File 对象后, 然后传递给 Scanner 对象
  9. 对于输出文件, 可以使用 PrintWriter 对象处理
  10. java 中不允许在嵌套块中重新定义一个变量, Java 不支持goto , 但是可以使用带标签的 break
  11. Java 中的switch 支持 字符串常量
  12. Java 中可以使用 BigInteger 和 BigDecimal 来处理大数据计算
  13. java 中的数组支持 for each 循环操作, 一般数组还有一种 toString 操作可以用来直接打印输出, 这里的数组是一个对象
  14. java 中的命令行参数中的 args[0] 不包含文件名

5. chap 4 对象和类

  1. OOp
    • 不关心对象的具体实现, 只要可以满足用户的需求 好了
    • 封装,不能让类中的方法直接访问其他类的实例域, 程序只能通过对象的方法和对象数据进行交互
    • 3 个主要特征:
      • 对象的行为
      • 对象的状态
      • 对象的标识, 不同标识情况下, 对象所能够调用的对象的行为是不同的
  2. 类之间的关系
    • 依赖 uses-a, 一个类的方法操作另一个类的对象
    • 聚合 has-a, 一个类的对象 包含另一个类的对象
    • 继承 is-a
  3. 使用预定义的类 GregorianCalendar
  4. 一个对象变量没有实际包含一个对象, 而仅仅只是引用一个对象
  5. 封装:

    • 私有数据域
    • 公有的域访问器方法
      • 另外不要返回 引用可变对象的访问器方法, 应该返回对象的一个副本 clone
    • 公有的域更改器方法
  6. final 类似于常量指针

  7. Java 按照值来传递, 并不是引用!!!
  8. 对象构造的时候默认初始化:
    • 数值: 0
    • bool :false
    • 对象引用 : null
  9. 包, 类似于 C++ 中的名字空间
  10. javadoc 可以用来提取程序中的注释信息

你可能感兴趣的:(java)