TECH PLAY

プロになるJava-仕事で必要なプログラミングの知識がゼロから身につく最高の指南書

3,278円 (税込)

楽天

プロになるJava-仕事で必要なプログラミングの知識がゼロから身につく最高の指南書

書籍情報

発売日:

著者/編集:きしだ なおき/山本 裕介/杉山 貴章

出版社:技術評論社

発行形態:単行本

書籍説明

内容紹介

この本では、プログラムを組むことを目的に、手続きの組み方や構成を解説して、そのために必要なJavaの文法を紹介するという形をとっています。また、プロになる上で知っておく必要のある開発ツールの使い方や、現在世の中で主体となっているWebの仕組みを解説した上でフレームワークを使ったWebアプリケーションの開発法を解説します。

目次

目次 本書の読み方・動作環境 ●第1部 Javaを始める準備 第1章 Java ってなんだろう 1.1 Javaとは 1.1.1 プログラミング言語とは 1.1.2 Javaはどんなプログラミング言語なの? 1.1.3 Javaで何ができるの? 1.1.4 Javaの仕様とJDKディストリビューション 1.2 Javaの情報源 COLUMN Java 公式キャラクター Duke 第2章 開発環境の準備と最初の一歩 2.1 Oracle JDKのインストール 2.1.1 Oracle JDKのダウンロード 2.1.2 Oracle JDKのインストール COLUMN Oracle 社はJavaを有償化した? 2.2 IntelliJ IDEAのインストールと設定 2.2.1 初心者の段階からIDEを! 2.2.2 IntelliJ IDEAとは 2.2.3 IntelliJ IDEAのダウンロードとインストール 2.2.4 Toolbox Appの設定とIDEの起動 COLUMN IntelliJ IDEAのエディション 2.2.5 IntelliJ IDEAの初期設定 2.3 最初のプログラムを書いてみよう 2.3.1 プロジェクトの作成 2.3.2 IntelliJ IDEAの初期画面 2.3.3 クラスの作成 2.3.4 mainメソッドの実装 COLUMN 近年のJava IDE 事情 ●第2部 Javaの基本 第3章 値と計算 3.1 JShellの起動 3.1.1 ターミナルの起動 3.1.2 JShellの起動 3.1.3 JShellの終了 3.2 値と演算 3.2.1 整数 3.2.2 構文エラー 3.2.3 実数 3.2.4 文字列 3.2.5 例外 3.2.6 プログラムがうまく動かない3 段階 3.3 メソッドの呼び出し 3.3.1 メソッドの呼び出し 3.3.2 文字列の掛け算や引き算? 3.3.3 メソッドのシグネチャ 3.3.4 メソッドの使い方がわからないとき 3.3.5 文字列のフォーマット 3.3.6 formattedメソッドでの例外 第4章 変数と型 4.1 変数 4.1.1 複合代入演算子 4.1.2 値に名前を付けるメリット 4.2 型 4.2.1 変数の型 4.2.2 基本型と参照型 4.2.3 変数の型を指定する 4.2.4 文字を扱う型 4.2.5 数値の型変換 4.2.6 型の役割 第5章 標準API 5.1 日付時刻 5.1.1 APIとライブラリ 5.1.2 現在日時を取得する 5.1.3 パッケージとimport 5.1.4 日付時刻の操作 5.1.5 指定した日付時刻を扱う 5.1.6 日付時刻の整形 5.1.7 staticメソッドとインスタンスメソッド 5.2 BigDecimal 5.2.1 実数計算の誤差 5.2.2 BigDecimalでの計算 5.2.3 newによるBigDecimalオブジェクトの生成 5.2.4 BigDecimalオブジェクト生成時の注意 5.2.5 オブジェクトの生成の仕方の違い 第6章 SwingによるGUI 6.1 Swingでのウィンドウ表示 6.1.1 Swing 6.1.2 ウィンドウを表示してみる 6.1.3 入力領域の配置 6.1.4 2つ目の入力領域 6.1.5 ボタンを配置 6.1.6 クラスとオブジェクト、インスタンス 6.1.7 参照を扱う 6.2 画面に絵を描いてみる 6.2.1 ウィンドウの準備 6.2.2 画像の準備 6.2.3 図形の描画 6.3 Javaの基本文法 6.3.1 Javaの文法 6.3.2 入力エラーの対処 6.3.3 IntelliJ IDEAを使わずに実行する ●第3部 Javaの文法 第7章 条件分岐 7.1 論理型 7.1.1 値の比較 7.1.2 オブジェクトの大小比較 7.1.3 オブジェクトが等しいかどうかの比較 7.1.4 論理演算子 7.1.5 条件演算子 7.2 if 文による条件分岐 7.2.1 if 文 7.2.2 else 句 7.2.3 else if 7.3 switchによる条件分岐 7.3.1 switch 文 7.3.2 default 句 7.3.3 switch 式 7.3.4 古い形式のswitch 第8章 データ構造 8.1 Listで値をまとめる 8.1.1 List 8.1.2 変更のできるList 8.1.3 ジェネリクスによる型検査 8.1.4 ジェネリクスの型推論 8.1.5 ラッパークラス 8.2 配列 8.2.1 配列の初期化 8.2.2 要素を設定した配列の初期化 8.2.3 配列の要素の利用 8.2.4 多次元配列 8.3 レコードで違う種類の値を組み合わせる 8.3.1 違う種類の値をListでまとめて扱う 8.3.2 違う種類の値をまとめて扱うレコードを定義する 8.3.3 レコードのオブジェクトを生成する 8.4 Mapで辞書を作る 8.4.1 Map 8.4.2 変更可能なMap 8.4.3 イミュータブル(不変)なオブジェクト 第9章 繰り返し 9.1 ループ構文 9.1.1 for 文の基本 9.1.2 for 文の応用 9.1.3 while 文 9.1.4 do while 文 9.1.5 ループのcontinueとbreak 9.2 ループに慣れる 9.2.1 デバッガーでループを覗く 9.2.2 二重ループ COLUMN i、jの次は? 9.2.3 もう少しループの練習 9.2.4 迷路ゲームを作る 第10章 データ構造の処理 10.1 データ構造を拡張for 文で扱う 10.1.1 基本for 文でのListの要素の処理 10.1.2 拡張for 文によるListの要素の処理 10.1.3 拡張for 文による配列の要素の処理 10.1.4 値の集合の処理のパターン 10.2 Stream 10.2.1 IntelliJ IDEAによるStreamへの変換 10.2.2 Streamの構成 10.2.3 ラムダ式 10.2.4 Streamソース 10.2.5 終端処理 10.2.6 中間処理 10.2.7 Optional 10.3 基本型のStream 処理 10.3.1 IntStreamで整数の処理 10.3.2 StreamとIntStreamの行き来 第11章 メソッド 11.1 メソッドの宣言 11.1.1 JShellでのメソッド宣言 11.1.2 staticメソッドの宣言 11.1.3 インスタンスメソッドの宣言 11.1.4 IntelliJ IDEAにメソッドを宣言してもらう 11.2 ラムダ式とメソッド参照 11.2.1 ラムダ式 11.2.2 メソッド参照 11.2.3 IntelliJ IDEAでラムダ式とメソッド参照の変換 11.3 メソッドの使いこなし 11.3.1 メソッドのオーバーロード 11.3.2 メソッド呼び出しの組み合わせ COLUMN うまく名前を付けるのも実力のうち 11.3.3 再帰とスタック ●第4部 高度なプログラミング 第12章 入出力と例外 12.1 ファイルアクセスと例外 12.1.1 ファイル書き込み 12.1.2 ファイル読み込み 12.1.3 例外 12.1.4 throwsで例外を押しつける 12.1.5 try 句で例外に対処する 12.1.6 検査例外と非検査例外 12.1.7 例外を投げる 12.2 ネットワークでコンピュータの外の世界と関わる 12.2.1 サーバーとクライアント 12.2.2 ソケット通信とTCP/IP 12.2.3 OutputStreamでのデータ送信 12.2.4 InputStreamでのデータ受信 12.2.5 try-with-resources 12.3 Webの裏側を見てみる 12.3.1 HTTP 12.3.2 HTTPクライアント 12.3.3 HTTPSで安全なWebアクセス 12.3.4 Webクライアントライブラリ 12.3.5 Webサーバーを作る 第13章 処理の難しさの段階 13.1 ループの難しさの段階 13.1.1 他のデータを参照するループ 13.1.2 隠れた状態を扱うループ 13.2 状態遷移と正規表現 13.2.1 状態遷移の管理とenum 13.2.2 正規表現 13.3 スタックとキュー 13.3.1 スタックとキュー 13.3.2 ツリーの探索 13.3.3 メソッドの再帰呼び出しをスタックを使った処理に置き換える 13.3.4 幅優先探索とキュー 13.3.5 計算の複雑さの階層 第14章 クラスとインタフェース 14.1 クラス 14.1.1 クラスのメンバー 14.1.2 アクセス制御(可視性) 14.1.3 コンストラクタ 14.1.4 this 14.1.5 フィールド 14.1.6 ネステッドクラスとインナークラス 14.2 インタフェース 14.2.1 インタフェースが欲しい状況 14.2.2 インタフェースを使ってメソッドを統一的に扱う 14.2.3 必要なメソッドを実装していないときのエラー 14.2.4 実装を持ったメソッドをインタフェースに定義する 14.2.5 インタフェースにおけるアクセス制御 14.2.6 公称型と構造的部分型 14.3 ラムダ式と関数型インタフェース 14.3.1 関数型インタフェース 14.3.2 標準APIで用意されている関数型インタフェース 14.4 クラスとファイル 14.4.1 ソースファイル 14.4.2 classファイル 14.4.3 コメント 14.4.4 コマンドラインパラメータ 第15章 継承 15.1 継承 15.1.1 クラスの継承 15.1.2 継承でのコンストラクタ 15.1.3 Objectクラス 15.1.4 メソッドのオーバーライド 15.1.5 匿名クラス 15.2 継承の活用 15.2.1 差分プログラミング 15.2.2 継承でデータを分類する 15.2.3 継承とオブジェクト指向 ●第5部 ツールと開発技法 第16章 ビルドツールとMaven 16.1 ビルドツールの必要性 16.2 Mavenの基本 COLUMN Maven 以外のJavaビルドツール 16.3 Mavenのモジュールとディレクトリ構成 16.3.1 groupIdとartifactId 16.3.2 Mavenプロジェクトのディレクトリ構成 16.4 ライブラリとMaven Repository 16.4.1 ライブラリへの依存 16.4.2 Maven Central Repository 16.4.3 Mavenプロジェクトへライブラリを追加する 16.4.4 依存のscope 16.4.5 pom.xmlへの依存の記述 16.4.6 pom.xml 記述内容のプロジェクトへの反映 16.4.7 Maven Central Repository のインデックス作成 16.4.8 ライブラリの確認 16.4.9 businessCalendar4Jの動作確認 16.4.10 目的に合ったライブラリを見つける 16.5 MavenのGoal 第17章 Javadocとドキュメンテーション 17.1 Javadocとは 17.2 ブラウザでJavadocを見る 17.2.1 標準APIのJavadoc 17.2.2 Javadocの読み方 17.2.3 英語版のJavadoc 17.3 IDEからJavadocを見る 17.4 Javadocを書く 17.5 JavadocのHTMLを生成する 第18章 JUnitとテストの自動化 18.1 テストの自動化とは 18.1.1 JUnitのセットアップと実行 18.1.2 テストケースの実装、実装コードの修正 18.1.3 その他のアサーションメソッド 18.2 テスト自動化のヒント 18.2.1 効果的にテストケースを書く 18.2.2 テスト駆動開発 18.2.3 GUIアプリケーションやWebアプリケーションのテスト COLUMN 時間がないからテストは書かない? 18.3 オリンピック開催年を判別するコードをテスト 第19章 IntelliJ IDEAを使いこなす 19.1 補完機能を使いこなす 19.1.1 補完の候補表示と補完確定 19.1.2 import 文の補完 19.2 Live Templateと後置補完 第20章 バージョン管理とGit 20.1 アンドゥやファイルコピーによる履歴管理 20.1.1 Local History 20.2 バージョン管理システム 20.2.1 Gitのインストール 20.3 Git 連携を有効にする 20.4 コミット 20.4.1 コミット対象ファイルの選択 20.4.2 コミットの実行 20.4.3 ファイル追加時の確認ダイアログ 20.4.4 変更したファイルの差分とコミット 20.4.5 Gitログの確認 20.4.6 .gitignoreファイルの作成 20.5 ブランチ 20.5.1 ブランチの作成と切り換え 20.5.2 ブランチのマージ 20.6 Git 誤操作後の復旧方法 20.6.1 Amend 20.6.2 Revert 20.6.3 コミットのReset ●第6部 Webアプリケーション開発 第21章 Spring BootでWebアプリケーションを作ってみる 21.1 Webアプリケーションとフレームワーク 21.1.1 Webアプリケーションとは 21.1.2 Webアプリケーションの仕組み 21.1.3 アプリケーションフレームワークとは 21.1.4 フレームワークを利用するメリット 21.1.5 Webアプリケーション開発に使える代表的なフレームワーク 21.2 Spring Bootでタスク管理アプリケーションを作ってみる 21.2.1 タスク管理アプリケーションの概要 21.2.2 Webアプリケーション用のプロジェクトを作る 21.3 RestControllerでWebアプリケーションの仕組みを学ぶ 21.3.1 @RestControllerアノテーションでコントローラを作成する 21.3.2 クライアントからのリクエストに応えるためのエンドポイントを作る 21.3.3 helloエンドポイントにアクセスしてみる 21.3.4 タスク管理アプリケーションをコマンドラインから起動する 21.4 モデルを使ってアプリケーションの内部情報を保持する 21.4.1 タスクの情報を保持するためのモデルの作成 21.4.2 タスクを追加するエンドポイントの作成 21.4.3 タスクを一覧表示するエンドポイントの作成 21.5 ユーザーインタフェースの作成にテンプレートエンジンを活用する 21.5.1 @Controllerアノテーションでコントローラを作成する 21.5.2 テンプレートエンジン 21.5.3 Thymeleafが使えるようにpom.xmlを修正する 21.5.4 Thymeleaf 用のHTMLテンプレートを作る 21.5.5 HomeControllerのhelloメソッドを修正する 21.5.6 タスクの追加および一覧表示用のテンプレートを用意する 21.5.7 HomeControllerにタスクの一覧表示機能のエンドポイントを実装する 21.5.8 HomeControllerにタスクの追加機能のエンドポイントを実装する 21.5.9 CSSを使ってテンプレートを装飾する 第22章 Webアプリケーションにデータベースを組み込む 22.1 データベースとは 22.1.1 DBMSの種類 22.1.2 リレーショナルデータベースとは 22.1.3 リレーショナルデータベースにアクセスするための言語「SQL」 22.1.4 Javaによるデータベース接続とJDBC 22.2 SQLでH2データベースを操作する 22.2.1 H 2とは 22.2.2 pom.xmlへの依存関係の追加 22.2.3 application.propertiesへの設定の追加 22.2.4 H 2コンソールを使ったデータベース接続 22.2.5 テーブルを作成するCREATE 文 22.2.6 テーブルにレコードを追加するINSERT 文 22.2.7 テーブルに格納されたデータを取得するSELECT 文 22.2.8 すでに登録されているレコードを更新するUPDATE 文 22.2.9 テーブルに登録されているレコードを削除する 22.2.10 タスク管理アプリケーションで使用するSQL 文の例 22.3 Spring BootアプリケーションでSpring JDBCを使用する 22.3.1 Spring JDBCとは 22.3.2 pom.xmlへの依存関係の追加 22.3.3 テーブル初期化用のスクリプトを用意する 22.3.4 データベース操作用のクラスを作成する COLUMN DI/DIコンテナとは 22.3.5 HomeControllerクラスを修正する 22.3.6 タスク情報の削除機能を追加する 22.3.7 タスク情報の更新機能を追加する おわりに

著者情報

きしだ なおき

きしだなおき 九州芸術工科大学 芸術工学部 音響設計学科を満期退学後、フリーランスでの活動を経て、2015 年から LINE Fukuoka株式会社勤務。著書に『創るJava[改訂第3版]』(マイナビ)、『みんなのJava OpenJDKから始まる大変革期! 』(共著、技術評論社)など。

きしだ, なおき

山本 裕介

山本 裕介 Twitter4J、BusinessCalendar4JなどのオープンソースJavaライブラリの開発者。2019年にJavaチャンピオンに任命されている。BEA SystemsやFast Search & Transfer、Red Hatなど、外資系のソフトウェアベンダの経験を経て、Twitterでは日本で1人目のエンジニア職に就く。現在はJetBrainsの総代理店である株式会社サムライズムの代表取締役社長。

山本, 裕介, pub.2011

杉山 貴章

杉山 貴章 有限会社オングスにて、Javaを中心としたソフトウェア開発や、プログラミング関連書籍の執筆、IT 系の解説記事やニュース記事の執筆などを手がける。また、専門学校の講師としてプログラミングやソフトウェア開発の基礎などを教えている。著書・共著書に、『Javaアルゴリズム+データ構造完全制覇』(共著、技術評論社)、『正規表現書き方ドリル』(技術評論社)など多数。

杉山, 貴章

類似書籍