いつか、技術ブログを

新人SE(研修中)が技術ブログを書きたがっているブログです

はじめて見た予約語まとめ(Java)

こんにちは、毎日楽しく研修中です!
今はJavaの研修をしているのですが、予約語の一覧を見たところ、見たことがないものがいくつかありました。
なので、Java silverのお勉強もかねて、分からない予約語を調べてみました。

予約語の一覧

Java予約語には、以下のようなものがあります。

黄色く塗りつぶしたものが、私が見たことのなかった予約語です。
ということで、1つずつ簡単に説明していきます!
※詳しい説明はしてませんすみません!

assert

アサーションデバッグを支援するための機能です。
assert trueになるべき条件式 : 条件式がfalseになった時のメッセージ;
と書きます。 具体的には、
assert age >= 0 : "年齢がマイナスの値になっています";
というようになります。

仮定していた条件が成立しないと、AssertionErrorというエラーが発生します。

参考↓
3-5. Javaのアサーション
分かりやすいコードを書くための assert の使い方 - Java 入門

const

constは、定数につける修飾子…?と思いきや、意味は全くないそうです。
使用するとコンパイルエラーになるらしいです。
使うかも、と思って予約したけどやっぱり使わなかった、ということですかね??
参考↓
constとは:SJC-P対策Java用語集
キーワード (Java) - Wikipedia

goto

gotoは、constと同じく未使用予約語です。
他言語だと、設定したラベルまで処理が飛んだりするらしいですが、最近は処理が複雑になるため推奨されてないようです。
ということでJavaにgotoの機能はありません。

native

nativeは、そのメソッドがJava以外の言語で実装されている(ネイティブ修飾子である)ことを表す修飾子です。
nativeはメソッドのみを修飾することができます。
参考: native修飾子 | Javaコード入門

strictfp

strictは「厳密な」という意味、fpは「floating point(浮動小数)」のことで、浮動小数点を厳密に処理するための修飾子です。 クラス、インタフェース、メソッドを修飾するもので、変数は修飾できません。

参考↓
strictfpの使い方 - Qiita
strictfpとは:SJC-P対策Java用語集

synchronized

synchronizedは、マルチスレッドで排他制御を行うための修飾子です。
メソッドとブロックのみを修飾します。
今回調べた中で最も重要な予約語だと思います。
ですが私はマルチスレッドプログラミング(サーブレットとか?)のことがわからないので、サンプルコードなどを読んでもピンときませんでした…。
なのでマルチスレッドの勉強をした時に、詳しく調べたいと思います!

参考:synchronized修飾子/ブロック | Javaコード入門

transient

transientは、フィールドをシリアライズ(オブジェクトをバイト配列に変換すること)の対象から除外する修飾子です。
transientが修飾できるのはフィールドだけです。

参考↓
transientとは:SJC-P対策Java用語集
transient修飾子 | Javaコード入門

volatile

volatileは、synchronizedの軽量版といった役割の修飾子だということです。
transientと同じく、フィールドのみを修飾することができます。

参考:Javaの理論と実践: volatile を扱う

おわり

以上です。知らない予約語ということでしたが、ほとんどが修飾子でした。
引き続きJavaの研修がんばります!