3.5.7位运算符(weiyunsuan)
& (与)
| (或)
^ (异或,即相同为0不同为1)
~ (非)
&与逻辑运算符&&的区别在于,&会完整的将一条判断语句执行完,而&&遇到为0的地方就“短路”了跳过剩下部分的判断语句
<<左移 1010<<1 => 10100
>>右移 1010>>1=>101
>>>右移并用0填充高位
不存在<<<
3.6.2拼接(zifuchuanpinjie)
String a =String.join("/","S","M","L","XL");
//a为S/M/L/XL
String对象进行更改的时候,不是在字符数组上对数组元素进行更改,而是将其引用至另一字符串(类似char* a)
3.6.4判断字符串是否相等(zifuchuan)
String a = “hello"
String b = "hello"
String c = "help"
a.equals(b) //true
a.equals(c) //false
"hello".equals(a) //true
“Hello".equalsIgnoreCase(a) //true
切记不要使用”==“来判断字符串是否相等
3.7.1读取输入(mimabukejianduqu)
console类用来读取密码等不可见字符串
Console cons = System.console();
String username = cons.readLine("User name: ");
char[] passwd = con.readPassword(“Password: “);
3.7.2格式化输出(geshihuashijiangeshi)
String message = String.format(“Hello %s. Next year, you’ll be %d, name, age);
时间格式 P59
3.7.3文件输入与输出(shurushuchu)
文件读取:Scanner对象
Scanner in = new Scanner(Paths.get("myfile.txt”),”UTF-8”);
Scanner in = new Scanner(“myfile.txt”);//将出现错误
文件输出:PrintWriter对象
PrintWriter out = new PrintWriter(“myfile.txt”,”UTF-8”);
3.10.1for each循环(forxunhuan)
for (int element:a)
System.out.println(element);//打印数组a的每一个元素
3.10.2数组初始化以及匿名数组(shuzu)
初始化:int a[] = new int[100];
或者:int[] a = new int[100]
或者:int[] = {1,2,3,4,5,};
或者:int a = new int[] {1,2,3,4,5};//等式右半边即为匿名数组
3.10.3数组拷贝(shuzukaobei)
Java中的数组拷贝拷贝的是数组引用而不是值,拷贝值用Arrays类的copyOf方法
int[] a =new int[100];//Java 等同于int *a = new int[100];//C++ 而不是int a[100];
3.10.7不规则数组(buguizeshuzu)
Java中只有一维数组,多维数组即为存放数组引用的一维数组,所以Java可以有各种不规则数组