Java核心技术

第一章

Java的11个关键术语

  • 简单性
  • 面向对象
  • 分布式
  • 健壮性
  • 安全性
  • 体系结构中立
  • 可移植性
  • 解释型
  • 高性能
  • 多线程
  • 动态性

Java applet

在网页中运行的Java程序称为applet

第二章

部分术语

  • JDK(java development kit):java开发工具包
  • JRE(Java Runtime Environment):运行java程序用户所使用的软件
  • SDK(Software Development Kit):软件开发包

安装过程

MAC中JAVA环境变量配置以及Intellij IDEA如何配置JDK
IDEA的校园邮箱激活方式
IntelliJ IDEA 常用快捷键 之 Mac 版
Intellij IDEA快捷生成常用代码

琐碎知识点

  • 0x1.0p-3:0x表示16进制,使用p表示指数,所以就是1.0*2的-3次方
  • 三个特殊的浮点数值:正无穷大(Double.POSITIVE_INFINITY)、负无穷大(Double.NEGATIVE_INFINITY)、NaN(Double.NaN)
  • 浮点数值不适用于无法接受舍入误差的计算中,要想完全没有误差,需要使用BigDecimal类
  • 部分特殊字符的转义序列:\b 退格 \t 制表 \n 换行 \r 回车 \“双引号 \反斜杠
  • 强烈建议不要在程序中使用char类型,因为unicode早已经超过了65536个

第三章

部分术语

  • 类常量:static final,类常量的定义在main方法的外部
  • 整数被0除将会产生异常,浮点数被0除将会得到无穷大或NaN结果
  • public static strictfp void main(String[] args),在该main函数中所有指令都将使用严格的浮点计算
  • condition ? expression1 : expression2 eg: x<y ? x : y
  • 位运算符:&、|、^、~
    拓展:奇数个数,两个两个成对最有一个单独,如何找出这个单独的数字是几,复杂度在O(n)以内:用异或的思想即可,全部异或
  • 移位运算符: <<(算数移位)>> >>>(逻辑右移),其中>>>会用0填充高位,移位运算符的右操作数要满足模32的运算(如果左边操作数是long则要满足模64),1<<35 == 1<<3 == 8
  • 枚举类型:enum Size{SMALL,MEDIUM,LARGE }
  • 字符串

    • 子串:

      1
      2
      String greeting = "Hello";
      String s = greeting.substring(0,3);
    • 拼接:直接用+连接、如果需要多个字符串放在一起,并且用一个定界符分割,可以采用静态join方法:

      1
      2
      String all = String.join("/","S","M","L","XL")
      // string: "S/M/L/XL"
    • java中不允许修改字符,但是可以修改字符串变量
      *字符串比较用equals方法,例如:”Hello”.equals(greeting),”Hello”.equalsIgnoreCase(“hello”)「无视大小写的比较」

    • java.lang.string部分api
      String类常用方法之charAt()、codePointAt()示例
      offsetByCodePoints()与codePointAt()

    • 注意lastIndexOf(int cp,int fromindex),是返回从index位置开始找到的第一个符合的字符串的位置

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      public int lastIndexOf(int ch, int fromIndex) {
      if (ch < Character.MIN_SUPPLEMENTARY_CODE_POINT) {
      // handle most cases here (ch is a BMP code point or a
      // negative value (invalid code point))
      final char[] value = this.value;
      int i = Math.min(fromIndex, value.length - 1);
      for (; i >= 0; i--) {
      if (value[i] == ch) {
      return i;
      }
      }
      return -1;
      } else {
      return lastIndexOfSupplementary(ch, fromIndex);
      }
      }
  • input

    • Scanner在util包中,当使用的类不在java.lang中时,都需要导包
    • 1
      2
      3
      4
      5
      6
      7
      Scanner sc = new Scanner(System.in);    
      String nextLine = sc.nextLine();
      System.out.println("please input your name:" + nextLine);
      int nextInt = sc.nextInt();
      System.out.println("please input your age:" + nextInt);
      String next = sc.next();
      System.out.println("please input your name:" + next);
Thank you for your accept. mua!
-------------本文结束感谢您的阅读-------------