基础
- Math静态工具类
- 用关键字final表示常量,常量名使用全大写
在Java中希望常量可以在一个类中的多个方法中使用,称为类常量,使用关键字static final 设置一个类常量。类常量的定义位于main方法外部,在同一个类的其他方法中也可以使用这个常量。
- 强制类型转换在圆括号中给出想要转换的目标类型
- 如果运算符得到一个值吗,其类型与左侧操作数的类型不同,就会发生强制类型转换。例如,如果x是一个int,则以下语句:
x+=3.5
是合法的,将把x设置为(int)(x+3.5)
- &&短路与,||短路或
- 三元操作符condition?experssion1:experssion2
- 枚举类型:变量的取值只在一个有限的集合内
字符串
- String类的substring方法可以从一个较大的字符串提取一个子串。两个参数,左闭右开,右参数-左参数=子串长度
- +拼接字符串,将一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串
String all=String.join("/","S","M","L","XL");//拼接字符串
System.out.println(all);
输出: S/M/L/XL
- 不可变字符串:由于不能修改JAVA字符串中的字符,所以在JAVA文档中将String类对象成为不可变字符串。各种字符串存放在公共的存储池中。字符串变量指向存储池中相应的位置。如果复制一个字符串变量,原始字符串与复制的字符串共享相同的字符。
- 检查字符串是否相等:equals方法检测两个字符串是否相等,s.equals(t),s与t可以是字符串变量也可以是字符串字面量。若不区分大小写equalsIgnoreCase方法。==判断两个字符串是否放置在用一个位置上。
- 空串与Null串:空串长度为0,
if(str.length() == 0)或if(str.equals(""))
。
Null串:没有对象关联if(str==null)
同时判断if(str!=null&&str.length()!=0)
常用String API
- char charAt(int index)
返回给定位置的代码单元。除非对底层的代码单元感兴趣,否则不需要调用这个方法 - int codePointAt(int index)
返回从给定位置开始的码点 - int offsetByCodePoints(int starIndex,int cpCount)
返回从startIndex代码点开始,位移cpCount后的码点索引。 - int compareTo (String other)
按照字典顺序,如果字符串位于other之前,返回一个负数;如果字符串位于other之后,返回一个正数;如果两个字符串相等,返回0。 - IntStream codePoints()
将这个字符串的码点作为一个流返回。调用toArry将它们放在一个数组中。 - new String(int [] codePoints,int offset,int count)
用数组中从offset开始的count个码点构造一个字符串。 - boolean equals(Object other)
如果字符串与other相等,返回true。 - boolean equalsIgnoreCase(String other)
如果字符串与other相等(忽略大小写)返回true - boolean startsWith(String prefix)
- boolean endsWith(String suffix)
如果字符串以suffix开头或结尾,返回true。 - int indexOf(String str)
- int indexOf(String str,int fromIndex)
- int indexOf(int cp)
- int indexOf(int cp,int fromIndex)
返回与字符串str或代码点cp匹配的第一个字串的开始位置。这个位置从索引0或fromIndex开始计算。如果在原始串中不存在str,返回-1。 - int lastIndexOf(String str)
- int lastindexOf(String str,int fromIndex)
- int lastindexOf(int cp)
- int lastindexOf(int cp,int fromIndex)
返回与字符串str或代码点cp匹配的最后一个字串的开始位置。这个位置从原始串尾端或fromIndex开始计算。 - int length()
返回字符串的长度。 - int codePointCount(int starIndex,int endIndex)
返回startIndex和endIndex-1之间的代码点数量。没有配对的代用字符将计入代码点。 - String replace(CharSequence oldString,CharSequence newString)
返回一个新字符串,这个字符串用newString代替原始字符串中所有的oldString。可以用String或StringBulider对象作为CharSequence参数。 - String substring(int beginIndex)
- String substring(int beginIndex,int endIndex)
返回一个字符串。这个字符串包含原始字符串中从beginIndex到串尾或endIndex-1的所有代码单元。 - String toLowerCase()
- String toUpperCase()
返回一个新字符串,这个字符串将原始字符串中的大写字母改成小写,或者将原始字符串中的小写改成大写 - String trim()
返回一个新字符串。这个字符串将删除了原始字符串头部和尾部的空格。 - String join(CharSequence delimiter,CharSequence…elements)
返回一个新字符串,用给定的钉界符连接所有元素。 - String concat(String str)
将指定字符串连接到此字符串的结尾。
构建字符串
高效拼接字符串StringBulider
StringBuilder bulider=new StringBuilder();
bulider.append('a');
bulider.append("bcd");
String bul=bulider.toString();
System.out.println(bul);
//输出abcd
常用API:
- StringBulider()
构造一个空的字符串构建器 - int length()
返回构建器或缓冲器中的代码单元数量。 - StringBulider append(String str)
追加一个字符串并返回this - StringBulider append(char c)
追加一个代码单元并返回this - StringBulider appendCodePoint(int cp)
追加一个代码点,并将其转换为一个或两个代码单元并返回this - void setCharAt(int i, char c)
将第i个代码单元设置为c - StringBulider insert(int offset, char c)
在offset位置插入一个代码单元并返回this - StringBulider delete(int startIndex,int endIndex)
删除偏移量从startIndex到-endIndex-1的代码单元并返回this - String toString()
返回一个与构建器或缓冲器内容相同的字符串。
Scanner
- Scanner (InputStream in)
用给定的输入流创建一个Scanner对象。 - String nextline()
读取输入的下一行内容 - String next()
读取输入的下一个单词(以空格作为分隔符) - Int nextInt()
- double nextDouble()
读取并转换下一个表示整数或浮点数的字符序列 - boolean hasNext()
检测输入中是否还有其他单词 - boolean hasNextInt()
- boolean hadNextDouble()
检测是否还有表示整数或浮点数的下一个字符序列
控制流程
-
case的标签可以是:
- 类型为char byte short int的常量表达式
- 枚举类型
- 从Javase7开始还可以是字符串字面量
-
java提供了一种带标签的break语句,可以将标签应用到任何语句中,if或者块语句:
label:
{
...
if(condition) break label;//exits block
}//jumps here when the break statement executes
大数值
java.math
包中两个类:BigInteger
和BigDecimal
这两个类可以处理包含任意长度数字序列的数值。
不能使用运算符处理大数值(java不提供运算符重载),使用add和multiply方法。
API:
数组
- 增强for循环:循环的目标是一个数组或者实现了Iterable接口的类对象
打印数组:Arrays类的toString方法,Arrays.toString(). - 数组拷贝:两个变量引用同一个数组。拷贝数值:Arrays下的copyOf方法。
两个参数,第一个是要拷贝的数值,第二个是新数组的长度,可多可少。 - 命令行参数:
String[] args
表明main方法将接收一个字符串数组,也就是命令行参数。如:java Message -g cruel world
arge数组包含:
arge[0]="-g"
arge[1]=“cruel”
arge[2]=“world” - 数组排序:sort
常用方法:Arrays