AndroidエンジニアのためのモダンJava
2013年8月20日紙版発売
2013年8月20日電子版発売
山田祥寛 著
B5変形判/448ページ
定価3,520円(本体3,200円+税10%)
ISBN 978-4-7741-5878-5
ただいま弊社在庫はございません。
書籍の概要
この本の概要
本書は,複雑かつ高度なAndroidアプリの開発に必要となる,Java言語の基礎を理解することに主眼を置いています。Android SDKについては触れず,Androidに関連するモダンJava(Java 5以降)のファンダメンタルな言語仕様を中心に解説を行います。また,解説中では,Androidエンジニアが知っておくべき最適化のテクニックを適宜紹介しています。JavaScriptやC++,Objective-Cでの開発経験のあるAndroidエンジニアが,Java言語に関する知識の底上げを目指す際,特に有効な一冊です。
こんな方におすすめ
- Javaの基礎的な知識を身に付けたいAndroid開発者
- Java 5以降のモダンなコーディングスタイルを身に付けたい方
この書籍に関連する記事があります!
- Android開発にJavaの理解が必須な理由
- ほんの数年前まで,アプリやゲームの開発と言えばWindowsやMacといったパソコン向けでしたが,2013年現在,アプリやゲームのプログラミングで生計を立てるにはスマートフォン向けに作るしか道がなくなっています。
目次
第1章 イントロダクション
- 1.1 Android概観
- 1.1.1 Androidのアーキテクチャ
- 1.1.2 Androidのバージョン
- 1.2 AndroidとJava
- 1.2.1 Javaとは?
- 1.2.2 Androidの特異な点
第2章 Java の基本
- 2.1 Javaプログラミングの基本
- 2.1.1 Hello, Javaアプリの作成
- 2.1.2 ソースコードの全体像
- Column サンプルファイルのインポート方法
- 2.2 変数
- 2.2.1 識別子の命名規則
- 2.2.2 より良い識別子のために
- 2.3 データ型
- 2.3.1 基本型と参照型
- 2.3.2 整数型
- 2.3.3 浮動小数点型
- 2.3.4 文字型
- 2.3.5 真偽型
- 2.4 リテラル
- 2.4.1 整数リテラル
- 2.4.2 浮動小数点リテラル
- 2.4.3 補足:数値リテラルにおける型の特定
- 2.4.4 文字リテラル
- 2.4.5 文字列リテラル
- 2.5 型変換
- 2.5.1 暗黙的な変換
- 2.5.2 縮小変換(キャスト)
- 2.6 参照型
- 2.6.1 クラス型
- 2.6.2 配列型
- 2.6.3 ラッパークラス
- 2.7 定数
- 2.7.1 定数の基本
第3章 演算子
- 3.1 算術演算子
- 3.1.1 浮動小数点数の演算には要注意
- 3.1.2 非数値の演算(加算演算子)
- 3.1.3 文字列の連続した結合に要注意
- 3.1.4 除算とオペランドのデータ型
- 3.1.5 インクリメント演算子とデクリメント演算子
- 3.2 代入演算子
- 3.2.1 基本型と参照型による代入の違い
- 3.3 比較演算子
- 3.3.1 同一性と同値性
- 3.3.2 補足:「==」演算のその他の注意点
- 3.3.3 条件演算子(?:)
- 3.4 論理演算子
- 3.4.1 ショートカット演算(短絡演算)
- 3.5 ビット演算子
- 3.5.1 ビット論理演算子
- 3.5.2 ビットシフト演算子
- 3.6 演算子の優先順位と結合則
- 3.6.1 優先順位
- 3.6.2 結合則
第4章 制御命令
- 4.1 条件分岐
- 4.1.1 if命令 ― 単純分岐
- 4.1.2 if命令 ― 多岐分岐
- 4.1.3 if命令 ― ネスト構造
- 4.1.4 補足:ブロックの{...}は省略可能
- 4.1.5 補足:if命令によるコメントアウト
- 4.1.6 switch命令
- 4.2 繰り返し処理
- 4.2.1 while / do...while命令
- 4.2.2 補足:無限ループ
- 4.2.3 for命令
- 4.2.4 拡張for命令
- 4.2.5 break / continue命令
第5章 オブジェクト指向構文(クラスの基本)
- 5.1 クラスの基本
- 5.1.1 クラス名
- 5.1.2 修飾子
- 5.1.3 メンバーの記述順序
- 5.2 フィールド
- 5.2.1 フィールド名
- 5.2.2 修飾子
- 5.2.3 デフォルト値
- 5.3 メソッド
- 5.3.1 メソッド名
- 5.3.2 引数(仮引数と実引数)
- 5.3.3 戻り値
- 5.3.4 修飾子
- 5.3.5 thisキーワード
- 5.4 メソッド(オーバーロード/可変長引数/再帰呼び出し)
- 5.4.1 メソッドのオーバーロード
- 5.4.2 可変長引数のメソッド
- 5.4.3 再帰呼び出し
- 5.5 変数のスコープ
- 5.5.1 フィールドの有効範囲
- 5.5.2 フィールドとローカル変数
- 5.5.3 ブロックスコープ
- 5.5.4 仮引数
- 5.6 コンストラクター
- 5.6.1 コンストラクターの基本
- 5.6.2 デフォルトコンストラクター
- 5.6.3 コンストラクターのオーバーロード
- 5.6.4 ファクトリーメソッド
- 5.6.5 初期化ブロック
- 5.7 クラスフィールド/クラスメソッド
- 5.7.1 クラスメソッド
- 5.7.2 補足:ユーティリティクラス
- 5.7.3 クラスフィールド
- 5.7.4 クラス定数
- 5.7.5 static初期化ブロック
- 5.7.6 補足:初期化処理の実行タイミング
- Column Javaの歴史
第6章 オブジェクト指向構文(カプセル化/継承/ポリモーフィズム)
- 6.1 カプセル化
- 6.1.1 アクセス修飾子
- 6.1.2 インスタンスフィールドのアクセス権限
- 6.1.3 補足:不変クラス
- 6.2 継承
- 6.2.1 継承の基本
- 6.2.2 メソッドのオーバーライド
- 6.2.3 基底クラスのメソッドを呼び出す
- 6.2.4 コンストラクター(継承時の挙動)
- 6.2.5 フィールドの隠蔽
- 6.2.6 継承/オーバーライドの禁止
- 6.2.7 型変換(参照型)
- 6.2.8 委譲
- 6.3 ポリモーフィズム
- 6.3.1 抽象メソッド
- 6.3.2 インターフェイス
- 6.3.3 インターフェイスと抽象クラスとの使い分け
- Column Javaのコーディング規約
第7章 オブジェクト指向構文(パッケージ/例外処理/その他)
- 7.1 パッケージ
- 7.1.1 パッケージの基本
- 7.1.2 インポート
- 7.1.3 単一型インポートとオンデマンドインポート
- 7.1.4 補足:staticインポート
- 7.2 例外処理
- 7.2.1 例外処理の基本
- 7.2.2 finally句
- 7.2.3 例外クラスの型
- 7.2.4 例外をスローする ― throw命令
- 7.2.5 検査例外と非検査例外
- 7.2.6 例外をスローする際の留意点
- 7.2.7 例外の再スロー
- 7.2.8 例外クラスを拡張する
- 7.3 enum型
- 7.3.1 enum型の導入前
- 7.3.2 enum型の基本
- 7.3.3 enum型の正体
- 7.3.4 コンストラクター/メソッド/フィールドの定義
- 7.3.5 補足:EnumSetクラスによるビットフィールド表現
- 7.4 Objectクラス
- 7.4.1 Objectクラスの主なメソッド
- 7.4.2 toStringメソッド
- 7.4.3 equalsメソッド
- 7.4.4 hashCodeメソッド
- 7.4.5 cloneメソッド
- 7.4.6 finalizeメソッド
- 7.4.7 補足:compareToメソッド
- 7.5 アノテーション
- 7.5.1 アノテーションの記述位置
- 7.5.2 アノテーションの構文
- 7.5.3 標準アノテーションの例
- 7.5.4 自作アノテーションの定義
- 7.5.5 補足:リフレクションの主なメソッド
- 7.6 ネストしたクラス
- 7.6.1 staticメンバークラス
- 7.6.2 非staticメンバークラス
- 7.6.3 匿名クラス
- 7.6.4 ローカルクラス
- Column Javaをより深く学ぶための参考書籍
第8章 コレクション
- 8.1 コレクションフレームワークの基本
- 8.1.1 主なインターフェイスと実装クラス
- 8.1.2 コレクションの基本構文
- 8.1.3 基本的なコーディング手法
- 8.1.4 コレクションを順番に処理する
- 8.1.5 コレクションのラッピング
- 8.2 リスト(Listインターフェイス)
- 8.2.1 ArrayList
- 8.2.2 LinkedList
- 8.2.3 リストの基本コード
- 8.3 セット
- 8.3.1 セットの具体的なコード例
- 8.4 マップ
- 8.4.1 HashMap
- 8.4.2 IdentityHashMap / WeakHashMap
- 8.4.3 LinkedHashMap / TreeMap
- 8.4.4 補足:NavigableMap
- 8.5 Deque(Queue)
- 8.5.1 ArrayDequeによるキュー/スタックの実装
- 8.5.2 補足:QueueメソッドとStackメソッド
- 8.6 ジェネリックス
- 8.6.1 ジェネリックス定義の基本
- 8.6.2 境界ワイルドカード型
- 8.6.3 ジェネリックメソッド
第9章 ストリーム
- 9.1 ストリームの基本
- 9.1.1 ストリームの分類
- 9.2 さまざまなストリームの例
- 9.2.1 テキストファイルの読み書き
- 9.2.2 補足:ファイル操作
- 9.2.3 バイナリファイルの読み書き
- 9.2.4 バイトストリーム→文字ストリームの変換
- 9.2.5 読み書きのバッファリング処理
- 9.2.6 Android環境でのファイル操作
- 9.2.7 ファイルにランダムアクセスする
- 9.2.8 オブジェクトをファイルに保存する
- 9.2.9 出力ストリーム→入力ストリームの連結(パイプ)
- 9.3 ネットワーク
- 9.3.1 ソケット通信
- 9.3.2 HTTP通信
- 9.3.3 構造化データを取得&解析する
第10章 スレッド
- 10.1 スレッドの基本
- 10.1.1 スレッドの作成&実行
- 10.1.2 同期処理
- 10.1.3 スレッドプール
- 10.2 Android アプリにおけるスレッド処理
- 10.2.1 Handlerによるメインスレッドの操作
- 10.2.2 AsyncTaskによる非同期処理
- 10.2.3 ProgressDialogによる進捗表示
- 10.2.4 AsyncTaskLoaderによる非同期処理
この本に関連する書籍
-
サーブレット&JSPポケットリファレンス
ロングセラーシリーズ・ポケットリファレンスに,Javaエンジニアには欠かせないサーブレット&JSPが新登場。ベーシックだけど忘れてしまいがちな情報をコンパクトなサイ...
-
[iOS/Android対応]HTML5ハイブリッドアプリ開発[実践]入門
スマートフォン向けアプリケーション開発では,iOS,Androidの両プラットフォームへの対応が求められることが多い一方,それぞれに対応することは,Objective-C,Javaに...
-
Androidライブラリ実践活用[厳選111]
Andoroidアプリケーションの開発に役立つオープンソースライブラリが数多く公開されています。こうしたライブラリには質の高いプロダクトも多く,上手に活用することで...
-
Androidエンジニア養成読本 Vol.2[現場で役立つノウハウと仕事にしたい人のための必須知識満載!]
Androidアプリケーション開発の競争が激化する中,限られた時間と資源でいかに効率よく開発を行うか……開発者にはそのためのアイデアやテクニックが強く求められています...
-
Javaルールブック ~読みやすく効率的なコードの原則
「名前の付け方がバラバラでわかりづらい」「取りあえず動いているけど,どこかおかしい」……チームで開発にあたるプロジェクトでは致命的といえるそんな問題を解決する...