- Javaコア強度:
クロスプラットフォーム、異なるJVMシステム以降は、異なるオペレーティングシステムが直面javaapp JVMを可能にします - Javaのバージョンの意味:
;のJava SEは:JAVA Standard Editionには::Standard Editionには学ぶことができますパソコンを配置し、コアJavaプラットフォームは、豊富なAPIは、アプレットは、HTML5置き換えるFLASHであるほかにAWTとSwing、含まれてい
JAVAのEnterprise Edition:エンタープライズJavaEEのをバージョン、ロケーションサーバ、SEの拡張、サーバー開発のためのクラスライブラリを増やします。JDBC、サーブレット、リクエスト-レスポンス、JSPなど
MICROオンJAVE:マイクロエディション、SE内に延在する、J2SEは、コアクラスの一部を含む民生用電子機器を配置JAVEME。アンドロイドが交換されます - ジャワの特長と利点:
①クロスプラットフォーム/ポータビリティ:intは常に32である場合
②セキュリティ:ネットワークアンチウィルス/分散環境を構築、改ざん防止システム
より徹底的に多くのC ++より(互換C):③オブジェクト指向、完全にオブジェクト指向。
④シンプル:C +±、習得が容易Cに基づいて、ヘッダ、ポインタ演算、構造、組合、演算子のオーバーロード、仮想基底クラス、除去
⑤高性能:低い初期性能をポスト最適化JVMは、コンパイラによって、JIT(タイムコンパイル技術)に加え「ホットスポット」のコードをローカライズし、符号化効率を向上させること、キャッシュされました。
⑥分散:TCP / IPプロトコルを処理するために、分散環境のインターネットのために設計され、プログラムがネットワークメソッドを通じて呼び出すことができるように、リモートメソッド呼び出し(RMI、リモートメソッド呼び出し)をサポートし、ネットワークリソースとローカルファイルへのアクセスのようなURLを介してアクセスすることができます。
⑦マルチスレッド:より良いインタラクティブでリアルタイム動作をもたらします。また、サービス側の開発言語の主な理由の一つとなって。
⑧堅牢性:ポインタの除去、メモリの割り当てと解放。これは、GCが付属しています。コンピュータがクラッシュし、クラッシュを避けるために、優れた例外メカニズム。 - Javaのメカニズムオペレーティング:
.classファイルに、ソースファイルの.java、JDKコンパイラによっては、バイトコード検証、インタプリタとJITはアプリがJREローダーシステムクラスを介して実行されている、と解釈すること - JVM、JRE、JDK差
JVM:Java仮想マシン:定義された仮想マシンのバイトコード実行、仮想マシンのバイトコード:命令セット、レジスタセット、スタック構造、ガベージコレクションヒープメモリ領域。Javaバイトコードインタプリタを実行すると、解釈側の実行を担当。
JRE:Javaランタイム環境:JVM、ライブラリ、実行するJavaプログラムの必須ファイル(単に実行javaappのみ必要JRE)と
Javaの開発キット:JDKは、JREだけでなく、増加したコンパイラやデバッガおよびプログラム開発のための他の文書が含まれています(開発に必要);
JDK(javacの、JAR、デバッグ、ツール、てjavap) "JRE(Javaの、javawを、ライブラリー、RT、JAR)" JVM(JIT) - コンセプト識別子とルール、仕様:
コンセプト:変数、クラス、メソッド名:命名
規則:文字、数字、アンダースコア_を、 数字の
大文字小文字を区別し、何の長さの制限は、
キーワードとしてできなくないかもしれません。
仕様:クラス名:各単語の最初の文字大文字に
最初の単語の最初の文字:メソッド名、変数を小文字、および残りの大文字の単語「こぶ原理」 - 本質変数は:
動作可能な連続した領域であり、空間的な位置が決定され、変数の内容は、変数名が「記憶空間」によってアクセスされ、動作することができます。
前記変数名、変数タイプ、範囲、長さ最初の宣言は、それぞれのメモリ空間を割り当てられた後、[初期化]を使用。 - 変数のタイプ:
基本タイプ、参照型 - 変数カテゴリー:
ローカル変数ローカル変数:ライブ文ブロックの方法、次の文の失活過程に依存する方法またはステートメントブロック期間のブロック内で宣言を使用して初期化する必要があります。
メンバ変数のメンバ変数(インスタンス変数):クラスの内部メソッドへの外部宣言、シリーズオブジェクトは、オブジェクトがサイクルの後に続く、初期設定、デフォルトも
静的変数静的変数(クラス変数):内部クラス上の文、静的修正、奴隷階級、定期的なフォローのクラスのロード、アンロード、消えては、すべての共有1つのクラスのオブジェクトを変更することができます。 - 定数の定義、分類:
定義:初期化されたら、固定値(シンボリック定数)、最終的な変更とは、変更することができない、(静的変数へのアクセスが変更され、したがってプラス静的で最終となり、一定の手動による初期化を必要とすることはできません)
カテゴリー:リテラル: 1,2、真、「B」、 「ハロー」
シンボル定数:最終的な変形が定義されています。= 3.14最後のダブルPI; - 命名規則変数と定数:
すべての変数、メソッド、クラス名:参照名が知らイタリアの
クラスのメンバ変数:最初の文字を小文字のこぶ原理
ローカル変数:最初の文字は、原則こぶ小文字
大文字と下線付きの組み合わせ::MAX_VALUE定数
クラス名:最初の文字を資本とこぶの原則:グッドマン
メソッド名:最初の文字を小文字と原則こぶ - 詳細なデータタイプ分類、
:基本データ型(プリミティブデータ型)
数値:
整数型:バイト1バイト、短い2バイト、int型の 4バイト、長い8バイト
浮動小数点値の型:float 4バイト、ダブル8バイトの
文字:文字2バイト
ブール:ブール値を1ビットの
参照データ型(参照データ型):(ターゲットアドレスが記録されている)
クラス:クラス4バイトの
インターフェイス:インターフェイス4バイトの
配列:配列[] 4バイト - 各タイプの可変範囲、形態整数
バイト1バイト-128-127(8バイナリ、プラス又はマイナス半サブ)
ショート2バイト-32768-32767
INT 4バイト-21 -21億億の
ロング8バイト-2 63-2 63- 1 - 4種類の定数式整数小数:
進数:99
進:0から始まる
0Xまたは0X開始:六角
バイナリ:0Bまたは0Bの始まり - Javaのデフォルト整数(文字通り)定数型:
int型、long型のリテラル文は、L又はLの後に添加することができる場合(範囲を超えることなくINTが生じること、エラーが自動移行の範囲内ではありません) - そして、の各タイプの浮動小数点変数の範囲
フロート4バイト-3.4E38-3.4E38
ダブル8バイト-3.4E308-3.4E308
正確フロート7つの仮数は、単一の共通ダブル、倍精度浮動小数点数であり、そして - 浮動小数点リテラルのデフォルトタイプ:
ダブル - バイナリ浮動小数点リテラルの各形式:
小数点:3.14
科学的表記法:314e2,314E-2
リテラル値の後には、フロートFまたはFを増加させるため、デフォルトでは二重ではない、又はDは、二日後に添加することができます - エラー・クラスを使用して計算全く正確な数字:
浮動小数点演算のためのjava.math.BigDecimalクラスは、一般的に金融の分野で使用されません。
java.math.BigIntegerのタイプは、一般に整数演算で使用されます。 - 浮動小数点の比較方法:
BigDecimalをすることにより、 - BigDecimalの一般的な方法:
BigDecimal.valueOf(ダブル):浮動小数点の正確な値を得るために使用される
減算用:減算(BigDecimal)を。
乗算(BigDecimalの)乗算
追加(のBigDecimal):加算器
除算(BigDecimalの)分割
ABS(BigDecimalを):絶対値
のcompareTo(のBigDecimal):比較、その他は、大きく、小さい1 0 -1
- ?「A」==「A」の結果は、なぜ
結果が、コンパイラエラー比較することはできません。一つは文字列です。 - 使用されるCHAR文字セット、空間の大きさの範囲
の文字は0から65536まで許容ユニコード文字コードテーブル、2バイト、;「\ uFFFF」に「\ U000」からコード
Uは、4つの16を追加した後、Unicodeを表します進。「一つは」間違っていることに注意してください、彼は無効な文字です - チャーリテラル発現
チャー缶16進文字を直接表現するために使用することができます。 - チャーは、一般的に、\文字をエスケープ
Bバックスペース\ u0008 \
\ n型ラップ\ u000A
\ R&LTキャリッジリターン\ u000D
\ Tタブタブ\ u0009
\「ダブルクォート\ u0022
\「単一引用符\ u0027
\バックスラッシュ\ u005c - 文字列の性質:
文字列:文字列 - ブール定数値の真/偽のは、メモリ内のスペースを占有しますか?
1 - オペレータの分類:8種類の
算術演算子(モノ、ジ)
代入演算子の
拡張演算子
(instanceofの比較例のためにサイズ以外など、ならびに同じ)関係演算子
論理演算子
ビット単位の
条件付き演算子
キャラクタ連結演算子 - ロール%:
剰余は、剰余を取ります - 二項演算子の動作ルール:
算術整数:
リテラルオペランド整数の二つは、長い、長い結果の存在もしない
、全く長いオペランドが短いバイト以上であるか否か、INTである
浮動小数点演算を:
そこダブル結果は、二重で
、結果をfloatに両方のフロートです。
モジュロ演算:
浮動小数点演算の数ができ、一般的なANの整数で、結果が「余り」、同一の符号を付し、左オペランドです。 - 単項演算規則:「+ / - 」インクリメント演算子
I ++:増分との最初
++ I:でインクリメントした後
、オペレータが最初の増分、フロントへの最初の増分を確認します。 - オペランド関係演算子、結果タイプ入力し
=ていない関係演算子を、
!==、すべて=(基本、基準)データ型を使用することができる。際の基準(例えば、文字列)比アドレスへの参照です。
'>、> =、<、<='だけが数値型(バイト/ショート/ int型/長いため 、フロート/ダブル、CHAR) - :排他的論理和^がによって決定され、||違い、|オペランド論理演算、演算結果の種類、および&&&、入力
オペランドと結果の種類:ブール値を。
&&が短絡であり、一旦、最初の条件が直接偽falseを返す左、&全てのオペランドが必要とされる分析に加えて&オペランドブール非ビット演算です。
すべてのオペランドが必要なことか否かを判断し、加えて| |ブールオペランドは、非非ビット演算である|| trueを返しますが、直接左の最初の条件が真であると、短絡され
、短絡防止が一般的にNULLポインタが。
^:2つのオペランド相はtrueに異なる偽、である。さらに|オペランドがブールXOR演算はビットであるとき、 - 値'3 << 2' '値、3〜の値:'12 >> 3
3 0b10100b0101:4の結果
' 3 2 2」、2 2 3バイナリ左シフト、結果は12
'12 / 2/2/2」、3バイナリ12位3は、右運動を有する。結果は同様に、'12 >> 4' 1で結果が0であります - 文字列連結演算子「+」ルール:
長い文字列型としてときに、2つのオペランドとして、システムは自動的に他のオペランドが文字列に変換され、ステッチされるであろう。 - 演算子の優先順位:
一般的な論理NOT "ロジック" OR
A || B && C実際の計算は次のとおりです。A ||(B && C) - データ型の自動変換:
リテラルの数の範囲に注意を払う、デフォルトがない以上21億int型の範囲であれば - キャストの概念:
またモデリング(降順)として知られている:値型の変換を表示するために使用される、あなたが減少精度やオーバーフローをもたらす可能性が不足している情報を有していてもよいです。
(タイプ)VAR
対象の種類が発生する範囲(典型的には、サイクルの範囲内で)異なる値に切り捨てられます
キャストとブール任意の数値タイプとの間に行うことができません。 - Javaクラスと一般的なキーボード入力方法:
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = scanner.nextInt();
- フリーフロー制御文:
シーケンシャル構造、選択構造、環状構造 - プログラムの性質:
変数、select文、ループ文 - アルゴリズムの基本構成:
変数選択構造、シーケンシャル構造、アルゴリズムの環状基本構造の共通の支持構造 - 分類選択構造:
もし選択構造:単一選択構造であれば、のif-else二重選択構造、のif-elseのif-else複数選択構造
スイッチの選択構造。 - 0-1の間の乱数を取得し、
Java.lang.Math.ramdomは();)0と1の間の[乱数を生成することができます。 - 後続の書込み{}実行コードに影響を与えない場合は、単一の分岐があれば:
後最初の文を実行します。 - :他の場合には、時々そのように置き換えることが
1> 2「偽」:「真」;条件演算子?。 - 他に、もし実行順序より多くの選択肢の場合、他の構造、および勧告を準備します。
実行順序:上から下、Yuzhenに実行し、リターンへの
提言を準備する:条件ではなく、その後の枝と一次条件交差点へ。順序を整理するプログレッシブ、必要性レイヤ。 - :複数の選択肢の文法構造、原則の実施を切り替えます
switch (表达式) {
case 值1:
语句序列1;
[break];
case 值2:
语句序列2;
[break];
… … … … …
[default:
默认语句;]
}
ラベルの実装の冒頭でケースにマッチする式の値に応じて、文または文の末尾に破るために実施しています。一致がなかった場合、デフォルトの処理に進む(デフォルト本)
式で使用可能なタイプ50スイッチ:
JDK1.5前:ロング除いて、整数でなければならず、または列挙ではなく、文字列
jdk1.7後。ストリングできる
現在の式であってもよい:バイト、ショート、整数、文字 、 列挙; Stirng(1.7以上)
51は、多分岐および多分岐スイッチを区別するために使用されている場合:
任意のスイッチは、より場合により置換多分岐分枝することができ、
テーブル間隔判決時に必要なだけの多くの枝があれば、
値は判決と同等のものを行うことは明らかであるときの推奨スイッチ枝がクリア。
52.分類サイクルの構造:
タイプ:式サイクルを停止するだけ偽である場合に、条件が真のブール式は、繰り返し文のブロックを実行します。しばらくの間/
アップタイプに:文の最初の実行をした後、ブール式を決定します。trueの場合、再度実行してください。繰り返し、停止するまでブール式は偽です。一方-行う
:53注whileループポイントの使用
サイクルの開始、すなわちブール式が決定されます。第1の判定の最初の実装
のステートメントは、ステートメント・サイクル・トレンドの終わり、または無限ループにする必要があります。
54.がdo-whileループが注意ポイントを使用して:
まず文を一度に実行して、論理式を決定しています。実行判定後
のステートメントのステートメント・サイクル・トレンドの終わり、または無限ループにする必要があります。
ループ構文、文の実行順序のための55:
{(;ブール式の反復因子初期発現)のための
ループ本体;
}
ループ変数初期化部のA.設定された初期値
B.条件はブール式判断部任意
(スキップできる)C.ループ
D.反復ループ変数ファクタの増減制御
Bを 。。。。。
サイクルとしばらくの間の差のための56のdowhile:
forループ:反復の一般的な構造をサポートし、柔軟かつ効果的な、最初の反復の前に、あなたが初期化を実行する必要があり、その後、ブール式を決定し、次に文を実行し、実行した後に、意志(初期化、及び最後の反復を実行した後、決定する);反復ステップ係数を行う
。サポートされていない反復、最初の決意の後に行われる反復マニュアルは、:ながら
最初の決意を行った後、反復をサポートしていない、反復手動:while-はありません。
一般的に使用される57のJavaカンマ区切り:
変数宣言、複数の、仮パラメータと実パラメータ分割リスト、最初の発現のためのループ、ブール式、係数を分割する反復する複数の、界面複数の
forループ58 :サイクルが空であってもよいかどうかを
できるが、無限ループに、セミコロンで区切られた2つの表しを使用
59.理解のために、二重入れ子ループ:
外部制御線の数、内側列数制御
60続行およびブレーク区別の
ブレーク:強制的にループを終了し、フロー・ループを制御するために、ループが文の残りの部分を実行しません。多分岐中断された分岐文を破るまた、スイッチ。次の文が進行中ではありません
続行:、処理サイクルを終了するために使用されるサイクルは、文の残りの部分をスキップし、次のサイクルは、ステートメントは、反復ステップ係数を実行する必要があるため、オンにされ、一方、ヘッダサイクルdowhile直接ジャンプバックに。
61.ブレークとタブ付き使用を続ける:
javaの後藤ので、予約語である、現在のサイクルから抜け出すためには、マルチレイヤーブレークを使用する必要があり、タブ付き継続
使用:
(のみ)ループの前に、追加「タグ名を:」位置のうち文の形で、ループを使用して:フォームのbraekタグ名やタグ名のうち行い続けます。
62ステートメントのブロックの定義は、ネストされたステートメントブロックが同じ名前を持つ変数が行う宣言することができる。
また、化合物文として知られ、{}括弧のJava単文内の任意の数と、ローカル変数のスコープを決定し、ブロックプログラムコードは、全体として実行されます。そして、ブロックはネストすることができます。
することはできません。
63.方法は、定義された:
特定の機能完了コードセグメントに対して、
行動特徴とクラスの機能および目的のために達成しました。
この方法は、抽象クラスとオブジェクトの動作特性です。
この方法に属するJavaプログラム、クラスとオブジェクトの基本的な単位です。
64. Aメソッド呼び出し:
オブジェクト名メソッド名(引数リスト);ここで、オブジェクト名は、インスタンスアドレス実際に参照され
、直接クラス名によって呼び出される静的プロセス側。非静的メソッドの例を呼び出さなければなりません、このポインタは、現在作成されたオブジェクトを示してありますので、デフォルトで追加されたオブジェクトクラスの内部を見ることが一般的ではありません。
65.注意使用方法:
実引数、データ型の同じ形態、および方法は、オーダーパラメータで宣言されなければなりません。
Returnステートメントは不正な処理を終了し、データの必要な型を返します。戻り値がないとき、ボイド戻り値の型が行う使用してください。
Javaメソッド呼び出しは、パラメータを渡す値の転送従う(送信されたすべてのデータのコピーを、データ参照タイプのアドレスのコピーである)
転送の基本的なタイプは、データ値の値がコピーされ
、ターゲットアプリケーションの値のコピーを渡された参照型をしかし、同じオブジェクトを指しています。
66オーバーロードの方法:定義オーバーロード
同一の複数のメソッド名で定義するクラスが、方法の異なるパラメータ。呼び出された場合、自動マッチングの方法は、異なるパラメータに対応します。
67.設定方法オーバーロードされた条件:
オーバーロードされたメソッド、それは実際に全く異なるアプローチですが、名前だけでなく、同じ!
異なる:仮パラメータ型、仮パラメータの数、仮パラメータの順序
のみの戻り値が異なる、方法は重い負荷を構成するものではありませんが、それは異常報告されます。(基づいて決定される戻り値によらない)
だけ重い負荷を構成しないメソッドの仮パラメータの名前が異なっています。(無意味な)
注自動変換型。
それはマッチング方法のオーバーロードになると68メソッド呼び出し、:
呼び出されるメソッドの実際のパラメータの種類によって、第一のオリジナルライン型マッチングによってない場合、自動的に従う規則のタイプと一致するように変換され、小クロスレベルの原理に従います。どれも例外であれば。
で構成される再帰アルゴリズムの69の基本的な考え方は、:
自分自身を呼び出すない
頭の70再帰的定義:もはやメソッド自体を呼び出すこととき言います。それが無限ループに終わらない場合。
体の71再帰的定義:特定の治療法再帰処理、ビジネス・プロセス文の実際の必要性、再帰呼び出しを発揮しながら。
Nシーク!。
public class TestRecursion{
public static void main(String[] args){
long n = 100;
System.out.printf("%d阶乘的结果:%s%n", n, factorial(n))
}
static long factorial(long n){
if(n==1){//递归头(尽头)
return n;
}else{
return n*factorial(n-1);//递归体 //实际就是 n * (n-1) 这里的n-1就是//需要通过递归求取的
)
}
}
コール原則:
長所と短所72再帰:
少し:プログラムはシンプルで理解しやすい、理解しやすいとデバッグ、効率性を重視せず、再帰です。
:(欠点時間がかかり、メモリ)集中システムスタック、メモリ消費量より、周期よりもはるかに遅い長い時間、のための呼び出しレベル。ループの反復を再帰的に使用してすべての問題を解決するために加えて解決することができます。ときに、高いパフォーマンス要件、循環しています。