今日のソフトウエア開発において,Javaは最も重要なプログラミング言語あるいは開発環境といってもいいでしょう。そこで,ITproではJavaの最新技術についての連載を掲載しています。著者はJavaプログラマ向け情報ページ「Java in the Box」で有名な櫻庭祐一氏です。
こんにちは。Java 初心者です。 Java 初心者、得に LL から Java に来た人にありがちな問題について社内向けに書いたものをオープンアンドシェアさせていただきます。 前提として、我々は Java 8 でガンガン攻めているということをご承知おきください。 また、自分がこの数ヶ月で「うわー。こうしとくべきだったのかー」と気づいたやつをドヤ顔で語っているということにもご注意ください。 【追記】 対象は中規模 B2C の場合です(中規模というのは facebook より小さいという程度の意味です) 例外を握りつぶさないようにしよう Eclipse が生成する以下のようなコードをそのまま残しているケース。 これは言うまでもなく良くないですね。デバッグが困難になります。 try { } catch (IOException e) { e.printStackTrace(); } Perl
First of all, it is worth noting that the work of all Indian casino sites stands out for its stability and quality. Once the player understands the basis and principle of the casino’s work, he will be able to verify whether the chosen playground is of good quality. In games, results are formed by GPS (random number generator). The distinctive feature of online casinos is their 24-hour mode. In add
日本Javaユーザーグループは2014年5月18日、「JJUG Cross Community Conference 2014 Spring」を開催した。「JJUG Cross Community Conference」(以下、JJUG CCC)は毎年春と秋に開催されるカンファレンス。初心者向けからエキスパート向けまで、Java/JVMに少しでも関連すればいいという広いテーマでさまざまな講演が行われている。 今年は4トラック同時進行、合計25ものセッション、ハンズオンセミナーという規模で大いににぎわった。 そして最新仕様であるJava EE 7に準拠しているのは2014年5月現在「GlassFish」「WildFly」のみで、主流は多種多様なアプリケーションサーバーが対応しているJava EE 6とのことだ(楽天はGlassFishを活用していることでも有名)。 エンタープライズ分野でJa
参照: http://stackoverflow.com/questions/2348399/why-does-java-net-urls-hashcode-resolve-the-host-to-an-ip 公式ドキュメントによると: public boolean equals(Object obj) … 2 つの URL オブジェクトが等しいのは、同じプロトコルを持ち、同じホストを参照し、ホスト上のポート番号が同じで、ファイルとファイルのフラグメントが同じ場合です。 2 つのホストが等価と見なされるのは、両方のホスト名が同じ IP アドレスに解決されるか、どちらかのホスト名を解決できない場合は、大文字小文字に関係なくホスト名が等しいか、両方のホスト名が null に等しい場合です。 ホスト比較には名前解決が必要なので、この操作はブロック操作です。 java.net.URL#equals
Apache Struts 2.0.0~2.3.16に存在する脆弱性の悪用コードが機能すると判明し、IPAは修正版への更新を呼び掛けている。 Apache Struts 2.0.0~2.3.16に存在する脆弱性を悪用した攻撃コードの有効性が判明したとして、情報処理推進機構(IPA)は4月17日、ユーザーに至急対策を講じるよう呼び掛けた。 この脆弱性はClassLoaderに起因する。細工されたリクエストをWebサーバに送りつけることでClassLoaderが不正に操作され、特定のファイルが悪用されたり、情報が流出したりする恐れがある。さらに、特定のファイルが不正に操作されることによって任意のコードが実行される可能性もある。 IPAによれば、この脆弱性を悪用する攻撃コードが公開されており、IPAで再現検証をしたところ、Webアプリケーションの動作権限内で情報窃取や特定ファイルの操作、また、W
Java8 で filter や map が使えるようになったー! というわけで .NET の LINQ to Objects との対応表を作ってみました。 2018.2.7 - Kotlin も追記しました! LINQ - Enumerable クラス (System.Linq) Java8 - Stream (Java Platform SE 8 ) Kotlin - kotlin.collections, kotlin.sequences らへん の比較です。 kotlin.collections は遅延ではないので注意です。 Java の方は Collectors (Java Platform SE 8 ) も使います。 まだ試したものは少ないので間違ってるかもしれない & カテゴライズが適当 なので、編集リクエストしてもらえるとありがたいです。 機能 LINQ Java8 Kot
Javaトラブルでは『情報がなくて、再現もなかなかしません』といった状況に陥ることがある。このような状況を回避するために、以下の3つの代表的なトラブルを例に、アプリケーションサーバを再起動する前に何を取得すれば良いのかをまとめてみる。 アプリケーションから応答がない アプリケーションが遅い ヒープメモリが足りない(OutOfMemoryErrorの発生) アプリケーションから応答がない 取得する情報 スレッドダンプ データ取得方法 スレッドダンプとは、コマンド実行時点でのJavaスレッド実行状態を出力したものである。応答がない場合、何らかの要因によりどこかで処理が止まっていることが想定される。スレッドダンプは『どこで止まっているのか?』を切り分けるのに大切な情報である。 取得方法はJDKのバージョンによって色々ある。 kill -3 <pid> (少なくとも1.4.2にはある〜JDK7でも
前記事の続きです。 結論から言うと、IntelliJ IDEA(やEclipse)にも環境変数LANGを渡すことができれば、Java 7における開発で日本語の扱いに問題が出なくなります。_JAVA_OPTIONSやJAVA_TOOL_OPTIONSは不要です。 file.encodingだけでは足りない ここではIntelliJ IDEAを取り上げますが、おそらくEclipseも同様です。 Java 6まではシステムプロパティfile.encodingをUTF-8に設定していればとりあえず大丈夫でした。 ところがJava 7ではfile.encodingを設定していてもうまくいきません。 file.encodingにUTF-8を設定した状態で日本語テストメソッドを実行しても、正しく認識されずエラーとなります。(余談ですがIDEAは12.1から-Dfile.encoding=UTF-8がin
「業務系システムは今すぐ脱Strutsを!」業務システムエンジニアのためのHTML5勉強会#04 活動報告 2013年9月9日、日本Javaユーザグループとhtml5jえんぷら部で共同開催「業務システムのためのHTML5勉強会#04」は、GREE様の会場提供で六本木の森タワーにて開催されました。 テーマは「Web x Java」。WebとJavaを組み合わせたWebシステム開発が、どのような方向に向かっているのか、どういう技術により実現されるのかを探る目的で開催されたイベントです。 「Webの技術」では、jQueryの登場が、インタラクティブなフロントエンド実現を容易にし、HTML5の普及でさらに拍車を掛けます。フロントエンドの開発は、マルチデバイス対応、ポリフィル・シムから、ビルドプロセスにテストツールと、様々な技術要素が絡み合います。そして、数年前には想像もつかないほどの高い専門性
CPUのクロックアップに限界が訪れ、マルチコア化することで処理性能向上を目指す時代になりました。これからのプログラマには、マルチコアで処理性能が向上するプログラム=マルチスレッドで並列処理が可能なプログラムを書く能力が必要になります。今回は「関数型」でプログラムを書くことによって、いとも簡単に並列化ができることを実例を元に解説します。 関数型プログラミングと並列処理 「関数型でプログラムを書くことで簡単に並列化できる」と書きましたが、そもそもここで言う「関数」とは何なのでしょうか? 関数型プログラミングの特徴 関数型プログラミングの「関数」を理解するためには、数学における「関数」を想像するとわかりやすいでしょう。 例えば三角関数を用いた y=cos(x) という式を考えてみます。この式に入力値 x=0 を与えた場合、いつでも必ず結果は y=1 になります。x= π/3 の場合は y =
Launch4jとは? Launch4jとは、JavaアプリケーションのExeラッパーを作成するツールである。 以下よりダウンロードできる。 http://launch4j.sourceforge.net/ このLaunch4jを使うことで、実行可能JarをExeファイルとして起動できるようにラップすることができる。 しかし、生成されたExeは単純なラッパーにすぎず、Exe化したといってもJavaランタイムが不要になるわけではない。 これは、端的にいえば、「Javaアプリケーションを起動するためのexe」を作るものだと考えてよい。 であれば、単純な「実行可能なjar」と比較して何が嬉しいのか? 機能的には以下のようなアドバンテージがある。 Launch4jでExe化するメリット Exeなので、これがアプリケーションであることが一目でわかる Javaに詳しくない人はjarファイルを見ても扱い
lombokは、JavaでのアクセッサやtoString、equalsなどボイラープレートなコードをコンパイル時に生成してくれるライブラリです。 ただ、こういったコードの生成は、IDEを使えば自動で行えるので、わざわざlombokを導入するまでもないと考えることもできますが、ぼくはlombokを導入するべきだと考えて、lombokを使うようにしました。 このとき「lombokを導入するべき」と考えた理由を書いておきます。 lombokとは lombokは冒頭でも書いたように、Javaのアクセッサなどを生成してくれるライブラリです。 Project Lombok import lombok.*; @Setter @Getter @AllArgsConstructor @NoArgsConstructor @ToString public class LombokSample { privat
Java8でのラムダの使い方などを説明してきたのですが、構文拡張自体には触れていなかったので、改めてここで簡単に説明しておこうと思います。 まずは、Java8で実際に最もインパクトがある言語拡張、インタフェースのデフォルトメソッドです。 デフォルトメソッドとデフォルト実装 いままでインタフェースには実装をもつことができませんでしたが、Java 8からはインタフェースが実装をもてるようになります。 実装をもつメソッドを定義するときには、キーワードdefaultをメソッドの前につけます。 interface Foo{ void print(String s); default void twice(String s){ print(s); print(s); } } twiceメソッドが実装をもっています。この実装をデフォルト実装といいます。 デフォルトメソッドを実装するクラスで、デフォルトメ
かなり久々の技術エントリ。 運用はお堅い重いサーバーを使ったとしても開発は軽いほうがいい。当たり前ですね。 というわけでさくさく開発する方法を書いてみる。DIコンテナはCDIやGuice、Springなど好きなものでよいが、今回は省く。軽いこともあって開発中はGuiceを使うことをお勧めしたい。注入は@Injectを使うため、開発中と運用中でコードが変わるってのは少ないはずだ。 まずはJAX-RS まず、アクションベースのWebアプリはJAX-RSを使うこと。これが基本。サーブレットAPIを使わずに開発することについては今までも書いてきた。サーブレットAPIを触らないことにより開発効率とテストのしやすさを両立できる。 こんな感じ。 @Path("/") public class Hoge { @GET @Path("add/{a}/{b}") public Response add(@Pa
「Web アプリのバージョンアップ時に Tomcat を再起動してもいいのは小学生までだよねー」 ということで、Tomcat でダウンタイム無しで Web アプリのバージョンアップをする方法についてまとめてみる。 Parallel Deployment Tomcat 7 から Parallel Deployment という機能が追加され、同一 Web アプリの複数バージョンを同時にデプロイができるようになった。 war のファイル名を somewebapp##001.war 等にしておくことで、 - $CATALINA_BASE/ - webapps/ - somewebapp##001.war - somewebapp##002.warのように配備をすると、 http://localhost:8080/somewebapp/ でアクセスした場合に、セッションが継続している場合には古い方(
Nov 16, 2015 10:30 AM leJOS EV3 0.9.1-beta is available for download. The instructions are on the Wiki, and existing users should read the announcement on the EV3 Software forum You should also update your leJOS EV3 Eclipse plugin to the latest 0.9.1 version Jan 10, 2015 10:30 AM leJOS EV3 0.9.0-beta is available for download. The instructions are on the Wiki, and existing users should read the an
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く