2014-06-25(水) JJUGナイトセミナー「WildFly 8ローンチ記念」の発表資料です。Read less
TomcatとかJavaとかほとんど知らないけど、とりあえず少しは把握してないといけなくなったので調べてみました。片足突っ込んだだけなので、かなり触りの部分。でも、phpとかとは構成が違いすぎて、色々調べないと、とりあえず起動してJavaを書けば実行できるところまでたどり着けなかったです。そういう部分を書き立てた感じ。 ちなみに、Cygwin上で動かしてます。 Tomcatとは webコンテナ。 Catalina サーブレットコンテナ Coyote HTTPサーバー TomcatはCatalinaとCoyoteを内包してるプロダクト。Tomcatをサーブレットコンテナと呼ぶ事もあるけど、Catalinaもサーブレットコンテナなので、紛らわしいのでwebコンテナと呼ばれるらしい。狭義ではCatalinaがサーブレットコンテナだけど、広義の意味でTomcatをサーブレットコンテナと呼ぶこともあ
I have installed the JDK on Mac OS X v10.8 (Mountain Lion). When I upgraded it to Mac OS X v10.9 (Mavericks) and ran java -version in the terminal, it showed: No Java runtime present, requesting install. Then I manually installed the JDK (1.7) on my Mac. It seems that the installation worked fine. When the installation was done, I opened the terminal and typed java -version as well. It also showed
I generated two matrices of 1000 x 1000: First Matrix: O and #. Second Matrix: O and B. Using the following code, the first matrix took 8.52 seconds to complete: Random r = new Random(); for (int i = 0; i < 1000; i++) { for (int j = 0; j < 1000; j++) { if (r.nextInt(4) == 0) { System.out.print("O"); } else { System.out.print("#"); } } System.out.println(""); } With this code, the second matrix too
16. from old Java to modern Java ∼ 職業プログラマに聞いて欲しいJava再入門 Acroquest Technology株式会社 JJUG / 関西Javaエンジニアの会 谷本 心 ( @cero_t ) 19. private List m_list = null; private int process_file(String str_file_name) { String str_line; List list_lines = new ArrayList(); int i_result = read_file(str_file_name, list_lines); if (i_result == 0) { List list_record = new ArrayList(); for (int i = 0; i < list_lines.size(); i+
3. Lombokって何? http://projectlombok.org created by Javaの冗長性を排除する為 Roel Spilker のライブラリ 「赤唐辛子」の意味 v0.10.4 MIT license Reinier Zwitserloot 4. Javaの冗長性って? こういうのとか class Data { private int value; public int getValue() { return value; } public void setValue(int value) { this.value = value; } } 5. Javaの冗長性って? 後、こういうのとか… InputStream in = new InputStream(args[0]); try { ... } finally { I
「Lombok、便利そうだけどまあそんなに使わないかなあ」と思ってたんだけど試しに使ってみたらかなり快感だったのでメモ。 Javaのだるさ Javaでプログラムを書いているとよく「intのtype, Stringのnameというフィールドを持つだけの、特定の処理などは含まないHogeクラスを作ろう。まあ普通に文字列表現もあってequalsによる比較とかもできるように」のように思います。 package org.hogel; public class Hoge { private int type; private String name; public Hoge() { } public Hoge(int type, String name) { this.type = type; this.name = name; } public int getType() { return type
Java8でのラムダの使い方などを説明してきたのですが、構文拡張自体には触れていなかったので、改めてここで簡単に説明しておこうと思います。 まずは、Java8で実際に最もインパクトがある言語拡張、インタフェースのデフォルトメソッドです。 デフォルトメソッドとデフォルト実装 いままでインタフェースには実装をもつことができませんでしたが、Java 8からはインタフェースが実装をもてるようになります。 実装をもつメソッドを定義するときには、キーワードdefaultをメソッドの前につけます。 interface Foo{ void print(String s); default void twice(String s){ print(s); print(s); } } twiceメソッドが実装をもっています。この実装をデフォルト実装といいます。 デフォルトメソッドを実装するクラスで、デフォルトメ
※ 5/29 3:23 追記:なんかモナドになったかも。最下部参照 さて、Java8での拡張をいろいろ見てきたわけですが、ではアプリケーションプログラムでFunctionを受け取るメソッドをがんがん定義するかというとそういうことはあまりなく、フレームワーク的な部分で数個定義する感じになると思います。もちろん数個でも効果はでかいのですが。 また、おそらくStreamを受け取ったり返したりするメソッドを定義することは、めったにないのではないかと思います。 Mapでの拡張も、メソッド内部での処理記述がかわる話で、メソッドの引数や戻り値はMapのまま変わりありません。 Javaでのプログラムの構造というのは、メソッドの引数や戻り値の型がなんであるかで決まると言うことができます。その意味では、lambdaやStreamというのは処理の記述は変わるけどプログラムの構造は変わらないとなります。 けれども
やあ、3月に延期になったとはいえ、Java 8リリースが具体化してきましたね。 もうこれで、Lambdaがはずれるとかいうことはなさそうです。 ところで、Java 8で関数型っぽいことができるようになってうれしいのですが、ちょっと記述が冗長です。ということで、短く書けるおまじない考えてみました。 Function型 さて、まずはJava 8で標準で入ったFunction型をみてみましょう。パッケージ名まで含めるとjava.util.funciton.Functionです。 こんな感じで使います。 Function<String, String> enclose = s -> "[" + s + "]"; Genericsでの型指定の最初が引数、あとが戻り値の型です。ここではStringをとってStringを返す関数としてencloseを定義しています。 これを呼び出そうとすると、こんな感じ
こんにちは、エンジニアの永井雅人 (@nagai_masato) です。G* advent calendar の 17日目を GREE engineers' blog からお届けします。 dispatch ? オブジェクト指向言語の文脈でのディスパッチとは、同じ名前のサブルーチンをパラメタの型で動的に判定する呼び分けを指します。ディスパッチには大きく分けて マルチプルとシングルがあります。マルチプルはメッセージの全てのパラメタを対象にしますが、シングルはそのうちレシーバのみを対象とします。この記事では Java や最近の JVM 言語での対応状況を交えてディスパッチについて話したいと思います。 Java Java が対応しているのはシングルディスパッチです。イベントハンドラの例で説明します。今どきっぽくタッチイベントにしてみます。タッチイベント用のクラスのルートに TouchEvent が
未だ仕事の現場ではJava 6を使っていますが、JDK 7もリリースされてupdate 6まで来たことですし、そろそろ1度触っておこうかなと思いまして。 今回は、言語仕様系の変更を扱ってみます。ダイアモンド演算子だけは、さらっと触ったことがあります。NIO.2とかクラスローダ、Fork/Join Frameworkとかもテーマとしてはありますが、とりあえずパス…。 若干、今更感はありますけどね。 ダイアモンド演算子 パラメータ化されたクラスを使用する時に、変数宣言時とインスタンス作成時で同じ型パラメータを指定しなくてはならないのが冗長だ、ということで楽に書けるようにしたそうな。 要は、JDK 6以前で // JDK 6 以前 List<String> stringsOldStyle = new ArrayList<String>(); のように左辺と右辺で同じ型パラメータを書いていたものが
java-jaで例外処理の話をしてきました - 西尾泰和のはてなダイアリー を読んで。 Maybe は値があるかないかを型で表すことができます!そう、直和型なんです!とか言われてもイミフだと思うのです(リンク先のエントリがそう説明してるわけではないですが)。 Java の語彙で Maybe の説明をできたら嬉しい人もいるんじゃないかなぁ、とかなんとか。 ただし、書いてたら結構長くなりました。時間がある人はどうぞ。 Maybe? null より安全に「値がないこと」が扱えるものだよ スタート地点としてはこれでいいでしょう。 以降で、「なんで安全なの?」という全うな疑問に答えてみたいと思います。 問題点 int で説明すると煙に巻いてしまうような気がしたので、User クラスを見てみます。 import java.util.*; class User { final String name;
つくった。javaでyield returnできるので精神が健康になる! Generator<Integer> g=new Generator<Integer>() { @Override protected void iterate() throws InterruptedException { for(int i=0;i<10;i++) yield_return(i); } }; while(g.hasNext()) System.out.println(g.next()); 無限リスト対応。 Generator<Long> fib=new Generator<Long>() { private void return_fib(long a,long b) throws InterruptedException { yield_return(a+b); return_fib(b,a+b
なんとかカレンダー 21日目 id:miya2000 です。こんばんは! 低級テキストエディタでせっせとコーディングしているあなた!そろそろ手がが疲れてきていませんか? そんなあなたは、この記事で紹介する Excel コーディングをぜひ覚えてください。 わずか数秒で世界が変わります! 元ネタ めんどうな作業がわずか数秒に!新人デザイナーが 知らないと一生後悔するExcelを使ったHTML生成 | Webロケッツマガジン http://webrocketsmagazine.com/entry/20111209/html-code-generation-using-excel.html Excelを使った高級コーディング とにかく Excel でコーディングを行った画面を見てみましょう。今回は Java のコーディングをやってみます。 どうでしょう? 画面を見るだけでどれだけ恩恵があるかお分か
The document discusses meta-programming in Java using bytecode manipulation libraries like ASM. It describes how ASM works by allowing the reading, modification, and writing of Java bytecode. This enables dynamically rewriting classes by adding, removing, or modifying fields and methods at runtime. The document provides an example of using ASM to add a private field to a class. It also discusses h
Java with spice! Xtend is a flexible and expressive dialect of Java, which compiles into readable Java 8 compatible source code. You can use any existing Java library seamlessly. The compiled output is readable and pretty-printed, and tends to run as fast as the equivalent handwritten Java code. Get productive and write beautiful code with powerful macros, lambdas, operator overloading and many mo
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く