第3章 Java基本程序设计结构

Posted Doubest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第3章 Java基本程序设计结构相关的知识,希望对你有一定的参考价值。

3.1 一般性总结

  1. Java中的main方法必须声明为public,而且必须是static的
  2. 8中基本的数据类型:
    • 整型:byte、short、int、long
    • 浮点型:float、double
    • 字符型:char
    • 布尔型:boolean
  3. final关键字指示常量
  4. 了解:strictfp关键字标识的方法内部使用严格的浮点计算,因为有些机器的浮点数寄存器是80位的,一般来说中间过程会暂时存在80位的寄存器中,这就导致了同一个运算在一台64位浮点寄存器和一台80位浮点寄存器计算机运算结果不一致,违背了Java的可移植性。
  5. >>>和>>的区别,>>>是高位补0,而>>是高位补符号位

3.2 数据类型

  1. long类型的数值后面必须加L或者l,例如:4000000000L
  2. 16进制数值前面加上0x或者0X
  3. 8进制数值前面加上0
  4. 从Java7开始,2进制数值加上前缀0b或者0B
  5. 从Java7开始,数字可以加下划线,例如100万,1_000_000,编译器会自动去掉这些下划线
  6. float有效位数是6~7位,而double类型是15位,如果常数数值没有后缀f或者F,这默认代表为double类型
  7. 如system.out.println(2.0-1.0)将得到0.89999~9,这是因为二进制无法精准表示1/10所导致,如果不允许有舍入误差,则必须使用BigDecimal类型
  8. 转义序列u基本可以代表Java语言中的所有字符,而且是在解析代码前转换,所以如果在写注释的时候,这样写:// this is directory in c:user,这个注释虽然想表示盘符,但是会造成语法错误,因为u后面没有跟上4个十六进制数字,char类型数值大小是2字节,占4个十六进制位
  9. Java中的char类型使用UTF-16中的一个代码单元,处理复杂,强烈建议不要使用char类型
  10. 在Java中,boolean类型只有true和false两种取值,与C语言不同,false不能代表整数0,true不能代表整数1,但是boolean类型和int型可以进行强制转换

3.3 字符串

  1. String.join("/","s","m") 可以得到 s/m,第一个参数是分隔符,后面是String...args
  2. 判断字符串是否合法时,一定记得先判断字符串是否为null。在调用它的.equals或.length方法
if(str != null && str.length() != 0)
  1. 码点和代码单元的比较:

    • 常用Unicode字符的代码单元数量:1
    • 辅助字符的代码单元数量:2
    • 代码单元:实际上字符串的.length()方法返回的是代码单元的数量,只是因为我们平时所见到能够直接打出来的字,基本上都是常用的Unicode字符,没有辅助字符,所以通常情况下,代码单元的数量就等于码点的数量。
    • 码点:码点的数量就是字符串实际的长度
    // 要想拿到实际的长度,需要调用
    int realLength = str.codePointCount(0,str.length());
    
    • 码点的内容了解一下即可,用处不大,很底层,如果以后需要用到码点相关知识,可以参阅教材p49页的内容
  2. StringBUilder读写效率很高,常用API:

    • appned(str or char)
    • insert(int index , str or char)
    • delete(from,end),删除不包括end
  3. String.format("你好啊,%s",name)可以组织一个格式化后的字符串,比较方便。

3.4 控制流程

  1. 一个非常有用的知识点,退出所有循环的快速方法:
sign: // 这个是带标签的break,必须卸载希望跳出的最外层循环之前
while(...) {
    for(...){
        for(...){
            //在这里如果想要退出所有的循环,以前还需要在外层加许多条件判断,java中可以这么玩,退到标志处。
            break sign;
        }
    }
}

3.5 大数值

  1. BigInteger || BigDecimal -> .valueOf(普通的数值),该静态方法可以完成普通数值到大数的转换,就两种大数类,分别对应整数和小数,而且可以实现精准运算
  2. 大数也可以完成加减乘除比较求余(小数不可以求余哈),但是java语言没有运算符重载,所以大数类使用方法实现了这些功能:
    • add(big) 加法
    • subtract(big) 减法
    • multiply(big) 乘法
    • divide(big) 除法
    • mod(big) 求余

3.6 数组

  1. 数组初始化方式有两种:
    • int[] 变量 = new int[长度] 注:int为0,boolean为false,对象为null
    • int[] 变量 = new int[]{1,2,3}
    • int[] 变量 = {1,2,3} 与上面等价
  2. 数组拷贝:
    • Arrays.copyOf(数组,数组的长度) 数组的长度可以比原数组还要长,可以用来对数组扩容

以上是关于第3章 Java基本程序设计结构的主要内容,如果未能解决你的问题,请参考以下文章

201771010130 王志成《面向对象程序设计(java)》第十八周学习总结

编写高质量代码:改善Java程序的151个建议(第3章:类对象及方法___建议36~40)

CoreJavaE10V1P3.4 第3章 Java的基本编程结构-3.4 变量

CoreJavaE10V1P3.2 第3章 Java的基本编程结构-3.2 注释

第1章 选择流程控制语句

CoreJavaE10V1P3.3 第3章 Java的基本编程结构-3.3 数据类型