Java SE 7 Silver対策勉強をしながらメモ 2015/1/27
2015/03/29
だんだんなんだか日記じみてきましたが、試験対策メモをいつものごとくマークダウンで記載したのでそのままJetpack Markdownにお任せでアップします。
ソースとクラス
- 1ソースファイルにpublic指定クラスは1つのみ
- そのソースファイル名はpublic指定クラスと同じ
Test.java – public指定クラスはないのでOK
[java]
class Foo{}
class Bar{}
[/java]
Foo.java – Fooが同じ名前なのでOK
[java]
public class Foo{}
class Bar
[/java]
修飾子
クラスに使える修飾子
- ただしfinalとabstractを同時に指定するとコンパイルエラー
修飾子 | 意味 |
---|---|
public | publicにするとグローバルスコープとなりすべてのパッケージ内のクラスから利用可能なクラスとして定義できる。 |
final | 拡張による継承を禁止。そのクラスを元にしたサブクラスを定義できなくなる。 |
abstract | 抽象クラス。サブクラスを定義するためのスーパークラスとして利用。 |
stricfp | クラス内に記述した浮動小数点演算を厳密に評価する。プラットフォーム非依存の浮動小数点演算を行う。 |
アノテーション | @Overrideなど開発者自身が型を定義する。 |
static | クラスメンバ |
メソッド宣言の修飾子
修飾子 | 意味 |
---|---|
public | アクセス制御 |
protected | アクセス制御 |
private | アクセス制御 |
abstract | 抽象メソッド |
final | オーバーライド不可 |
static | クラスメソッド |
synchronized | 同期のためのロック獲得。メソッドの処理中にオブジェクトをロックする。 |
native | ネイティブメソッド |
strictfp | 浮動小数点演算を厳密に評価する。プラットフォーム非依存の浮動小数点演算を行う。 |
リテラル
整数リテラル
進数 | 例 | 説明 |
---|---|---|
10進数 | 255 | 0から9までの10個の数字を使用して数を表現する |
2進数 | 0b101 | 0と1の2つの数字を使用して数を表現する。先頭に0bを入れると2進数と判断される。bは大文字、小文字どちらでも可。 |
8進数 | 0377 | 0から7までの8個の数字を使用して数を表現する。先頭に0を入れると8進数と判断される。 |
16進数 | 0xff | 0から9までの数字とAからF(もしくはaからf)までのアルファベットを使用して数を表現する。先頭に0xを入れると16進数と判断される。xは大文字、小文字どちらもで可。 |
識別子
- 変数、クラス名、メソッド名
- 1文字目は英字,$,_
- 2文字目以降は数字も可
- $,_以外の記号はNG
- 予約語であっても大文字にすれば使用可能
- 予約語は下記
– | – | – | – | – | – |
---|---|---|---|---|---|
abstract | assert | boolean | break | byte | case |
catch | char | class | const | continue | default |
do | double | else | enum | extends | final |
finally | float | for | goto | if | implements |
import | instanceof | int | interface | long | native |
new | package | private | protected | public | return |
short | static | strictfp | super | switch | synchronized |
this | throw | throws | tranient | try | void |
volatille | while |
ブロック
- ありえないコードでも制約にそっていればOK
- 下記は一見elseの書き忘れのようだがそうではなくて、ブロックは書けますよっていう問題なので、答えは全部出力される。
[java]
class BlockTest{
public static void main(String args[]){
int num = 5;
if(!(num > 5)){
System.out.print(“abc”);
}
{
System.out.print(“defg”);
}
System.out.print(“…”);
}
}
[/java]
インスタンス変数
インスタンス変数(メンバ変数)とは
- クラスから生成したオブジェクトが保持する変数
- クラス内(メソッドの外側)で定義
- static変数ではない
main()メソッド
- 以下、構文に従った記述のためコンパイルは通るが一番下のメソッドの正しい定義の構文のみが実行される。
- public とstaticは修飾子なのでどちらが先でも構わない
- voidは戻り値なので修飾子より後
- 引数は必ずStringの配列
- 「コンパイルするため」と「実行するため」の設問ひっかけに要注意!!!
[java]
class MainTest{
void main(){
//code
}
static void main(String args){
//code
}
void main(Object[] args){
//code
}
public static void main(String[] args){
//ここが実行されるだけ
}
}
[/java]
パッケージ
- java.langパッケージは暗黙的にインポートされているjavaの基本クラスのパッケージ
- 同じパッケージ宣言をしているクラスはインポートしなくても良い
- 階層化はクラス名の衝突を防ぐためのものでアクセス権などの関連付けには関係ない
- クラス名をパッケージ名を含めた完全クラス名で指定すればインポートしなくても良い
- java.*などというパッケージは存在しない
[java]
package pac1
public class Test1{
public static void main(String[] args){
pac1.pac2.Test2 test2 = new pac1.pac2.Test2();
test2.foo();
}
}
[/java]
[java]
package pac1.pac2
public class Test2{
public void foo(){
System.out.println(“Hello World”);
}
}
[/java]
静的インポート
- static変数、staticメソッドをクラス名を指定せずに使用するためのインポート機能
- 構文
[plain]
import static パッケージ名.クラス名.static変数名;
import static パッケージ名.クラス名.staticメソッド名;
import static パッケージ名.クラス名.*;
[/plain]
[java]
package pac1.pac2;
public class Access1{
public static int num = 55;
}
[/java]
[java]
import static pac1.pac2.Access1.*; //Access1クラスの変数、メソッドを静的インポート
public class Access2{
int num1 = num; //1行目の静的インポートがあるのでAccess1のnumを直接使用可
int num2 = pac1.pac2.Access1.num; //1行目のインポートがなくても完全変数名で指定可
int num3 = Access1.num; //Access1はインポートしていないのでコンパイルエラー
}
[/java]
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
「ChatGPTで開発する技術勉強会」に参加しました
ビヨンドさんの「ChatGPTで開発する技術勉強会」に参加しました。 ビアバッシ …
-
-
JAWS DAYS 2018 「Cost-Driven AWS クラウドアーキテクチャデザインとコスト最適化方法 – Cost-Driven AWS Cloud Architecture Design : The Lean Startup on AWS」を聞きました
以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …
-
-
「IBM Cloud Community Summit 2018 フルマネージドデータベースというのは使えるのか?IBM Cloudでのデータ活用事例いろいろ」でIBm Cloudのデータベースサービスを聞かせていただいた
IBM Cloud Community Summit 2018におじゃましました …
-
-
JAWS SONIC 2020 & MIDNIGHT JAWS 2020 の深夜のパワポカラオケに挑戦しました
2020/9/12(土) 16:50 ~ 2020/9/13(日) 17:20( …
-
-
Java SE 7 Silver対策勉強をしながらメモ 2015/2/3
本日は継承。 眠すぎるのでちょっとだけ。 本当に少しだけでもいいから続ける。それ …
-
-
Oracle Java SE7 Silverを受験してみて
受験の目的 Goldの前提条件だから Gold資格を取得する目的は技術レベルを理 …
-
-
「機械学習名古屋・JAWS-UG名古屋共催 Amazon SageMaker オンラインハンズオン〜ハイパーパラメータ最適化とMNIST学習〜」に参加しました
17:40に自宅から徒歩30分の会社の配信スタジオ的なところを出て、歩きながらC …
-
-
AWS Summit 2016 Tokyoに参加してきました (Day3)
飛天3日目です。 JAWS-UGブースのすぐ前にあったこのお水がめちゃめちゃおい …
-
-
サバワさんとAlexa(Alexa Day 2019でのブログ)
ランチタイムセッション2本目はサーバーワークスさん。 以下は、気になったことのメ …
-
-
AWS Cloud Roadshow 2016 Osaka Night Event ミッドナイトJAWS
AWS Cloud Roadshow Osaka 2016のナイトイベントでミッ …