いくつかのJava演算子の詳細


一、m+=nとm=m+nの違い
一般的にはこの2つは同じですが、次の例では違いがあります。
public class Test
{
	public static void main(String[] args)
	{
		short width = 10;
		width += 2;//ok
		System.out.println(width);

		width = width + 1;//error,                    ,       
		System.out.println(width);
	}
}
このようにエラーを報告します。
D:\workspace\Java\project261\+=>javac Test.java
Test.java:9:       
  : int
  : short
                width = width + 1;
                              ^
1   
の原因は、+=演算子が変数の種類によって自動的に強制的に変換されるためであり、これは両者の根本的な違いである。
二、&&&&&の違い
C++の子供用の靴を使ったら自然に&&演算子を使います。これは短絡と言われています。最初の条件がうそであれば、第二の条件を実行しないで、直接に結果休暇を返します。これは二つの利点があります。一つは効率が&符より高いこと、もう一つは危険な操作ができること、二つ目の条件があります。一つ目の条件ですが、直接に戻ったら、この危険な操作は実行されません。例えば、nullなどです。
三、+演算子は文字列操作時の不思議な役割です。
1、String string = 「++123」//原理は第一条と同じです。123は強制的に転換しなくてもいいです。このコードはプロジェクトでよく見られます。私達は怠け者ですか
2、String tmp 1=「I lo」;
       String tmp 2="ve you"
      String string=tmp 1+tmp 2;
       内部原理としては、コンパイラがSteringBuider類のapped方式を採用しています。Javaの中でいつStringを使いますか?いつStringBuiderを使いますか?
三、古い調律の重弾、==equals()
==は関係演算子で、比較は基本型変数の値または参照型変数が参照するアドレスです。
equals()メソッドはObjectクラスの方法であり、比較は参照型変数が指す格納内容である。
混ぜないでください
四、String構造の二つの方法
1、String string=new String(「I love you」);
2、String string=「I love you」;
Stringタイプはバッファと呼ばれる構造(概念)を提供しています。第二の方法で文字列を構成する場合、コンパイラ(実行時?)はバッファに行って同じ内容の文字列を検索します。もしあればもう一つの新しいものを作成しなくてもいいです。能率が上がった。最初の方法は毎回新しい文字列を作成します。それに比べて、第二の方法を使ったほうがいいです。