---
# System prepended metadata

title: 'Java勉強会 #1(2020/11/08)'

---

# Java勉強会 #1(2020/11/08)

※みんなでメモなど自由に書き込んでください

## 目的
- **JavaSilverSE11の合格**
- Javaの基本的な構文を知ることで他言語との違いを理解する
- Javaでかんたんなアルゴリズムを実装できるようになる

### やらないこと（目的を達成したあとに希望があればやる）
- Javaを使ったWebアプリケーション開発
- データベース
- Gitの基礎

## 開発環境構築

Javaの開発環境は色々あるが、ここでは代表的なものを紹介する
まかり間違ってもメモ帳などのテキストエディタでコーディングしないこと

### Eclipse
- 昔から愛用されている統合開発環境
- おそらくSIerでシェアNo1
- 素のエディタにサードパーティ製のプラグインを加えて構築する
- が、昔からあるだけにプラグインの開発が遅れていたりプラグイン同士で衝突したりと罠が多い
- また、起動が遅いなどの難点もあるが、使い慣れている人にとってはEclipseからなかなか離れられない
- PleiadesというEclipse日本語化プロジェクトにJava開発環境を丸々含めたパッケージがあるのでそちらを利用するのが楽
    - Full EditionだとJDKも含まれているのですぐに開発できる


### IntelliJ IDEA
- Eclipseに対抗して作られた統合開発環境
- インテリセンス(かしこい)機能が売り
- 有償IDEで年契約のライセンス型
  - cf. Kotlin開発
- JDKのインストールが必要

### VScode

- みんな大好きVScode
- こちらでもJava開発環境を構築できる
- が、これ使うならIntelliJやEclipseでもいいじゃんという声もある
- いろいろな言語を使っていると言語用のプラグインをVScodeに入れることになるのでどんどん汚くなる

- [VSCodeでJavaの開発環境を構築する](https://www.suzu6.net/posts/130-vscode-for-java/)

- 拡張機能 Java Extension Packをインストールする
- JDKインストール(for WSL)
    - sudo apt-get install default-jre
    - sudo apt-get install default-jdk

## 講義メモ

- 0, 1でプログラムを書いて動く
  - 人間が書ける高級言語からコンパイルして
    - e.g. Java
- [write once run anywhere](https://ja.wikipedia.org/wiki/Write_once,_run_anywhere#:~:text=%22Write%20once%2C%20run%20anywhere%22,Java%E3%81%AE%E3%82%B9%E3%83%AD%E3%83%BC%E3%82%AC%E3%83%B3%E3%81%A7%E3%81%82%E3%82%8B%E3%80%82)
  > Javaで記述されたソフトウェアは多くのシステムの上で開発・コンパイルでき、同一のバイトコードを得ることができる。そのバイトコードはJava仮想マシン(JVM)を持つ全てのシステムで動作する。
- 概念をクラスというオブジェクトに落とし込むかが肝
  - オブジェクト指向
- ガーベージコレクション、GC
- コンパイル時にバグを検知できるので、バグを動的言語より少なく減らせる
  - Javaが大規模開発に向いている要因 



## 用語集
- コンパイル
  - 高級言語から機械語へ翻訳すること
- インタプリタ型
  - 一行ずつどつど機械語へ解釈すること


## リンク集
- [Javaバージョン履歴](https://ja.wikipedia.org/wiki/Java%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E5%B1%A5%E6%AD%B4)
- [[Java] UbuntuにJavaの開発環境を構築&実行確認](https://qiita.com/osorezugoing/items/5b664aab9b4b96d777d6)