タグ

javaに関するhakobe932のブックマーク (77)

  • Java SE 8 実践プログラミングを読んだ - はこべにっき ♨

    Java9がリリースされた昨今、今更だけど、Kindleで安くなってたので読んだ。 Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング 作者: Cay S. Horstmann出版社/メーカー: インプレス発売日: 2015/04/03メディア: Kindle版この商品を含むブログ (7件) を見る Java SE8 for the Really Impatientの翻訳で、Java 8からの新機能であるラムダ式をはじめ、ストリームAPIや新しい日付クラスなどについて詳しく紹介されている。 新機能の紹介おいては、単に記法やライブラリの紹介をしてくれるだけでなく、言語の設計の方針や過去のバージョンのJavaとの互換性などを踏まえた説明がなされていて読み応えがある。例えば、ラムダ式をJavaという言語で表現するために、汎用的な関数型はほとんど使われておらず、用途

    Java SE 8 実践プログラミングを読んだ - はこべにっき ♨
  • Java Persistence API (JPA) の JPQL で集計処理を書く (Spring Data JPA) - ひだまりソケットは壊れない

    Spring Data JPA を使っていて、集計処理をどのように書くのが良いかわからずに調べた記録。 (例は Spring Data JPA 固有の話ではあるが、JPQL の知識は Spring Data JPA 以外での JPA でも使える。) Spring Data JPA での集計の例 リポジトリにメソッドを定義して @Query アノテーション使うことで、JPQL (Java Persistence query language) によるクエリを記述できる。 これを用いて、例えば FooRepository に Foo に関する集計処理を記述できる。 @Query(value = """ SELECT NEW com.example.AggregationResult( FUNCTION('year', foo.date), COUNT(foo) ) FROM Foo foo L

    Java Persistence API (JPA) の JPQL で集計処理を書く (Spring Data JPA) - ひだまりソケットは壊れない
  • Java SE 9 の javac で過去バージョンをターゲットにするときには --release オプションを使用すると良い - ひだまりソケットは壊れない

    JDK の javac コマンドを使って過去バージョンの Java 言語で書かれたソースコードをコンパイルする際には、-source オプションや -target オプションを使用してきました。 (JDK 8 までの話。) このとき、適切なブートストラップクラスパスを設定しなければ、対象バージョンに存在しない Java API を使用していてもビルドが通ってしまう、という問題がありました。 参考 : Java のバージョン間クロスコンパイル時の標準ライブラリについて (JDK 8 で Java 7 向けにコンパイルする場合など) - 一角獣は夜に啼く JDK 9 の javac コマンドには --release オプションが追加されました。 今後は (基的には) このオプションを使用するようにすると良さそうです。 ドキュメント : javac Java SE 9 (Oracle JDK

    Java SE 9 の javac で過去バージョンをターゲットにするときには --release オプションを使用すると良い - ひだまりソケットは壊れない
    hakobe932
    hakobe932 2017/10/19
    便利そう
  • はてなインターンの事前課題をJavaでやった - Java入門記(その2) - $shibayu36->blog;

    はてなインターンの事前課題で非常に簡単なltsvパーサーを作るやつがあるのだけど、Javaの勉強のためにJavaで実装してみた。ltsvパーサーは結構いろんな言語で誰かが実装しているので、これどうするのがいいのかってなったら、その実装を見に行くとやり方を理解できて便利。 事前課題 https://github.com/hatena/Hatena-Intern-Exercise2015 やったやつ https://github.com/shibayu36/java-Intern-Exercise これでいいのか気になるところもあるので、詳しい人に添削されたい。 日付操作こんなのでいいのか https://github.com/shibayu36/java-Intern-Exercise/blob/master/src/main/java/org/shibayu36/intern/exerci

    はてなインターンの事前課題をJavaでやった - Java入門記(その2) - $shibayu36->blog;
  • Jvm internal

    사내 공유를 위해 제작한 문서입니다만, 혹시 도움이 되실 분이 있을까 싶어서 공유합니다. 혹여 오류가 있을 수 있습니다. 관대한 마음으로 이해 부탁드리며 글 남겨주시면 참고하여 수정하겠습니다.

    Jvm internal
  • LL から Java に移行した人がはまりがちなこと - tokuhirom's blog

    LL から Java に移行した人がはまりがちなこと こんにちは。Java 初心者です。 Java 初心者、得に LL から Java に来た人にありがちな問題について社内向けに書いたものをオープンアンドシェアさせていただきます。 前提として、我々は Java 8 でガンガン攻めているということをご承知おきください。 また、自分がこの数ヶ月で「うわー。こうしとくべきだったのかー」と気づいたやつをドヤ顔で語っているということにもご注意ください。 【追記】 対象は中規模 B2C の場合です(中規模というのは facebook より小さいという程度の意味です) 例外を握りつぶさないようにしよう Eclipse が生成する以下のようなコードをそのまま残しているケース。 これは言うまでもなく良くないですね。デバッグが困難になります。 try { } catch (IOException e) { e

  • 初めての Java EE 開発から学んだこと JJUG CCC 2014 Spring

    2014年5月18日、ベルサール西新宿にて行われたJJUG CCC 2014 Springにて発表させて頂いたプレゼンの資料です。

    初めての Java EE 開発から学んだこと JJUG CCC 2014 Spring
  • JVM for Dummies - OSCON 2011

    Jul 27, 201198 likes7,866 viewsAI-enhanced description The document provides an introduction to the Java Virtual Machine (JVM) bytecode and JIT compiler. It discusses how bytecode works, including inspection, generation and the bytecode instructions. It also covers how the JIT compiler works and is monitored. Examples of viewing bytecode with javap and generating bytecode with BiteScript are provi

    JVM for Dummies - OSCON 2011
  • Inside The Java Virtual Machine

    The document discusses a programming project in Java. It includes code for a Main class with a main method that prints "Hello World". There are also hexadecimal strings and copyright notices from the company Plugram, Inc. suggesting it is describing how to set up and run a simple Java program.

    Inside The Java Virtual Machine
  • Java 8でPermGenのOutOfMemoryError問題は解決されるのか?

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Java 8でPermGenのOutOfMemoryError問題は解決されるのか?
    hakobe932
    hakobe932 2014/04/19
    へー
  • JVMのオススメ起動オプション - oinume journal

    なんか秘伝のタレみたいになってきたので後世のために共有。 前提 Webアプリケーションを想定 TomcatなりJettyなりがListenするポートは外部からはアクセスできない ※-Xms -Xmx -Xmn あたりは搭載しているメモリ容量によって変える、-XX:MaxPermSize -XX:PermSizeは384mあれば十分だと思うけどロードするクラスの数次第なので要調整。 NOW=`date "+%Y%m%d-%H%M%S"` JAVA_OPTS="-server -Xms2g -Xmx2g -Xmn1g -XX:MaxPermSize=384m -XX:PermSize=384m \ -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=85 -XX:MaxTenuringThreshold=32 \ Javaプログラマーなら習得しておきたい J

    JVMのオススメ起動オプション - oinume journal
    hakobe932
    hakobe932 2014/04/08
    参考になるけどむずすぎる
  • Javaトラブルに応じた初動対応のまとめ - n-agetsumaの日記

    Javaトラブルでは『情報がなくて、再現もなかなかしません』といった状況に陥ることがある。このような状況を回避するために、以下の3つの代表的なトラブルを例に、アプリケーションサーバを再起動する前に何を取得すれば良いのかをまとめてみる。 アプリケーションから応答がない アプリケーションが遅い ヒープメモリが足りない(OutOfMemoryErrorの発生) アプリケーションから応答がない 取得する情報 スレッドダンプ データ取得方法 スレッドダンプとは、コマンド実行時点でのJavaスレッド実行状態を出力したものである。応答がない場合、何らかの要因によりどこかで処理が止まっていることが想定される。スレッドダンプは『どこで止まっているのか?』を切り分けるのに大切な情報である。 取得方法はJDKのバージョンによって色々ある。 kill -3 <pid> (少なくとも1.4.2にはある〜JDK7でも

    Javaトラブルに応じた初動対応のまとめ - n-agetsumaの日記
  • 読んだ: Java 並行処理プログラミング / ブライアン・ゲーツ、ダグ・リー、他 著、岩谷宏 訳 - ひだまりソケットは壊れない

    Java の並行処理プログラミングについての書籍を読みました。 2006 年のなので結構古いですが、内容的には今でも十分通用するものですし、世間からも高く評価されてるみたいですね。 内容的にはかなり良かったです。 Java並行処理プログラミング ―その「基盤」と「最新API」を究める― 作者: Brian Goetz,Joshua Bloch,Doug Lea出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/11/22メディア: 単行購入: 30人 クリック: 442回この商品を含むブログ (170件) を見る 内容紹介 簡単に内容を紹介します。 書は全 4 部、16 章構成となっています。 序章 まず、第 1 章は序章ということで、並行処理の歴史と、マルチスレッドプログラミングの必要性や、利点と欠点などが述べられています。 IO 待ちすることが多い処理を複数実行する

    読んだ: Java 並行処理プログラミング / ブライアン・ゲーツ、ダグ・リー、他 著、岩谷宏 訳 - ひだまりソケットは壊れない
  • Javaを使うメリットはありますか? はい、それはもちろんあるに決まってます! - ブログなんだよもん

    /.Jに聞け:Javaを使うメリットは? | スラッシュドット・ジャパン デベロッパー え、ありますよね? Webアプリに限っても。 というか、上げてるデメリットが現代的じゃないなぁ... 個人的には少数精鋭チームを作れてないならJavaはかなり有りな選択だと思っています。 ※ Java使ってるメンバーがスキルが低いのではなく、LL系で高品質なものを作るのにスキルが必要で、例えスキルがあっても多人数開発にはあまり向かない、という意図 というわけで、自分が思うLL系言語ではなく、JavaでWebアプリを開発するメリットを書いてみます。 静的型づけ言語 HaskellとかOCamlとかScalaとか、その辺の超強力な型付け言語から見ると弱いですが、多くのLLと違い静的型付けな事が特徴です。 これは型というメタ情報を言語仕様に明確に取り込んでいるということです。以下のメリットがあります。 人間が

    Javaを使うメリットはありますか? はい、それはもちろんあるに決まってます! - ブログなんだよもん
    hakobe932
    hakobe932 2014/02/02
    いいはなし/解析ツールとか揃ってるのうらやましい
  • 読んだ: 『Java による RESTful システム構築』 - ひだまりソケットは壊れない

    JavaによるRESTfulシステム構築 作者: Bill Burke,arton,菅野良二出版社/メーカー: オライリージャパン発売日: 2010/08/23メディア: 大型購入: 28人 クリック: 804回この商品を含むブログ (39件) を見る タイトルからはわかりませんが、JAX-RS について書かれた書籍です。 著者の Bill Burke さんは、JAX-RS 仕様の策定や JAX-RS 実装 RESTEasy の開発に関わっている人です。 さすがに仕様策定や実装の開発に関わっている人が書いているだけあって、JAX-RS についての重要なことがらがわかりやすくまとまっていました。 JAX-RS について学ぶのであればまず書を読むのが一番だと思います。 JAX-RS について JAX-RS というのは、RESTful サービスを構築するための JavaAPI 仕様です

    読んだ: 『Java による RESTful システム構築』 - ひだまりソケットは壊れない
  • 『Android アプリ開発のための Java 入門』 を公開しました - ひだまりソケットは壊れない

    Android アプリ開発のための Java 入門』 というものを Gist で公開しました。 Android アプリ開発の勉強会を行うときに書いたものです。 Java をちゃんと使いこなすために知っておくべき必要最低限のこと をまとめたつもりですので、Android アプリを開発したいけど Java はほとんど知らない、みたいな人に読んでいただければと思います。 もちろん Android アプリ開発とは関係なく Java を学びたい人にも適していると思います。 Android アプリ開発勉強会のために書いた Java の入門文書 「Android アプリ開発のための」 というタイトルではありますが、基的には Android アプリとは関係のない Java の基礎となっています。 この文書は次の書籍を参考に書きましたので、よりちゃんと学びたい人は下の書籍をご覧ください。 プログラミング

    『Android アプリ開発のための Java 入門』 を公開しました - ひだまりソケットは壊れない
    hakobe932
    hakobe932 2013/09/13
    すごい充実してる
  • 内部から見たVert.xとNode.jsとの比較 - uehaj's blog

    socket.ioがJavaやGrailsから扱えるかを調べている関係でvert.xを調べていて興味深かったので、こちらにあるVert.xの記事を翻訳してみました。JGGUG G*Workshopにおける杉浦さんのVert.x資料もお奨めです。 Vert.xは急速に発達つつあるサーバ・フレームワークです。 世にあまたあるサーバ・フレームワークのいずれもが、多様なプロトコルをサポートし、高速であることが特長であると主張していますが、Vert.xはそれらよりも一歩抜きん出ています。例えば、Vert.xは、サーバサイドのネットワーク環境の確立と操作も対象としています。言いかえれば、Vert.xは、単一サーバ上のデーモン実行だけでなく、クラスタリング環境での複数サーバデーモンの実行を考慮しているのです。 したがって、Vert.xを調査するにあたっては、どのように高性能を実現しているかだけではなく、

    内部から見たVert.xとNode.jsとの比較 - uehaj's blog
  • Javaのパフォーマンスについての9つの誤信

    JVMはプロファイリングを利用してコードの最適化を行います。対象は頻繁に利用されるコードパスのみですが,徹底的に行うことで大きな効果を上げています。JITコンパイルされたコードに関しては,現在では多くの場面において (その割合も増えつつあります) C++の実行速度を凌駕しています。 このような事実にも関わらずJavaが今でも低速なプラットフォームとして認識されているのは,おそらくは初期バージョンのJavaプラットフォームでの経験が,歴史的な負のバイアスとして働いているためでしょう。 早まった結論を出す前に,客観的な見地に立って,最新のパフォーマンス結果を評価するようにお勧めします。 2. Java コードの1行にはそれ自体で意味がある 次の短いコード行を考えてみてください: MyObject obj = new MyObject(); Java開発者ならば誰でも分かるように,このコードはオ

    Javaのパフォーマンスについての9つの誤信
  • JavaでノンブロッキングIOを使ったネットワークアプリを学ぶのに最適なNetty 3.5系のGetting Startedを日本語訳しました - sifue's blog

    Nettyと言えばJavaのノンブロッキングIOのAPIであるNIOをラップしたフレームワークとして、TwitterのFinagleなどで分散ネットワークアプリケーションシステムで使わていて高速で実績のあるライブラリとして有名ですが、ノンブロッキングIOでイベント駆動のサーバークライアントのネットワークアプリケーションを知るのに非常に良い題材ですので、素人翻訳ですがその日語訳を公開することにしました。 ちなみにNettyがどれぐらいパフォーマンスに優れているのかというと、Herokuの仮想インスタンスを利用した実験の結果が参考になります。Scala(Finagle)がNettyの実装を利用したものになりますが、秒間6000リクエスト時の1dyno(APサーバー)の応答が秒間4000レスポンスで、C(Accept)、Java(Jetty)、Java(Tomcat)、Js(Node)、Pyt

    JavaでノンブロッキングIOを使ったネットワークアプリを学ぶのに最適なNetty 3.5系のGetting Startedを日本語訳しました - sifue's blog
    hakobe932
    hakobe932 2012/10/15
    なるほど
  • Groovy 2.0の新機能

    原文(投稿日:2012/06/28)へのリンク 新しくリリースされたGroovy 2.0は、この言語に静的型チェックや静的コンパイルといった重要な静的機能を導入します。Project Coinのシンタックス拡張や新しいJVM命令"invoke dynamic"のサポートといったJDK 7対応の改良も取り入れられ、また、以前に比べよりモジュール化されています。 この記事ではこれらの新機能をより詳しく見ていきます。 動的な言語のための "静的なテーマ" 静的型チェック Groovyは生来、そして将来にわたって常に動的な言語です。しかし、Groovyは "Java用スクリプト言語" や "ベターJava" (冗長な記述が少なく、より強力な機能を持つJava)として使われることがよくあります。実際、多くのJava開発者がより表現力のあるビジネスルールを書いたり、顧客ごとにアプリケーションをカスタマ

    Groovy 2.0の新機能