1. //
2. /* */
3. /**
XXXX自动生成文档
*/
类型 | 储存需求(Byte) | 取值范围 |
---|---|---|
int | 4 | -2 147483 648 ~ 2 147 483647( > 20亿) |
short | 2 | -32 768 ~ 32767 |
long | 8 | -9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807 |
byte | 1 | -128 ~ 127 |
float | 4 | 大约 ± \pm ± 3.402 823 47E+38F(有效位数为6 ~ 7位) |
double | 8 | 大约 ± \pm ± 1.797 693 134 862 315 70E+308(有效位数为15位) |
char | 2 | \u0000 ~ \uffff(char描述了UTF-16编码的一个代码单元) |
boolean | 1bit | false和true |
注意细节
final double CM_OER = 2.54
import static java.lang.Math.*;
有两个操作数a,b
如果有一个double,另一个也会转为double;
否则如果有一个float,另一个也会转为float;
否则如果有一个long,另一个也会转为long;
否则都将转为int。
如下图所示,虚线表示转换可能会损失精度。
强制转换可能会截断成完全不同的值,注意!
double x = 9.997;
int nx = (int) x;
& // and
| // or
^ // xor
~ // not
运算符由高到低 |
---|
[] . ()(方法调用) |
! ++ – +(一元运算符) - (一元运算符) () (强制类型转换) new |
* / % |
+ - |
<< >> >>> |
< <= > >= instanceof |
== != |
& |
^ |
∣ \mid ∣ |
&& |
∣ ∣ \mid \mid ∣∣ |
?: |
= += -= *= /= %= &= ∣ \mid ∣= ^= <<= >>= >>>= |
java.lang.string 1.0
1. substring(index, endIndex)
String greeting = "Hello";
String s = greeting.substring(0, 3);// Hel endIndex - 1
2. +
String sJoin = s + greeting ;//HelloHel
3. join(sep, str...)
String all = String.join("/", "s", "m", "l", "xl")// s/m/l/xl
4. equals
s.equals(greeting); //不要使用"=="判断是否相等,"=="只会判断是否放置在同一位置上
5. 空串与Null串
str.length() == 0 || str.equals("");
String s = null;//此时不可调用方法,否则会报错 java.lang.NullPointerException
s == null //判断是否为空
6. string api
char charAt(int index)
boolean equals(Object other)
int length()
String replace(oldString, newString)
String substring(beginIndex)
String substring(beginIndex, endIndex)
7. StringBuilder 字符串构建器,高效拼接字符串 java.lang.StringBuilder 5.0
StringBuilder builder = new StringBuilder();
builder.append(ch);
builder.append(str)
String str = builder.toString();
api
StringBuilder()
int length()
StringBuilder append(String str),StringBuilder append(char c)
void setCharAt(int i, char c)
StringBuilder insert(int offset, String str),StringBuilder insert(int offset, char c)
String toString()
java.util.Scanner 5.0
Scanner in = new Scanner(System.in);
String nextLine()
String next()
int nextInt()
double nextDouble()
boolean hasNext()
boolean hasNextInt()
boolean has NextDouble()
label:
for(){
for(){
if() break label;
}
}//jump here,跳到label的语句块之后。
(1) BigInteger a = BigInteger.valueOf(100);
(2) Bigdata API java.math.BigInteger 1.1
BigInteger add(BigInteger other), subtract(), multiply(), divide(), mod()
int compareTo(BigInteger other)
static BigInteger valueOf(long x)
(1) 初始化
int[] a;
int a[];
int[] smallPrimes = {2, 3, 5, 7};
smallPrimes = new int[] {5, 6, 7 ,8 ,9};
int[] a = {1 , 2, 3};
smallPrimes = a;// ----1
smallPrimes = rrays.copyOf(a,3);// ----2
int[] a = new int[0];
int[]a = {};
a = new int[100];//默认初始化为0
String[] names = new String[10] // 默认初始化为null
(2) for each
for(variable : collection) statement; //clllection 是一个数组或者实现了Iterable接口
for (int element : a)
System.out.println(element);
(3) 浅拷贝与深拷贝
如上面代码1表示浅拷贝,2表示深拷贝。浅拷贝只会指向同一数组内存。
(4) java.util.Arrays 1.2 API
static String toString(type[] a) 5.0
static type copyOf(type[] a, int length) 6
static type copyOf(type[] a, int start, int end) 6
static void sort(type[] a)
static int binarySearch(type[] a, type v)
static int binarySearch(type[] a, int start, int end, type v) 6
static void fill(type[] a, type v)
static boolean equals(type[] a, type[] b)
(5) 多维数组
int[][] a = new int[10][10];