ネットワークオフ牛は問題5.26を行います

5.26

(1)A = Integer.parseInt( "1024")。

         B = Integer.valueOf( "1024")intValue()。

次の文は正しいです

a和b都是整数类型变量并且它们的值相等。

intValue()がINTの基本データ型にIntegerオブジェクト・タイプである 
のparseInt()INTに文字列の基本データ・タイプである; 
(JDKのバージョンは、現在オートボクシングをサポートしている;のvalueOf()は、文字列オブジェクト・タイプ整数に変換され。)開梱
タイトル:のparseIntは、データ型intのための基礎であったのvalueOfデータ・タイプ整数箱入りされ得、そして次にINT valueIntによって変換、Dは、そのように選択されます

(2)単一モードの実施形態では、二つの基本的な点です 

构造函数私有
唯一实例

一般的に、2つの構築方法は、Java言語でのシングルトンパターンがあります。

1.怠惰な方法。これは、最初に使用するとき構築グローバルシングルトンインスタンスを指します。


//遅延スタイル
パブリッククラスSingleton2 {
プライベート静的Singleton2 INSTANCE = NULL;最適化された書き込みがあるので//また、そのようなアプローチは、マルチスレッドに遮断することができる、揮発性修飾インスタンスを使用することで、内その後のgetInstance()メソッドIF(INSTANCE == NULL)を行うこと再び決意が判定された場合。

プライベートSingleton2(){}

のgetInstance(Singleton2パブリック静的){
IF(INSTANCE == NULL){
INSTANCE =新しい新しいSingleton2();
}
インスタンスを返します;
}
}

2.空腹男の道。構築時には、クラスローディングのグローバルシングルトンインスタンスを指します。


//饿汉式
パブリッククラスシングルトン{
民間最終静的シングルトンインスタンス=新しいシングルトン()。

プライベートシングルトン(){}

パブリック静的シングルトンのgetInstance(){
インスタンスを返します。
}
}

(3)権利を持って、次の

call by value不会改变实际参数的数值
call by reference不能改变实际参数的参考地址
call by reference能改变实际参数的内容

参照データ型は(参照により呼び出し)参照によって渡され、渡された値は、基本的なデータ・タイプである(値によって呼び出し)

値の転送は、それが生の変数には適していない、プロセスの値のコピーに変更され、元の変数のコピーが送信されるので、送信パラメータのJavaメソッドの」---形状を元の変数の内容とアドレスを変更することはできません

参照アドレスで渡された元の変数を変更することはできませんが、元の変数の内容を変更することができます---「理由はときの基準点のコピーのために変更されたコンテンツのコピー、元の変数の参照のコピーは、変更されていない際の基準を変更することですそれは、元の変数のアドレス空間なので、元の変数の変化の内容です。

 

結論:1.値が渡され、元の変数のアドレスの内容を変更することはできません。

           2.参照配信アドレスは、元の変数を変更することはできませんが、元の変数の内容を変更することができます。

(4)は、Java関与バイト、ショート、及びチャータイプはintに強制することができます

 

(5)公共の静的な無効メイン(文字列[]引数)ORパブリック静的な無効メイン(文字列引数[])。これは、JVMによって決定されたJavaの仕様です。プログラムのクラスのJava実装は、mainメソッドが最初に行われ、実装クラス名+メソッド名である場合、それは仕様がString []引数として、名前が文字列配列を重要ではありません渡す必要があり、公共の静的である必要があります例えば、入来メインメソッドパラメータを保持するために使用されるこのコマンドラインアレイ:のJava HelloWord 1 2 3、次いでargs.lengthの== 3。具体的なメカニズムはすべてが良いのJava操作するメカニズムを把握するために、学習のかなりの程度でなければならJVM、JVMのいくつかの知識を持っている必要があります

 

(6)

class Car extends Vehicle

{

    public static void main (String[] args)

    {

        new  Car(). run();

    }

    private final void run()

    {

        System. out. println ("Car");

    }

}

class Vehicle

{

    private final void run()

    {

        System. out. println("Vehicle");

    }

}

結果を実行するためのコードの以下の記述のどちらが正しいのですか?

Car

解像度:

親クラスのメソッドは、この質問は、プライベート修正され、それは、サブクラスがオーバーライドすることはできません、サブクラスからは見えません。そのため、親クラスとサブクラスのメソッドは2つの方法です。

拡張:親クラスのメソッドプライベート代わりにパブリックた場合はどうなるのか?

        親クラスのメソッドが最終的に変更されているので文句を言うだろう、それは上書きできません。

(7)出力はすぐ下の行を降順

//看我的注释这种快排的思路就很清晰了,这是只从一个方向遍历的快排

public class A2 {

    public static void main(String[] args) {

        int[] a = { 2, 4, 6, 8, 3, 6, 9, 12 };

        quickSort(a, 0, a.length - 1);

        for (int i = 0; i <= a.length - 1; i++)

            System.out.print(a[i] + " ");

    }

 

    private static void quickSort(int[] a, int start, int end) {

        if (start < end) {

            int p = core(a, start, end);

            quickSort(a, start, p - 1);

            quickSort(a, p + 1, end);

        }

    }

 

    private static int core(int[] a, int start, int end) {

        int x = a[end];

        int i = start;  //记录遍历完后最后一个数应该放在的位置,初始就是start,因为如果前面没有数比最后一个数大,那么下面遍历完后最后一个数就应该放在start的位置

        for (int j = start; j <= end - 1; j++) { //遍历的目的是把参与排序的这轮数中比最后一个数大的数都放到最后一个数前面

            if (a[j] >= x) {

                swap(a, i, j);  

                i++;  //每遇到一个比最后一个数大的数,最后一个数应该放的位置就+1

            }

}

        swap(a, i, end); //这里一交换后就把最后一个数放在了正确的位置,这样左边的数都比最后一个数大,右边的数都比最后一个数小

        return i;

    }

 

    private static void swap(int[] a, int i, int j) {

        int tmp = a[i];

        a[i] = a[j];

        a[j] = tmp;

    }

}

(8)

スイッチ(expr1の)において、expr1とのみであることができる整数式または列挙定数(大きなフォント)バイトは、短い、charが暗黙的に変換することができるので、整数表現は、プリミティブ型intまたは包装の整数型であることができますint型、およびので、これらのタイプ、およびパッケージングタイプのこれらのタイプも可能です。明らかに、長く、float型、double型の構文指定されたスイッチに適合しないと、暗黙的にint型に変換することができないので、彼らはswtichステートメントに行動することはできません。
注意:文字列型は、Java7のスタートをサポートしています。

(9)

公共およびデフォルト:外部クラスが関係している1.が、それはまただけクラスの外、アクセス制御文字を使用して変更することができ、アクセス制御の2つのレベルがあります。外側のクラスは、内部の任意の種類ではないので、クラス内のその内の2個の範囲、クラス外部ない意味でクラスので、プライベートと保護されたアクセス制御のないサブクラスが存在しません。

2. 4つのスコープを有する内部クラス外部クラスにプログラム単位、(保護)(プライベート)同じクラスと、任意の位置(パブリック)同じパッケージ。

3.ローカルメンバーの範囲は、すべてのメンバーが変更ローカルアクセス制御剤を使用することができないので、他のプログラムユニットは、ローカル変数の別の方法にアクセスすることはできない方法であるため。

 

(10)次のオブジェクトの1つを有します。

public class DataObject implements Serializable{

    private static int i=0;

    private String word=" ";

    public void setWord(String word){

        this.word=word;

    }

    public void setI(int i){

        Data0bject. i=I;

     }

}

次のDataObjectの道を作成します: 

DataObject object=new Data0bject ( );

object. setWord("123");

object. setI(2);

このターゲット・ファイルにシーケンス、および他のJVM内のファイルを読み、デシリアライズさ、どのような値Data0bjectオブジェクトこの場合、読み出しワードと私、それぞれ:

"123", 0

解像度:

静的クラス代表のメンバーは、オブジェクトの過渡一時的なデータの代表は、シリアライズすることができないデータメンバの両方のタイプが宣言されているので、Javaの直列は、変数の静的および過渡修正のインスタンス変数ではありません。

 

 

 

 

 

おすすめ

転載: blog.csdn.net/weixin_41673515/article/details/90572598