摘要:算數操作符基本算數操作符任意運算單元的長度超過如果有任何運算單元的長度超過,那么運算結果就按照最長的長度計算結果類型是的運算結果是型,所以要進行強制轉換任意運算單元的長度小于如果任何運算單元的長度都不超過那么運算結果就按照來計算結果類型
1 算數操作符 (1) 基本算數操作符
+ - * /
public class HelloWorld { public static void main(String[] args) { int i = 10; int j = 5; int a = i+j; int b = i - j; int c = i*j; int d = i /j; } }(2) 任意運算單元的長度超過int
如果有任何運算單元的長度超過int,那么運算結果就按照最長的長度計算
int a = 5;
long b = 6;
a+b結果類型是long
public class HelloWorld { public static void main(String[] args) { int a = 5; long b = 6; int c = (int) (a+b); //a+b的運算結果是long型,所以要進行強制轉換 long d = a+b; } }(3) 任意運算單元的長度小于int
如果任何運算單元的長度都不超過int,那么運算結果就按照int來計算
byte a = 1;
byte b= 2;
a+b結果類型是int
public class HelloWorld { public static void main(String[] args) { byte a = 1; byte b= 2; byte c = (byte) (a+b); //雖然a b都是byte類型,但是運算結果是int類型,需要進行強制轉換 int d = a+b; } }(4) %取模
public class HelloWorld { public static void main(String[] args) { int i = 5; int j = 2; System.out.println(i%j); //余數為1 } }(5) 自增 自減
++ -- 在原來的基礎上增加1或者減少1
public class HelloWorld { public static void main(String[] args) { int i = 5; i++; System.out.println(i);//輸出為6 } }(6) 自增 自減操作符置前以及置后的區別
i++; 先取值,再運算
++i; 先運算,再取值
public class HelloWorld { public static void main(String[] args) { int i = 5; System.out.println(i++); //輸出5 System.out.println(i); //輸出6 int j = 5; System.out.println(++j); //輸出6 System.out.println(j); //輸出6 } }2 關系操作符
> 大于
>= 大于或等于
< 小于
<= 小于或等于
== 是否相等
!= 是否不等
public class HelloWorld { public static void main(String[] args) { int a = 5; int b = 6; int c = 5; System.out.println(a>b); //返回 false System.out.println(a>=c); //返回 true System.out.println(a==b); //返回false System.out.println(a!=b);//返回true } }3 邏輯操作符 (1) 長路與和短路與
無論長路與&還是短路與&&,兩邊的運算單元都是布爾值
都為真時,才為真
任意為假,就為假
區別
長路與& 兩側,都會被運算
短路與&& 只要第一個是false,第二個就不進行運算了
public class HelloWorld { public static void main(String[] args) { //長路與 無論第一個表達式的值是true或者false,第二個的值,都會被運算 int i = 2; System.out.println( i== 1 & i++ ==2 ); //無論如何i++都會被執行,所以i的值變成了3 System.out.println(i); //短路與 只要第一個表達式的值是false的,第二個表達式的值,就不需要進行運算了 int j = 2; System.out.println( j== 1 && j++ ==2 ); //因為j==1返回false,所以右邊的j++就沒有執行了,所以j的值,還是2 System.out.println(j); } }(2) 短路或和長路或
無論長路或|還是短路或||,兩邊的運算單元都是布爾值
都為假時,才為假
任意為真,就為真
區別
長路或| 兩側都會被運算
短路或|| 只要第一個是true的,第二個就不進行運算了
public class HelloWorld { public static void main(String[] args) { //長路或 無論第一個表達式的值是true或者false,第二個的值,都會被運算 int i = 2; System.out.println( i== 1 | i++ ==2 ); //無論如何i++都會被執行,所以i的值變成了3 System.out.println(i); //短路或 只要第一個表達式的值是true的,第二個表達式的值,就不需要進行運算了 int j = 2; System.out.println( j== 2 || j++ ==2 ); //因為j==2返回true,所以右邊的j++就沒有執行了,所以j的值,還是2 System.out.println(j); } }(3) 取反
取反!
真變為假
假變為真
public class HelloWorld { public static void main(String[] args) { boolean b = true; System.out.println(b); //輸出true System.out.println(!b);//輸出false } }(4) 異或^
異或^
不同,返回真
相同,返回假
public class HelloWorld { public static void main(String[] args) { boolean a = true; boolean b = false; System.out.println(a^b); //不同返回真 System.out.println(a^!b); //相同返回假 } }4 位操作符
略
5 賦值操作符賦值操作
=
(1) 賦值操作對本身進行運算,并賦值
+=
-=
*=
/=
%=
&=
|=
^=
<<=
>>=
>>>=
賦值操作的操作順序是從右到左
int i = 5+5;
首先進行5+5的運算,得到結果10,然后把10這個值,賦給i
public class HelloWorld { public static void main(String[] args) { int i = 5+5; } }(2) 對本身進行運算,并賦值
+=即自加
i+=2;
i=i+2;
其他的 -= , *= , /= , %= , &= , |= , ^= , >= , >>>= 都是類似,不做贅述
public class HelloWorld { public static void main(String[] args) { int i =3; i+=2; System.out.println(i); int j=3; j=j+2; System.out.println(j); } }6 三元操作符
表達式?值1:值2
如果表達式為真 返回值1
如果表達式為假 返回值2
public class HelloWorld { public static void main(String[] args) { int i = 5; int j = 6; int k = i < j ? 99 : 88; // 相當于 if (i < j) { k = 99; } else { k = 88; } System.out.println(k); } }7 Scanner (1) 使用Scanner讀取整數
使用Scanner類,需要在最前面加上import java.util.Scanner;
表示導入這個類,才能夠正常使用
import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Scanner s = new Scanner(System.in); int a = s.nextInt(); System.out.println("第一個整數:"+a); int b = s.nextInt(); System.out.println("第二個整數:"+b); } }(2) 使用Scanner讀取浮點數
import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Scanner s = new Scanner(System.in); float a = s.nextFloat(); System.out.println("讀取的浮點數的值是:"+a); } }(3) 使用Scanner讀取字符串
import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Scanner s = new Scanner(System.in); String a = s.nextLine(); System.out.println("讀取的字符串是:"+a); } }(4) 讀取了整數后,接著讀取字符串
如果在通過nextInt()讀取了整數后,再接著讀取字符串,讀出來的是回車換行:" ",因為nextInt僅僅讀取數字信息,而不會讀走回車換行" ".
如果在業務上需要讀取了整數后,接著讀取字符串,那么就應該連續執行兩次nextLine(),第一次是取走整數,第二次才是讀取真正的字符串
import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Scanner s = new Scanner(System.in); int i = s.nextInt(); System.out.println("讀取的整數是"+ i); String rn = s.nextLine(); String a = s.nextLine(); System.out.println("讀取的字符串是:"+a); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/67725.html
摘要:第四章引入流一什么是流流是的新成員,它允許你以聲明性方式處理數據集合通過查詢語句來表達,而不是臨時編寫一個實現。 第四章 引入流 一、什么是流 流是Java API的新成員,它允許你以聲明性方式處理數據集合(通過查詢語句來表達,而不是臨時編寫一個實現)。就現在來說,你可以把它們看成遍歷數據集的高級迭代器。此外,流還可以透明地并行處理,你無需寫任何多線程代碼。 下面兩段代碼都是用來返回低...
摘要:內部迭代與使用迭代器顯式迭代的集合不同,流的迭代操作是在背后進行的。流只能遍歷一次請注意,和迭代器類似,流只能遍歷一次。 流(Stream) 流是什么 流是Java API的新成員,它允許你以聲明性方式處理數據集合(通過查詢語句來表達,而不是臨時編寫一個實現)。就現在來說,你可以把它們看成遍歷數據集的高級迭代器。此外,流還可以透明地并行處理,你無需寫任何多線程代碼了!我會在后面的筆記中...
摘要:鎖的使用建議減少鎖持有時間減少鎖粒度讀寫鎖替代獨占鎖鎖分離鎖粗化減少鎖的持有時間減少鎖的持有時間有助于降低沖突的可能性進而提升并發能力減少鎖粒度例如內部分為個加鎖時不會像一樣全局加鎖只需要對相應加鎖但是如果需要獲取全局的信息比如首先會使用無 鎖的使用建議 減少鎖持有時間 減少鎖粒度 讀寫鎖替代獨占鎖 鎖分離 鎖粗化 減少鎖的持有時間 減少鎖的持有時間有助于降低沖突的可能性,進而...
摘要:但是,最好使用差異化的類型定義,函數簽名如下其實二者說的是同一件事。后者的返回值和初始函數的返回值相同,即。破壞式更新和函數式更新的比較三的延遲計算的設計者們在將引入時采取了比較特殊的方式。四匹配模式語言中暫時并未提供這一特性,略。 一、無處不在的函數 一等函數:能夠像普通變量一樣使用的函數稱為一等函數(first-class function)通過::操作符,你可以創建一個方法引用,...
摘要:文本已收錄至我的倉庫,歡迎回顧上一篇大型網站系統與中間件讀書筆記一這周周末讀了第四章,現在過來做做筆記,希望能幫助到大家。沒錯,我們通過肯定是可以完成兩個系統之間的通信的問題的。 前言 只有光頭才能變強。文本已收錄至我的GitHub倉庫,歡迎Star:https://github.com/ZhongFuCheng3y/3y 回顧上一篇: 《大型網站系統與Java中間件》讀書筆記(一)...
閱讀 3626·2021-11-24 09:39
閱讀 2563·2021-11-15 11:37
閱讀 2220·2021-11-11 16:55
閱讀 5221·2021-10-14 09:43
閱讀 3714·2021-10-08 10:05
閱讀 3016·2021-09-13 10:26
閱讀 2334·2021-09-08 09:35
閱讀 3546·2019-08-30 15:55