ドローン向けのショッピングサイトまとめ(日本/海外サイト)
ドローンを買う時にショッピングサイトをどこにするかいろいろ悩みました。
海外サイトは安いですが、決済方法が心配。。。一方、日本サイトは決算関係では安心できるもののやっぱり割高。。。どのサイトも一長一短あります。
さらにドローンはたくさん部品があるので1つのショッピングサイトで希望するすべての部品が揃うことはほとんどないです。
結局、私がMultiWiiでドローンを自作したときは希望する商品がある複数のショッピングサイト内でできるだけ一括購入することで配送料を抑えて購入することにしました。
その時にいろいろなショッピングサイトで検討をしたので、価格や決済方法などの特徴を備忘録としてまとめたいと思います。
目次
ドローン関係の部品を買う時に利用しているサイト
amazon Japan
言わずと知れたamazonですが、ドローン関係の製品ももちろん取り扱っています。
取り扱い商品
フライトコントローラやフレームキット、モータなど探してみるとかなりの確率でヒットします。
スペックが日本語で書いてあることもあるので、英語が苦手な人にとっても安心です。
ニッチな商品は品切れになっていることが多いです。特にフライトコントローラについては品切れが多い印象があります。
価格
やはり価格については海外のサイトに比べては少し割高になりますが、日本のサイトの中では一番安い印象があります。
ただし、商品があればですが。。。
決済方法
クレジットカード、コンビニ・銀行払い、Amazonポイントを選択できます。
決済についてはカード払いだと直接海外のサイトとやると不安なのですが、amazonが仲介してると思うと少し安心できます。
URL
https://www.amazon.co.jp/www.amazon.co.jp
Helimonster
ドローンやマルチコプターパーツ類を取り扱っている日本のサイトです。
取り扱い商品
フライトコントローラやプロポなどの主要備品からケーブルなどのニッチな商品まで取り扱っています。
日本サイトでMultiWii SEを売っていた数少ないサイトの一つです。
※2017年3月現在ではMultiWiiの取り扱いがなくなっていました。。。残念です。
価格
やはり価格については海外のサイトに比べては少し割高になりますが、日本のサイトとしてはかなり安いです。
決済方法
下記の中から選択できます。
・代金引換
・銀行振込
・クレジットカード
補足
配送方法も以下の3種類選べてどれも安いです。
・宅配便、郵便(業者指定不可)
送料 800円 + 代金引換手数料 310円
※沖縄諸島につきましては追加料金が必要
・レターパック510 or 同等の配送手段
送料 510円のみ
角2封筒(248x340mm)を超える場合、利用不可
・ネコポス
送料 280円
角型A4サイズまで 厚みが2.5㎝を超える場合、利用不可
URL
HobbyNet
ドローンやマルチコプターパーツ類を取り扱っている日本向けサイトです。
取り扱い商品
ドローンの完成品から部品まで幅広く取り扱っています。
FRSKYの製品を取り扱っている数少ない日本のサイトです。
価格
やはり価格については海外のサイトに比べては少し割高になりますが、日本のサイトとしてはかなり安いです。
決済方法
下記の中から選択できます。
・銀行振替
・郵便口座振替
・商品代引
・クレジットカード
・PayPal
URL
http://www.hobbynet-jp.com/www.hobbynet-jp.com
Hobbyking
ラジコン系全般を取り扱っている海外のサイトです。
取り扱い商品
ドローン以外にもRCカーやRCボートなどさまざまな商品を取り扱っています。
ドローン商品についてはフライトコントローラやLiPoバッテリー、プロペラなども取り扱っています。
価格
やはり海外サイトなのでかなり安いです。
ただ、配送料は数千円かかります。
決済方法
下記の中から選択できます。
・PayPal
・クレジットカード
・UnionPay
商品購入時にStore Credit(ポイント)がつくので、それも利用できます。
補足
商品や時期によっても異なると思いますが、ご参考程度に配送料をまとめておきます。
・Trackable Air Mail
1g-100gで$3.50 (Delivery 14~39日)
・International(Registered) Air Mail
1g-100gで$3.99 (Delivery 14~39日)
・DHL Express Express worldwide
$12.58 (Delivery 3~10日)
・Air Parcel(JAPAN)
1g-999gで$19.75 (Delivery 14~28日)
・EMS Express(JAPAN)
1g-999gで$23.99 (Delivery 5~14日)
・SingPost AirParcel
1g-2000gで$35.76 (Delivery 14~28日)
URL
MyRcMart
ラジコン系全般を取り扱っている海外のサイトです。
取り扱い商品
ドローン以外にもRCカーやRCボートなどさまざまな商品を取り扱っています。
ドローン商品についてはフレーム、ブラシレスモータ、ESCなども取り扱っています。
また、ネジやコネクタなどの部品がたくさん入って安く売っているので、ドローン製品と一緒に買うとよいでしょう。
価格
やはり海外サイトなのでかなり安いです。
ただ、配送料は数千円かかります。
決済方法
下記の中から選択できます。
・PayPal
・UnionPay
補足
商品や時期によっても異なると思いますが、ご参考程度に配送料をまとめておきます。
・Air Parcel
$3.42 (Delivery 10~30日)
・EMS Express
$20.70 (Delivery 4~14日)
URL
まとめ
自分の購入したい部品が日本のサイトでは手に入らないことがあります。
そのときはどうしても海外サイトを利用しないといけないのですが、やはり配送費が高いですよね。。。
できるだけ買いたいものをまとめて購入するために、事前調査が非常に重要だと思います。
本記事では海外サイトについては決済方法や配送の期間などもまとめたので、事前調査時に参考にして頂ければと思います。
以上!
予約投稿失敗の解決方法
WordPressの予約投稿をすると投稿失敗になることがありました。
いろいろ調べた結果、WP Missed Scheduleというプラグインを使うことで解決できました。
本記事ではその解決方法をまとめます。
目次
ゴール
冒頭でも述べましたが、WP Missed Scheduleを用いることで、WordPressの予約投稿を実現することを目指します。
必要なもの
必要なもの | 価格(円) | ||
---|---|---|---|
1 | PC | ピンキリ | |
備考 | インターネット接続可能なこと | ||
2 | WordPressのアカウント | 無料 | |
備考 | 持っていない場合は、こちらを参照→WordPressのインストール方法 | ||
3 | WP Missed Schedule | 無料 | |
備考 | 下でも記載しますが、こちらからダウンロードできます。wp-missed-scheduleのダウンロードリンク |
予約投稿失敗の解決方法
WordPressで予約投稿の失敗する事象は他の方でも発生しているようでいくつか記事を見つけました。
中でも、下記のよっきさんの記事は非常にわかりやすかったので参考にさせて頂きました。
ほとんどよっきさんの記事の受け売りになってしまうのですが、下記に簡単な予約投稿失敗の解決方法をまとめました。
解決方法あれこれ
■キャッシュ系プラグインの停止
キャッシュ系のプラグインを止めてしまう方法です。
WordPressはただでさえ遅いので、キャッシュ系のプラグインを消すのは避けたいので不採用としました。
■代替Cronを設定
WordPressのインストールディレクトリ直下にあるwp-config.phpに、下記のコードを追加する方法です。
define('ALTERNATE_WP_CRON', true);
試してみましたが、サーバエラーになったのであまりつっこまず元に戻しこの解決方法は見送りました。
■アクセス数が極端に少ない
これは悲しいですが事実です。。。
アクセス数が増える解決策をむしろ教えてほしいです。
■WordPressのアップデート
他の方法を試してみてだめだったら最後にやってみようかと考えていました。
結局、他の方法で解決できたので、試していません。
WP Missed Scheduleプラグインの導入
私の環境で解決したのはこの方法でした。
5分おきに失敗した予約投稿をチェックするプラグインのようです。
公式サイトからはすでに削除されているみたいですが、GitHubでzipファイルをダウンロードできるので直接zipファイルからインストールしました。
以下ではそのインストール方法をまとめます。
WP Missed Scheduleのインストール方法
下記のリンクからGitHubに飛んで、WP Missed Scheduleをダウンロードします。
ダウンロードしたzipファイルをWordPressのプラグインメニューで追加をします。
プラグインを有効化してしまえば特に設定は不要です。
予約投稿に失敗している投稿があるか5分間隔で監視し、あった場合再投稿を実施するみたいです。
まとめ
アクセス率の高い時間帯に投稿するためには、予約投稿はとても便利です。
何度か試してみたのですが、必ず予約投稿が失敗したので解決方法を探していました。
調べてみるといろいろな解決案があるなかで本記事で紹介した方法はプラグインを1つ入れるだけで解決できたのでとてもおすすめです。
同じような事象が起こっている方がいらしたら是非この方法を試してみてください。
以上!
WordPressをTwitterに自動投稿をさせよう
WordPressで投稿するたびにTwitterに手動でツイートするのは手間でした。
そして何より、予約投稿したと同時にTwitterに投稿させたかったので、いろいろ調べて実現させました。
本記事はその方法をまとめました。
目次
更新履歴
日付 | 更新履歴 |
---|---|
2017/10/22 | JetPackプラグインのインストールが必要なため、「必要なもの」に追加しました。 |
ゴール
本記事はWordPressで連携アプリの認証を行うことでTwitter自動投稿をさせることを目指します。
必要なもの
必要なもの | 価格(円) | ||
---|---|---|---|
1 | PC | ピンキリ | |
備考 | インターネット接続可能なこと | ||
2 | WordPressのアカウント | 無料 | |
備考 | 持っていない場合は、こちらを参照→WordPressのインストール方法 | ||
3 | JetPackプラグインのインストール | 無料 | |
備考 | 持っていない場合は、インストールをお願いします。 |
WordPressでのTwitter自動投稿方法
WordPressで投稿と同時にTwitterで投稿する方法をまとめます。
※事前にJetPackのインストールが必要です。
設定メニューで連携アプリの認証を実行
WordPressの左側にあるメニューから設定→共有を選択します。
すると下の画像の様に共有設定の画面が表示されるので、Twitterの欄にある"連携"ボタンをクリックします。
"WordPress.comにアカウントの利用を許可しますか?"とページに表示されたら、"連携アプリを認証"ボタンをクリックします。
すると現在ブラウザでログインしているTwitterアカウントが自動で選択されて登録されます。
これでTwitterとの連携は完了です。
Twitter自動投稿の設定方法
上の設定が完了すれば、特に操作しなくても投稿すれば自動でTwitterに投稿されるようになっています。
しかし、デフォルトだとTwitterのメッセージがタイトルしか表示されないので、その修正する方法を下にまとめます。
投稿ページで、右上にある公開メニューを見るとパブリサイズ共有に先ほど登録したTwitterが登録されているはずです。
その下にある"詳細を編集"をクリックすると、Twitterのメッセージが編集可能となります。
自動投稿の確認
最後に本当に自動投稿されるか確認をします。
下の画像の様にテスト用のタイトルと記事、またTwitterのメッセージを設定します。
この状態で公開します。
Twitterを確認すると、きちんと自動投稿されていました。
予約投稿での投稿失敗について
この記事の趣旨であるTwitte自動投稿はできました。
しかし、もともとは予約投稿と合わせてTwitterを指定時間帯に自動投稿させたかったのですが。。。
WordPressの予約投稿がなぜか失敗します。
同じような問題が発生しているようで、調べてみると下のような記事がありました。
この記事の中のWP Missed Scheduleを使った方法で解決できました。
このプラグインのインストール方法と合わせて「予約投稿での投稿失敗の解決方法」を別記事として以下の記事にまとめたので、よろしければご覧ください。
まとめ
Twitter自動投稿で調べてみるとプラグインを使ったりいろいろな方法があるようです。
本記事で紹介した「WordPressの連携アプリの認証」は他の方法と比較すると、かなり簡単な操作のみで実現できる方法だと思います。
ぜひお試しください。
以上!
食べるほど食欲が湧く 三田製麺の山椒つけ麺を食べてきました!
こんにちは、しぐれがきです!
先日、三田製麺所の季節限定の山椒つけ麺を食べてきました!
ラーメンにはコショウだろ!って思いながらも、中華料理にサンショウは合うからうまいかも!と悩んだ挙句、挑戦することにしました。
大正解
です!
やっぱり、中華にはサンショウが合います。普通の辛いつけ麺とは違い、食べれば食べるほど味覚が刺激されて食欲が増していきました!
当初はあまりお腹が減ってなかったので、麺の量を抑え、控えめに200グラムを頼んだのですが…200グラムの麺なんてペロリと食べちゃいました笑
◾︎店舗名
三田製麺所
三田本店
◾︎営業時間
月〜金:11:00〜26:00
土日祝日:11:00〜22:00
◾︎今回食べたもの
山椒つけ麺
◾︎価格
930円
◾︎麺の量
200グラム,300グラム,400グラム
(どのグラムも無料で選択できる)
◾︎URL
http://mita-seimen.com/index.php
以上!
はてなブログをTwitterに自動投稿をさせよう
はてなブログでは投稿後に手動でTwitterに投稿することはできたのですが、予約投稿をさせたときに投稿と同時には投稿できなかったので、Twitter自動投稿機能を有効にしました。
本記事ではその方法をまとめます。
目次
ゴール
はてなブログで予約投稿をさせたときに投稿と同時にTwitterで投稿されるようにすることを目指します。
必要なもの
必要なもの | 価格(円) | ||
---|---|---|---|
1 | PC | ピンキリ | |
備考 | インターネット接続可能なこと | ||
2 | はてなブログのアカウント | 無料 | |
備考 | |||
3 | Twitterのアカウント | 無料 | |
備考 |
はてなブログでのTwitter自動投稿方法
はてなブログで予約投稿をさせたときに投稿と同時にTwitterで投稿する方法をまとめます。
外部連携サービスの有効化
はてなブログのホームにアクセスし、右上にある設定をクリックします。
ユーザ設定ページが表示されるので、上部にある外部アプリケーション認証をクリックします。
外部アプリケーション認証の画面が表示されたら"はてなのサービスから、外部のアプリケーションを利用する"をクリックします。
はてなのサービスから、外部のアプリケーションを利用するのページが表示されたら、"アカウントを認証する"ボタンをクリックします。
Twitterアカウントを認証するページが表示されたら、"Twitter認証画面にすすむ"ボタンをクリックします。
Hatenaにアカウントの利用を許可しますか?ページが表示されたら、"連携アプリを認証"ボタンをクリックします。
すると、現状ブラウザでログインされているTwitterアカウントが自動で選択されてアカウント登録されます。
これでTwitterでの自動投稿するための外部連携サービスを有効化できました。
次の章以降で正しく自動投稿されるかチェックしていきます。
Twitter自動投稿の設定方法
自動投稿するためには投稿ページで右側にあるメニューで設定します。
設定方法を以下にまとめます。
①.右側のメニューの歯車マーク(編集ボタン)をクリックします。
②.投稿日時を指定して"指定日時で予約投稿する"ボタンをチェックします。
③.公開と同時にシェアするメニュー欄で"Twitterに投稿"ボタンをチェックします。
④.Twitte投稿時のメッセージ内容を編集します。
(デフォルトで「はてなブログを投稿しました。 #はてなブログ」というメッセージが入力されています。)
⑤.記事内容を記載します。
⑥.すべて記載できたら、"予約投稿する"ボタンをクリックします。
自動投稿の確認
上の自動投稿の設定方法の画像の記事をテスト用で投稿しました。
すると、指定した時刻にTwitterに自動投稿されていることを確認できました。
また、自動でTwitterカード化もされていました。
まとめ
SNSからのアクセスは多いので、効果的な時間にSNSへ投稿させることでより大きなアクセスが見込めます。
本記事で紹介した予約投稿機能で指定時刻にTwitterに投稿できるようになるので、アクセスが見込める効果的な時間帯を狙った投稿ができるようになります。
ぜひお試しください。
以上!
【実践】働きながらでもJava Silverを1か月で取得する!
目次
本記事について
本記事は日本オラクルのJavaプログラマ向けの資格であるJava プログラマ SE 8 のSilverを1ヶ月で取得することを目指し、そのための試験申込み方法、教材や勉強方法、受験前に気を付けるポイントをまとめたものになります。
働きながらでも1日1時間くらいを想定した勉強法もまとめています。
本記事がJavaプログラマの資格取得を検討している方の参考になればうれしいです。
ちなみに私自身が本記事で記載した内容を実践することで、Java プログラマ SE 8 Silverに合格することができました。
下の画像はそのときの試験結果レポートになります。
資格情報
Java Silverとは
Javaプログラマ試験は日本オラクルが実施しているJavaプログラマ向けの資格です。Javaによるオブジェクト指向やJavaアプリケーション開発スキルについて証明してくれます。
Javaのバージョンアップごとに資格もアップデートしており、2017年3月19日時点ではJava SE 8が最新バージョンとなっています。
(本バージョンの認定試験は2015年5月下旬から開始されました。)
各バージョンごとに資格のランクが下記の様に3種類用意されています。
レベル | 概要 | |
---|---|---|
1 | Bronze SE 7/8 | プログラミング未経験の方が理解すべき基礎知識が問われる入門資格 ※Brozeは「SE 8」のみの資格は無いようで、「SE 7/8」が最新バージョンの資格になるようです。 |
2 | Silver SE 8 | Javaプログラミング中級者もしくはその他の言語経験者でJavaの知識を得たいという方に向けた中級資格 |
3 | Gold SE 8 | プログラミングのみではなく設計に関する知識も問われる上級資格 ※前提資格としてJava Silver SE 8/Java Silver SE 7のどちらかを持っていないと受験できません。 |
受験方法
Java プログラマ Silver SE 8の資格試験はピアソンVUEが運営する公式なテストセンター会場にて受験します。ですので、受験申込みもピアソンVUEからすることとなります。
下のブログで申込み方法についてまとめましたので参考にしてください。
試験情報一覧
試験情報 | 詳細 | |
---|---|---|
1 | 試験番号 | 1ZO-808 |
2 | 出題数 | 77問 |
3 | 試験時間 | 150分 |
4 | 合格基準 | 65% |
5 | 受験料 | 28,728円(税込) |
教材紹介
教材は以下の2つです。
1.オラクル認定資格教科書 Javaプログラマ Silver SE 8
2.オラクル認定資格教科書 Javaプログラマ Silver SE 8 スピードマスター問題集
オラクル認定資格教科書 Javaプログラマ Silver SE 8
本情報
■タイトル
オラクル認定資格教科書 Javaプログラマ Silver SE 8
■価格(2017/2/14現在)
4,104円
■著者
有限会社ナレッジデザイン 山本道子
■ページ数
全453ページ
■章構成
第1章 Java プログラミングの基礎
第2章 配列
第3章 演算子と分岐文
第4章 繰り返し文と繰り返し制御文
第5章 クラス定義とオブジェクトの生成・使用
第6章 継承とポリモフィズム
第7章 Java APIの利用
第8章 例外処理
模擬試験
■詳細
内容
Java Programmer, Silver SE 8資格に向けた参考書です。
各章に詳細な解説ページとソースがたくさん載っている印象があります。
学習した内容に対して、実際に動かすソースが提供されていてコンパイル成功するコードと失敗するコード、実行時エラーとなるコードの比較ができました。
実際の試験内容はほとんどがソースを見て結果を判断する内容になるので、コードをきちんと読めないといけないのですが、このテキストのおかげで知識のみではなくコードにも慣れることができたと思います。
各章の最後に20問ほどの練習問題もついているため、解説で知識を学ぶ->演習で知識の定着が図れました。
私はこの参考書をJava Programmer, Silver SE 8の知識定着と演習問題集の逆引き辞書としても使用しました。
オラクル認定資格教科書 Javaプログラマ Silver SE 8 スピードマスター問題集
本情報
■タイトル
オラクル認定資格教科書 Javaプログラマ Silver SE 8 スピードマスター問題集
■価格(2017/2/14現在)
3,240円
■著者
日本サード・パーティ株式会社
■ページ数
全427ページ
■章構成
1章 Javaの基本
2章 Javaのデータ型の操作
3章 演算子と決定構造の使用
4章 配列の作成と使用
5章 ループ構造の使用
6章 メソッドとカプセル化を操作する
7章 継承の操作
8章 例外の処理
9章 Java APIの主要なクラスの操作
模擬試験
■詳細
内容
Java Programmer, Silver SE 8資格に向けた問題演習書です。
すべてで308問収録されています。Java Programmer, Silver SE 8の試験問題数は77問ですので、これ一冊で4回分解いたことになります。
各章ごとに数十問の問題数があります。1問解く->その解説->次の問題を解く・・・の形式です。
この問題演習書は何と言っても、メモリ上のイメージが非常にわかりやすいです。
継承について考えるときにメモリイメージをつけられるかがポイントになってくるのですが、この本は各問題の解説に丁寧なメモリイメージ図を乗せているので、メモリイメージをしっかり定着することができ、最終的には継承の問題でほぼ間違えないくらいまでイメージを付けられるようになりました。
この問題集で知識の確認と定着を図りました。間違ったら解説を読みつつ、上の「オラクル認定資格教科書 Javaプログラマ Silver SE 8」で確認しました。
勉強方法
勉強方法:4ステップ
下のステップを確実にこなして合格できました。
1か月間1日1時間くらい勉強していたので、全体で30時間くらいの勉強量だと思います。
ステップ1:知識詰め込み
オラクル認定資格教科書 Javaプログラマ Silver SE 8を一気読みします。
このとき、演習問題を解かずにとにかくスピード勝負で知識を詰め込みます。
不明なところ、重要そうなところは付箋でメモを残しておきます。
ステップ2:知識定着させる
再度、オラクル認定資格教科書 Javaプログラマ Silver SE 8を読み直します。
このときは知識の定着を心がけます。
演習問題をしっかり解き、間違えたところは解説ページのみならずそこを説明している個所に戻ります。
また、本だけでは解決できない問題はググるなりして、解決しておきます。
解決した内容は付箋なりでメモをきちんと残しておきましょう。
(私はこのときは本に直接書いてしまいます。)
ステップ3:問題集を解く
オラクル認定資格教科書 Javaプログラマ Silver SE 8 スピードマスター問題集を使って問題演習をします。
ここで間違えたときは問題集の解説にとどまらず、オラクル認定資格教科書 Javaプログラマ Silver SE 8にも立ち戻って確認をします。
ここでも本だけでは解決できない問題はググるなりして、解決しておきます。
解決した内容は付箋なりでメモをきちんと残しておきましょう。
ステップ4:前日に参考書を一気に読み直す
今回の資格はプログラムを見て解答するタイプですので、あまり効果はないかもしれませんが、知識問題の時はこれは効果絶大です。
いわゆる詰め込み学習で勢いで解いていくスタイルです。
前日にオラクル認定資格教科書 Javaプログラマ Silver SE 8を演習問題を除き一気に読み直すことにします。
Java Silver資格取得に向けて気を付けるポイント
Javaプログラマ SE8 Silverの資格試験に向けて勉強する中で、気を付けるべきポイントがあったのでまとめました。
下のブログでJava Silver資格取得に向けて気を付けるポイントについてまとめましたので参考にしてください。
試験時の経過報告ブログまとめ
私が受験したときの経過報告のブログを下にまとめておきます。
もしよかったらご覧になってください。
まとめ
Javaはサーバ上のWebアプリ開発からアンドロイドなどの端末内のアプリ開発、ゲームの開発などさまざまな分野で使われている言語ですが、オブジェクト指向や継承などが原因でとっつきにくい印象がありました。
しかし学んでみるとオブジェクト指向の考え方は分かりやすいですし、1つ1つの機能はイメージがつきにくかったのですが、オブジェクト指向を実現するための機能として継承やカプセル化などがあるんだと考えて学ぶとすんなり理解できました。
Java プログラマ SE 8 SilverはJavaによるオブジェクト指向やJavaアプリケーション開発スキルについて証明してくれます。
Javaの知識を習得したい、オブジェクト指向のスキルを得たい方などにおすすめの資格です。
みなさまの試験受験の検討に本記事が参考になれば幸いです。
以上!
Java Silver資格取得に向けて気を付けるポイント
Javaプログラマ SE8 Silverの資格試験に向けて勉強する中で、気を付けるべきポイントがあったのでまとめました。
試験日前日にさっと目を通すことで知識を整理できました。
目次
- 目次
- Javaプログラムのコンパイルと実行
- 1次元配列
- 演算子と分岐文
- 繰り返し文と繰り返し制御文
- クラス定義とオブジェクトの生成・使用
- 継承とポリモフィズム
- Java APIの利用
- 例外処理
- まとめ
Javaプログラムのコンパイルと実行
注意ポイントは下記です。
注意ポイント | |
---|---|
1 | main関数の記述(補足) |
2 | ソースファイルにpublicクラスは1つしか定義できない |
3 | 識別子の1文字目は数字はNG |
4 | アンダースコアはリテラルの先頭,末尾,記号の前には使えない |
5 | try~catchも1スコープ 変数定義には気を付けること |
6 | 同じ変数名の変数が複数定義された場合、一番内側のブロックで定義された変数が優先的に使用される。 つまり、int set(int i){i=i;}では引数のiに同iを代入しているだけとなる。 |
7 | staticとpublicはどちらも修飾子のため入れ替えても問題ない |
8 | 静的インポート:static変数やstaticメソッドをクラス名を指定せずに使用するためのimport機能 import static パッケージ名.~には注意 |
9 | 0除算について 整数型に対しての実行時エラーになるが double型の0除算は以下のような振る舞いをする dnum > 0 →dnum/0→Infinity dnum = 0 →dnum/0→NaN dnum < 0 →dnum/0→-Infinity |
メイン関数の記述
main関数の記述は下記
public static void main(String args){...}
<コンパイルエラー>
・stringが小文字(Stringは大文字であるべき)
・戻り値がない/void以外(戻り値はvoidであるべき)
・引数なし(Stringがあるべき)
<実行時エラー>
・Stringのがない
・staticがない
・Mainのようにmain関数が大文字始まり
<注意>
・引数名はargsでなくてもOK
・引数はString argsでも可
・public static void main(String args){...}とは別のmain関数をオーバーロードすることは可能(実行はされないが)
1次元配列
注意ポイントは下記です。
注意ポイント | |
---|---|
1 | 配列の添え字は0から n=new int[3]に対してn[0]-n[2]はアクセスできるが、n[3]アクセスは実行時エラーとなる |
2 | 配列の初期値(補足) |
3 | ArrayList<データ型>のデータ型は参照型のみ有効。 基本データ型(intやdoubleなど)は使用できない。ラッパークラス(IntegerやDoubleなど)を使うこと |
4 | < >のデータ型が左右で会わない->ArrayListのコンパイルエラー |
5 | < >で指定された以外のデータ型を格納->ArrayListのコンパイルエラー |
6 | ArrayListでジェネリックスを使用しないこともできるが、.getするときはキャストしないとコンパイルエラーになる |
7 | 比較式は左結合で実行 *1では、((i < 0) && (j < 0)が判定後、その判定結果と|| (k < 0)が判定される。 |
8 | 可変長変数は配列定義と同じ public static void main(String... v){・・・}は public static void main(String[] v){・・・}と同表現になる |
配列の初期値
配列はインスタンス化(newしたとき)に以下の値に初期化される。
データ型 | 値 |
---|---|
byte,short,int,long | 0 |
float,double | 0.0 |
char | \u0000 |
boolean | false |
参照型 | null |
演算子と分岐文
注意ポイントは下記です。
注意ポイント | |
---|---|
1 | インクリメントとデクリメントの前置き(++a,--a):先に計算してから代入 インクリメントとデクリメントの後置き(a++,a--):代入後に計算 |
2 | newを使用しないStringはすでに同じ文字列があったら参照先を同じにする。 newを使用すると、同じ文字列でも別々に定義も可能 |
3 | StringとStringBuilderの仕様の違い<文字追加> String:新しい文字列として追加された文字列の参照先を定義する StringBuilder:既存の参照先の文字列に追加する |
4 | nullは小文字 大文字は予約文字ではない |
5 | Switch文の式の評価結果のデータ型はbyte,char,short,int,enum,Stringのみ有効 Switch文の式の内では変数定義できない->コンパイルエラーする |
6 | 演算子の優先順位(補足) |
演算子の優先順位
種類 | 演算子 | 結合規則 | |
---|---|---|---|
1 | 単項演算子 | ++ -- + - ~ ! | 右 |
2 | 算術演算子 | * / % | 左 |
+ - | 左 | ||
3 | シフト演算子 | << >> >>> | 左 |
4 | 比較演算子 | < > <= >= instanceof | 左 |
== != | 左 | ||
5 | ビット演算子 | & | 左 |
^ | 左 | ||
| | 左 | ||
6 | 論理演算子 | && | 左 |
|| | 左 | ||
7 | 三項演算子 | ?: | 右 |
8 | 代入演算子 | = *= /= %= += -= <<= >>= >>>= &= ^= |= | 右 |
繰り返し文と繰り返し制御文
注意ポイントは下記です。
注意ポイント | |
---|---|
1 | while(false)はコンパイルエラー |
2 | for(式1;式2;式3)で式1は文である必要がある。 例えば、for(i1;式2;式3)はコンパイルエラー for(i1++;式2;式3),for(i1=0;式2;式3)などはOK |
3 | for(式1;式2;式3)の式は省略できるが、;は省略できない 無限ループもfor(;;)とする。 |
4 | 繰り返し文以外のところでcontinueはコンパイルエラー |
5 | 配列の長さを求めるlengthは()はいらない array.lengthで配列の長さになる |
6 | 拡張for文for(変数宣言 : 配列名){・・・}で配列には[]は不要 |
クラス定義とオブジェクトの生成・使用
注意ポイントは下記です。
注意ポイント | |
---|---|
1 | オーバーロードは戻り値による区別はない |
2 | staticメンバはクラス名で呼び出すことができる(クラス名.static変数名,クラス名.メソッド名) インスタンス化済みのオブジェクト名でも呼び出しも可能 |
3 | アクセス修飾子について(補足) |
4 | 引数の型に注意 ・データ型:値をコピーしているだけなので、返値などで値もらわないと引数の値は変わらない ・参照型:参照先を渡すので、実行元に戻っても引数の値は変わっている。 |
5 | パッケージ化したクラスはクラス名単体で扱えなくなる パッケージ名に対応するディレクトリ構成にする必要がある->構成が違うと実行時エラーとなる |
6 | importでのワイルドカードはパッケージ名には使用できない->コンパイルエラーとなる |
7 | double型はchar型を暗黙的にキャストして受け取れる |
8 | this()の引数内でthisキーワードを使用できない→コンパイルエラーとなる |
アクセス修飾子
<コンパイルエラーとなること>
・protected,privateはクラス宣言時に使用不可
・ローカル変数には修飾子は使用できない
継承とポリモフィズム
注意ポイントは下記です。
注意ポイント | |
---|---|
1 | extendsできるのは1つだけ->コンパイルエラーとなる |
2 | finalクラスをextends->コンパイルエラー finalメソッドをオーバーライド->コンパイルエラー |
3 | finalの位置はアクセス修飾子の次に記載する [アクセス修飾子] final 戻り値の型 メソッド名(引数リスト) |
4 | this()はコンストラクタ定義の先頭につける->つけないとコンパイルエラー |
5 | super()の落とし穴(補足) |
6 | this(),super()の呼び出しはコンストラクタ定義の先頭にする |
7 | abstractは戻り値の前に入れる->異なる位置に入れるとコンパイルエラー [修飾子] abstract クラス名{...} [修飾子] abstract 戻り値 メソッド名(引数リスト); ※メソッド名(引数リスト)の次に{}はいらない |
8 | interfaceに宣言できる変数はstaticな定数のみ->初期化しないとコンパイルエラー ※強制的にpublic static final修飾子がつけられす->public以外の変数はコンパイルエラーとなる |
9 | interfaceでのメソッドは以下の3つ ・抽象メソッド(暗黙でpublic abstractがつくのでpublic以外の修飾子はコンパイルエラーになる) ・デフォルトメソッド([修飾子] default 戻り値 メソッド名(引数リスト)で定義) ・staticメソッド |
10 | デフォルトメソッドではjava.lang.Objectクラスで提供されているequals(),hashCode(),toString()はオーバーライドできない |
11 | extendsとimplementsを両方書くときはextendsを先に書くこと->コンパイルエラーになる |
12 | interfaceの継承はinterfaceに対してのみextends可能 interfaceの継承は具象クラス/抽象クラスに対してはextendsで不可能 さらに、interfaceは複数のinterfaceを継承(extends)することができる。 ※具象クラスや抽象クラスは1つしか継承(extends)できない |
13 | 演算対象(オペランド)の最少はint型 short s1=10; s1 = s1 + 1;->(s1 + 1)はint型となるためコンパイルエラーになる s1 = (short)(s1 + 1);->キャストしないといけない |
14 | オペランドの変換はdouble型->float型->long型->int型の順に変換していく |
15 | instance ofは右辺と左辺が継承関係でないとコンパイルエラーになる ※0以外の値が変えるとかでないのに気を付ける |
16 | Autoboxingは暗黙の型変換を行わない double d1 = 10;->暗黙の型変換で10が10.0と変換されている Double d2 = 10;->暗黙の型変換が行われないため、コンパイルエラー |
17 | 親子関係で気を付けること ・アクセス修飾子はのスーパークラスに比べて同じかより広い範囲のもの ・戻り値はスーパークラスのメソッドと同じかその型のサブクラス ・スーパークラス側がprivateになっていないか(publicである必要あり) ・親クラスでコンストラクタがオーバーライドされていないか(super()の落とし穴) |
18 | キャストの無理やりな明示的な変換はコンパイルは通るが、実行時エラーとなる |
19 | getClass()は参照しているオブジェクトのクラス名が出力される |
20 | (キャスト)クラス.メソッド;は右から実行される したがって、(キャスト)の対象はクラス.メソッドの戻り値に対する型変換となる |
21 | staticメソッドは「super.メソッド名()」の形式では呼び出せない。 「クラス名.メソッド」を使うこと |
22 | 基本データ型の暗黙型変換(補足) |
super()の落とし穴
明示的に定義しないと親クラスのコンストラクタはsuper()が実行される。
基本データ型の暗黙型変換
基本データ型の型変換は広いほうへの代入はOK
Java APIの利用
注意ポイントは下記です。
注意ポイント | |
---|---|
1 | StringBuilderは必ずnewによる生成が必要 StringBuilderでのequals()の比較はできない※toString()でString型に変換して比較する |
2 | 異なるラッパークラス間でのequals()はfalseになる Integer val1 = 150; Long val2 = 150; val1.equals(val2)->false val1.equals(val2.intValue())->true |
3 | クラス名をprintlnしたときはtoString()メソッドが呼ばれる |
4 | paeseメソッドの引数に不適切な値を入力すると、コンパイルは通るが実行時エラーが発生する。 |
5 | <実行時エラーのパターン> ・日付の範囲外設定->DateTimeException例外 ・日付のフォーマットが異常->DateTimeParseException例外 ・asListで生成した固定リストに対し、削除や追加する->UnsupportedOperationException例外 |
例外処理
注意ポイントは下記です。
注意ポイント | |
---|---|
1 | catchする例外の順番はサブクラス->スーパークラスの順に書く->コンパイルエラーとなる |
2 | throwsとthrowは別物 throws:メソッドにつける、エラー発生時に親クラスに投げる throw:任意の場所で例外を発生させられる |
3 | 例外のオーバーライド時の注意 ・親クラスの例外と同じかサブ例外 ・RuntimeExceptionとそのサブクラスは継承を意識せずスロー可 ・スーパークラスのメソッドにthrowsがあっても、サブクラス側でthrowsをつけなくともOK |
3 | クラス名をprintlnしたときはtoString()メソッドが呼ばれる |
4 | paeseメソッドの引数に不適切な値を入力すると、コンパイルは通るが実行時エラーが発生する。 |
5 | Trowableクラスの主なメソッド ・void printStackTrace():エラーのスタックトレースの表示 ・String getMessage():エラーメッセージを取得する |
6 | 親と子のthrowsの取り扱いの違い ・親がthrows定義→子はthrowsつけなくても問題ない ・子がthrows定義→親にthrowsが定義されていないとコンパイルエラー |
まとめ
Javaプログラマ SE8 Silverの資格試験に向けて勉強する中で同じところ、あいまいなところがいくつかあったので直前の知識の整理のために本記事をまとめました。
個人的に間違えたところを中心にまとめていますが、結構間違いやすいところって共通しているのではないかと思います。
Javaプログラマ SE8 Silverの資格試験を目指している方に役立てば幸いです。
以上!
*1:i < 0) && (j < 0) || (k < 0