社内se × プログラマ × ビッグデータ

プログラミングなどITに興味があります。

java

JVM はどのようにデータを保持しているのか

Runtime Data Area と呼ばれる場所に保持されるようになっている。 そこは保持するデータの種類によって、大きく5つに分類されている。 Runtime Data Area 1. Method Area 全ての class データが保持される。 static 変数もここに保持される。 1 つの JVM …

JVM は どうやって class ファイルをロードしているのか

JVM クラッシュの調査をしていると、そもそも JVM の動作についてあまり知らなかったことに気づく。 大まかには、コンパイルによって生成された class ファイルを JVM が取り込んで、解析して、実行する。その class ファイルを取り込むところを Class Loade…

Jackson の JsonSetter は便利なのか試してみる

普段は JSON の取り扱いには GSON を使っていて、特に不便は感じていませんが 今回はお試しで Jackson を使ってみました。概要 JsonSetter は JSON の読み込み時に使います。 読み取るJSONに、エンティティのフィールドがすべて含まれていなくても読み込んで…

Java の puzzle ?

twitter でこんな問題が流れてきました。 public static main(String[] args) { int[] array[][] = { null, {{1, 2, 3, 4, 5}}, new int[3][], {{6, 7, 8, 9. 10, 11}, {12, 13, 14, 15}, {16, 17, 18, 19}} }; // ここに array に含まれている 18 を標準出…

WireMock で IllegalArgumentException(request + " does not have a getUri or getHttpURI method")

WireMock は簡単にREST API のモックが作れるのでとても便利です。 その WireMock を実装中に、表題のエラーに出くわしました。 IllegalArgumentException(request + " does not have a getUri or getHttpURI method") WireMock のソースファイルを見てみる…

Java と kotlin で android の MainActivity

以下、どちらも Android Studio で自動的に生成されたクラスになります。 Java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVi…

Java challenge Optional

なにが出力されるのか? public static void main(String[] args){ List<String> list = Arrays.asList("X", "Zero", "Sigma", "Willy"); Optional<String> op = list.stream().findFirst(); Optional<String> op2 = list.stream().filter(e -> e.equals("Signa")).findAny(); System</string></string></string>…

Java challenge methodReference

なにが出力される? public static void main(String[] args) { List<String> castlevania = new ArrayList<>(); castlevania.add("Dracula"); castlevania.add("Alucard"); castlevania.add("Trevor"); List<String> castlevaniaResult = new ArrayList<>(); Consumer<String> c1 = </string></string></string>…

Java challenge MethodReference

なにが出力される? public static void main(String[] args) { List<Homer> homers = new ArrayList<>(); homers.add(new Homer()); homers.add(new Homer()); homers.add(new Homer()); homers.removeIf(e -> e.talk.equals("D'oh")); homers.forEach(System.out:</homer>…

Java challenge thread with lamda

何が出力されるのか? public static void main(String[] args) throws InterruptedException { Runnable r = () -> { for(int i = 0; i <= 10000; i++) { System.out.println(i); } System.out.println("Running!"); }; Thread thread = new Thread(r); thr…

Java challenge ListRemoveIf

何が出力されるのか? public class ListRemoveIf { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(22); list.add(23); list.add(10); list.add(12); list.add(13); list.add(0); list.removeIf(e -> e == new Integer</integer>…

Java challenge Interface

問題:何が出力されるのか? public class BigBangTheory { public static void main(String[] args) { Scientist scientist = new Sheldon() { search() { System.out.println("This is my new spot!"); } }; scientist.search(); } interface Scientist { …

Java challenge Integer

問題:何が出力されるのか? Integer number1 = 5; Integer number2 = 5; Integer number3 = 128; Integer number4 = 128; // True or False ? System.out.println(number1 == number2); System.out.println(number3 == number4); 考え False, False が出力…

マルチスレッドプログラミング - Runnable interface の実装

前の記事では、Thread class を継承する方法を試しました。 マルチスレッドプログラミング - Thread class の継承 - 社内se × プログラマ × ビッグデータ今回は、Runnable interface を実装することで、マルチスレッドを実現していきます。 こんな感じで作成…

ダイレクトバッファについて調べる機会

きっかけは、Apache spark でアプリケーション動かしていた時に、java.lang.OutOfMemoryError: Direct buffer memory に出くわしたこと。 ダイレクトバッファのこともよく理解せずに、spark プログラミングするのは申し訳ない気持ちになったので。。 ダイレ…

Java challenge どこに違和感を感じればよかったのかが分からない

以下のコード、コンパイル通ると思いますか?っていうもんだい。 public class PolymorphismChallenge { public static void main(String[] args) { System.out.println(new Chris().getCharacter().getSimpleName()); } abstract static class STARSSoldier…

Mockito のチュートリアル記事を読んだ感想

これです。 www.discoversdk.com実際のところ、Mockito って Maven のリポジトリを見ても、12/31/2014以降は新しいバージョンが出ていないくらい完成された?フレームワークなのかもしれない。 ただ、この記事は 5/25/2017 に更新されたのもので、個人的にそ…

Java challenge cloneable

Java challenge 既出のコードです。 出力結果を考えてみます。 ソースコード public class CloneableChallenge { public static void main(String[] args) throws CloneNotSupportedException { Human human17 = new Human("cells"); Human human18 = (Human…

Java 例外処理における 11 個の誤り

Java の例外処理における tips を見つけたんですが、自分にはとても分かりやすかったので、感想と共に書き残しておこうと思います。11 Mistakes Java Developers make when Using Exceptions https://www.linkedin.com/pulse/11-mistakes-java-developers-ma…

maven Dependency trees が便利

Maven の便利な機能の一つとして、ライブラリの依存性を確認できるものがあります。あるプロジェクトの中で色んなライブラリを活用していると、そのライブラリ間の依存性が問題になり、プログラムが正常に動作しない場合があったりします。ライブラリAとライ…

Java で何故 4.0 - 3.10 は 0.90 ではない ?

twitter で流れてきたツイートで以下のようなものがありました。Why 4.0 - 3.10 not equal to 0.90 ? public static void main(String args[]) { double x = 4.0 - 3.10; System.out.println(x == 0.90); } 結果: falseツイートに対する返信で、「double や …

JMockit でメソッド内から呼び出しているメソッドのみをモックする

表記のとおりです。 例えば、以下のような methodA と methodB があった場合、junitテストで methodA を呼び出した時の methodB の振る舞いを変更したいということです。 ※戻り値を 5 以外にしたい public class PartialMock { public int methodA(int a) { …

初 JMockit の感想

JUnit で使えるモックのライブラリには、mockito, jmockit, easymock などがあります。 個人的には mockito しか使ったことがなかったのですが、jmockit がよく使われているらしいので、試してみました。具体的な使い方などは既に多くの記事が存在しますので…

Spark Streaming で テキストファイルへのセーブ

ソースコードRDD には saveAsTextFile というメソッドがあり、引数に指定したディレクトリに簡単に出力することができます。 Spark Streaming における DStream にも saveAsTextFiles というメソッドがありました。ただし、Java での JavaDStream から使う場…

Spark Streaming の textFileStream で複数のディレクトリを対象にしてみる

ソースコード単に2つの DStream を作成してあげるだけです。 // create DStream from text file String logDir = "/tmp/logs"; String logDir2 = "/tmp/logs2"; JavaDStream<String> logData = jssc.textFileStream(logDir); JavaDStream<String> logData2 = jssc.textFileSt</string></string>…

fluentd で収集したファイルを Spark Streaming で GET

Spark Streaming ではファイルが更新されたとしても、その差分のみの取得はされない。 Spark Streaming ではあるディレクトリに生成された新規ファイルは自動的に取り込んでくれるよう。 そこで差分のみを fluentd で取得し、それを新規ファイルとして出力し…

Spark Streaming 試してみました

初めての Spark を参照しながら、Apache Spark Streaming を試してみました。 ソースコードまずは概念、概要から・・・ 1. Spark は RDD を元に構築されていますが、Spark Streaming においては DStream と呼ばれる概念の元に構築されるらしい。 2. DStream …

Javaの演習問題やりました

Javaのプログラミングの練習したいと思って、「Java練習問題」でググって出てきたページ。 アルゴリズム編にチャレンジ。 https://eng-entrance.com/java-question-algorithm全部で4問。最初の3問はすぐに書けた(とりあえず動くレベルでも)けど、4問目は苦…

Swing で作った Java アプリケーション マウスでなぞっている時だけスムーズに動く?

Swing で 簡単な Javaアプリケーション(ゲーム)を作ってみたところ、Windows上ではスムーズに動作するが、Linux(Ubuntu14.04) ではカクカクと表示されてしまう現象に出くわしました。 ブロック崩しのようなゲームで、ボールがウィンドウ上をあちこちに動…