Java Basic Notes
CLI Tools
编译
javac name.java
运行
java name(无后缀类名)
反汇编
javap –c name(无后缀类名)
打包
jar {c t x u f} [v m e 0 M i][-c 目录] 文件名
解释:
- c:创建 jar 包
- t:显示 jar 包内容
- x:解压 jar 包
- u:添加文件到 jar 包
- f:命名 jar 包
- v:显示详细执行过程报告
- m:指定 manifest.mf 文件(对 jar 包做相关设置)
- 0:打包 jar 包是不压缩
- M:不产生 manifest.mf 文件,覆盖 m 参数的设置
- i:创建索引文件
- C:进入某目录后再执行 jar 命令
- 生成 API 文档:java doc –d [ ] 类名/包名
可选参数:
- -author/-version:文档中显示作者和版本信息(默认不显示)
- -link superlink 标准类名:为标准类添加超链接
- -linksourse:方法/类名转化为超链接,指向生成的 html 格式的源文件
Gradle Tool
sudo apt install gradle
gradle help
gradle tasks
gradle assemble
gradle build
gradle clean
gradle test
gradle jar
gradle javadoc
Build Gradle
apply plugin: 'java'
jar {
manifest {
attributes 'Main-Class': 'com.sabertazimi.tao.Tao'
}
}
基本结构
数据类型
整型
类型
- byte 型:1 字节 -128~127
- short 型:2 字节 -2^15~2^15 -1
- int 型:4 字节 -2^31~2^31 -1(20 亿)
- long 型:8 字节 -2^63~2^63 -1
前/后缀
- 二进制前缀 0b/0B
- 八进制前缀 0
- 十六进制前缀 0x/0X
- 长整型后缀 l/L
浮点型
float 型
后缀 F:4 字节 -3403E383.403E38(有效位数 67 位)
float f = 1.2; //ERROR
float f = 1.2F; //OK
double 型
后缀 D(默认型):8 字节 -1798E308~1.798E308(有效位数 15 位)
科学计数法:指数均为十进制,符号为 e(尾数为十进制)/p(尾数为十六进制)
Double.POSITIVE_INFINITY,Double.NEGATIVE_INFINITY,Double.isNaN(检数)
千分位下划线分隔法 e.g 123_456.789_000
字符型
-
1 个 char 型占 2 个字节(Unicode 编码)
-
’ ’(定界符)内可用八/十六进制转义字符表示字符
-
八:\xxx
-
十六:\uxxxx(\u 转义序列可出现在任何地方) e.g ‘\u0061’
改进的 Unicode 字符集:
- 代码点(前缀 U+)分为 17 个代码级别(code plane)
- 第一个级别为经典 Unicode 代码,
- 其余附加级别 U+10000 至 U+10FFFF。
布尔型
只允许赋值为 true、false(不可取 0 或非 0 值),不可与整型相互转换
引用类型
数组(Array)
字符串 String:不可变性(需要修改变量名所引用值,必须重新创建一个 String 对象例)
旧的对象实例若被判定为垃圾便会被系统自动回收
类(Class)
接口(Interface)
常量
定义(随使用随定义)
运算符
短路与、短路或
- &&:第一个操作数为假不再向后运算
- ||:第一个操作数为真不再向后运算
移位符
有符号右移>>:最高位补符号位 左操作数 int/long,右操作数 mod32/mod64
e.g int a >> 33 即 int a >> 1
无符号右移>>>:最高位补 0
字符串连接运算符
+
: 左右操作数 String 字符串/其他类型(自动被转化为 String)
判断运算符
==
:
- 基本类型值相等,引用类型引用相等
- 基本类型:转换后比较;boolean 型不与 int 型比较
- 引用类型:指向两个不同对象实例的变量不相等;若判断两个对象实例内容是否相等,必须调用 equals()方法
强制类型转换运算符
()
- 只能在继承层次内进行强制类型转换(同一家族)
- 将父类转换为子类前,应使用 instanceof 运算符进行检查
字符串
子串
stringTest.substring(a, b)方法返回长度为 b-a 的子串,a(包括)、b(不包括)为起止位置
相等
- 内容相等:stringOne.equals(stringTwo)方法返回值 true/false
- 不区分大小写 equalsIgnoreCase
常用方法
构建字符串
StringBuilder 类:单线程,功能同 StringBuffer 类(多线程)
输入输出
Scanner 类
监视器,功能最强大的输入类,new Scanner(System.in)
格式化输出方法
System.out.printf(): 静态创建格式化字符串