备份笔记翻出来的,自用。
目录
Integer.valueOf, parseInt和getInteger的区别
- Integer.valueOf(String)方法假设String参数表达的是一个数值,作用是转化成Integer。对于Integer.valueOf(“123”),会得到一个值为123的Integer对象。
- Integer.parseInt(String)方法假设String参数表达的是一个数值,作用是转化成int。对于Integer.parseInt(“123”),会得到一个值为123的int。
- Integer.getInteger(String)方法假设String参数是一个系统属性数值的名称,作用是读取名为String的属性,然后把该属性的值转化为数字,因此对于Integer.getInteger(“123”),如果没有一个叫做123的系统属性,这个调用的返回值就是null
split问题
split() 方法根据匹配给定的正则表达式来拆分字符串。
注意:
.
$
|
和*
等转义字符,必须得加 双反斜杠\\
- 多个分隔符,可以用
|
作为连字符。
举例:
genomeList[0].split("\\(")
boolean默认值是false
public class DemoApplicationTests {
static boolean a;
@Test
public void contextLoads() {
System.out.println(String.valueOf(a)); // false
}
}
+的优先级高于==
public class Test {
public static void main(String[] args) {
String s1 = "runoob";
String s2 = "runoob";
System.out.println("s1 == s2 is:" + s1 == s2);
}
}
这里输出部分的表达式相当于“s1 == s2 is:runoob” == “runoob”
,所以输出false
char型连接入字符串的时候转成字符
char c = 65;
System.out.println("c = " + c); //输出c = A
数组赋值
int myArray[] = {1,3,5};
int myArray2[][] = {{1,2,3},{4,5,6}};
//注意二维数组按行赋值,不能像c++那样指定列数,用单层{}去赋值
for(int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
System.out.print(String.valueOf(myArray2[i][j]) + " ");
}
System.out.print("\n");
}
空引用可以访问静态变量或方法
因为访问静态成员不需要实例化对象 ;即便引用不为 null ,也与运行时多态无关 ,因为静态成员是类相关的 。
数据类型转换
boolean 类型不能转换成任何其它数据类型,所以不能将boolean和整数值比较。
float num = 6.7;
和int num=6.7
都会报错。前者是把double转了float,想改的话要在6.7后加f;后者是double转int。总之都是精度损失了。如果精度不损失,比如int转float,是可以不必强制转的。
Math.round的算法是Math.floor(x+0.5)
因此非负数是四舍五入的,而负数要注意0.5的问题。如Math.round(-11.5)是-11,Math.round(-11.6)就是-12
所有异常类的基类是Java.Lang.throwable
数组作为实参传入的时候是引用
所以如果函数内更改数组的值,函数结束后值会变。
public class DemoApplicationTests {
public void contextLoads() {
int[] z = {1,2,3,4,5};
doIt(z);
for (int i:z) {
System.out.print(i + " "); // 输出时z[0]=99
}
}
static void doIt(int[] z) {
int[] a = z;
a[0] = 99; // 这里因为时传递引用,所以更改有效。
}
}
但是如果只是
void doIt(int[] z) {
z = null;
}
这样是无法修改数据的,数组其实不变。
在 Java 应用程序中永远不会传递对象,而只传递对象引用。因此在函数中修改对象时,不返回对象也是修改成功的了。
静态函数不能调用非静态函数
class Main {
public static void main(String args[]) {
System.out.println(fun()); // 编译错误
}
int fun() {
return 20;
}
}
函数不允许形参设置默认值
static int fun(int x = 0){} #编译错误
str.toUpperCase()
将字符串小写字母转换为大写字母,但是它不会改变原始的字符串。