Javaセキュアコーディングセミナー東京 第4回 メソッドとセキュリティ

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Javaセキュアコーディングセミナー東京 第4回 メソッドとセキュリティ"

Transcription

1 Japan Computer Emergency Response Team Coordination Center 電子署名者 : Japan Computer Emergency Response Team Coordination Center DN : c=jp, st=tokyo, l=chiyoda-ku, o=japan Computer Emergency Response Team Coordination Center, cn=japan Computer Emergency Response Team Coordination Center 日付 : :36:21 +09'00' Javaセキュアコーディングセミナー東京 第4回 メソッドとセキュリティ 2012年12月16日(日) JPCERTコーディネーションセンター 脆弱性解析チーム 熊谷 裕志 戸田 洋三 1

2 本 資 料 について 本 セミナーに 使 用 するテキストの 著 作 権 はJPCERT/CCに 帰 属 します 事 前 の 承 諾 を 受 けた 場 合 を 除 いて 本 資 料 に 含 有 される 内 容 ( 一 部 か 全 部 かを 問 わな い)を 複 製 公 開 送 信 頒 布 譲 渡 貸 与 使 用 許 諾 転 載 再 利 用 できません 本 セミナーに 関 するお 問 い 合 わせ JPCERTコーディネーションセンター セキュアコーディング 担 当 TEL:

3 本 セミナーについて 4 回 連 続 セミナーです 第 1 回 9 月 9 日 ( 日 ) オブジェクトの 生 成 と 消 滅 におけるセキュリティ 第 2 回 10 月 14 日 ( 日 ) 数 値 データの 取 扱 いと 入 力 値 検 査 第 3 回 11 月 11 日 ( 日 ) 入 出 力 (ファイル,ストリーム)と 例 外 時 の 動 作 第 4 回 12 月 16 日 メソッドとセキュリティ 開 発 環 境 持 参 3

4 今 日 の 時 間 割 講 義 (13:30--15:00) メソッド/セキュリティ (13:30--14:35) ファイナライザ (14:45--15:15) ハンズオン (15:15--16:30) 15:25--15:55 15:55--16:30 4

5 メソッド 5

6 メソッドとは プログラミング 言 語 Java 第 4 版 1.8メソッドとパラメータ 6

7 メソッドとは Java 言 語 仕 様 第 3 版 メソッドのシグネチャ 7

8 メソッドとは class Person { private int id; private String name; public Person(int i, String s){ id=i; name=s; public int id(){ return id; public String name(){ return name; public static void main(string[] args){ person p = new person(1, taro ); System.out.println(p.name() + : + p.id()); クラスPersonに メソッドid()とname()とmain(String[])が 定 義 されている 8

9 メソッドオーバーロードを乱用しない Java言語ではメソッドのオーバーロードが可能 2つのメソッドは 異なる数のパラメータか異なる型のパラメータ を持っていれば つまり異なるシグネチャであれば 同じ名前を 持つことができます メソッドの1つの名前が複数の意味を持つの で この機能はオーバーロード(overloading)と呼ばれます 1つのメソッドを呼び出す場合に オーバーロードされているメソ ッドから最も一致するメソッドを探すために コンパイラーは引 数の型を使用します プログラミング言語Java第4版 2.8メソッドのオーバーロード 9

10 メソッドオーバーロードを 乱 用 しない オーバーロードを 使 った 単 純 なサンプルコード class overload { public void id(string s){ System.out.println("String"); public void id(integer i){ System.out.println("Integer"); public static void main(string[] args) { overload o = new overload(); o.id("choichoi"); o.id(42); 実 行 例 $ java overload String Integer $ 10

11 メソッドオーバーロードを 乱 用 しない メソッドのオーバーロード メソッド 名 が 同 じでも 引 数 リストが 異 なれば 異 なるメ ソッド シグネチャで 区 別 される 呼 び 出 すメソッドはコンパイル 時 に 決 まる メソッドのオーバーライド 呼 び 出 すメソッドは 実 行 時 に 決 定 される 11

12 メソッドオーバーロードを 乱 用 しない メソッド id(int i)を 追 加 class Overload { public void id(string s){ System.out.println("String"); public void id(integer i){ System.out.println("Integer"); public void id(int i){ System.out.println("int"); public static void main(string[] args) { Overload o = new Overload(); o.id("choichoi"); o.id(42); 追 加 されたメソッド 実 行 例 $ java Overload String int $ 呼 び 出 すメソッドが 変 わっ てしまった! 12

13 メソッドオーバーロードを 乱 用 しない メソッドのオーバーロードを 乱 用 すると 動 作 が 分 かりにくく 誤 解 を 招 く デバッグしにくい コードの 保 守 が 困 難 になる 13

14 メソッドオーバーロードを 乱 用 しない public class Overloader { private static String display(arraylist<integer> arrlist) { return "ArrayList"; private static String display(linkedlist<string> llist) { return "LinkedList"; private static String display(list<?> list) { return "List is not recognized"; public static void main(string[] args) { List<?>[] invokeall = new List<?>[] { new ArrayList<Integer>(), new LinkedList<String>(), new Vector<Integer>() ; for (List<?> i : invokeall) { System.out.println(display(i)); コンパイル 時 の 型 はList 3つ 全 てについて List is not recognized と 出 力 される 違 反 コード display()メソッドがオーバ ーロードされている 14

15 メソッドオーバーロードを乱用しない public class Overloader { 適合コード private static String display(list<?> l) { return (l instanceof ArrayList? "Arraylist" : (l instanceof LinkedList? "LinkedList" : "List is not recognized")); 実行時に引数の型を public static void main(string[] args) { List<?>[] invokeall = new List<?>[] { new ArrayList<Integer>(), new LinkedList<String>(), new Vector<Integer>() ; for (List<?> i : invokeall) { System.out.println(display(i)); 15 識別するには instanceof()を使う

16 メソッドオーバーロードを乱用しない // Effective Java, 項目 41 違反コード public class SetList { public static void main(string[] args){ Set<Integer> set = new TreeSet<Integer>(); List<Integer> list = new ArrayList<Integer>(); for (int i=-3; i<3; i++){ set.add(i); list.add(i); for (int i=0; i<3; i++){ set.remove(i); list.remove(i); System.out.println(set + " " + list); 16 ArrayListには動作の異なる2つのremove() メソッドが提供されている

17 メソッドオーバーロードを 乱 用 しない 実 行 例 $ java SetList [-3, -2, -1] [-2, 0, 2] $ [-3,-2,-1] [-3,-2,-1]にならないのはなぜ? 17

18 メソッドオーバーロードを乱用しない set.remove(i)の動作 [-3,-2,-1,0,1,2] [-3,-2,-1,1,2] set.remove(0) (int)0がautoboxingにより (Integer)0になる set.remove(1) (int)1がautoboxingにより (Integer)1になる [-3,-2,-1,2] set.remove(2) (int)2がautoboxingにより (Integer)2になる [-3,-2,-1] 18

19 メソッドオーバーロードを乱用しない list.remove(i)の動作 [-3,-2,-1,0,1,2] [-2,-1,0,1,2] list.remove(0) remove(int)が呼び出される list.remove(1) remove(int)が呼び出される [-2,0,1,2] list.remove(2) remove(int)が呼び出される [-2,0,2] 19

20 メソッドオーバーロードを 乱 用 しない // Effective Java, 項 目 41 public class SetList { public static void main(string[] args){ Set<Integer> set = new TreeSet<Integer>(); List<Integer> list = new ArrayList<Integer>(); 適 合 コード for (int i=-3; i<3; i++){ set.add(i); list.add(i); for (int i=0; i<3; i++){ set.remove(i); list.remove((integer)i); // あるいは (Integer.ValueOf(i)) System.out.println(set + " " + list); 20

21 まとめ オーバーロードを 乱 用 するとコードの 可 読 性 が 下 がり メソッドを 誤 用 する 危 険 が 増 す なるべくオーバーロードを 避 け 異 なる 名 前 のメ ソッドを 実 装 するほうが 安 全 Effective Java, 項 目 41 21

22 セキュリティ 22

23 privateのフィールドやメソッドにアクセス? public class Example { private int i = 3; private int j = 4; private void zeroi() { this.i = 0; Example e = new Example(); System.out.println("" + e.i); e.i = 10; e.zeroi(); 他のクラスからprivateのiやj zeroi()にアクセスできる 23

24 リフレクション 24

25 リフレクションを 使 うと try { Class<Example> c = Example.class; Example example = new Example(); Field field = c.getdeclaredfield("i"); field.setaccessible(true); System.out.println("" + field.get(example)); catch (Exception ex) { ex.printstacktrace(system.out); privateのフィールドに アクセスできる setaccessibleを 有 効 にするとリフレクションを 使 っ て 通 常 アクセスできないところにアクセスできる 25

26 リフレクションを 使 うと try { Class<Example> c = Example.class; Example example = new Example(); Method method = c.getdeclaredmethod("zeroi"); method.setaccessible(true); Object ret = method.invoke(example); Field field = c.getdeclaredfield("i"); field.setaccessible(true); privateのメソッドにも アクセスできる System.out.println("" + field.get(example)); catch (Exception ex) { ex.printstacktrace(system.out); 26

27 リフレクション セキュリティマネージャで 制 限 することができる 27

28 セキュリティマネージャ 28

29 Java : セキュリティモデル サンドボックスによって保護されている セキュリティポリシーにもとづいて操作を許可する 許可されていない操作をすると例外が発生 例えば Javaアプレットは ローカルのリソースにはアクセス出来ない ダウンロード元のサーバとのみ通信可 29

30 セキュリティマネージャを 使 う 違 反 コード import java.util.hashtable; class SensitiveHash { Hashtable<Integer,String> ht = new Hashtable<Integer,String>(); public void removeentry(object key) { ht.remove(key); // 中 略 removeentry()がpublic 悪 意 ある 攻 撃 者 が 自 由 に 呼 び 出 せる 30

31 セキュリティマネージャを 使 う import java.util.hashtable; 適 合 コード class SensitiveHash { private Hashtable<Integer,String> ht = new Hashtable<Integer,String>(); public final void removeentry(object key) { check("removekeypermission"); ht.remove(key); private void check(string directive) { SecurityManager sm = System.getSecurityManager(); if (sm!= null) { sm.checksecurityaccess(directive); // 中 略 31

32 セキュリティポリシーファイル 指 定 した 署 名 で 署 名 されているクラスに 許 可 を 与 える 指 定 したディレクトリからロードされたクラスに 許 可 を 与 える grant SignedBy hogehoge codebase "file:${user.dir/sensitive" { ; permission java.security.securitypermission "removekeypermission"; 32

33 policytool 付 属 のPolicy Toolユーティリティを 使 用 して ポ リシーファイルを 作 成 することもできる 33

34 実 行 してみる $ java -Djava.security.manager -Djava.security.policy=my.policy - classpath./sensitive:./ UseHash 34

35 セキュリティマネージャを 使 う import java.util.hashtable; import java.security.accesscontroller; import java.security.securitypermission; 適 合 コード class SensitiveHash { private Hashtable<Integer,String> ht = new Hashtable<Integer,String>(); public final void removeentry(object key) { check("removekeypermission"); ht.remove(key); private void check(string directive) { SecurityPermission sp = new SecurityPermission(directive); AccessController.checkPermission(sp); // 中 略 AccessController#checkPermissionを 呼 び 出 すこの 方 法 が 推 奨 されている 35

36 ファイナライザ 36

37 finalize()メソッド クラス Object には, finalize と呼ばれる protected メソッドが用意されており, 他のクラス からこのメソッドをオーバーライドすることがで きる あるオブジェクトに対して起動可能な特定 の finalize 定義は, そのオブジェクトのファイナラ イザ(finalizer)と呼ばれる Java言語仕様第3版 12.6 クラス インスタンスのファイナライズ 37

38 finalize()メソッド public class Object { protected void finalize() throws Throwable JavaSE6 API仕様 クラスObject, finalizeメソッドの説明 38

39 finalize()メソッドを 使 わない finalizeメソッドの 利 用 に 関 しては 数 々の 問 題 が 存 在 するため その 利 用 は 例 外 的 場 合 に 限 るべき 実 行 に 関 して 無 保 証 並 行 実 行 の 可 能 性 例 外 の 扱 い リソース 一 般 の 後 処 理 には 使 えない 39

40 実 行 されるかどうか 無 保 証 finalizeメソッドは 実 行 されるとは 限 らない メモリに 余 裕 があればGCは 働 かない finalize メソッドも 実 行 されない オブジェクトの 状 態 をファイルに 保 存 するなどの 終 了 処 理 をfinalizeメソッドで 実 行 してはいけない 実 行 タイミングが 重 要 な 処 理 をfinalizeメソッドで 実 行 してはいけない 40

41 実行順序や並行実行の可能性, 例外の扱い finalizeメソッドの実行順序 Java言語仕様第3版 ファイナライザの起動は順序付けられていない 複数の(オブジェクトの)finalizeメソッドの実行順序は指定できない 複数の(オブジェクトの)finalizeメソッドが並列に実行されるかも finalizeメソッドのなかからスローされた例外は無視される finalize メソッドの実行自体は中断 41

42 リソース 一 般 の 後 処 理 には 使 えない finalizeメソッドとリソース 管 理 finalizeメソッドの 実 行 はメモリの 使 用 状 況 に 依 存 メモリ 以 外 のリソースの 空 き 状 況 は 関 係 しない 結 果 : 空 きメモリが 潤 沢 でも 他 のリソースが 枯 渇 する 可 能 性 GCが 実 行 されない finalizeメソッドも 実 行 されない DoS 攻 撃 の 危 険 性 注 意!! finalizeメソッドは C++ の destructor とは 違 います 42

43 リソース 一 般 の 後 処 理 には 使 えない リソース 一 般 の 後 処 理 には Closeable インタフェースと try-withresources 構 文 を 活 用 すべき リソース... 使 用 開 始 時 にオープン/ 使 用 終 了 時 にクローズするもの ストリームのclose メソッド, Timerのcancel メソッド, Graphics の dispose メソッドなど Closeable インタフェースを 実 装... close() メソッドを 持 っている try-with-resources て 東 京 セミナ part3 でちらっと 紹 介 したよね! 43

44 finalize()を 使 う 場 合 の 注 意 点 時 間 のかかる 処 理 を 行 うべきではない 明 示 的 に 行 うべきクローズ 処 理 の 最 終 チェック 手 段 として 使 う finalize()メソッドをオーバライドする 場 合, 親 クラスのfinalize() 呼 び 出 しを 忘 れずに 行 う 44

45 finalizer guardian サブクラスで finalize() メソッドをオーバライドして いる 状 況 で, 親 クラスの finalize() 呼 び 出 しを 保 証 す るための 手 法 public class Foo { private final Object finalizerguardian = new Object() protected void finalize() throws Throwable {... 外 側 のオブジェクトをファイナライズする... ;... 45

46 ファイナライザに 関 連 するコーディングルール FIO04-J. 不 要 になったらリソースを 解 放 する FIO14-J. プログラムの 終 了 時 には 適 切 なクリーンアップ を 行 う MET12-J. ファイナライザは 使 わない 46

47 攻 撃 手 法 の 紹 介 : ファイナライザー 攻 撃 47

48 概 要 ライセンス 認 証 を 行 うサンプルアプリケーションに 対 し Java コードを 追 加 するだけで 認 証 回 避 を 行 う 攻 撃 手 法 finalize()メソッドを 悪 用 するため ファイナライザー 攻 撃 と 呼 ばれる 手 法 48

49 サンプルアプリケーションの 構 成 アプリ 本 体 : Application クラス アプリ 本 体 の 実 行 に 先 立 って ライセンス 認 証 を 行 う LicenseManagerクラス: ライセンス 情 報 の 確 認 SecuritySystemクラス: 認 証 完 了 したことを 記 録 LicenseManager コンストラクタ 中 に ライセンス 確 認 処 理 SecuritySystem LicenseManagerの インスタンスを 登 録 Application 本 体 実 行 49

50 サンプルアプリケーション(1/2) public class LicenseManager { public LicenseManager() { if (!licensevalidation()) { throw new SecurityException("License Invalid!"); private boolean licensevalidation() { // ライセンスファイルをリードしてチェックし ライセンスが正当ならtrueを返す return false; ここでは必ず認証失敗するようなコードにしている public class SecuritySystem { private static LicenseManager licensemanager = null; public static void register(licensemanager lm) { // licensemanagerが初期化されていない場合のみ登録 if (licensemanager == null) { if (lm == null) { System.out.println("License Manager invalid!"); System.exit(1); licensemanager = lm; Heinz M. Kabutz. Exceptional Constructors - Ressurecting the dead. Java Specialists Newsletter

51 サンプルアプリケーション(2/2) public class Application { public static void main(string[] args) { LicenseManager lm; try { lm = new LicenseManager(); catch(securityexception ex) { lm = null; SecuritySystem.register(lm); System.out.println("Now let s get things started"); 正 しいライセンス 情 報 を 持 っていないと... LicenseManagerのインスタンス 生 成 時 に 例 外 発 生 LicenseManager のインスタンスを 登 録 しないと... SecuritySystem.register() で 例 外 発 生 51

52 サンプルアプリケーション 実 行 例 % ls *.java Application.java SecuritySystem.java % javac *.java % java Application License Manager invalid! % LicenseManager.java たしかに 認 証 失 敗 している 52

53 サンプルアプリケーションを 攻 撃 する 攻 撃 目 的 LicenseManager のセキュリティチェックを 回 避 し Application.main() を 実 行 する 前 提 条 件 これらのクラスはすべて 変 更 できないものとする 攻 撃 方 針 LicenseManagerのサブクラスを 作 成 し 攻 撃 者 のアプリ( 後 述 の AttackerApp)に 脆 弱 なアプリApplicationを 読 み 込 む 問 題 LicenseManagerのサブクラスを 作 っても サブクラスでは 親 クラスでスローされる 例 外 をキャッチできない 53

54 親 クラスでスローされる 例 外 を 悪 用 できれば public class MyApplication { public static void main(string[] args) { MyLicenseManager lm; try { lm = new MyLicenseManager(); catch(securityexception ex) { lm = null; SecuritySystem.register(lm); // Applicationのメインメソッドを 呼 ぶ Application.main(args); public class MyLicenseManager extends LicenseManager { public MyLicenseManager() { System.out.println("Created MyLicenseManager"); MyApplication を 実 行 すると License Manager invalid! このやり 方 ではうまく 攻 撃 できない 54

55 finalize()メソッドの 悪 用 SecuritySystem に LicenseManager のインスタンスを 登 録 できれば 勝 ち しかもサンプルアプリケーションではLicenseManagerの インスタンスの 中 身 はチェックしていない LicenseManagerのインスタンス 欲 しい ライセンス 情 報 を 持 っていない 場 合 コンストラクタ 実 行 中 に 例 外 が 発 生 するので 生 成 途 中 で 捨 てられている finalize()を 使 えば GCされる 直 前 に 拾 うことができる! 55

56 ファイナライザー 攻 撃 を 行 うコード public class LicenseManagerInterceptor extends LicenseManager { private static LicenseManagerInterceptor instance = null; public static LicenseManagerInterceptor make() { try { new LicenseManagerInterceptor(); catch(exception ex) { // 例 外 を 無 視 try { synchronized(licensemanagerinterceptor.class) { while (instance == null) { System.gc(); LicenseManagerInterceptor.class.wait(100); catch(interruptedexception ex) { return null; return instance; public void finalize() { System.out.println("In finalize of " + this); synchronized(licensemanagerinterceptor.class) { instance = this; LicenseManagerInterceptor.class.notify(); public LicenseManagerInterceptor() { System.out.println("Created LicenseManagerInterceptor"); finalize()メソッド を 追 加 攻 撃 コード 56

57 ファイナライザー 攻 撃 を 行 うコード 攻 撃 コード public class AttackerApp { public static void main(string[] args) { LicenseManagerInterceptor lm = LicenseManagerInterceptor.make(); SecuritySystem.register(lm); // now we call the other application Application.main(args); LicenseManagerInterceptor.make()の 返 り 値 は GC 直 前 に 拾 い 上 げたLicenseManagerInterceptor のインスタンス 57

58 ファイナライザ 攻 撃 の 流 れ LicenseManagerInterceptor 親 クラスLicenseManagerの ライセンス 確 認 処 理 で 例 外 発 生 例 外 を 捕 捉 し GCが finalize()メソッドを 起 動 するのを 待 つ 初 期 化 途 中 だったLicenseManager のインスタンスを 取 得 やがて GCによって finalize() 起 動 SecuritySystem LicenseManagerの インスタンスを 登 録 Application 本 体 実 行 SecuritySystemにはすでに LicenseManagerのインスタンスが 登 録 されているため ライセンス 認 証 は 完 了 したと 思 わされる 58

59 攻 撃 コード 実 行 例 % ls Application.class LicenseManager.class SecuritySystem.class AttackerApp.java LicenseManagerInterceptor.java % javac *.java % java AttakerApp In finalize of Now let s get things started % 59

60 ファイナライザ 攻 撃 対 策 finalize()メソッドを 上 書 きされないように 定 義 重 要 なインスタンスは 初 期 化 の 完 了 を 必 ず 確 認 サブクラス 化 による 悪 用 を 防 ぐため クラスをfinal 宣 言 60

Javaセキュアコーディングセミナー東京 第4回 メソッドとセキュリティ 演習解説

Javaセキュアコーディングセミナー東京 第4回 メソッドとセキュリティ 演習解説 Japan Computer Emergency Response Team Coordination Center 電子署名者 : Japan Computer Emergency Response Team Coordination Center DN : c=jp, st=tokyo, l=chiyoda-ku, email=office@jpcert.or.jp, o=japan Computer

More information

Apache Tomcatにおけるクロスサイトリクエストフォージェリ(CSRF)保護メカニズム回避の脆弱性

Apache Tomcatにおけるクロスサイトリクエストフォージェリ(CSRF)保護メカニズム回避の脆弱性 Japan Computer Emergency Response Team Coordination Center 電子署名者 Japan Computer Emergency Response Team Coordination Center DN c=jp, st=tokyo, l=chiyoda-ku, email=office@jpcert.or.jp, o=japan Computer

More information

JEB Plugin 開発チュートリアル 第3回

JEB Plugin 開発チュートリアル 第3回 Japan Computer Emergency Response Team Coordination Center 電子署名者 : Japan Computer Emergency Response Team Coordination Center DN : c=jp, st=tokyo, l=chiyoda-ku, email=office@jpcert.or.jp, o=japan Computer

More information

HK05

HK05 コンピュータプログラミング B 補 助 教 材 (5) 2015.04 諸 注 意 課 題 レポートの 書 き 方 一 般 にこの 授 業 のレポートでは, まず 課 題 を 自 分 の 言 葉 で 再 現 し, ソースプログラム, 実 行 結 果, 考 察 ( 場 合 により 感 想 もあってよいです. なお 考 察 は 感 想 とは 意 味 が 全 く 違 います)という 構 成 で 書 くのがよいです.

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅱ 3 回目クラスの機能 (1) アクセス制限 オーバーロード課題 確認 問題次の各文は正しいか誤っているか答えなさい (1) クラスの private メンバは そのクラスからのみアクセス可能なメンバである (2) 一般に クラスのフィールドはどこからでもアクセスできるように public メンバで宣言すべきである (3) クラスは private メンバと public

More information

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF pref : 2004/6/5 (11:8) pref : 2004/6/5 (11:8) pref : 2004/6/5 (11:8) 3 5 14 18 21 23 23 24 28 29 29 31 32 34 35 35 36 38 40 44 44 45 46 49 49 50 pref : 2004/6/5 (11:8) 50 51 52 54 55 56 57 58 59 60 61

More information

プログラミング基礎I(再)

プログラミング基礎I(再) 山元進 クラスとは クラスの宣言 オブジェクトの作成 クラスのメンバー フィールド 変数 配列 メソッド メソッドとは メソッドの引数 戻り値 変数の型を拡張したもの 例えば車のデータベース 車のメーカー 車種 登録番号などのデータ データベースの操作 ( 新規データのボタンなど ) プログラムで使う部品の仕様書 そのクラスのオブジェクトを作ると初めて部品になる 継承 などの仕組みにより カスタマイズが安全

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 12 回目クラス 今日の講義で学ぶ内容 クラスとは クラスの宣言と利用 クラスの応用 クラス クラスとは 異なる複数の型の変数を内部にもつ型です 直観的に表現すると int 型や double 型は 1 1 つの値を管理できます int 型の変数 配列型は 2 5 8 6 3 7 同じ型の複数の変数を管理できます 配列型の変数 ( 配列変数 ) クラスは double

More information

Java知識テスト問題

Java知識テスト問題 Java 知識テスト SDAS プログラマ(Java 編 ) 運営事務局 このテストは J2EE プログラマとしての Java の知識を評価するものです 問題は 30 問, テスト時間は J2EE 知識テストとあわせて 90 分です 問題は全て択一式です 選択肢から 1 つだけ選択してください 資料の閲覧は禁止です テストが終わり次第 答案用紙を提出していただいてかまいません テスト終了後, 本テストの内容を他の方に話さないでください

More information

Blojsom におけるクロスサイトスクリプティングの脆弱性

Blojsom におけるクロスサイトスクリプティングの脆弱性 Japan Computer Emergency Response Team Coordination Center 電子署名者 Japan Computer Emergency Response Team Coordination Center DN c=jp, st=tokyo, l=chiyoda-ku, email=office@jpcert.or.jp, o=japan Computer

More information

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String 目次 1.SqlCtl クラスリファレンス 2 (1)Connect() メソッド 2 (2)DisConnect() メソッド 3 (3)Commit() メソッド 3 (4)Rollback() メソッド 4 2.SqlStm クラスリファレンス 5 (1)Prepare() メソッド 5 (2)Execute() メソッド 6 (3)Release() メソッド 6 (4)Immediate()

More information

Microsoft PowerPoint - chap10_OOP.ppt

Microsoft PowerPoint - chap10_OOP.ppt プログラミング講義 Chapter 10: オブジェクト指向プログラミング (Object-Oriented Programming=OOP) の入り口の入り口の入り口 秋山英三 F1027 1 例 : 部屋のデータを扱う // Test.java の内容 public class Test { public static void main(string[] args) { double length1,

More information

PowerPoint Presentation

PowerPoint Presentation ソフトウェア演習 B GUI を持つ Java プログラムの 設計と実装 4.1 例題 :GUI を持った電卓を作ろう プロジェクトCalculator パッケージ名 :example ソースファイル : Calculator.java GUI.java EventProcessor.java 2 4.2 GUI とイベント処理 GUI の構成 :Swing GUI の場合 フレーム JFrame:

More information

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

コンピュータ中級B ~Javaプログラミング~  第3回 コンピュータと情報をやりとりするには? Copyright (C) Junko Shirogane, Waseda University 2016, All rights reserved. 1 プログラミング初級 (Java) 第 10 回オブジェクト指向って? 白銀純子 Copyright (C) Junko Shirogane, Waseda University 2016, All rights reserved. 2 第 10

More information

Java言語 第1回

Java言語 第1回 Java 言語 第 2 回簡単な Java プログラムの作成と実行 知的情報システム工学科 久保川淳司 kubokawa@me.it-hiroshima.ac.jp 簡単な Java プログラム Java プログラムのファイル名 Java プログラムのファイル名命名ルール ファイル名とクラス名は同じでなければならない HelloJava.java public class HelloJava { public

More information

Prog2_10th

Prog2_10th 2013 年 11 月 28 日 ( 木 ) 実施 ファイル操作とディレクトリ操作今回の授業では,Java 言語でのファイル操作とディレクトリ操作とについて学習する ファイル操作ファイル操作は,C 言語プログラミングで学んだように, 次の順序で行う 1) ストリームを開く 2) ストリームからの入力, ストリームへの出力 3) ストリームを閉じる Java 言語では, ファイル操作に関係するクラスが複数用意されている

More information

目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測

目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測 泡立ち法とその実装 計算機アルゴリズム特論 :2017 年度只木進一 目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測 Comparable インターフェイ ス クラスインスタンスが比較可能であることを示す Int compareto() メソッドを実装 Integer Double String などには実装済み public

More information

- i - org.t_engine.tenet.core.coreerrormessageexception org.t_engine.tenet.core Class CoreErrorMessageException java.lang.object +-java.lang.throwable +-java.lang.exception +-org.t_engine.tenet.core.coreexception

More information

例外(exception)とは何か

例外(exception)とは何か 第 1 週導入 マルチスレッドとは何か スレッドのライフサイクル クラスThreadのメソッド スレッドの作り方基本の使い方サンプル 演習 1 課題 1 スレッドとは何か (1) スレッド (thread): もともとは 糸 という意味 プログラムの実行単位のこと スレッドはプログラムの一部の機能を実行する 今まで作成したプログラムは処理を 1 つ 1 つ順番に実行していた シングルスレッド ( 仮に

More information

226

226 226 227 Main ClientThread Request Channel WorkerThread Channel startworkers takerequest requestqueue threadpool WorkerThread channel run Request tostring execute name number ClientThread channel random

More information

MySQL Connector/J における SQL インジェクションの脆弱性

MySQL Connector/J における SQL インジェクションの脆弱性 Japan Computer Emergency Response Team Coordination Center 電子署名者 Japan Computer Emergency Response Team Coordination Center DN c=jp, st=tokyo, l=chiyoda-ku, email=office@jpcert.or.jp, o=japan Computer

More information

ÿþ˜u#u·0¹0Æ0à0

ÿþ˜u#u·0¹0Æ0à0 10. パッケージ, 例外処理など 1. 例外処理プログラムが正常に期待される以外の処理が行われたときに, 例外が発生 ( エラーの情報の発生 ) する処理をプログラムにさせること例外に対応した処理をプログラムにさせること 例外もオブジェクトである 多数の例外がある ( 例外クラスが存在し, 例外にあわせてオブジェクトが生成される ) 例外処理の方法 try{ 1エラーが発生した場合, 例外オブジェクトが投げられる通常の処理

More information

intra-mart Accel Platform — 外部ソフトウェア接続モジュール 仕様書   第2版 2014-04-01  

intra-mart Accel Platform — 外部ソフトウェア接続モジュール 仕様書   第2版 2014-04-01   Copyright 2012 NTT DATA INTRAMART CORPORATION 1 Top 目 次 intra-mart Accel Platform 外 部 ソフトウェア 接 続 モジュール 仕 様 書 第 2 版 2014-04-01 改 訂 情 報 はじめに 本 書 の 目 的 対 象 読 者 本 書 の 構 成 概 要 外 部 ソフトウェア 接 続 モジュールとは 仕 様 外 部

More information

目 次 Java GUI 3 1 概要 クラス構成 ソースコード例 課題...7 i

目 次 Java GUI 3 1 概要 クラス構成 ソースコード例 課題...7 i Java GUI 3 Java GUI 3 - サンプルプログラム (1) - 2011-09-25 Version 1.00 K. Yanai 目 次 Java GUI 3 1 概要...1 2 クラス構成...2 3 ソースコード例...3 4 課題...7 i 1 概要まずは簡単なサンプルプログラムをみながら Java GUI の基本的なことを学びましょう 本サンプルは 図に示すようなひとつのメイン画面を使用します

More information

Microsoft Word - keisankigairon.ch doc

Microsoft Word - keisankigairon.ch doc 1000000100001010 1000001000001011 0100001100010010 1010001100001100 load %r1,10 load %r2,11 add %r3,%r1,%r2 store %r3,12 k = i + j ; = > (* 1 2 3 4 5 6 7 8 9 10) 3628800 DO 3 I=1,3 DO3I=1.3 DO3I 1.3

More information

PowerPoint Presentation

PowerPoint Presentation UML 2004 7 9 10 ... OOP UML 10 Copyright 2004 Akira HIRASAWA all rights reserved. 2 1. 2. 3. 4. UML 5. Copyright 2004 Akira HIRASAWA all rights reserved. 3 1..... Copyright 2004 Akira HIRASAWA all rights

More information

コーディング基準.PDF

コーディング基準.PDF Java Java Java Java.java.class 1 private public package import / //////////////////////////////////////////////////////////////////////////////// // // // // ////////////////////////////////////////////////////////////////////////////////

More information

VB.NETコーディング標準

VB.NETコーディング標準 (C) Copyright 2002 Java ( ) VB.NET C# AS-IS extremeprogramming-jp@objectclub.esm.co.jp bata@gold.ocn.ne.jp Copyright (c) 2000,2001 Eiwa System Management, Inc. Object Club Kenji Hiranabe02/09/26 Copyright

More information

Apache Commons の HttpClient におけるSSLサーバ証明書検証不備

Apache Commons の HttpClient におけるSSLサーバ証明書検証不備 Japan Computer Emergency Response Team Coordination Center 電子署名者 : Japan Computer Emergency Response Team Coordination Center DN : c=jp, st=tokyo, l=chiyoda-ku, email=office@jpcert.or.jp, o=japan Computer

More information

第2回講義

第2回講義 オブジェクト指向概論 第 2 講 クラスとカプセル化 立命館大学 情報理工学部 黄宏軒 1 オブジェクト指向の重要な概念 n クラス q 同じようなオブジェクトを まとめて 考える n 継承 ( インヘリタンス ) q 複数のクラスの 共通部分をまとめる n ポリモーフィズム ( 多態性 ) q 呼び出す側を 共通化 する n 複雑なものを簡単に 2 2.1 クラスとは何か n 類似のオブジェクトを

More information

Prog2_11th

Prog2_11th 2012 年 12 月 6 日 ( 木 ) 実施 GUIプログラミング今回及び次回の授業では,Java 言語での GUI プログラミングの基礎について学習する GUIツールキット Java 言語では,GUI プログラミング用のツールキットとして, 次のものが用意されている 1) AWT (Abstract Window Toolkit) 2) Swing AWT は Java 言語の当初から実装されていた標準の

More information

メディプロ1 Javaサーブレット補足資料.ppt

メディプロ1 Javaサーブレット補足資料.ppt メディアプロジェクト演習 1 Java サーブレット補足資料 CGI の基本 CGI と Java サーブレットの違い Java サーブレットの基本 インタラクティブな Web サイトとは Interactive q 対話 または 双方向 q クライアントとシステムが画面を通して対話を行う形式で操作を行っていく仕組み 利用用途 Web サイト, シミュレーションシステム, ゲームなど WWW = インタラクティブなメディア

More information

プログラミング基礎I(再)

プログラミング基礎I(再) 山 元 進 1 度 は 講 義 を 受 けたことを 念 頭 に 置 いて 講 義 遠 慮 なく 質 問 せよ 質 問 で 授 業 を 止 めたくないならば TA の 人 を 呼 んで 質 問 すると 良 い 前 期 講 義 の 欠 席 者 は 特 に 注 意 せよ 4 限 座 学 +5 限 演 習 出 席 をとる( 前 期 同 様 のシステム) 中 間 試 験 を 行 う 期 末 試 験 の 範 囲

More information

Java言語 第1回

Java言語 第1回 Java 言語 第 11 回ウインドウ型アプリケーション (2) 知的情報システム工学科 久保川淳司 kubokawa@me.it-hiroshima.ac.jp メニュー (1) メニューを組み込むときには,MenuBar オブジェクトに Menu オブジェクトを登録し, その Menu オブジェクトに MenuItem オブジェクトを登録する 2 つの Menu オブジェクト File New

More information

1/8 ページ Java 基礎文法最速マスター Java Javaの文法一覧です 他の言語をある程度知っている人はこれを読めばJavaの基礎をマスターしてJavaを書くことができるようになっています 簡易リファレンスとしても利用できると思いますので これは足りないと思うものがあれば教えてください 1. 基礎 class の作成プログラムはclassに記述します たとえばSampleという名前のclassを作る場合

More information

アルゴリズムとデータ構造1

アルゴリズムとデータ構造1 1 200972 (sakai.keiichi@kochi sakai.keiichi@kochi-tech.ac.jp) http://www.info.kochi ://www.info.kochi-tech.ac.jp/k1sakai/lecture/alg/2009/index.html 29 20 32 14 24 30 48 7 19 21 31 Object public class

More information

MyEventHandler actionhandler = new MyEventHandler(); m.addeventhandler(actionevent.any, actionhandler); // レイアウト BorderPane を生成 / 設定します BorderPane bp

MyEventHandler actionhandler = new MyEventHandler(); m.addeventhandler(actionevent.any, actionhandler); // レイアウト BorderPane を生成 / 設定します BorderPane bp HCI プログラミング 9 回目メニューとポップアップメニュー 今日の講義で学ぶ内容 メニューの利用 メニューのカスタマイズ ポップアップメニュー メニューの利用 1 メニューを配置してみましょう メニューを用いることにより 欲しい機能をすばやく呼び出すことができます ソースファイル名 :Sample9_1.java // HP よりインポート文をここへ貼り付けてください // メニューの配置 public

More information

5 p Point int Java p Point Point p; p = new Point(); Point instance, p Point int 2 Point Point p = new Point(); p.x = 1; p.y = 2;

5 p Point int Java p Point Point p; p = new Point(); Point instance, p Point int 2 Point Point p = new Point(); p.x = 1; p.y = 2; 5 p.1 5 JPanel (toy example) 5.1 2 extends : Object java.lang.object extends... extends Object Point.java 1 public class Point { // public int x; public int y; Point x y 5.1.1, 5 p.2 5 5.2 Point int Java

More information

Exam : 1z0-809 日本語 (JPN) Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO 1 / 8 Get Latest & Valid 1z0-809-JPN Exam's Question and Answe

Exam : 1z0-809 日本語 (JPN) Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO 1 / 8 Get Latest & Valid 1z0-809-JPN Exam's Question and Answe Actual4Test http://www.actual4test.com Actual4test - actual test exam dumps-pass for IT exams Exam : 1z0-809 日本語 (JPN) Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO 1 / 8 Get Latest &

More information

Exam : 1z1-809 日本語 (JPN) Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO 1 / 8 Get Latest & Valid 1z1-809-JPN Exam's Question and Answe

Exam : 1z1-809 日本語 (JPN) Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO 1 / 8 Get Latest & Valid 1z1-809-JPN Exam's Question and Answe ITdumpsFree http://www.itdumpsfree.com Get free valid exam dumps and pass your exam test with confidence Exam : 1z1-809 日本語 (JPN) Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO 1 / 8 Get

More information

Exam : 1z0-809 日本語 (JPN) Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO 1 / 8 Get Latest & Valid 1z0-809-JPN Exam's Question and Answe

Exam : 1z0-809 日本語 (JPN) Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO 1 / 8 Get Latest & Valid 1z0-809-JPN Exam's Question and Answe BraindumpsIT http://www.braindumpsit.com BraindumpsIT - IT Certification Company provides Braindumps pdf! Exam : 1z0-809 日本語 (JPN) Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO 1 / 8 Get

More information

2

2 Yoshio Terada Java Evangelist http://yoshio3.com, Twitter : @yoshioterada 1 2 3 4 5 1996 6 JDK1.0 Thread Runnable 1997 1998 JDK1.1 J2SE1.2 2000 2002 J2SE 1.3 J2SE 1.4 2004 2006 Java SE 6 JSR-166x Java

More information

About me! 足立昌彦 / +Masahiko.Adachi )! バイドゥ株式会社技術顧問 (Simeji)! 株式会社カブク Co-Founder! Google Developer Expert (Android)

About me! 足立昌彦 / +Masahiko.Adachi )! バイドゥ株式会社技術顧問 (Simeji)! 株式会社カブク Co-Founder! Google Developer Expert (Android) Discover Support Library Masahiko Adachi @adamrokcer / +Masahiko.Adachi 28 th Sep, 2013 About me! 足立昌彦 ( @adamrocker / +Masahiko.Adachi )! バイドゥ株式会社技術顧問 (Simeji)! 株式会社カブク Co-Founder! Google Developer Expert

More information

Microsoft PowerPoint - java13bb.ppt

Microsoft PowerPoint - java13bb.ppt 平 成 25 年 度 静 岡 県 立 大 学 公 開 講 座 Javaで 学 ぶプログラミング 基 礎 第 1 回 Java 言 語 の 概 要 第 2 回 Javaプログラミングの 基 礎 第 3 回 コンソール アプリケーション 作 成 第 4 回 Androidアプリケーション 作 成 JavaとJava 仮 想 マシン Javaとは Sun Microsystems によって 開 発 された

More information

Java言語 第1回

Java言語 第1回 Java 言語 第 10 回ウインドウ型アプリケーション (1) 知的情報システム工学科 久保川淳司 kubokawa@me.it-hiroshima.ac.jp 前回の課題 (1) ボーダーレイアウト, グリッドレイアウト, パネルを使用して, 電卓風のボタンを実現する BorderLayout で NORTH, CENTER, SOUTH に分割 NORTHにはテキストフィールドを設定 CENTERにはパネルを使って9つのボタンを設定

More information

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value = Part2-1-3 Java (*) (*).class Java public static final 1 class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value

More information

著 作 権 このドキュメントに 記 載 されている 情 報 は このドキュメントの 発 行 時 点 におけるマクロソフトの 見 解 を 反 映 したものです マクロソフトは 市 場 の 変 化 に 対 応 する 必 要 があるため このドキュメントの 内 容 に 関 する 責 任 を 問 われないも

著 作 権 このドキュメントに 記 載 されている 情 報 は このドキュメントの 発 行 時 点 におけるマクロソフトの 見 解 を 反 映 したものです マクロソフトは 市 場 の 変 化 に 対 応 する 必 要 があるため このドキュメントの 内 容 に 関 する 責 任 を 問 われないも Visual Studio Do-It-Yourself シリーズ 第 12 回 キャッシュ 著 作 権 このドキュメントに 記 載 されている 情 報 は このドキュメントの 発 行 時 点 におけるマクロソフトの 見 解 を 反 映 したものです マクロソフトは 市 場 の 変 化 に 対 応 する 必 要 があるため このドキュメントの 内 容 に 関 する 責 任 を 問 われないものとします

More information

お知らせ

お知らせ 続 デザインパターン入門 1. はじめに 前回 デザインパターンとは何か? を学びました なんか難しそう とか エラい人 のためのものでしょ? って思う人も多いかもしれませんが 実はそんなことないですよ ー という話もしましたね デザインパターンとは プログラムのお手本集 であり 実は知らず知らずのうちに使っ ているもの オブジェクト指向の話そのもののパターンもある といったお話もしました また コーディングの経験不足を補うもの

More information

プログラミング入門1

プログラミング入門1 プログラミング入門 1 第 7 回 メソッド (1) 授業開始前に自己点検 前回までの必須課題はすべてできていますか 前回までの学習項目であいまいな所はありませんか 他人による評価でなく 自身による評価ができるということが自立するということです 自立なしには大学での勉学は成り立ちません Java 1 第 7 回 2 前回のテーマ switch 文 主に break 文とともに 条件分岐のもうひとつのやり方

More information

試験問題に記載されている会社名又は製品名は, それぞれ各社の商標又は登録商標です なお, 試験問題では, 及び TM を明記していません

試験問題に記載されている会社名又は製品名は, それぞれ各社の商標又は登録商標です なお, 試験問題では, 及び TM を明記していません サンプル問題 Java TM プログラミング能力認定試験 2 級 解答時における注意事項 1. 次の表に従って解答してください 問題番号問 1~ 問 7 選択方法 試験時間 7 問必須 90 分 2.HB の黒鉛筆を使用してください 訂正の場合は, あとが残らないように消しゴムできれいに消し, 消しくずを残さないでください 3. 解答用紙の所定の欄に, 級種, 会場コード, 受験番号を記入しマークしてください

More information

アンドロイドアプリ開発

アンドロイドアプリ開発 アプリケーション 制 作 において 使 用 しているクラスやメソッドの 効 果 の 説 明 や その 利 用 例 を 記 述 しています 藤 本 大 樹 2013/10/17 アンドロイドアプリ 開 発 における 中 核 を 担 っているのは webview である. webview ( Added in API level 1 ) ってなに? 構 成 java.lang.object >> android.view.view

More information

17章 プログラムの提供

17章 プログラムの提供 三谷純 データ構造 コレクション とは 複数のデータをひとまとめにするクラス ArrayList 以外のコレクション TreeSet 要素を常にソートされた状態に保ち 重複を自動的に排除する HashMap キーと値のペアを要素として保持する LinkedList ArrayList とほぼ同じだが リスト中の任意の位置に要素を挿入 削除するといった処理のパフォーマンスが若干高い HashSet

More information

Sort-of-List-Map(A)

Sort-of-List-Map(A) Java オブジェクト集合のソートとラムダ式の初歩 山本富士男 2016-4-23 この資料は Java での コレクション Coections と ジェネリクス Generics に関してさらに深く学ぶためのものです 以下の事項を学びます レポート課題が 5 ページの末尾にあります 名称のない内部クラスである 匿名クラス を使う 一般のオブジェクトの集合 (List や Map など ) を何らかの基準でソートする

More information

グラフを表すデータ構造 Javaでの実装

グラフを表すデータ構造 Javaでの実装 グラフを表すデータ構造 JAVA での実装 なぜ JAVA を使うか グラフの実装 頂点 弧及びその関連を記述する 頂点の数 弧の数を柔軟に変える必要あり グラフ探索など リンクをたどる必要あり オブジェクト指向言語が向いている オブジェクト数の柔軟な変更 再帰的関数 メソッド リストなどの豊富なライブラリ java.util.vector など 使い易い開発環境 プロジェクト管理 クラス管理 GUI

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 3 回目変数 今日の講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能です 変数は 型 ( データ型ともいいます ) と識別子をもちます 2 型 変数に記憶できる値の種類です型は 値の種類に応じて次の 8 種類があり これを基本型といいます 基本型値の種類値の範囲または例 boolean 真偽値 true または

More information

ALG2012-F.ppt

ALG2012-F.ppt 2012 7 26 (sakai.keiichi@kochi-tech.ac.jp) http://www.info.kochi-tech.ac.jp/k1sakai/lecture/alg/2012/index.html 5 2 3 4 - 5 .. 6 - 7 public class KnapsackBB { // 0-1 private static double maxsofar; private

More information

Microsoft PowerPoint - 4-MySQL50_JDBC_failover.ppt

Microsoft PowerPoint - 4-MySQL50_JDBC_failover.ppt MySQL5.0 JDBC ドライバフェイルオーバ機能 日本ヒューレットパッカード株式会社 オープンソース コンピテンシ センター 2006 年 8 月 31 日 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice 目次

More information

8 if switch for while do while 2

8 if switch for while do while 2 (Basic Theory of Information Processing) ( ) if for while break continue 1 8 if switch for while do while 2 8.1 if (p.52) 8.1.1 if 1 if ( ) 2; 3 1 true 2 3 false 2 3 3 8.1.2 if-else (p.54) if ( ) 1; else

More information

Java言語 第1回

Java言語 第1回 Java 言 語 第 6 回 Javaアプレット 知 的 情 報 システム 工 学 科 久 保 川 淳 司 kubokawa@me.it-hiroshima.ac.jp アプレットの 概 要 Javaアプレットプログラムの 動 作 Javaアプレット ***.class htmlファイル ***.html ブラウザ(IE Firefox 等 ) Java VM Webサーバ ローカルファイル クライアントコンピュータ

More information

Animals サンプル Step 2 張り付けた動物の上をクリックすると それぞれの鳴き声で鳴く < 例外について > エラーや 通常の処理の中では起こってはいけない事象のことを例外といい 例外が起こる可能性がある場合はその対応処理を記述しなければならない 一般に java.lang パッケージの

Animals サンプル Step 2 張り付けた動物の上をクリックすると それぞれの鳴き声で鳴く < 例外について > エラーや 通常の処理の中では起こってはいけない事象のことを例外といい 例外が起こる可能性がある場合はその対応処理を記述しなければならない 一般に java.lang パッケージの Step2 を始める前に 音声が鳴るかどうかを確かめます 手順 1. 共有フォルダにある SoundTest.jar を適当な場所にコピー 2.PC のミュートを外す 3. ディスプレイのボリュームボタンを 0 以上にする 4. コピーした SoundTest.jar をダブルクリック 5. サウンド再生 1 をクリックしてみる 6.5 で鳴らなかったら サウンド再生 2 をクリックしてみる 7.6

More information

1

1 2 章 1 整数を一つ読み込み, その階乗を計算する RAM プログラムを書け f (n) = n! ( n 0) 何でもよい ( n

More information

データ構造とアルゴリズム論

データ構造とアルゴリズム論 第 10 章.MySQL のインストールと Java プログラムからの 接 続 学 習 のねらい 1 データベース 管 理 ソフトである MySQL をインストールする 2 MySQL 上 のデータベースに Java プログラムから 接 続 できることを 確 認 する < 先 週 の 復 習 > 講 義 で 示 された 基 礎 課 題 10-1 に 解 答 して 下 さい 10-1.MySQL のインストール

More information

BlueJ 2.0.1 BlueJ 2.0.x Michael Kölling Mærsk Institute University of Southern Denmark Toin University of Yokohama Alberto Palacios Pawlovsky 17 4 4 3 1 5 1.1 BlueJ.....................................

More information

エンドポイント WebSocket API ではクライアント サーバともに javax.websocket.endpoint クラスから派生してエンドポイントのクラスを定義します そして onopen() onclose() および onerror() をオーバーライドし それぞれ接続時 切断時およ

エンドポイント WebSocket API ではクライアント サーバともに javax.websocket.endpoint クラスから派生してエンドポイントのクラスを定義します そして onopen() onclose() および onerror() をオーバーライドし それぞれ接続時 切断時およ Java API for WebSocket 2013 年 9 月 湊隆行 はじめに 2013 年 6 月 12 日に Java EE 7 が発表され 新機能の 1 つとして Java API for WebSocket が追加されました HTTP プロトコルは半二重のステートレスな接続であり Ajax(XMLHTTPRequest) を利用した通信であっても 通信するたびに HTTP 接続 メッセージ交換

More information

// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new Ma

// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new Ma HOW DO I ソケットで通信を行うには ここでは以下の手順で説明します ソケットクライアントを作成するデータを送信するデータを受信するソケットクライアントを使用する ソケットクライアントを作成する 1. このコンテンツのサポートファイルの Start フォルダから "UDPClient" プロジェクトを開きます 2. クライアントを動作させるため コンピューターで簡易 TCP/IP サービスを有効にする必要があります

More information

NFCライブラリマニュアル

NFCライブラリマニュアル abc SAM ライブラリマニュアル このマニュアルは SAM ライブラリの仕様について記載します Ver. 1.08 ご注意 このソフトウェアおよびマニュアルの 一部または全部を無断で使用 複製することはできません このソフトウェアおよびマニュアルは 本製品の使用許諾契約書のもとでのみ使用することができます このソフトウェアおよびマニュアルを運用した結果の影響については 一切の責任を負いかねますのでご了承ください

More information

プログラミング入門1

プログラミング入門1 プログラミング入門 1 第 3 回 条件分岐 授業開始前に ログオンして待機して ください Java 1 第 3 回 2 不要ファイルの掃除 前回デスクトップにファイルをダウンロードした場合 次のものを削除してください week02.zip デスクトップにファイルを置きすぎると コンピュータをシャットダウンできなくなります Java 1 第 3 回 3 授業を始めます 前回の課題は うまくできましたか?

More information

vol.30.}...`.X...b.h

vol.30.}...`.X...b.h Manabu Nakamura mondo@its.hiroshima-cu.ac.jp q w e e e for (int i = 0; i < N; i++) { calculators[i] = new Calculator(); calculators[i].run(); 70 JAVA PRESS Vol.30 import java.math.biginteger; public class

More information

Programming-C-3.key

Programming-C-3.key プログラミングC 第3回 Stringクラス (クラスライブラリの使い方) インスタン スの配列 白石路雄 Player public class Player{ private String name; private int hp; private Sword sword; name hp Player 2 public class Player{...

More information

プログラミング入門1

プログラミング入門1 プログラミング入門 1 第 4 回 繰り返し (for ループ ) 授業開始前に ログオンして待機して ください Java 1 第 4 回 2 不要ファイルの掃除 前回デスクトップにファイルをダウンロードした場合 次のものを削除してください week03.zip デスクトップにファイルを置きすぎると コンピュータをシャットダウンできなくなります Java 1 第 4 回 3 授業を始めます 前回の課題は

More information

Java Quick, Nishio 3 1 List 1 1.1........................... 1 1.2.......................... 2 1.3 1.................. 3 1.4 2.................. 4 1.5 1...................... 6 1.6 2......................

More information

マルチ OS エンジンを使用した固定記憶域の操作 (テクノロジー・プレビュー) - パート 2

マルチ OS エンジンを使用した固定記憶域の操作 (テクノロジー・プレビュー) - パート 2 マルチ OS エンジンを使用した固定記憶域の操作 ( テクノロジー プレビュー ) - パート 2 この記事は インテル デベロッパー ゾーンに公開されている Working with persistent storage using Multi-OS Engine (Technology Preview) - Part 2 の日本語参考訳です この記事は 固定記憶域の操作に関するチュートリアルのパート

More information

10K pdf

10K pdf #1 #2 Java class Circle { double x; // x double y; // y double radius; // void set(double tx, double ty){ x = tx; y = ty; void set(double tx, double ty, double r) { x = tx; y = ty; radius = r; // Circle

More information

Mobile Access簡易設定ガイド

Mobile Access簡易設定ガイド Mobile Access Software Blade 設定ガイド チェック ポイント ソフトウェア テクノロジーズ ( 株 ) アジェンダ 1 SSL VPN ポータルの設定 2 3 4 Web アプリケーションの追加 Check Point Mobile for iphone/android の設定 Check Point Mobile for iphone/android の利用 2 変更履歴

More information

ソフトウェアエンジニアリング - バグ #20

ソフトウェアエンジニアリング - バグ #20 ソフトウェアエンジニアリング - バグ #20 Jenkins Warnings pluginで 警 告 が 拾 えない 2014/09/09 01:17 - 高 橋 徹 ステータス: 進 行 中 開 始 日 : 2014/09/09 優 先 度 : 通 常 期 日 : 担 当 者 : 高 橋 徹 進 捗 率 : 50% カテゴリ: 予 定 工 数 : 0.00 時 間 対 象 バージョン: 作 業

More information

I 3 p.2 3 Java 3.1.2 AddTime.java public class AddTime extends JApplet { int hour1, minute1, hour2, minute2; public void init() { hour1 = Integer.pars

I 3 p.2 3 Java 3.1.2 AddTime.java public class AddTime extends JApplet { int hour1, minute1, hour2, minute2; public void init() { hour1 = Integer.pars I 3 p.1 3 Java Java Java try catch C Java if for while C 3.1 boolean Java if C if ( ) 1 if ( ) 1 else 2 1 1 2 2 1, 2 { 2 boolean Graphics draw3drect fill3drect C int C OK while (1)... 3.1.1 int boolean...............

More information

1: JX-model XML File Package Import Class Intf Ctor Method SInit Field Param Local ExtdOpt ImplOpt ThrwOpt Members QName Type Stmt Label Expr ident li

1: JX-model XML File Package Import Class Intf Ctor Method SInit Field Param Local ExtdOpt ImplOpt ThrwOpt Members QName Type Stmt Label Expr ident li Sapid JX-model ver. 1.3.13 2003 2 27 1 JX-model Java XML JX-model JX-model Java (Java 2 ver. 1.4) 20 7 JX-model 1 ^ $ Child nodes JX-model / ( ) JX-model @ @id @sort 1.1 File File JX-model XML /Package,

More information

Javaによるアルゴリズムとデータ構造

Javaによるアルゴリズムとデータ構造 1 algorithm List 1-1 a, b, c List 1-1 // import java.util.scanner; class Max3 { public static void main(string[] args) { Scanner stdin = new Scanner(System.in); int a, b, c; int max; // Chap01/Max3.java

More information

Assignment9_1.java

Assignment9_1.java Assignment9_1.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

More information

TenArtni Ninja-VA

TenArtni Ninja-VA Ninja-VA with WebReportCafe の巻 サイオステクノロジー株式会社 Ninja-VA with WebReportCafe 概要 このドキュメントでは Ninja-VAの姉妹製品である 帳票作成ソフト WebReportCafe Engine との連携方法についてご説明します WebReportCafe Engine は帳票を出力するためのライブラリ製品です WebReportCafe

More information

CONTENTS 0 1 2 3 4 5 6 7 8 9 10 0 Java10 BaseFrame.java 1 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class BaseFrame extends JFrame { public BaseFrame(String title) { super(title);

More information

10/8 Finder,, 1 1. Finder MAC OS X 2. ( ) MAC OS X Java ( ) 3. MAC OS X Java ( ) / 10

10/8 Finder,, 1 1. Finder MAC OS X 2. ( ) MAC OS X Java ( ) 3. MAC OS X Java ( ) / 10 10/8 2015-10-08 URL : http://webct.kyushu-u.ac.jp, 10/8 1 / 10 10/8 Finder,, 1 1. Finder MAC OS X 2. ( ) MAC OS X Java ( ) 3. MAC OS X Java ( ) 1. 30 2 / 10 10/8 Finder 1 Figure : : Apple.com 2, 3 / 10

More information

% ldapsearch -H ldaps://pub-ldap.itc.nagoya-u.ac.jp:1025 \ -b o=ldap-test "(objectclass=*)" -H ldapspubldap.itc.nagoya-u.ac.jp1025 -H ldap://pub-ldap.

% ldapsearch -H ldaps://pub-ldap.itc.nagoya-u.ac.jp:1025 \ -b o=ldap-test (objectclass=*) -H ldapspubldap.itc.nagoya-u.ac.jp1025 -H ldap://pub-ldap. % ldapsearch -H ldaps://pub-ldap.itc.nagoya-u.ac.jp:1025 \ -b o=ldap-test "(objectclass=*)" -H ldapspubldap.itc.nagoya-u.ac.jp1025 -H ldap://pub-ldap.itc.nagoya-u.ac.jp:1024 -Z -ZZ % ldapsearch -Z -h pub-ldap.itc.nagoya-u.ac.jp

More information

非推奨メソッド等の掲載について

非推奨メソッド等の掲載について 非推奨メソッド等の掲載について スマートにプログラミング Android 入門編第 2 版 SDK 4/2.3 対応 (2012 年 6 月 11 日発行第 2 版第 1 刷 ) において 一部現在では非推奨となったレイアウト及びメソッドの利用が掲載されておりました お詫びと共に補足 訂正させて頂きます 下記にその対応について示します 株式会社リックテレコム書籍出版部 ( 情報更新日 :2012.8.14)

More information

HTML5 Security & Headers- X-Crawling-Response-Header-

HTML5 Security & Headers- X-Crawling-Response-Header- Japan Computer Emergency Response Team Coordination Center 電子署名者 : Japan Computer Emergency Response Team Coordination Center DN : c=jp, st=tokyo, l=chiyoda-ku, email=office@jpcert.or.jp, o=japan Computer

More information

WagbySpec7

WagbySpec7 3 WEB ブラウザ上 で業務データを扱 うことができます 資 格 名 取 得 日 備 考 1 2 4 3 35 業務データ間の 関連 も自由に 設定できます 絞 込 項 目 名 営 業 担 当 部 署 (dept) 参 照 先 項 目 名 ( 社 員 の) 部 署 (dept) 46 業務データの集計 処理を行うことが できます

More information

ASP.NET 2.0 Provider Model 概要

ASP.NET 2.0 Provider Model 概要 ASP.NET 2.0 Provider Model 概要 Agenda ASP.NET 2.0 Provider Model とは カスタムプロバイダの実装 まとめ ASP.NET 2.0 Provider Model とは ASP.NET 2.0 のインフラストラクチャ データストアへのアクセスをアプリケーションロジックから分離 データストアの変更に柔軟に対応 Strategy パターン デザインパターンによる意識の共通化

More information

前ページからの続き // テキストボックス02 id 属性で取得 // id 属性で取得する場合は一意に決まるので 何番目かの指定は不要 var textbox02elem = document.getelementbyid("text_box02_id"); if ("001" == statee

前ページからの続き // テキストボックス02 id 属性で取得 // id 属性で取得する場合は一意に決まるので 何番目かの指定は不要 var textbox02elem = document.getelementbyid(text_box02_id); if (001 == statee 全体のヒント 1. テキストボックスの制御 1.1. 日付入力日付の入力ボックスは フォーカスが入った時にスラッショを消し フォーカスが他の項目等に移るとスラッシュが加わるようにする オンフォーカス 20100101 オフフォーカス 2010/01/01 1.1.1 オンフォーカス時にスラッシュを消す入力項目のスラッシュを消すには include/function.js ファイル内の var delslash

More information

以 下 の 事 項 は 弊 社 の 一 般 的 な 製 品 の 方 向 性 に 関 する 概 要 を 説 明 するものです また 情 報 提 供 を 唯 一 の 目 的 とするものであり いかなる 契 約 にも 組 み 込 むことは できません 以 下 の 事 項 は マテリアルやコード 機 能 を

以 下 の 事 項 は 弊 社 の 一 般 的 な 製 品 の 方 向 性 に 関 する 概 要 を 説 明 するものです また 情 報 提 供 を 唯 一 の 目 的 とするものであり いかなる 契 約 にも 組 み 込 むことは できません 以 下 の 事 項 は マテリアルやコード 機 能 を Oracle Direct Seminar Javaプログラマ 資 格 ポイント 解 説 日 本 オラクル 株 式 会 社 以 下 の 事 項 は 弊 社 の 一 般 的 な 製 品 の 方 向 性 に 関 する 概 要 を 説 明 するものです また 情 報 提 供 を 唯 一 の 目 的 とするものであり いかなる 契 約 にも 組 み 込 むことは

More information

Microsoft PowerPoint - object.ppt

Microsoft PowerPoint - object.ppt 知能情報処理北海道大学情報工学科 AI プログラミング Java とオブジェクト指向プログラミングの基礎 知能情報処理 の授業では, 人工知能のさまざまなアルゴリズムを学ぶことになるが, 可能ならばそれを実際のプログラミング言語で実装してみることが大事である. しかし, この授業では, 時間の関係でそこまで扱うことができないので, 興味のある人が将来, 自立的に実装できるように, 最小限のプログラミングの知識を今回の授業で学ぶ.

More information

踏み台にされるWebサイト~いわゆるGumblarの攻撃手法の分析調査~

踏み台にされるWebサイト~いわゆるGumblarの攻撃手法の分析調査~ Japan Computer Emergency Response Team Coordination Center 電子署名者 : Japan Computer Emergency Response Team Coordination Center DN : c=jp, st=tokyo, l=chiyoda-ku, email=office@jpcert.or.jp, o=japan Computer

More information

10th Developer Camp - B6

10th Developer Camp - B6 B6 Rubyセッション Rubyコーディング 作 法 - きっと 役 に 立 つコーディング 規 約 株 式 会 社 ネットワーク 応 用 通 信 研 究 所 小 倉 正 充 アジェンダ ネットワーク 応 用 通 信 研 究 所 について コーディングルールについて コーディングルールの 解 説 2 1 ネットワーク 応 用 通 信 研 究 所 について ネットワーク 応 用 通 信 研 究 所

More information

Java, Delphi, C++Builderユーザのためのメモリリーク, ボトルネックの検出手順

Java, Delphi, C++Builderユーザのためのメモリリーク, ボトルネックの検出手順 チュートリアルセッション #2 Java, Delphi, C++Builder ユーザのためのメモリリーク, ボトルネックの検出手順 講師紹介 高橋智宏 1973 年生まれ 京都大学法学部卒 エバンジェリスト兼コンサルタント兼トレーナー 学生の時購入したTurboC++2ndからの熱狂的なボーランドファン 参加しているメーリングリストやコミュニティ JBuilder ML,C++Builder ML,Delphi

More information

design_pattern.key

design_pattern.key #include void init(int* ary, int size) for (int i = 0; i < size; ++i) ary[i] = i; void mul10(int* ary, int size) for (int i = 0; i < size; ++i) ary[i] *= 10; void dispary(int* ary, int size)

More information

Objective-C Objective-C C Toolbox API Cocoa Objective-C Java Carbon API C API Objective-C Java Pure Java Java AppleScript Java Objective-C Project Bui

Objective-C Objective-C C Toolbox API Cocoa Objective-C Java Carbon API C API Objective-C Java Pure Java Java AppleScript Java Objective-C Project Bui AppleScript Studio AppleScript AppleScript Stduio Objective-C Cocoa Cocoa Objective-C Java AppleScript AppleScript Studio Application Suite call method call method [of class ] [of object ] [with parameter

More information

Load-time weaveingで広がるAOPの可能性

Load-time weaveingで広がるAOPの可能性 Load-time weavingで 広 がるAOPの 可 能 性 1 自 己 紹 介 名 前 : 木 村 聡 (きむら さとし) Seasarプロジェクトコミッタ: S2Struts S2Mai 舞 姫 仕 事 ( 株 )フルネス フレームワーク 自 動 生 成 ツール 2 これまで 書 いたものとか 書 籍 : Eclipseで 学 ぶはじめてのJava Seasar 入 門 ~はじめてのDI&AOP~

More information

FileMaker 15 ODBC と JDBC ガイド

FileMaker 15 ODBC と JDBC ガイド FileMaker 15 ODBC JDBC 2004-2016 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker FileMaker Go FileMaker, Inc. FileMaker WebDirect FileMaker,

More information

4. 環境変数の設定実行にあたり 次のように環境変数を設定する必要があります 1)SJIS ロケールの指定コマンド例 )export LANG=ja_JP.sjis 2)MQ 環境の指定コマンド例 ). /opt/mqm/bin/setmqenv s 3)COBOL 実行環境の指定コマンド例 ).

4. 環境変数の設定実行にあたり 次のように環境変数を設定する必要があります 1)SJIS ロケールの指定コマンド例 )export LANG=ja_JP.sjis 2)MQ 環境の指定コマンド例 ). /opt/mqm/bin/setmqenv s 3)COBOL 実行環境の指定コマンド例 ). Micro Focus Enterprise Developer チュートリアル 1. 目的 本チュートリアルでは CICS から入力したメッセージを MQ へ連携する方法の習得を目的としています 2. 前提 使用した OS : Red Hat Enterprise Linux Server release 6.5 x64 使用した WebSphere MQ : IBM WebSphere MQ 7.5.0.1

More information

How to Use the PowerPoint Template

How to Use the PowerPoint Template Lambda: A Peek Under The Hood 日 本 オラクル 株 式 会 社 Java SE サステイニング エンジニアリング バック デイビッド Java Day Tokyo 2015 2015 年 4 月 8 日 以 下 の 事 項 は 弊 社 の 一 般 的 な 製 品 の 方 向 性 に 関 する 概 要 を 説 明 するものです また 情 報 提 供 を 唯 一 の 目 的

More information