AKDB Java Stady Meeting vol.1Akdb java up

23
第一回 アキディベJava勉強会 大仏 2014/11/23

Transcript of AKDB Java Stady Meeting vol.1Akdb java up

第一回 アキディベJava勉強会

大仏2014/11/23

Agenda1. 自己紹介 2. 趣旨説明 3. 1章~4章 4. 次回日程・担当者決め

自己紹介タイム!

普段やってること

趣味・好きなこと

名前(HN可)

自己紹介タイム!

都内で働くエンジニア - Oracle Master Silver - DBスペシャリスト - CGクリエイター(ベーシック)

趣味:ジョギング 3DCG製作 サバゲー 英語・韓国語

HN: 大仏

趣旨説明

アキディベとは?

• プレゼン会、討論会、読書会、ネット配信等を実施 • 運営メンバー: 1. ちゃーりー (経済・化学) 2. 高橋佑太  (政治・経済・法学) 3. 大仏  (生物学・IT・CG)

大目的• 討論番組・討論団体・・・政治・社会問題がメイン  → 理工系分野があまりない

大目的• 理工系が気軽に集まる場所を作る

差別 貧困

ジェンダー 原発 若者論

数学 物理学 化学 生物学 計算機科学

Docking!

• 論壇に科学の風を吹き込む

 → 論壇のテクノクラート集団を作る!!

実施計画• 第1期:Java基礎 課題図書:サクサクわかるJava入門

参加者が各章担当・プレゼン(今回は全て大仏)

終了予定:2015年4月

• 第2期:Java応用  Java or Android or デザインパターン or アルゴリズム

質問• 課題本を予習した方(挙手)

• 勉強会の方針(1 or 2 挙手)1. 本を順次読んでいくほうが良い2. 復習はそこそこに+αの話があったほうが良い

第1章• コンパイラとJVM

コンパイラ JVM

ソース(.java)

バイトコード(.class)

マシン語

中を見てみる(次頁)

第1章• コンパイラとJVM - バイトコードを読む

1. 適当にソース書く(hoge.java) 2. コンパイル(javac hoge.java) 3. バイナリデータを読む(xxd hoge.class)

第1章• コンパイラとJVM - バイトコードを読む

1. 適当にソース書く(hoge.java) 2. コンパイル(javac hoge.java) 3. バイナリデータを読む(xxd hoge.class)

cafe: java - ジャワコーヒー起源説の証拠の一つとされる babe = Kim Polese(元サンマイクロのプロダクトマネージャ)説あり

第1章• データ型

整数…int,long,byte等 小数…double,float 真偽…boolean 文字列…String etc.

第1章• データ型

double,float → 厳密な計算ができない!(p.49)

試してみる: double a = 0.1d + 0.2d; System.out.println(a); → 綺麗に0.3にならない → 10進数の小数を2進数で扱っているため (丸め誤差)

第2章• 式の構成要素

式 - オペランド(リテラル、変数、定数、etc..) - 演算子(+、-、*、/、 etc..)

第2章• 評価の仕組み• 評価結果への置換 • 優先順位 • 結合規則

第2章• 演算子• 算術演算子:+、-、*、/ • 文字列結合演算子:+ • 代入演算子:=、-=、+=、etc. • インクリメント・デクリメント演算子: - -、++ • シフト演算子:<<、>>、etc

第2章• 演算子 - シフト演算• シフト演算の例: int a = 2; a = a << 2; System.out.println(a); → 8が表示される。 → 0b0010を左に2ビットシフトして0b1000

第2章• 型変換 - 大→小キャスト• intをbyteにキャストしてみる: int a = 128; System.out.println((byte)a); → -128が表示される。

第2章• 型変換 - 大→小キャスト• intをbyteにキャストしてみる: int a = 128; ← byteの最大値は127 System.out.println((byte)a); → -128が表示される。 → 補数になっている。 → 0b10000000:8bit表現では-128

第2章• 命令実行文• System.out.print():画面出力 • Integer.parseint():文字列→数字に変換 • java.util.Scanner(System.in).nextLine():文字列入力受け付け

• 音を鳴らす:java.awt.Toolkit.getDefaultToolkit().beep();

次回日程&担当決め• 次回日程 • 12/7(日) 15:00 - 18:00

3章:大仏 4章:大仏

• 担当