Java / 応用
サンプル サーバ側 * 実行しておく NioServer.java import java.nio.channels.ServerSocketChannel; import java.nio.channels.SocketChannel; import java.nio.channels.Selector; import java.nio.channels.SelectionKey; import java.nio.ByteBuffer; imp…
■ サンプル クライアントサイド ChatClient.java import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; public class ChatClient { // ホスト名 private static final String HOST_NAME …
JSSEとは * SSLクライアントおよびサーバが使用するSSLプロトコルを扱うための標準API 主なパッケージ構成 [1] javax.net.ssl => JSSE APIのコアクラスとインターフェイスセットが含まれる [2] javax.security.cert => 基本的な証明書の管理機能をサポート …
* 調査中 * SSLEngine を使用する必要があるらしい 参考文献 http://e-class.center.yuge.ac.jp/jdk_docs/ja/technotes/guides/security/jsse/JSSERefGuide.html#SSLSocket http://cs.fit.edu/~ryan/java/programs/nio/sun_servers/ChannelIOSecure.java htt…
ブロッキングモード / ノンブロッキングモード ブロッキングモード * 読み込みや書き込みを完了するまで待つ(=制御をブロックする) API * java.net.ServerSocket ノンブロッキングモード * 今できる処理(read/write)して、すぐに制御が戻る * ノンブロッキ…
サンプル SampleSSLConnectHelper.java import java.security.cert.CertificateException; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import j…
■ 初めに http://blogs.yahoo.co.jp/dk521123/34689533.html でも使用した ProcessBuilder を改めて、まとめる。 サンプル 例1 : バッチをJavaから実行する 実行バッチ:./etc/hello.bat (バッチ作成は、以下の関連記事を参照のこと) http://blogs.yahoo.co.…
用語整理 JMX * Java Management Extensions * 外部からJava アプリケーションをモニタおよび管理するための仕組み MBean * Management Bean * JMXでアクセスする管理用オブジェクト MBeanServer * 外部との通信を行うコンポーネント 主なクラス・メソッド *…
コールバック関数とは * あるクラスに、コールバックしてもらう関数を教えて、その関数が呼び出されるのを待つこと。 Java での実装方法 * 3つの方法があるかと。 [1] 自作インターフェースで使って、実装する [2] CountDownLatch を使って、実装する [3] Fu…
Stream APIの主なメソッド filter * 条件に合致した要素だけ抜き出す map * 要素全てに同じ処理を行い、その結果で新たにリストを作る min / max * 最小 / 最大に合致した要素だけ抜き出す sorted * ソートする サンプル Person.java import java.sql.Timest…
■ ラムダ式 * Java1.8から導入できる ■ 構文 [1] 引数1つ式1つ 引数 -> 式 [2] 引数2つ以上、式1つ (引数1[,引数2]・・・) -> 式 [3] 引数1つ式複数 引数 -> { 処理 return 値; } [4] 引数2つ以上式複数 (引数1[,引数2]・・・) -> { 処理 return 値; } ■ サ…
準備 Eclipse を使っている場合 * 普通にやると「sun.misc.BASE64Encoder」などで、以下「エラー内容」のようなエラーになる エラー内容 Access restriction: The type BASE64Encoder is not accessible due to restriction on required library C:\Program …
Javaのメモリを理解するためのポイント * ガベージ・コレクション(GC)は、時間が掛かる => 時間が掛かるので、効率よくやるようにメモリ構造を工夫してある ガベージ・コレクション(GC) * 以下の関連記事を参照のこと。 https://blogs.yahoo.co.jp/dk521123/…
■ サンプル ZipHelper.java import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStrea…
■ JVMオプション -XX:+HeapDumpOnOutOfMemoryError `#`オプション説明 1-XX:+HeapDumpOnOutOfMemoryErrorOutOfMemoryErrorが発生したときにダンプファイルを出力 補足:Tomcatでの指定 * CATALINA_OPTS に指定する => 具体的には、$CATALINA_HOME/bin/setenv…
準備 * 証明書作成は、以下の関連記事を参照のこと http://blogs.yahoo.co.jp/dk521123/33788938.html サンプル http://blogs.yahoo.co.jp/dk521123/33075148.html をベースに修正した。 サーバ側 import java.io.BufferedReader; import java.io.IOExceptio…
サンプル Server側 SampleSoketServer.java package com.soket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; publ…
初めに * main()の呼び出しより前に実行されるメソッドを指定できることを利用する (premainメソッド) 作成手順 [1] Eclipseで、サンプルの「ObjectSizeFetcher.java」を参考にプログラムを書く [2] Eclipseで、「build.xml」を作成する(内容はサンプルの…
クライアント側IPアドレスを取得 サンプル MessageContext context = MessageContext.getCurrentMessageContext(); String ip = context.getProperty(MessageContext.REMOTE_ADDR).toString(); 参考文献 http://d.hatena.ne.jp/kokuzawa/20091007/1254880496…
■ PCリソース情報 【1】 ディスク容量 【2】 JVMメモリ容量 【3】 CPU情報 【1】 ディスク容量 * Windowsの場合「new File("C:/")」、Linuxの場合「new File("/")」を指定し、 getTotalSpace() / getFreeSpace() で取得できる サンプル import java.io.File;…