概要 JDK1.8で新しい日付時刻API(Date and Time API)(java.timeパッケージ)が導入された。 これまで日付時刻に使っていたjava.util.Date・java.util.Calendarやjava.text.SimpleDateFormatとは全くの別物。 新APIでは従来のDateやCalendarは一切出てこない。 新旧APIの対比 内容 説明 値の保持 旧
弊社オフィスにて@seri_kさんの主催で月一回程度の頻度で開催されている #渋谷java という勉強会に行ってきました。今回が第七回目の開催となります。 http://shibuya-java.connpass.com/event/7060/ 実は@seri_kさんは先月で弊社を退職されてしまったのですが、 #渋谷java の開催は続けてくださるそうですw 以下、個人的に気になったセッションについてまとめておきます。 Date and Time API におけるタイムゾーンの扱い @btnrougeこと蓮沼さんのセッション。TimeZoneとOffsetの使い分け方について説明されていました。 個人的にはもちろんZonedDateTimeとOffsetDateTimeの違いは理解はしていたのですが、使い分けはさほど意識したことなかったので(ZonedDateTimeなら夏時間をいい感じに
ひしだまHPの更新履歴。 主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。 前回までのあらすじ ジャバ八村でStreamを手に入れた俺たちは、次の目的であるDate and Time APIを探し始めた。 という訳で、Java8のStream(やラムダ式・メソッド参照)と並んでもうひとつの目玉である日付時刻APIを試してみた。 (軽く見るだけのつもりが、3連休をほとんど全部使ってしまったorz) 細かいことをやりだすともっと調べないといけなさそうだが(Clockの使い方とか、これで合ってるんだろうか?)、基本的な使い方はとりあえず充分かな。 DateTimeFormatterも、評判どおりSimpleDateFormatより便利そうだし、速度も速そう。 まぁともかく、Java8で事前に調べたいと思っていたところはだいたい終わった。 日付時刻API
「業務系システムは今すぐ脱Strutsを!」業務システムエンジニアのためのHTML5勉強会#04 活動報告 2013年9月9日、日本Javaユーザグループとhtml5jえんぷら部で共同開催「業務システムのためのHTML5勉強会#04」は、GREE様の会場提供で六本木の森タワーにて開催されました。 テーマは「Web x Java」。WebとJavaを組み合わせたWebシステム開発が、どのような方向に向かっているのか、どういう技術により実現されるのかを探る目的で開催されたイベントです。 「Webの技術」では、jQueryの登場が、インタラクティブなフロントエンド実現を容易にし、HTML5の普及でさらに拍車を掛けます。フロントエンドの開発は、マルチデバイス対応、ポリフィル・シムから、ビルドプロセスにテストツールと、様々な技術要素が絡み合います。そして、数年前には想像もつかないほどの高い専門性
さて、Java8で関数型っぽいことをやって遊んでみたわけですが、実際はそんな書き方しませんよね。 Java8で実際に使うのは、Streamです。 ということで、Streamの使い方をひととおり見てみます。 ※5/17 仕様変更があったので、修正しました 基本 まずは、Iterableインタフェースに用意されたforEachメソッドを見てみましょう。 List<String> names = Arrays.asList("hoge hoge", "foo bar", "naoki", "kishida"); names.forEach(s -> System.out.println(s)); これで次のように表示されます。 hoge hoge foo bar naoki kishida いままでの拡張forだと次のように書いてました List<String> names = Arrays.a
さて、前回Java8のStreamの使い方をざっと見てみたのですけど、はてなブックマークのコメントで「Javaが使われている領域でこんな言語拡張は必要か」「可読性が損なわれていて単なる自己満足ではないか」のようなコメントがついていました。 実際どうなのか考えてみます。 Java8のStreamの目的 では、いまJavaが使われている領域を考えてみましょう。 Javaがいまよく使われているのは、クライアントサイドではなくサーバーサイドです。とくに、直接アクセスをうけつけるサーバーではなく、分散データ処理のためのHadoopやHBase、全文検索エンジンのLuceneなど、バックエンド処理を行う製品のシェアが大きいように見えます。 TwitterやGoogleでも、Javaで書かれたバックエンドが動いているようです。Facebookも分析系ではJavaを使っているようです。 大手サービスでバッ
夏のJAWS-UG 三都物語 2014というイベントで「そろそろJavaみなおしてもええんやで」というプレゼンしてきました。 Javaのイベントではなかったので、Javaを使ってない人を想定したプレゼンでしたが、実際会場のほとんどがJavaメインではなかったようです。 for(int num : nums){ if(num > 10) continue; sum += num * 2; } というコードが、NetBeansの「関数操作を使用」というリファクタリングで sum = nums.stream().filter((num) -> !(num > 10)).map((num) -> num * 2).reduce(sum, Integer::sum); になったところがハイライト。 ここまでできるとは思ってなかった。 そろそろJavaみなおしてもええんやで from なおき きしだ
タイトルがめちゃくちゃ長くなってしまった(^^; 今日のJJUGナイトセミナーはイベント告知後、すぐにキャンセル待ち状態となっていたので登録を諦めていたのですが…今日のお昼にみたら空きができてた!ので申し込んで行ってきました。 http://jjug.doorkeeper.jp/events/10618 Mavenはもう古い、時代はGradleだ!的な話はチラホラ聞いたことがありましたが、私は普段Mavenしか利用しておらず、実際にGradleを触ったことはないので、今日参加して色々と話が聞けて良かったです。 Gradleの本家サイト http://www.gradle.org/ Gradle 日本語ドキュメント http://gradle.monochromeroad.com/docs/index.html 発表の中でも紹介がありましたが、GradleはSpringやHibernateの
はじめに さる 5/30、今か今かと待ち望まれていた Spark 1.0 が 遂にリリース されましたね! その前日 5/29 には都内で 実際のところ Spark ソースコードリーディング だった Hadoop ソースコードリーディング #16 が開催されるなど、 Spark についての注目度が俄然高まってきているように思えます。 そんなわけで、0.9.1 からの変更点や機能追加について、Java と機械学習に携わるエンジニアの視点で 今回の 1.0 リリース内容をまとめてみました! 何が変わったのか? Spark : Java 8 のラムダ式サポート Java エンジニア的に今回の一番の変更点は、何と言っても Java 8 のラムダ式への対応、ですね。 今年 3 月の Java 8 正式リリース後、主に Stream API の周辺においてラムダ式を書く機会が徐々に増えつつあるかと思い
今年はDropwizardが盛り上がる、という話をチラホラ聞きます。 今年流行るかもしれないDropwizardフレームワークを使ってみる 2014ブレイク確実!JavaベースのポータブルなWebフレームワーク Dropwizard DropwizardでWebアプリケーションを作る リリースノートをみるとバージョンとしては2013年3月に0.6.2が出て、2014年6月現在0.7.x系のようです。 0.7.0-SNAPSHOTのリリースノートみると、「Upgraded to Java 7」とあって、Java 8出たんだけどなぁと思ったり。 そこで思い出したのですが、Java 8が出たとき話題になっていたSparkってどんななんだろう?と触ってみました。 Spark Micro Web Framework トップページの作りがうまい感じで http://www.sparkjava.com/
sinatraみたいなフレームワーク sinatraとは、Rubyの軽量WEBフレームワークです。 小規模なアプリケーションに特化しており、直感的に記述できて人気らしいです。 今回紹介するsparkは、そんなsinatraにインスパイアされて開発されたフレームワークみたいです。 セットアップも簡単なので、試してみましょう。 環境構築方法 今回使用した動作環境は以下のとおりです。 OS : MacOS X 10.7.5 Apache Maven : 3.0.3 Java : 1.7.0_17 sparkを試してみる では、プロジェクトを作成してsparkを動かしてみましょう。 まずはmavenを使ってプロジェクトのひな形を作成します。 % mvn archetype:create -DgroupId=com.example -DartifactId=sample 生成されたpom.xmlを次
Java nio の API を見ていくシリーズ。 最近 Java SE 7 が正式リリースされたので、遅ればせながら API や言語使用の変更などをチラチラとチェック。 で、とりあえず身に着けておいた方が良さそうなのは I/O 周りのことかなぁと思ったので、API をあれこれ試してみることに。 記事の題名に反して、「仕様の哲学」みたいなことには触れませぬ*1。 シリーズ目次 Path インターフェース, Paths クラス Files クラス 〜概要〜 Files クラスのメソッド 〜ファイル、ディレクトリの作成〜 Files クラスのメソッド 〜ファイル、ディレクトリの操作〜 Files クラスのメソッド 〜ファイル内容の読み書き〜 Files クラスのメソッド 〜ファイル、ディレクトリの属性〜 Files クラスのメソッド 〜続・ファイル、ディレクトリの属性〜 Files クラスのメ
2006.12.22 株式会社四次元データ 鈴木 圭 Java SE 6 Mustang 3章 デスクトップ関係 3.1. システム・トレイ機能 3.2. スプラッシュ・スクリーンの表示 3.3. 関連付けられたアプリケーションによる起動 3.4. JTabbedPane の改良 - タブに任意のコンポーネント 3.5. JTable のソーティング/フィルタリング 3.6. テキスト・コンポーネントの印刷機能 3.7. デプロイメント 3.8. その他の変更 Mustang ではデスクトップ関係の機能が大幅に改善されました。中でもシステム・トレイやスプラッシュ・スクリーンの表示、ネイティブで関連付けられたアプリケーションの起動など、デスクトップ環境との統合に力が入れられています。Swing 関係では JTable のソーティング/フィルタリング機能や SwingWorker の標準搭載な
JavaFXを使えば、AWT/Swingはもうお役御免じゃね?と思われるが、ちょっとしたことにおいてはまだまだ使う。 特に、JDK1.6で追加されたデスクトップ機能はよく使ったりするので、メモとして残しておく。 OS標準のアプリケーションでファイルを開く 拡張子が関連付けられたOS標準のアプリケーションでファイルを開くときには、「Desktop#open(<ファイル>)」「Desktop#edit(<ファイル>)」を使用する メソッド「open()」と「edit()」の違いは環境によって異なると思うが、試した見た限りだと次の通り。 open()は、現状、関連付けられているアプリケーションで開く。OSで関連付けられていればなんでも開ける。Excel、Word、textなど。TXTファイルを開くと、自分はSakuraエディタを関連付けに変更しているのでそれが開く。 edit()は、OS標準のエ
現在、Joshua Bloch の Effective Java 第 2 版を読んでいるので、しばらくはこの本の読書メモを書いていく。 項目 1: コンストラクタの代わりに static ファクトリーメソッドを検討する インスタンスを生成するためには、コンストラクタを使うのが普通の方法である。 この項目では、コンストラクタの代わりに static ファクトリーメソッドを使ってオブジェクトを生成することの利点と欠点について述べてられている。 static ファクトリーメソッドとは、クラスのインスタンスを返す static メソッドのことである。 例えば、Integer.valueOf は基本データ型 int の変数を引数に取り、基本データクラスを返す static ファクトリーメソッドである。 public class Foo { public static void main(String
Q: I am porting a Java product to Mac OS X. What are the equivalents for directories and paths common to JDK installations on other platforms? A: I am porting a Java product to Mac OS X. What are the equivalents for directories and paths common to JDK installations on other platforms? Since a JDK is preinstalled on every copy of Mac OS X, the location of the Java VM may vary, but can be found usin
(2012.11.20 追記) aoetkさんからコメントでご指摘いただきました。Javaコントロールパネルからpathをコピーする方法はApple的に推奨されていないようです。 http://developer.apple.com/library/mac/#qa/qa1170/_index.html /usr/libexec/java_homeコマンドがpathを返すようなので、その実行結果をJAVA_HOMEに設定します。 .bash_profileか.bashrcにJAVA_HOMEを設定 export JAVA_HOME=`/usr/libexec/java_home` export JAVA=$JAVA_HOME/bin ↓↓↓ここから元記事↓↓↓ いつの間にやらMacOS XからJava Preferencesが消失してしまいました。 Java言語で開発を行うことはないのですが
大容量のデータを高速通信をしようとして、UDPデータ送受信のプログラムを書いていたのだが、どうにもパフォーマンスが出なくて悩んでいた。所謂、以下にあるようなマルチスレッド型のサーバを書いていた。 ... DatagramSocket socket = new DatagramSocket(4649); byte[] buffer = new byte[8192]; while(true) { DatagramPacket packet = new DatagramPacket(buffer, buffer.length); socket.receive(packet); byte[] receiveData = new byte[8192]; System.arraycopy(packet.getData(), 0, receiveData, 0, packet.getData().len
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く