Java核心技术卷一(一、二、三章读书笔记)

Chapter 1

  1. Java中int大小永远为32位。数据类型具有固定的大小。字符串都是用标准的Unicode格式存储的。
  2. 在网页中运行的Java程序成为applet,要使用applet,需要启用Java的Web浏览器执行字节码
  3. 创始人詹姆斯·高斯林,与1996年发布Java1.0版本,Sun公司于2009年被Oracle公司收购

Chapter 2

  1. JDK工具包的1.2~1.4版本被称为Java SDK,还有一个JRE,它包含Java运行时环境,包含虚拟机但不包换编译器。
  2. Java SE(java标准版)、JavaEE(企业版Java)、JavaME(MicroEdition用于手机和其他小型设备的Java平台)
  3. 我们使用的和需要的是JDK(Java SE开发包),而不是JRE
  4. 使用命令行

Chapter 3

  1. 一个简单的Java程序

    public class FirstSample {
        public static void main(String[] args) {
            System.out.println("We will not use 'HelloWorld'");
        }
    } 
    
    1. 关键字public成为访问修饰符,用于控制程序的其他部分对这段代码的访问级别。
    2. 关键字class表明Java程序中的全部内容都包含在类中。类是构建所有Java应用程序的构建块
    3. 命名规范
    4. 当使用javac运行已编译的class字节码文件时,Java虚拟机将从指定类的main方法开始执行。
  2. main方法必需为public的,不过,有些版本的Java解释器也能够执行Java应用程序,bug号码4252539.Java SE1.4版本以后网址main方法是public的

  3. Java中任何方法的代码都用“{”开始,“}”结束。空白符会被Java编译器忽略。

  4. 回车不是一条Java语句的结束,所有如果需要,可以把一条语句写在多行上。

  5. 点号(·)用于调用方法。Java使用的通用语法是object.method(parameters),等价于函数调用

  6. 注释: //、/* /、/* */

  7. Java是一种强类型语言,这就意味着必需为每一个变量声明一种类型。

  8. Java有八种基本数据类型:4中整型,2中浮点型,1种Unicode字符型,1中布尔型。Java 中一个表示任意精度的包:big number,不是一种新类型,而是一个Java对象。

    1. 整型int、short、long、byte

      类型存储需求取值范围
      int4字节约为-21亿~+21亿,可以表示42亿个数字
      short2字节-32768 ~ +32767
      long8字节-9223372036854775808~+9223372036854775807基本可以表示可以用到的所有数字
      byte1字节-128 ~ +127
    2. int类型最常用,byte和short主要用于特定的应用场合

    3. 长整型数值后有一个L或者l(40000L),十六进制前缀0x(0xCAFE),八进制前缀0,容易混淆,所以最好不要用八进制常数

    4. 注意,Java中没有任何无符号(unsigned)形式的int、long、short或byte类型

    5. Java有两种浮点类型

      类型存储需求取值范围
      float4字节有效位数(6~7位)
      double8字节有效位数15位

      double的精度是float的两倍,也称,双精度浮点数。绝大多数的应用程序都使用double类型,事实上,只有很少情况下才会使用float类型

    6. float数值后缀f(3.141936f),没有后缀默认double,也可以在浮点数后面贾D或者d,表示double

    7. 可以用十六进制表示浮点数,例如0.125 = 2^-3,可以表示位0x1.0p-3,注意使用p表示指数,位数采用十六进制,指数拆用十进制,指数的技术是2,而不是10

    8. 浮点数计算遵循IEEE 74规范,三个特殊的浮点数值:正无穷大、负无穷大、NaN()不是数字。例如,一个正整数初一0的结构位正无穷大。计算0/0或者负数的平方根结果位NaN。

    9. 不能用Double.NaN来判断一个数是否等于Double.NaN,例如x == Double.NaN永远返回false。但是可以用Double.isNaN()来判断一个值是否是NaN

    10. 浮点数不适用于无法结束摄入误差的精确计算中,例如2.0-1.1输入0.89999999,而不是0.9,这是由于计算机李的数是由二进制保存的

  9. Char类型
    用以表示有些Unicode字符,’\u0000’ ~ ‘\uffff’.例如public static void main(String\u005B\u005D args) 是合法的

    转义序列名称Unicode值
    \b退格\u0008
    \t制表符\u0009
    \n换行符\u000a
    \r回车\u000d
    \"双引号\u0022
    \’单引号\u0027
    \\反斜杠\u005c

    在这种情况下 “\u0022+\u0022” 这个字符串会在解析之前被转换为""+"",也就是空串

  10. Unicode和char类型
    Java中,char类型描述了UTF-16编码的一个代码单元。强烈建议不要在程序中使用char类型,除非确实需要处理UTF-16的代码单元,最好将字符串作为抽象数据类型处理。

  11. boolean类型。用来判定逻辑条件。整型值和布尔值之间不能进行相互转化

  12. 在Java中,每个变量都有一个类型,变量的类型位于变量名之前。

  13. 变量名的所有字符都是有意义的,并且大小写敏感,长度上基本没有限制
    如果想知道那些Unicode字符属于Java中的“字母”,可以使用Character类的isJvaIdentifierStart和isJavaIdentifierPart检查.

  14. 变量初始化:
    声明一个变量和,必需显式的用赋值语句对比变量进行初始化。

  15. Java中,利用关键字final指示常量。例如final double CM_PER_INCH = 2.54
    Java中,希望一个变量在一个类中多个方法中国使用,通常用关键字static final设置一个类变量。例如:public static final double CM_PER_INCH = 2.54

  16. 运算符:当参与/运算的两个操作数都是证书时,表示证书出发,否则,表示浮点除法。(15/7 = 2、15.0/2 = 7.5)注意:整数除0,将会得到一个异常,二浮点数除0会得到无穷大或NAN的结果。
    strictfp关键字标记:必需用严格的浮点计算来生成可再生的结果。

    1. 在Math类中,包含类各种个样的数学函数。

    2. ==import static java.lang.StrictMath.floorMod;==加入这行代码后,不用写Math前缀。

    3. 类型转换 double > float > long > int

    4. 强制类型转换(cast)

    5. Math.round()返回的是long类型,需要强制类型转换成int

    6. 结合赋值和运算符。会发生强制类型转换。例如x=4;x+=3.5;----->x=7

    7. 自增和自减运算符

    8. 关系和boolean运算符

    9. 位运算符 &(and)、|(or)、^(xor)、~(not)。&、|也可以用于布尔值运算,不采用短路的方式运算

    10. 括号和运算符级别

      运算符等价于
      a && b
      a += b == ca += (b += c)
    11. 枚举类型

      enum Size {SMALL, MEDIUM, LARGE, EXTRA_LARGE}
      Size类型只能存储这个类型声明的某个值和null

  17. 字符串

    1. Java的字符串就是Unicode字符序列。

    2. substring()可以从一个较大的字符串中提取一个子串

      String greeting = “Hello”;

      String s = greeting.substring(0, 3); --------> “Hel”

    3. 拼接:允许使用“+”拼接字符串

    4. join():字符串拼接,用指定字符串分割

    5. 不可变字符串:String类对象为不可变字符串。字符串共享

    6. Java的字符串不是字符数组

    7. 检查字符串是否相等:equals()equalsIgnoreCase()**一定不要用判断字符串是否相等**==

    8. 空串与Null串!!!空串不等于Null串

    9. 码点与代码单元(codePointCount()获取码点数量)。

      str.codePoints().toArray()获取字符数组

      CharSequence接口,所有字符串都属于这个接口

  18. StringBuilder:需要用很短的字符连接成字符串时,效率很高

    用append方法添加内容

    用toString获取String类型对象

    这个类的前身是StringBuffer,效率稍低,但是是线程安全的

  19. 输入输出

    Scanner in = new Scanner(System.in);

    从控制台读取密码:

    Console cons = System.console();
    String username = cons.readLine("User name:");
    char [] passwd = cons.readPassword("Password:");
    
  20. 格式化输出

    System.out.printf()

    格式化后字符串:

    String message = String.format(“Hello, %s. Next year, you’ll be %d”, name, age);

    参数索引P60

    System.out.printf("%1 s s %2tB %2 ste, %2$tY", “Due date:”, new Date());

  21. 文件输入输出(略)

  22. 控制流程

    • Java没有goto语句(goto虽然是保留字),但是break可以带标签。还有增强型for循环
    • if语句
    • while循环
    • do-while循环
    • switch语句可以判断字符串(从Java7开始)
    • Java提供一种带标签的break语句,用于跳出多层潜逃循环,标签必需放在希望跳出的最外层循环之前,并且必需紧跟一个冒号
      read_data:
      while(...) {
          while(...) {
              break read_data;
          }
      }
      ...S
      //这段代码如果break后,是从S开始执行,read_data是while循环的标签
      
  23. 大数值(BigInteger/BigDecimal)

    • Java没有运算符重载,大数值不能用算数运算符
  24. 数组

    • 创建一个数字数组时,数组中所有原始都被初始化为0。boolean数组全初始化为false,对象数组初始化为null

    • 数组长度array.length

    • 一旦创建了数组,就不能该表它的大小。

    • for_each - 增强型for循环( 必需是一个数组或者实现了iteartor接口的对象)

    • Java中,所有变量都是引用

    • Java的new -------> 在堆上分配内存

    • 命令行参数:每一个Java程序都带有一个String arg[]参数的main方法。这个参数表明main方法接受一个字符串数组

      java Test -g world
      那么args[0] = "-g" args[1] = "world"
      
    • 数组排序

      Arrays.sort() : 使用优化的快速排序方法
      Java.util.Arrays 包含数组的工具类 包含sort(), binarySearch(), fill(), equals()

    • 多维数组

      for_each需要两层循环

    • 不规则数组

      每个一维数组有不同的长度,因为一维数组中的每一个元素相当于一个引用
      double[][] a = new double[10][6]
      相当于
      分配了10个指针的数组,每个指针指向一个包含6个数字的数组
      
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JAVA核心技术目录 图书信息 内容简介 图书目录 编辑本段图书信息   书 名: Java核 心技术   作 者:公飞   出版社: 电子工业出版社   出版时间: 2011年7月1日   ISBN: 9787121133626   开本: 16开   定价: 99.00元 编辑本段内容简介   CayS.Horstmann等编著,公飞编译的《Java核心技术》(CoreJava)自第1版出版以来,一直备受广大Java程序设计人员的青睐,畅销不衰,是Java经典书籍。第8版针对JavaSE6平台进行了全面更新,囊括了Java平台标准版(JavaSE/J2SE)的全部基础知识,提供了大量完整且具有实际意义的应用实例,详细介绍了Java语言基础知识、面向对象程序设计、接口与内部类、事件监听器模型、swing图形用户界面程序设计、打包应用程序、异常处理、登录与调试、泛型程序设计、集合框架、多线程等内容。 编辑本段图书目录   Preface   Acknowledgements   Chapter 1 An Introduction to Java(新增批注共25条)   Java As a Programming Platform   The Java “White Paper” Buzzwords   Simple   Object Oriented   Network-Savvy   Robust   Secure   Architecture Neutral   Portable   Interpreted   High Performance   Multithreaded   Dynamic   Java Applets and the Internet   A Short History of Java   Common Misconceptions about Java   Chapter 2 The Java Programming Environment(新增批注共20条)   Chapter 3 Fundamental Programming Structures in Java(新增批注共44条)   Chapter 4 Objects and Classes(新增批注共55条)   Chapter 5 Inheritance(新增批注共42条)   Chapter 6 Interfaces and Inner Classes(新增批注共24条)   Chapter 7 Exceptions, Logging, Assertions, and Debugging(新增批注共38条)   Chapter 8 Generic Programming(新增批注共22条)   Chapter 9 Collections(新增批注共55条)   Chapter 10 Multithreading(新增批注共24条)   Index

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值