LoginSignup
0
0

JavaSE11Silverまとめ

Last updated at Posted at 2020-07-19

JavaSE11から追加された機能
javaコマンドで.javaファイルを直接実行できる。
javac -d 出力先 ソースファイル名(.java)

クラスパス指定
javac -cp クラスパス(クラスファイルが存在するディレクトリ) ソースファイル名(.java)
java -cp クラスパス(クラスファイルが存在するディレクトリ) 完全修飾クラス名(.class)
例)カレントからtemp/temp2/test.javaを実行したい場合
java -cp ./temp/temp2 test

逆アセンブル
javap -c クラスファイル名(.class)

コンパイル時、依存するクラス(import)が存在する場合、自動的にコンパイルされる。

完全修飾クラス名で記述する場合は、import宣言は不要。

java.langパッケージはインポート不要。

String... argsは可変長引数、配列のようなもの、引数の数を可変にする
メソッドの仮引数には最後に書く、一つだけ

★不明点
String intern()
String Constant Poolについて
https://programmer-life.work/java/interning-java
https://programmer-life.work/java/post-5162

switch文のdefaultはどこに書いてもよい

switch文のcaseは変数不可、finalをつければOK

ビット演算子
& and
| or
^ xor
数値を2進数にして、それぞれの桁同士のビット演算を行い、結果を返す。

Stringはnewによるインスタンス化をしなかった場合、Stringクラスが管理しているプールに文字列 が配置される。
str.intern()を使った場合、strの文字列と等しい文字列がプールに存在した場合、その文字列を返す(参照先もその文字列になる)

★Stringは読み取り専用のクラスである
replaceなどで中身を変えても代入するまでは書き換わらない(参照先が変わらない)

StringBuilderのdeleteなどの数字はインデックス(文字数ではない)

varによる変数宣言
メソッドの引数、コンストラクタの引数、メソッド戻り型、★フィールド(メンバ変数)、catchブロックなどでは使用できない、初期値が必要

アンダースコアがある数値リテラルで8進数の0のうしろに「_」をつけることができる
例)0_777

コンパイルしないで実行する
最初のクラス名にmainメソッドがないと実行時エラーになる
同名のクラスファイルが存在すると実行時エラーになる

配列は生成した時に(new)初期化される
intは0、floatは0.0、Stringはnull、booleanはfalse、charは\u0000など

★要素数0の配列を生成できる

varの配列は生成時に型を指定する

16進数は大文字でもよい

Javaにも予約語としてgotoはあるが、使用できない

★解答するときソースと選択肢は1行ずつ丁寧に読む

★配列の宣言と初期化をおさらい
テキスト№1557

★配列のfinalは配列全体の参照は変更できないが、各要素は変更できる

論理演算子
a ^ b aとbが異なるときtrue、同じときはfalse

ビット論理演算子
| , & , ^ , ~
論理和、論理積、排他的論理和、ビットの反転
doubleからintへキャストで代入すると、小数部は切り捨て

+のように複数のオペランドを使用する演算子は型変換に注意
short hoge1 = 10;
hoge1 = hoge1 + 10;
10はint型のため、そのままでは計算できない
hoge1 = (short)(hoge1 + 10);

Boxingにおいて異なる型の暗黙の型変換は行われない
(Unboxingは変換される)
Integer fff = 10;
double ggg = fff;

if文は1文しかない場合、{}は省略できる

enum
定数をまとめて定義する

for文の式は省略できる
式1の宣言式は一つだが、カンマで複数定義はできる

到達不能コードがあるとコンパイルエラーになる

メンバ変数は自動で初期化される

オーバーロード
データ型、引数の並び、数が異なっていること
データ型が同じでも引数の並びが異なれば定義可能
戻り値の型、変数名、修飾子は関係ない
可変長引数と配列の両方があるとコンパイルエラー

オーバーロード呼び出しの優先順位
完全一致>暗黙の型変換>Boxing>可変長引数

staticイニシャライザ
static { }
mainメソッドが実行される前、またはクラスファイルがロードされる前(コンストラクタの呼び出し前)に実行される

コンストラクタのアクセス修飾子でnewできるクラスを制限できる

メソッド、参照型の引数と戻り値に注意

extendsは一つだけ

this()で自クラスの別コンストラクタを呼び出す、先頭に記述する

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0