第一章
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
2String greeting = "Hello";
String s = greeting.substring(0,3);拼接:直接用+连接、如果需要多个字符串放在一起,并且用一个定界符分割,可以采用静态join方法:
1
2String 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
16public 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
7Scanner 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);