TECH

Javaの基礎知識まとめ【勉強用】その1

更新日:

 

自分の勉強用にJavaの基礎知識をまとめています。

Java Silver SE8 の範囲内のため、そこまで広くありません。参考までにどうぞ。

 

Javaの基本

 

・クラス宣言はフィールドメソッドの2つで構成されている。

インポート宣言パッケージ宣言はソースファイルに対して宣言するもの。(クラスに対して宣言するものではない)

 

パッケージの目的は3つ。

  1. 名前空間を提供し、名前の衝突を避ける
  2. アクセス修飾子と組み合わせてアクセス制限機能を提供する
  3. クラスの分類を可能にする

ーー コンパイラやJVMは、クラスを「パッケージ名 . クラス名」の完全修飾クラス名で扱う。

ーー パッケージ宣言は必ず、ソースコードの先頭行

ーー パッケージ宣言をしない場合は、無名パッケージとして扱われる。

 

インポート宣言をすることで、パッケージ名を省略してクラス名だけで記述できるようにする。

java.langパッケージは基本的なクラスがまとめられたパッケージ

・無名パッケージに属するクラスは、同じ無名パッケージに属するクラスからしかアクセスができない。

 

staticなフィールドやメソッドは、「クラス名 . フィールド名」や「クラス名 . メソッド名」の書式で、どのクラスに定義しているかを明示する。

・インポートしたクラスに、インポートされたメソッドやフィールドと同名のものがあった場合、そのインポートは無視される。

 

・処理を始めるためのメソッドのことを、エントリーポイントと呼ぶ。(定義は決められている)

  1. 公開されていること(publicであること)
  2. インスタンスを生成しなくても実行できること(staticであること)
  3. 戻り値は戻せない(voidであること)
  4. メソッド名はmainであること
  5. 引数はString配列型を1つ受け取ること

ーー public static void main(String[] args) { ... 必ず目にするこの記述

 

データ型の操作

 

・Javaには大きく分けて、プリミティブ型参照型の2つのデータ型がある。

 

プリミティブ型

ーー 整数や浮動小数点数といった数値、真偽値、文字

 

データ型
boolean true , false
char 16ビットUnicode文字 ¥u0000 ~ ¥uFFFF
byte 8ビット整数 -128 ~127
short 16ビット整数 -32768 ~ 32767
int 32ビット整数 -2147483648 ~ 2147483647
long 64ビット整数 -9223372036854775808 ~ 9223372036854775807
float 32ビット単精度浮動小数点数
double 64ビット倍精度浮動小数点数

 

参照型 -- オブジェクト型、列挙型、配列型。プリミティブ型との違いは、値そのものを扱うか、インスタンスへの参照(リンク)を扱うかという点

 

・Javaには、整数浮動小数点数真偽文字の4つのリテラルがある。

 

・リテラルをほかのデータ型であることを明示する際、接尾辞をつける。

  • long型 - L , l  例 100L
  • float型 - F , f  例 3.0F

・整数リテラルを○進法に記述するには、接頭辞をつける。

  • 8進法 - 頭に「0」をつける  例 077
  • 16進法 - 頭に「0x」をつける  例 0x3F
  • 2進法 - 頭に「0b」をつける  例 0b0111

 

アンダースコア「 _ 」を使った数字表記 -- 桁数の多い数値リテラル見やすさを向上させる目的で使用

ルールは以下

ーー リテラルの先頭と末尾には記述できない

ーー 記号の前後には記述できない

ーー 利用できる記号は、小数点を表すドット「 . 」、long型やfloat型を表す「L」や「F」、2進法や16進法を表す「0b」や「0x」

 

文字リテラルはシングルクォーテーション「’ ’」で括る、文字列リテラルはダブルクォーテーション「” ”」で括る。

ーー char('a') などの場合に利用。ちなみにchar型は0~65535までの数値を代入できる。

null は「何も参照しない」という意味

 

識別子(Identifier)のルール

ーー 識別子とは?  変数やメソッド、クラスなどの名前のこと

  1. 予約語は使えない
  2. 使える記号はアンダースコアと通貨記号のみ
  3. 数字から始めてはいけない

 

クラスインスタンスの関係は、コピー元とコピーの関係。クラスを定義し、クラスからインスタンスを生成する。

 

【メソッドの呼び出し】

・メソッドを呼び出すには「メソッド名(引数)」  例 methodB();

・同じインスタンスに定義されているメソッドは「変数 . メソッド名(引数)」 例 a.methodB();

・staticなメソッドは「クラス名 . メソッド名(引数)」  例 Test.methodB();

 

・インスタンスの参照がなくなった時点で、ガーベッジコレクションの対象となる。nullを代入するときなどに参照が外れる。

 

演算子と判定構造の使用

 

・代入演算子は値を変数に代入するための演算子

ーー 「=」は代入

ーー 「+=」は足した結果を代入

ーー 「-=」は引いた結果を代入

ーー 「*=」は掛けた結果を代入

ーー 「/=」は割った結果を代入

 

インクリメント演算子「++」デクリメント演算子「--」は、1を足したり引いたりする演算子

ーー 前置きは結果が代入、後置きは元の値のコピーが戻されてから変数の値に加算か減算

 

・関係演算子

演算子 使用例 意味
== a == b aとbが等しい
!= a != b aとbが等しくない
> a > b bがaよりも小さい
>= a >= b bがa以下
< a < b bがaよりも大きい
<= a <= b bがa以上
instanceof a instanceof b aがbと同じクラスかbのサブクラスのインスタンスである

 

・論理演算子

演算子 使用例 意味
& a & b aとbの両方がtrueであればtrue
&& a && b aとbの両方がtrueであればtrue
| a | b aもしくはbのいずれかがtrueであればtrue
|| a || b aもしくはbのいずれかがtrueであればtrue
! !a aがtrueであればfalse、falseであればtrue

※Javaの演算子には優先順位がある

 

equalsメソッドは、参照の先にあるインスタンスが同じ値を持っているかを確認する。

ーー public boolean equals(Object obj) {
return(this == obj);
}

 

switch文は、値によって処理を分岐する

ーー case式を実行、値の型に制限あり。(int型以下の整数型とそのラッパークラス文字と文字列列挙型

ーー breakを使ってswitch文を抜けるようにする

 

if-else文は、条件に合致したとき、合致しなかったときの処理の両方を記述するための文

ーー if (条件式) {
//条件に合致したときの文
} else {
//条件に合致しなかったときの文
}

 

三項演算子は、条件に合致するかどうかで、戻す値を変更する演算子

ーー 真偽値式  ?  trueの場合に評価する式   :  falseの場合に評価する式

ーー 例 val = A ? B : C

 

 

・・・続く

-TECH
-

Copyright© 紳士は変態がお好き , 2020 All Rights Reserved.