9&と&&の違いは何ですか?|内部クラス|汎用
2746 ワード
1,タイトル&&&と&&(ショート)の違いは何ですか?
出力結果1
3のバイナリ値011
5のバイナリ値101
1つ&には2つの機能があり、ビット演算も論理演算も可能です.ビット演算ビット001だから出力1
しゅつりょく
1
2
if里aは2に等しくないので後で実行されないので、aとbは元の値です.
出力結果
1
3
1つの&時に短絡概念がない場合、後で実行されるので、bは3に割り当てられます.
2,匿名内部クラス(anonymous inner class)
匿名の内部クラスについて:このクラスは親クラスを継承しているか、インタフェースを実装しているに違いありません.
内部クラスについて:
1静的内部クラス(static inner class)
2メンバー内部クラス(member inner class)
3ローカル内部クラス(local inner class)
4匿名内部クラス(anonymous inner class)
3、汎用
コンパイルできますか?
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を継承していません
コンパイルできますか?
いいですよ.
コンパイルできますか?
いいですよ.
説明:
伝わるタイプは、Objectを継承しているものであれば問題ありません.
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
コンパイルできますか?
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を継承しているものであれば問題ありません.