JAVA基礎-1
JAVA
2018 12 26
用語の説明
JDK
JDKは英語でjava development kitとつづられているので、jdkはプログラマーがjavaプログラムを書くために必要なソフトウェアです.
JRE
JREは英語でjava runtime enviromentとつづられているので、jreはjavaプログラムを実行するために必要な環境です
OpenJDK
JAvaseの無料オープンソース実装
JAVAプログラムはなぜプラットフォームをまたいで実行できるのか
JAvaは解釈言語なのでjavaソース
( .java )
コンパイル完了後に生成されるのはバイトコードファイル( .class)
ですが、バイトコードファイルは直接実行することはできません.java仮想マシンで解釈して実行する必要があります.異なるプラットフォームには異なるタイプの仮想マシンがありますが、同じclassファイルを異なる仮想マシンに渡して実行を説明することができ、最後に実行結果が同じなのでjavaはプラットフォームにまたがる言語です.基本データ型
データ型
長さ(バイト)
コメント
byte
1
short
2
char
2
charはCの符号なし16ビット数に相当し、データ範囲は0-65535である.
int
4
long
8
float
4
double
8
浮動小数点数の値はデフォルトでdoubleですが、floatタイプに変換するには、文字の値の後ろにFを付けます.
boolean
定数
finalキーワードで変数を修飾すると、定数タイプは1回の修飾方式しか初期化できません.この方法は書き換えられないことを示します.
class Base{
static final int sf = 11;//
final int f1 = 10;//
final int f2;
{
this.f2 = 10;//
}
final int f3;
public Base(){
this.f3 = 10;//
}
public static void main(String[] arg){
final int c = 1;//
final int d;//
d = 11;//
}
}
注意:静的定数はクラスのロード時に1回のみ初期化され、インスタンス定数はオブジェクトを作成するたびに1回初期化されます.
オブジェクト作成プロセス
フォント値タイプデータ加算
(11D + 11F) => double
(11F + 11L) => float
(11L + 11) => long
(11 + 11) => int
short s = s + 1;? なぜエラーが発生したのですか?short s += 1;? どうして正しいの
1番目の式:フォント値1のデフォルトはintタイプのデータで、タイプが一致しない問題があります.2番目の式:+=オペレータはデータ型の強制変換操作を行います.
演算子
元のコード、逆のコード、および補完コード
Stringは参照タイプデータであり、基本データタイプではありません
// String final ,
public final class String implements ...{
/**
*
* ,
* String , String String
*/
private final char value[];
}
文字列定数プール
StringBuilderとStringBuffer
switch
4つの特性
/**
* name , ,name
*
*/
String name = new String("lily");
方法
同じ内部で発生し、メソッドの名前が同じで、エントリパラメータの違いによって区別されます.戻り値、権限修飾子、放出異常タイプは異なりますが、メソッドを区別するために使用できません.
書き換える
親クラスが継承された子クラスで発生し、継承されたメソッドの書き換えが実現され、メソッド名とエントリパラメータが同じで、アクセス権が拡大するしかありません.
静的バインドと動的バインド
hash値とequalsの間になぜこのような関係があるのか
転載先:https://juejin.im/post/5c22d7ae6fb9a049eb3bf6f1