9&と&&の違いは何ですか?|内部クラス|汎用

2746 ワード

1,タイトル&&&と&&(ショート)の違いは何ですか?
int a = 3;
		int b = 5;
		int c = a & b;
		System.out.println(c);

出力結果1
3のバイナリ値011
5のバイナリ値101
1つ&には2つの機能があり、ビット演算も論理演算も可能です.ビット演算ビット001だから出力1
int a = 1;
		int b = 2;
		if((a==2) && ((b = 3) == 5)){
			System.out.println("execute");
		}
		System.out.println(a);
		System.out.println(b);

しゅつりょく
1
2
if里aは2に等しくないので後で実行されないので、aとbは元の値です.
		int a = 1;
		int b = 2;
		if((a==2) & ((b = 3) == 5)){
			System.out.println("execute");
		}
		System.out.println(a);
		System.out.println(b);

出力結果
1
3
1つの&時に短絡概念がない場合、後で実行されるので、bは3に割り当てられます.
2,匿名内部クラス(anonymous inner class)
匿名の内部クラスについて:このクラスは親クラスを継承しているか、インタフェースを実装しているに違いありません.
public String get(Date date){
		return date.toLocaleString();
	}

	public static void main(String[] args) {
		Test test = new Test();
		String result = test.get(new Date(){
			public String toLocaleString(){
				return "love";
			}
		});
		System.out.println(result);
	}
loveを印刷
内部クラスについて:
1静的内部クラス(static inner class)
2メンバー内部クラス(member inner class)
3ローカル内部クラス(local inner class)
4匿名内部クラス(anonymous inner class)
3、汎用
	public void method1(List list){}
	
	public void method2(){
		method1(new ArrayList());
		method1(new ArrayList());
		method1(new LinkedList());
	}

コンパイルできますか?
sh-3.2# javac Test.java 
Test.JAva:17:エラー:互換性のないタイプ:ArrayListはListに変換できません
method1(new ArrayList());
        ^
Test.JAva:18:エラー:互換性のないタイプ:LinkedListはListに変換できません
method1(new LinkedList());
        ^
注意:一部のメッセージは簡略化されています.-Xdiags:verboseを使用して再コンパイルして完全な出力を取得してください
2つのエラー
コンパイルできません.
汎用継承について:
ArrayListはListを継承している
ArrayListはListを継承していません
	public void method3(List extends Object> list){
	}
	
	public void method4(){
		method3(new ArrayList());
		method3(new ArrayList());
		method3(new LinkedList());
	}

コンパイルできますか?
いいですよ.
	public void method5(List> list){
		
	}
	
	public void method6(){
		method5(new ArrayList());
		method5(new ArrayList());
		method5(new LinkedList());
	}

コンパイルできますか?
いいですよ.
説明:
List extends Object> list     List> list

伝わるタイプは、Objectを継承しているものであれば問題ありません.