一、转义字符:通过\来转变后面字母或者符号的含义
①\n:换行;
②\b:退格,相当于backspace键;
③\r:回车键;
④\t:制表符,相当于tab键;
⑤在java输出语句中,想要输出指定符号时,如要输出"或 \时,须要在该符号前面加上\。例如:
System.out.println{""Helloworld!""};
输出的是: "Helloworld!"
二、逻辑运算符:
①&(与):左右俩边只要有一个是false,结果为false.
②|(或):左右俩边只要有一个是true,结果为true.
③^(异或):左右俩边相同为false,不同为true.(一个数异或同一个数两次,结果还是它本身(用于加密数据))
④!(非):取与结果相反的值
⑤&&(短路):当该运算符左边表达式的运算结果为false时,右边的不再进行运算,结果直接为false.
⑥||(短路):当该运算符左边的表达式的运算结果为true,时右边的不再进行运算,结果直接为true.
三、位运算数(均是对二进制数进行运算)
①,<<(左移):(都是对二进制数进行位移操作);左移位后,右边所空出来的位数(最低位)用0补足;所得十进制结果等于原十进制数值乘以2的所移位数的次幂,例如: X<<Y=X*(2^Y);
②,>>(右移):右移后,左边所空出来的空位(最高位)所补的数值与原最高位数值相同,即原来为1则用1补足,原来是0则用0补足;所得十进制结果等于原十进制数值除以2的所移位数的次幂,例如:X>>Y=X/(2^Y);
③,>>>(无符号右移):无论原最高位是什么,右移后,都用0补足;
④,
四、流程控制语句
①、if else 结构的简写格式即为三目运算结构:
即、变量=(条件表达式)?表达式1:表达式2;
其好处是:可以简化if else代码,弊端是:因为是一个运算符;所以运算完表达式1或表达式2后,必须要返回一个值给变量。
②if和switch语句很像,具体什么场景下应用哪个语句?
如果判断的具体数值不多,而且符合byte,short,int,chr这四种类型。虽然两个语句都可以使用,建议使用switch语句,因为效率稍高。
其他情况:要对区间判断、对结果为boolean类型判断、使用if语句。if语句的使用范围更广
③,for语句和while语句的区别
主要体现在它们所使用的变量上面,for循环中使用的变量只在for循环结构体内存在,当for循环执行结束后,该变量将被立即释放;而while循环中的变量将一直保存在内存中,且变量的值是随着while循环的执行而随着改变的,所以当在循环体外面还需要使用循环体中的变量时,只有while循环能够满足;用for语句能够的实现的情况,用while语句也一定能够实现。for语句中,如果不写判断表达式,则系统默认为true
- 加强for循环:如下;其中a表示数组中的所有元素
int[] arr={1,2,3,4,5,6,7,8,9};
for(int a:arr){
System.out.print(a);
}
④,break和contnue语句
a,作用范围:都只能用于循环结构,break是结束本循环体,循环不再进行;而contnue是结束本次循环,直接进入下次循环,而循环本身不会停止。
b,当给每个循环前面都加上标号,如:w:fou(;;)。其中"W:"即为for循环的标号。在带有标号的多重循环体中,break和contnue后面可以跟上指定的标号,以用于直接控制程序跳入指定的循环体中。break代标号后,程序运行到此会直接跳到标号所在循环体外的下一个语句,而不是跳入该循环体内。continue加标号后,程序则会直接跳入带标号的循环体内。
c,当break和contnue单独存在时,具后面不可以有任何语句,因为后面的语句都将不会被执行。
⑤,函数(方法)
函数的格式:修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2){
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的类型。(当函数没有具体返回值时,返回值类型用关键学void表示,这时如果函数中的return语句在最后一行则可以省略不写)
参数类型:是指形式参数的类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该值会返回给调用函数。
注意:函数中只能调用函数,不可以在函数内部定义函数;定义函数时,函数的结果应该返回给调用者,交由调用者处理。
定义一个函数时必须先要明确下两点:
a,函数的运行结果是什么,即需不需要有返回值,且返回值的类型是什么。
b,函数的运行过程中是否需要未知内容参与运算,即明确函数的参数列表(参数的类型和参数的个数)。
⑥,函数的重载
在同一个类中,允许存在一个以上的同名函数,只不要它们的参数个数或者参数类型不同即可。
五,数组:
同一种类型数型的集合;数组可以自动给数组中的元素从0开始编号。
属性:.length的使用。.length的作用是遍历数组中的元素个数。使用方式为: 数组名称.length
a,boolean型数组内的元素默认值为false;数字型数组内的元素默认值为0。
b,深复制和浅复制:浅复制是指将一个数组在内存中的地址赋给另一个数组,但是这两个数组所指向的是同一块存储单元,所以当对这两个数组中的任意一个数组进行操作时另一个也将一起被改变;深复制是指重新新建一个有单独内存地址的数组,然后将原数组中的元素全部拷贝到新数组中去,这样无论对哪个数组进行操作都不会影响到另一个;深复制数组的方式有两种:
1、arr2=Arrays.copyOf(arr1,arr1.length);新建一个数组arr2,其长度与arr1相同(arr1.length),并将arr1的元素拷贝到arr2中;
2、System.arraycopy(arr1,0,arr2,1,arr1.length);其表示为:
System.arraycopy(被复制的数组为arr1,被复制数组从下标为0的位置开始被复制,接收复制的数组位arr2,从下标为1的位置开始接收,接收的长度与arr1的长度相同);