zoukankan      html  css  js  c++  java
  • 第3章 Java基本程序设计结构

    第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(数组,数组的长度) 数组的长度可以比原数组还要长,可以用来对数组扩容
  • 相关阅读:
    python上selenium的弹框操作
    python中selenuim模块定位方法详解
    python中Selenium模块的安装与简单使用(详细)
    postman测试用例做断言
    postman写测试用例
    python之单元测试及unittest框架的使用
    spring boot mybatis redis缓存
    web插件
    jQuery事件
    C++对象动态内存
  • 原文地址:https://www.cnblogs.com/doubest/p/12764011.html
Copyright © 2011-2022 走看看