今まではYoutube '생활코딩’を通して、とても浅く、ざっくりでJavaを勉強してみた。
次は、800pの本より、知識を深まりより様々な例を書き打つしつつ、基本を充実にする。
新しく習得した知識
1章 Javaスタート
・Eclipseのworkspaceが作成されるにつれ、.metadataフォルダーも自動的に作成される。
workspaceでのオプションが記録されるフォルダーであり、Eclipseを初期設定に戻したい場合は、
そのworkspaceの.metadataフォルダーを削除すればいい。
・他のworkspaceを呼び出したい場合、File->Switch Workspaceを通して、簡単に変更できる。
・クラスファイル名は必ずキャピタルレターにする。
2章 変数
・変数とは一つの値を保存できるメモリ空間のことである。
・変数の名前はメモリアドレスの名前でもあるため、プログラムは変数の名前を通して、メモリアドレスにアクセスする。
【変数の作名法則】
1. 最初の字は、文字、$、_であり、数字にはできない。
例)1v, @speed, #$value
2. 最初の文字は英語の小文字で、意味を区別する際は大文字にする
例)maxSpeed, firstName
3. 予約語にはできない。
例)class, true
・Primitive Type
値が変数に直接保存される。
【整数タイプ】
目に見える字➡ASKⅡ、Unicode ➡binary
・byte = 8bit = -2の7条~(2の7条-1)➡ -127~128
・boolean =1byte = 8bit = true or false
・char = 2byte = 16bit = 2の16条-1
1.Unicodeをマッピングする整数を保存する。それをコンピューターはUnicodeから文字に出力する。
また、Unicodeのマッピングナンバーが0から始まるため、負数は扱わない。
2.''は入力できない。' 'はできる。目には見えないがspaceも一つの文字であるためだ。
3.簡単に言えば、一つの文字のみ扱い、その場合は基本的にシングルクォーテーションを使う。
4.シングルクォーテーションがない場合、(Unicodeの範囲)と16新法(Unicode)でも保存できる。
char c1 = 'A' , char c2 =65, char c3 = \u0041 で入力時、2進法では同じく00000000 01000001になるため、
全部文字リテラルAに出力される。
5.'A','가'のようにcharは文字型リテラルをセーブできる。文字型リテラルはUnicodeに保存されるため、
コンピューターでは0~65535の整数でもある。。
したがって、intとlongでも文字リテラル自体は入力できる(保存できる)。
・short = 2byte = 16bit = -2の15条~(2の15条-1)➡ -32,768~ 32,767
・int = 4 byte = 32bit = -2の31条~(2の31条-1)➡ -2,147,483,648 ~ 2,147,483,648
1. 8進法と16進法でも値を保存することができる。
int number = 10; int octNumber = 012; int hexNumber=0xA; int binNumber = 0b1010;
10進法に変換すれば全部10である。
・long = 8byte = 64bit = -2の63条~(2の63条-1)
金融業、宇宙産業など大きい数字を扱う際に使われる。
値を保存する際には必ずLを付ける。
例)long A = 20L ; long B = 1000000000000000L;
【実数タイプ】
+ m x 10n
(符号)(仮数部)(指数部)
1. 同じメモリ容量でもより広い範囲が表現できる。
2. eあるいはEは10nを意味する。
例)int A = 3000000; double B = 3e6; float C = 3e6f;
・float = 4 byte = 32bit
変数に値を保存する際には必ずFを付ける。
例)float A = 0.245F;
・double = 8 byte = 64bit
【変数のキャスト】
・charはbyteよりメモリが大きいが、負数を含めないので、自動的に変換されない。
そのためにはキャストが必要だ。
・演算は基本的に同じデータ型のOperandのみ行われるため、異なる場合、データーがより大きなタイプに変換される。
例)int intValue = 1;
double doubleValue = 0.1
double result = intValue + doubleValue;
・しかし、intよりメモリが小さいbyte,char,shortは演算子があれば、自動的にintに変換される。
byte byteValue1 = 1; byte byteValue2 = 3;
byte byteValue3 =byteValue1+byteValue2 (x)
int intValue = byteValue1+byteValue2 (o)
charの場合はその過程でunicodeの整数に変換される。
・整数を実数に変換する際には精密度損失に気を付ける。
int = 4byte = 32bit
float = 1bit+ 23bit (significand)+ 8bit (exponent)=32bit
double = 1bit + 52bit(significand) + 11bit(exponent)=64bit
intをfloatに変換する場合、32bitの値が23bitの値であるsignificandに入るため、損失が生じる。
'IT自主学習 (2023.05.23~) > Java(2023.05.23~)' 카테고리의 다른 글
プログラミング自主学習 25日目 変数(with CS) (0) | 2023.06.20 |
---|---|
プログラミング自主学習 24日目 Java8->Java17,VSCODE (0) | 2023.06.19 |
プログラミング自主学習 22日目 1日12コミット (0) | 2023.06.17 |
プログラミング自主学習 21日目 例外(Exception)/例外の処理/例外の優先順位/例外とデバッガ/finally&resource/try with resource (0) | 2023.06.16 |
プログラミング自主学習 20日目 this&super/継承とコンストラクタ/Polymorphism(ポリモーフィズム/多態性/多相性) (0) | 2023.06.15 |