Thinking in java Javaプログラミング思想オペレータオペランド副作用優先度
2877 ワード
オペレータ、オペランド、副作用:オペレータがオペランドに作用して新しい値を生成し、オペレータがオペランド自体の値を変更した場合、副作用と呼ばれます.
優先順位()カッコですべてを解決
割り当てオペレータ:= このシンボルはドメインスタックstackに作用し、
1,基本データ型,すなわち値伝達,2つのメモリ領域,2つの値を格納する
2,参照データ型,別名現象伝達参照,2つのパラメータは1つの参照を格納し,同じheap領域を指す.メソッドパラメータがオブジェクトであれば、リファレンスも渡されます.
演算子:+、-、*、/、% 型抜き
@Testpublic
void txfloat() {
//TODO自動生成方法ルートint a=9;int b=7;
DecimalFormat df=new DecimalFormat("0.00");
System.out.println(df.format((float)a/b));
System.out.println(df.format(a/(float)b));
System.out.println(df.format((float)a/(float)b));
System.out.println(df.format((float)(a/b)));
}
結果1.29,1.29,1.29,1.00.
算数演算は、自動的に2つの数の最高精度に向上し、floatを計算して強制変換した後、精度が向上し、演算時に2つのfloatが計算されます.最後に、演算結果をfloatに強制的に変換し、1-1.00
また,整数除算では9/5=1に注意し,四捨五入ではなく小数部を自動的に取り除く.直接取り除くのです
算術演算子+代入演算子 +=,-=,*=,/=,%=,,演算をしてから値をつける.私はこれまでこのように書いたことがなくて、高いレベルを体現することができなくて、时にはとても乱れて、中断点も面倒で、コードの高いレベルはフォーマットにあって、思想にあります.また、x=a*-b、jdkは認識でき、人はコードを読むのに慣れていないので、カッコx=a*(-b)
自増、自減:++、--.i-,--i,i++,++i..記号は前からiを減算し、iを前に、他を演算し、iを減算する
関係演算子:==,!=,,,<=,>=,,ブール値boolenを返します
==,equals:==stackが等しいか否かを判断するので,基本データ型は数値だけを気にすればよい,参照データ型は,参照アドレスを比較するだけである.
int a=1;
int b=1;
System.out.println(a=b); true,a,bの2つの値がstackに存在するため,直接比較する.
Integer a =new Integer ();
Integer b =new Integer ();
System.out.println(a=b); falseは、a,bの2つの値がheapに存在するため、a,bの2つの参照はアドレスが2つのheapを指すだけである.
equalsはObjectのメソッドで、すべてのクラスがObjectを継承します.eqaulsの実現のデフォルトは==で、所里の2人は同じで、違いは、equalsは方法で、書き直すことができて、同じくありました
String s1 = new String("Hello");
String s2 = new String("Hello");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
false
true;
自分で書いたクラスであれば、身長、体重、名前、身分証明書番号、年齢、学歴など、equalメソッドを書き換える必要はありません.しかし、二人がどのように一人だと判断するかは、equalsメソッドを書き直し、名前と身分証明書番号が等しいと判断すればよい.
論理演算子、ビット演算子:または(trueがtrueを得て、1が1を得る)、および(falseがfalseを得て、0が0を得る)、非、異または(同じfalse、異なるtrue、同じ0、異なる1)
ビット単位演算子:オペランドオペランド 整数基本データ型に対応するビット(bit)
操作 ブール代数演算
&,&&;|,||,ショート、参照:https://blog.csdn.net/Agly_Clarlie/article/details/50521888
^異種または適用、2つの数の交換:参照:https://blog.csdn.net/lambyuyu/article/details/5543289 個人的にはお勧めしませんが、コードを迅速に理解できない学生もいます.
シフトオペレータ:2+1 << >> >>>:操作対象、バイナリのビット:byte short int charはすべてint処理をして、結果もintで、longはlong処理をして、結果もlongです
<
>>右シフトオペレータ:右側オーバーフロービットコミュニティ、右側補完記号は、整数補完0、負数補完1(右シフト前、最上位は何であれ補完)
>>>符号なし右シフト:補足0,,,(c言語にはこれがない)
唯一の三元演算子:Boolean-exp?value0:value1
優先順位()カッコですべてを解決
割り当てオペレータ:= このシンボルはドメインスタックstackに作用し、
1,基本データ型,すなわち値伝達,2つのメモリ領域,2つの値を格納する
2,参照データ型,別名現象伝達参照,2つのパラメータは1つの参照を格納し,同じheap領域を指す.メソッドパラメータがオブジェクトであれば、リファレンスも渡されます.
演算子:+、-、*、/、% 型抜き
@Testpublic
void txfloat() {
//TODO自動生成方法ルートint a=9;int b=7;
DecimalFormat df=new DecimalFormat("0.00");
System.out.println(df.format((float)a/b));
System.out.println(df.format(a/(float)b));
System.out.println(df.format((float)a/(float)b));
System.out.println(df.format((float)(a/b)));
}
結果1.29,1.29,1.29,1.00.
算数演算は、自動的に2つの数の最高精度に向上し、floatを計算して強制変換した後、精度が向上し、演算時に2つのfloatが計算されます.最後に、演算結果をfloatに強制的に変換し、1-1.00
また,整数除算では9/5=1に注意し,四捨五入ではなく小数部を自動的に取り除く.直接取り除くのです
算術演算子+代入演算子 +=,-=,*=,/=,%=,,演算をしてから値をつける.私はこれまでこのように書いたことがなくて、高いレベルを体現することができなくて、时にはとても乱れて、中断点も面倒で、コードの高いレベルはフォーマットにあって、思想にあります.また、x=a*-b、jdkは認識でき、人はコードを読むのに慣れていないので、カッコx=a*(-b)
自増、自減:++、--.i-,--i,i++,++i..記号は前からiを減算し、iを前に、他を演算し、iを減算する
関係演算子:==,!=,,,<=,>=,,ブール値boolenを返します
==,equals:==stackが等しいか否かを判断するので,基本データ型は数値だけを気にすればよい,参照データ型は,参照アドレスを比較するだけである.
int a=1;
int b=1;
System.out.println(a=b); true,a,bの2つの値がstackに存在するため,直接比較する.
Integer a =new Integer ();
Integer b =new Integer ();
System.out.println(a=b); falseは、a,bの2つの値がheapに存在するため、a,bの2つの参照はアドレスが2つのheapを指すだけである.
equalsはObjectのメソッドで、すべてのクラスがObjectを継承します.eqaulsの実現のデフォルトは==で、所里の2人は同じで、違いは、equalsは方法で、書き直すことができて、同じくありました
String s1 = new String("Hello");
String s2 = new String("Hello");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
false
true;
自分で書いたクラスであれば、身長、体重、名前、身分証明書番号、年齢、学歴など、equalメソッドを書き換える必要はありません.しかし、二人がどのように一人だと判断するかは、equalsメソッドを書き直し、名前と身分証明書番号が等しいと判断すればよい.
論理演算子、ビット演算子:または(trueがtrueを得て、1が1を得る)、および(falseがfalseを得て、0が0を得る)、非、異または(同じfalse、異なるtrue、同じ0、異なる1)
ビット単位演算子:オペランドオペランド 整数基本データ型に対応するビット(bit)
操作 ブール代数演算
&,&&;|,||,ショート、参照:https://blog.csdn.net/Agly_Clarlie/article/details/50521888
^異種または適用、2つの数の交換:参照:https://blog.csdn.net/lambyuyu/article/details/5543289 個人的にはお勧めしませんが、コードを迅速に理解できない学生もいます.
シフトオペレータ:2+1 << >> >>>:操作対象、バイナリのビット:byte short int charはすべてint処理をして、結果もintで、longはlong処理をして、結果もlongです
<
>>右シフトオペレータ:右側オーバーフロービットコミュニティ、右側補完記号は、整数補完0、負数補完1(右シフト前、最上位は何であれ補完)
>>>符号なし右シフト:補足0,,,(c言語にはこれがない)
唯一の三元演算子:Boolean-exp?value0:value1