1.Java概要
まず、Javaはオブジェクト指向のプログラミング言語です。C / C ++や他の言語に関しては、そこのJavaにはポインタがありませんが、これは平均ポインタの知識がないことは重要ではありません。ジャワには多重継承はありませんが、複数のインターフェースがあります。私自身の学習プロセス、Javaは多重継承をサポートし、複数のインタフェースをサポートしていないので、私は、プログラムのインターフェイスを実装することを好むように。
Javaはクロスプラットフォーム開発の特性を有しています。Javaは、デスクトップアプリケーション、Webアプリケーション、分散システムや組み込みシステムのアプリケーションなどを書くことができます。私は主にWebアプリケーションに留学します。
2.Javaの命名規則
パッケージ名:ユニファイド小文字の例:org.study.pojo(3つのフォルダ)
定数名:すべての大文字
変数名:最初の文字を小文字、大文字の単語の最初の文字が続きます
クラス名:大文字の単語
3.基本データ型
一般的に、主に8つの基本データ型を使用するJavaデータ型
8つの基本データ型
バイト:Javaで最小のデータ型、8(ビット)、1つのバイトを占める; -128から127の範囲で、デフォルト値は0であります
短い:短整数、16個のメモリを占有し、デフォルト値は0です
INTは整数、32ビットのメモリフットプリントは、デフォルト値は0であります
ロング:ロング、64ビット幅のメモリ、デフォルト値0L; 値が必要なデータプラスLの後に大きすぎると、long型変数の宣言時間中に、あることに注意してください。
フロート:浮動小数点数(フロート)は、デフォルト値は0であり、32ビットのメモリを占有し、小数点がある場合float型変数の間、宣言、そのノートは、後データとFで必要とされ、そうでなければコンパイラ意志エラーを報告します
倍精度:倍精度小数点型、64ビット幅のメモリをフローティングは、デフォルト値は0です。
チャー:単一の文字を格納するために使用される文字は、デフォルト値がnullの場合、16ビット、2つのバイトを占め
ブール:1バイトのタイプは、2つだけの値がtrue、falseが、デフォルトはfalseです
参照型で4.Java
共通の基準タイプ:文字列、配列、クラス、インタフェース、列挙型、等
この問題では4.1、Javaの参照と呼ばれているものを見てみましょうか?
リファレンスの基本的な考え方:DECLARE変数の型は、この変数が参照されると呼ばれる、クラスではなく、基本的なタイプである場合は、オブジェクトへの参照がない場合、通常の状況下で、(GC)のガベージコレクションをクリーンアップすることになります。基準との間の関係の強さに応じて、オブジェクトの基準レベルに分けることができる:強い参照(新しい肯定のために使用)、ソフト参照、弱参照、ファントム参照。
この時間も混乱存在し得る、オブジェクトが何であるか、基準は何です。
4.2オブジェクト参照は、同じことを感じていますか?
イラスト
学生学生 = 新学生() ;
我々は(青い部分は、学生オブジェクトを肯定される)新しいターゲットを参照の上、変数学生の行為が学生のクラスが宣言し、学生の変数が参照されます。
4.3について強い参照、柔らかい、弱い、参照、仮想基準(底が理解したことがない上、または、機構GCの例に書き戻すことを学びます)
4.3.1強い参照
Javaの強い参照は、参照の最も一般的なタイプである新しいオブジェクトのうち、一般的であり、オブジェクトが強い場合
参照、ガベージコレクションは、例外エラーをスローするには消極的Java仮想マシンを回復することはありません
(OutOfMemoryErrorが)回復することはありません。
オブジェクトのニーズが回収される場合、その後、参照を手動でオブジェクトが係合状態にされるようにすることを、nullに設定することができます
それは、オブジェクトが自動的に参照されていない場合(GC-回復機構ガベージコレクタをリサイクルするのに適した時
リサイクルのため)。
例えば:学生学生= NULL;したがって、オブジェクトへの参照が存在しない、ガベージコレクタはオブジェクトが回収され、適切な時間であろう。
4.3.2ソフト参照
参考しかし、オブジェクトを記述する必要はありません、ソフト参照は、JVMの下に記載されているオブジェクトは、オブジェクトを自動的に回復します、十分なメモリ条件ではありません。この機能は、キャッシュを実装するための理想的です。
4.3.3弱参照
一般的にJVMが自動的にこのタイプのオブジェクトを回復したときに、ガベージコレクションを非必須オブジェクトを記述するために使用されます。もちろん、またSystrm.gc()をリサイクルすることで表示される[この文の意味は、JVMのゴミを通知することですが、JVMは即時回復メカニズムを実行しません]
4.3.4仮想参照
Falseの引用語句、および任意の時点でほとんどの参照に関連付けられたオブジェクトはガベージコレクションのメカニズムをリサイクルすることができます。それはいつでも回収することができるので、あなたは、ガベージコレクションが行われた場合をリッスンするために、この機能を使用することができます。
5.Java値転送
オンライン二つのバージョンがあります:1は、値があることをJavaのパス2つの渡しの参照があり、Javaの存在は、参照のみを渡しています。
値が渡されます。渡されたパラメータのデータ値のコピーを
だから、どのステートメントは本当ですか?レッツ・ライト・コード
パブリッククラスTestString01 { パブリック静的ボイド変更(文字列STR、CHAR [] CH、INT番号){ STR = "プロセス値"; CH = 'A' [1]; = 100番号; } メインパブリック静的ボイド(文字列[]引数){ STR = "マスターメソッド"文字列; CHAR [] =新しい新規CHチャー[] { '1' 、' 1' 、」1' }; INT数= 10; //メソッド呼び出し 変化(STR、CHを、数) のSystem.out.println( "文字列" + STR + "" + " アレイ:" + CH [1] + "" + " デジタル" +数); } }
実行結果
数は、基本的なタイプである場合は、文字列や配列は参照型ですので、なぜ同じ結果がそれを持っていませんか?これは、メモリの中で、Javaでのデータストレージメカニズムに関連しています
データストレージ機構6.Java
スタック:各スレッドは、データベースに基本データ型とオブジェクト参照と参照のスタック中間値を保存し、スタック領域が含まれています
ヒープ:ストレージオブジェクト、JVMのヒープのみ、ヒープは、すべてのスレッドで共有され、オブジェクト自体は、オブジェクトへの唯一の店舗の参照は存在しません。
メソッド領域(静的エリア):ストアにすべてのスレッド、クラスファイル、および静的変数やメソッドで共有
定数プール:定数プールエリア内jdk1,6方法、ヒープメモリ上jdk1.7定数プールは、jdk1.8要素が空間内に配置され、スタック独立
これは、転送中の基本データ型、変更されていない理由の値の主な機能の後、理由です。
配列型への参照をもう一度見:
このように、参照によっていわゆるパスは、実際の値の転送であるが、この値はアドレスです。それは、参照によって渡されているので、なぜそれが文字列の値を変更しませんか?
のは、文字列のコードを見てみましょう:
継承することはできませんクラスの代わりにクラスの前に2つの最終、最初が存在は、ありますが、データは文字列定数で定義されているので、それは、最後の修飾子を使用するため、2番目は、私たちの最終的なデータであります;定数プールに格納された定数は、変更されません、実行の方法を交換するときに、それが元の値を変更しないが、このスペースに対処するための空間点を再度開きます。値が変更されていないので、元のメインは、文字列または元のアドレスをポイントしています。次のように示します: