ブックマーク / www.ne.jp (21)

  • Java外部プロセス起動メモ(Hishidama's Java Process Memo)

    Process プロセス終了待ち データ読み込み 後から読むとNG 先に読んでもNG 全データ廃棄 スレッド化 [/2015-04-18] リダイレクション クローズ [2010-12-26] プロセス強制終了(タイムアウト) Timer使用 [/2014-03-19] exitValue利用 [/2014-03-19] isAlive利用 [2014-03-19] Future利用 [2014-03-18] タイムアウト付きwaitFor [2014-03-19] Runtime JDK1.4までは、外部プロセスの起動にRuntimeクラスを使う。 JDK1.5以降でも使えるが、JDK1.5以降ではRuntimeの内部でProcessBuilderを使っているので、素直にProcessBuilderを使う方がよい。 「java -version」を実行する例 Runtime r = Ru

  • Javaバージョンメモ(Hishidama's Java version Memo)

    概要 自分が初めて使ったJavaはたぶんJDK(Java Development Kit)1.3、バージョンを意識し始めたのはJDK1.4からなので、昔の事は知らないんだけど。 JDK1.2でJDK1.1より大幅に改善されたらしく、宣伝(マーケティング)の都合でJava2と名付けられ、Java2 Standard Edition(J2SE)と表記されていた。 JDK1.5からは「2」が取れてJava 5.0という名称になったが、SEはJ2SE 5.0だったと思う。 JDK1.6からは「.0」が取れてJavaSE6という名称になった。 JDK1.7はJavaSE7あるいはJava7と呼ばれ、JDK1.8はJava8と言われることが多い。 この間、javaコマンドで表示されるバージョン等は1.8.0という感じだったので、自分はほぼ一貫して「JDK1.n」と表記してきた。 しかしJava9でバー

  • Java Collectorメモ(Hishidama's Java8 Collector Memo)

    概要 Streamの処理結果を他のクラスに変換するには、Stream#collectメソッドを使う。 (sumやreduce・forEachといった終端処理メソッドも、内部ではcollectと同様の処理を行っている) Stream#collect(Collector)メソッドにはCollectorオブジェクトを渡す。 CollectorインターフェースはStream#collect(supplier, accumulator, combiner)メソッドの各引数に渡す関数を1つにまとめたもの。 Collectorを自分で作ることも出来るが、よく使いそうなものはCollectorsクラスにメソッドが用意されている。 Collectorインターフェースには型引数が3つ付いている。 public interface Collector<T, A, R> { ~ } 型引数 説明

  • Javaコレクションクラスメモ(Hishidama's Java Collection Memo)

    コレクション一覧 [/2010-02-13] リスト [/2023-09-24] マップ [/2023-09-24] セット [/2023-09-24] 総称型の使用 [/2007-06-11] 特殊なコレクション 空のコレクション [/2017-09-24] 1つだけ値を持つ不変コレクション [/2017-09-24] 変更不可能なコレクション [/2017-09-24] 動的型保証を行うコレクション [2008-12-08] 順序付きコレクション [2023-09-24]

  • 私のTOEICへの道 200点(レベルE)からの出発 | 対策と英語勉強法

    私のTOEICへの道 200点(レベルE)からの出発 先輩諸氏の言葉を借りれば、「私は留学経験なしに高得点をとった」とでもなるのでしょうか。もちろん海外に住んだことも無ければ(ホームステイもな い)、留学なんぞありません。大学四年生の内定時に、会社で初めて受けたスコアは300点でした。中学の時からず~と英語が嫌いで大学受験の時に はなんで全大学、全学部英語という科目が必須なのかと嘆きました。大学になんとか入ってからも、英語に接することはありませんでした。 そんな訳で私は英語に関しては全くの凡人です。皆さんと同じなどとはおこがましくてとても言えない平均以下のレベルでした。会社に入って何年もたって から始めたのですが、その時のレベルは、 Is this a pen? という質問に対して、真剣にYes, I do. と答えていたレベルですので、おそらく中学1年生程度で はないでしょうか。英語学習

  • JDBCメモ(Hishidama's JDBC Memo)

    JDBCは、Javaでデータベース(RDB)にアクセスする為のAPI。 テーブルやビュー、ストアドプロシージャ等にアクセスできる。 JDBCとは商標(つまり固有名詞扱い)なのであって、何かの略というわけではないとのこと。 「Java Database Connectivity」の略だというのが一番広まっているらしいけど、まぁどう考えてもODBC(Open DataBase Connectivity)のJava版、という感じだし。

  • Java関数型インターフェースメモ(Hishidama's Java8 Functional Interface Memo)

    概要 @FunctionalInterface 標準的な関数 Supplier(get:()->T) [/2014-04-13] Consumer(accept:(T)->void) [/2014-04-13] Predicate(test:(T)->boolean) [/2018-10-01] Function(apply:(T)->R) [/2014-04-13] UnaryOperator(apply:(T)->T) [/2014-04-13] BinaryOperator(apply:(T,T)->T) [/2014-04-13] 関数型インターフェースは、ラムダ式やメソッド参照の代入先になれるインターフェースのこと。 関数型インターフェースの条件は、大雑把に言って、定義されている抽象メソッドが1つだけあるインターフェース。 staticメソッドやデフォルトメソッドは含まれていても

  • Java日付時刻APIメモ(Hishidama's Java8 Date and Time API Memo)

    概要 JDK1.8で新しい日付時刻API(Date and Time API)(java.timeパッケージ)が導入された。 これまで日付時刻に使っていたjava.util.Date・java.util.Calendarやjava.text.SimpleDateFormatとは全くの別物。 新APIでは従来のDateやCalendarは一切出てこない。 新旧APIの対比 内容 説明 値の保持 旧

  • yumコマンドを使う

    -y 問い合わせに対してすべて「y」で答えます。 -c <設定ファイル> yumの設定ファイルを指定します。 指定しないと/etc/yum.confファイルが参照される場合があります。 -R <時間> タイムアウト(単位: 分)を設定します。 install <パッケージ> パッケージをインストールします。 yum install <パッケージ> <パッケージ>をインストールします。 groupinstall <パッケージグループ> パッケージグループをインストールします。 yum groupinstall <パッケージグループ> <パッケージグループ>をインストールします。 update パッケージをアップデートします。 yum update groupupdate <パッケージグループ> パッケージグループをアップデートします。 yum groupupdate check-update

  • bash ShellShockメモ(Hishidama's bash "shell shock" Memo)

    bash: warning: x: ignoring function definition attempt bash: error importing function definition for `x' this is a test この脆弱性がある場合は、「vulnerable」と表示される。(vulnerableは「脆弱」という意味らしい) 対処されているバージョンでは、関数を定義しようとしたというエラーになる。 脆弱性確認用コマンドの意味 上述の脆弱性確認用のコマンドがどういう意味なのか解析してみる。 $ env x='() { :;}; echo vulnerable' bash -c "echo this is a test" まず、これはenvコマンドを実行している。 envコマンドは、環境変数を設定し、その環境を使ってコマンドを実行するもの。「env 環境変数定義 実行

  • Apache Sparkメモ(Hishidama's Apache Spark Memo)

    概要 [/2017-01-14] Hadoopとの比較 [/2014-09-12] サンプル [/2017-01-22] インストール 開発環境の構築 [2017-01-22] インストール [/2017-01-14] Sparkシェル [/2014-09-19] 実行方法 [/2017-01-18] API(RDD系) SparkContext [/2014-09-15] RDD [/2017-07-26] パーティション [2014-09-07] Kryo(シリアライズ) [/2015-01-15] Spark SQL [/2014-09-02] Hive操作 [2014-09-01] Streaming [2014-09-02] API(Dataset系) SparkSession [2017-01-14] Dataset [/2020-10-08] Encoder [2017-01

  • Java警告抑止方法メモ(Hishidama's Java SuppressWarnings Memo)

    警告を抑止する方法 Eclipse3.1以降でよく警告が出るようになった。 javacコマンドで直接コンパイルするとデフォルトではその手の警告は出ないが、javacのオプションで-Xlintを付けてコンパイルすると これらの警告が出るようになる。 コンパイルオプションによる抑止 アノテーションによる抑止 [/2010-01-09] @SafeVarargs [/2017-09-23] Eclipseの設定による抑止 [/2008-10-25] コンパイルオプションによる抑止 javacのオプションの-Xlintによって警告を抑止できる。(JDK1.5以降) 全ての警告を出す例: > javac -Xlint Test.java > javac -Xlint:all Test.java 全く警告を出さない例: > javac Test.java > javac -Xlint:none Tes

  • Java日付時刻フォーマッターメモ(Hishidama's Java8 DateTimeFormatter Memo)

    概要 [/2017-07-26] 生成 整形(format) 解析・解決(parse) [/2014-07-23] SimpleDateFormatとの違い [2014-07-23] 書式の文字 [2014-07-23] リゾルバースタイル [/2014-07-23] 解析フェーズのみの実行 [2014-07-28] 概要 日付時刻オブジェクトを文字列に整形(format)、あるいは逆に文字列から日付時刻オブジェクトを生成(parse)するにはjava.time.format.DateTimeFormatterを使う。 (従来はjava.text.SimpleDateFormatを使っていた) DateTimeFormatterは不変オブジェクトであり、スレッドセーフである。 ただし、シリアライズ可能ではない。(SimpleDateFormatはシリアライズ可能だったが)[2017-07-

  • UNIXシェルスクリプトメモ(Hishidama's UNIX shell script Memo)

    -xを付けると実行内容を表示しながら実行する。[2008-11-29] bash -x スクリプトファイル -nを付けると、実行せずにファイル内の構文解析(エラーの有無のチェック)を行う。[2008-11-29] bash -n スクリプトファイル . スクリプトファイル 現在実行中のシェルと同じシェルを使ってスクリプトを実行する。 スクリプトの中で環境変数を設定した場合、現在のシェルの環境にも影響する (スクリプトの中で定義した環境変数が実行元でも有効になる)。 ファイルに実行権限(chmod +x)が付いている場合は、以下のようにして実行できる(相対パスで指定している)。 ./スクリプトファイル ファイルに実行権限(chmod +x)が付いており、かつ環境変数PATHにカレントディレクトリ「.」が含まれている場合は、以下のようにして実行できる。 スクリプトファイル シェルスクリプトの書

  • Java Streamメモ(Hishidama's Java8 Stream Memo)

    概要 Stream系クラス Stream系メソッド Stream生成 [/2018-10-01] メソッド Stream [/2021-03-21] BaseStream プリミティブStream [/2021-03-21] onClose [2015-12-13] Streamの例 [/2021-03-21] 概要 JDK1.8で導入されたStreamは、複数の値(オブジェクト)に対して何らかの処理(変換や集計)を行う事を分かりやすく記述できる。 import java.util.stream.Stream; Streamの値の持ち方はjava.util.Listのようなイメージ。 しかしStreamの操作は一度しか行えないので(ScalaのTraversableOnce相当)、java.util.Iteratorの方が近いかも。 つまり複数の値を保持し、順次処理していく。 なお、Str

  • JMSメモ(Hishidama's JMS(Java Message Service) Memo)

    public static final String JMS_FACTORY = "weblogic.jms.ConnectionFactory"; //WebLogic10 public static final String JMS_FACTORY = "ConnectionFactory"; //JBoss4.2.3 public static final String QUEUE_NAME = "MyQueue0"; //WebLogic10 public static final String QUEUE_NAME = "queue/MyQueue1"; //JBoss4.2.3 送信側プログラム(バッチ型サンプル) 送信側のプログラムは、以下のような感じ。 import javax.jms.*; import javax.naming.*; ~ public static vo

  • Javaラムダ式メモ(Hishidama's Java8 Lambda Expression Memo)

    ラムダ式は、JDK1.8(Java8)で導入された構文。 関数型インターフェース(抽象メソッドが1つだけ定義されているインターフェース)の変数に代入する箇所ではラムダ式を渡すことが出来る。 見た目上は、無名内部クラス(匿名クラス)を短く記述できる記法と言える。 Runnable runner = new Runnable() { @Override public void run() { System.out.println("example"); } }; runner.run(); 匿名クラスの例 ラムダ式の例

    matsumanahate
    matsumanahate 2014/05/31
    わかりやすい!
  • Jarファイルメモ(Hishidama's java-archive Memo)

    jar(ジャー)ファイル Javaアーカイブファイル。(Java Archiveを縮めてjar) 複数のclassファイルを圧縮して1つのアーカイブにまとめるので、配布するのに便利。 jarファイル 作成 / 確認 / 解凍 / 実行 異常なjarファイル [2008-12-20] 実行可能jarファイル [2007-01-09] 実行方法 [2007-01-09] 作成方法(マニフェストの作成) [/2008-08-01] -classpathとの併用 [/2009-04-12] jarファイルを動的に読み込む [/2014-04-16] jarファイル内のファイル一覧取得 [/2014-04-16] マニフェストの読み込み [/2009-01-15] jar(zip)ファイル内のファイルの読み込み [/2014-04-16] jarファイル内のメソッドの呼び出し [/2014-04-

  • Java弱参照メモ(Hishidama's Java Weak reference Memo)

    Java弱参照クラス 通常のインスタンスは、どこかの変数が保持(参照)していれば、GCの対象にならない。 しかし弱参照にして保持すると、他の通常の参照が全て無くなれば、GCの対象になる。 (弱参照という用語を使う場合は、通常の参照は「強参照」と呼ぶ。強参照と弱参照の間に当たるソフト参照、弱参照より下のファントム参照というのもあるらしい) WeakHashMap WeakHashMapは、キーを弱参照で保持するHashMap。 このマップのキーに当たるオブジェクトの(他からの)強参照が全て無くなると、このマップ内からそのキー(と値)が削除される。 例: Map<Integer, String> map = new WeakHashMap<Integer, String>(); // キーを強参照で保持しつつ、マップに値をセット Integer[] force = new Integer[10

  • AsakusaFW DMDLメモ(Hishidama's Asakusa Framework DMDL Memo)

    概要 Asakusa FrameworkのDMDL(Data Model Definition Language)は、データモデルを定義する言語。 データモデルは、レコードやファイルのレイアウト(RDBで例えるならテーブルレイアウト)に相当する。 AsakusaFWではデータモデルを使ってデータを操作(加工)する。 Batch DSL・Flow DSL・Operator DSLが「Javaホスト言語とする内部DSL」であるのに対し、DMDLは「外部DSL」。 つまり、専用のDMDLコンパイラーがDMDLファイルを読み込んでコンパイルする。 1つのDMDLファイルの中に複数のデータモデルを記述できるし、1つのAsakusaプロジェクトの中で複数のDMDLファイルを使用することも出来る。 (DMDLファイルは単なるテキストファイルだが、拙作のDMDL EditorX(Eclipseプラグイン