はじめて見た予約語まとめ(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と同じく、フィールドのみを修飾することができます。