タグ

Javaとcoolに関するoinumeのブックマーク (25)

  • Java Decompiler

    The “Java Decompiler project” aims to develop tools in order to decompile and analyze Java 5 “byte code” and the later versions. JD-GUI is a standalone graphical utility that displays Java source codes of “.class” files. You can browse the reconstructed source code with the JD-GUI for instant access to methods and fields. JD-Eclipse is a plug-in for the Eclipse platform. It allows you to display a

  • Javaトラブルに備えよう #jjug_ccc #ccc_h2

    GraalVMJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...Shinji Takao

    Javaトラブルに備えよう #jjug_ccc #ccc_h2
  • Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework

    Spring Bootのハンズオン資料です。 ---- Grailsの次期バージョン3.0でベースになることが予定されている、Spring界隈の新しいトレンド"Spring Boot"のハンズオンを通じて、Spring Bootのイメージを掴んでもらいたいと思います。内容は以下の通りです。 Spring Boot概要説明 Spring Bootを用いて簡単なアプリケーションを実際に作ってみる (合計で約二時間弱)

    Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
    oinume
    oinume 2013/11/10
    Spring以外のWebSocketの話が参考になった
  • JavaアプリをExe化するLaunch4jの使い方と仕組み - seraphyの日記

    Launch4jとは? Launch4jとは、JavaアプリケーションのExeラッパーを作成するツールである。 以下よりダウンロードできる。 http://launch4j.sourceforge.net/ このLaunch4jを使うことで、実行可能JarをExeファイルとして起動できるようにラップすることができる。 しかし、生成されたExeは単純なラッパーにすぎず、Exe化したといってもJavaランタイムが不要になるわけではない。 これは、端的にいえば、「Javaアプリケーションを起動するためのexe」を作るものだと考えてよい。 であれば、単純な「実行可能なjar」と比較して何が嬉しいのか? 機能的には以下のようなアドバンテージがある。 Launch4jでExe化するメリット Exeなので、これがアプリケーションであることが一目でわかる Javaに詳しくない人はjarファイルを見ても扱い

    JavaアプリをExe化するLaunch4jの使い方と仕組み - seraphyの日記
  • HeapStats(Java解析ツールバトル)

    Java SE 9を、新たに導入されたモジュール・システム(Jigsaw)を中心として紹介します。JJUG CCC 2017 Fallの発表資料です。 補足: p. 7 正しくは「JMX」→「JMS (Java Message Service)」。JMXはJava SE内の、モニタリング用の仕組みです。 p. 43 これに加えて、SPIの実装を提供するモジュールも、モジュールレイヤーに含まれます。具体的にはConfiguration.resolveAndBindの動きです。 p. 47「Oracle JDKでは、外部モジュールの非公開メンバへのリフレクションが可能」は、OpenJDKでも同じ動作です。「HotSpot系の」とすべきところでした。 このスライドはCC Attribution Licenseの元に、利用・改変・再配布をライセンスします。

    HeapStats(Java解析ツールバトル)
  • 第9回 [最終回]HotSpot JVMのGCを選択しよう | gihyo.jp

    HotSpot JVMを使うとき、どのようにGCを設定していますか? 検索して出てきたホームページを見て 「とりあえずこのホームページにあるように最新のGCを指定したし、同じようにオプションを設定したから大丈夫だろ」 と思ってしまう話をよく見聞きします。 図1 誤ったGCの選択 しかし、たとえばバッチのようにスループットを意識すべき処理にもかかわらず、レスポンスタイム重視のGCを選んでしまうのは適切ではありません。 最終回となる今回は、HotSpotにはどのようなGCがあり、どのようにそれらを選択すれば良いのかを紹介します。 4つのGCを使いこなす HotSpot JVMには、以下の4つのGCが実装されています。 シリアルGC パラレルGC コンカレント マーク&スイープGC(CMS) ガベージファーストGC(G1GC) 1つずつ見ていきましょう。 シリアルGC このGCの特徴は、ヒープの

    第9回 [最終回]HotSpot JVMのGCを選択しよう | gihyo.jp
  • [spring]10.5 Declarative transaction management - minokubaの日記

    宣言的トランザクションについて。 宣言的トランザクションはSpringAOPにより実現されるが、トランザクションを扱う専用のAspectを決まりきったやり方で適用するだけでいいので、AOPの概念をちゃんと理解してなくても使用できる。Springの宣言的トランザクションはEJBのCMTと似ており、メソッド単位でトランザクションの制御が可能。setRolbackOnlyをすることもできる。 SpringとEJB-CMTとの違いは以下のとおり。 JTAに依存していないので、JavaEE環境でなくても動く。設定変更するだけで、JTAとも連携できるし、ローカルなJDBC/JPA/Hibernateとも連携できる。 EJB以外の全てのクラスに対してトランザクションを設定できる。 Springはトランザクション制御に関して、プログラムで制御する方法と、宣言的に扱う方法の二通り提供する。 Springはト

    [spring]10.5 Declarative transaction management - minokubaの日記
  • 7.2 @AspectJ support - minokubaの日記

    @AspectJアノテーションでアスペクトを定義するやり方について説明します。なお@AspectJスタイルは、そもそもAspectJ5で導入されたものです。SpringではAspectJで定義するアノテーションと連携します。AOPのランタイムはあくまでSpringのものであり、AspectJとは関係ありません。(APIだけぱくった)実際にAspectJと連携する例については、7.8で説明します。 7.2.1 Enabling @AspectJ Support @AspectJアノテーションを使うためには、@AspectJアノテーションベースのAOP/自動プロキシ生成の機能を適用する設定をします。まぁ要するにこう書けばいいわけです <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.o

    7.2 @AspectJ support - minokubaの日記
  • Javaバイトコードの読み方 - プログラマーの脳みそ

    Javaのデバッグをしていて、ステップ実行中にステップインを繰り返したらソースコードのないところに行き当たったことがあるだろう。あるいはEclipseでF3キーでクラスやメソッド・フィールドの宣言元を辿っていってソースコードのないところに行き当たったことがあるだろう。 Eclipseの場合、"Class File Editor"というものが開く。そこにはJavaのバイトコードのニーモニックがズラズラと並んでいて、「これは読めないや、ワケが分からない」と投げ出してしまったりしていないだろうか。 怖がることはない。ちょっとコツを掴めばすぐに読めるようになる。 Class File Editorの開き方 自前のJavaクラスの場合、ビルドして出来上がったclassファイルを開く必要がある。"Package Explorer"だとclassファイルは隠されていて見えないのでWindow -> Sh

    Javaバイトコードの読み方 - プログラマーの脳みそ
  • Jackson - JSON Processor

    jackson.md 下書き Jacksonとは JacsonはJSON(JavaScript Object Notation)と呼ばれるデータ記述言語を扱うためのJavaライブラリ。 ウェブアプリケーション開発ではJSONが必須の技術になってきている。 JavaでJSONを扱うためのAPIJava EE 7に含まれる予定。JSR 343として仕様策定中。 JSONとは JSONはJavaScriptのリテラル表記をベースにしたデータ記述言語。 クライアントのウェブブラウザなどで利用できるJavaScriptで容易に扱えるから、Webサーバとのデータ交換フォーマットとして広く利用されている。 JSONの仕様 RFC 4627で仕様が規定されている。 またjson.orgでもJSONの仕様を確認することができる。 json.orgには日語のページも用意されているので英語が苦手な方はこちら

    Jackson - JSON Processor
  • JUnit4 - TRANCE ARTS 技術情報Wiki

    JUnitとは? † Java用の単体テストフレームワーク。 JUnitのようなテスティングフレームワークを活用することで、次のメリットがある。 テストを統一な方法で作成できる → 他人が見ても分かりやすい テストが簡単にできる また、単体テストコードがあれば、仕様変更時のデグレードを早い段階で発見することができる。 ↑ JUnit3との違いは? † 「junit.framework.TestCase」クラスを継承しなくてもよい。 テストメソッドのプレフィックスに「test」の必要がない。 テストクラス前後に行う処理を指定できるようになった。(@BeforeClass、@AfterClass) 例外検証のソースの記述が簡単になった。(@Test(expected=XXXXException.class)) パフォーマンスの検証もできるようになった。(@Test(timeout=1500))

  • オンラインマニュアル ページ移転のお知らせ:ミドルウェア:ソフトウェア:日立

    日立オープンミドルウェアは、お客様の既存の財産を生かしながら、高い信頼性と柔軟性、自律性を備えたITシステムの実現を支えています。

  • Javaはどのように動くのか~スライドでわかるJVMの仕組み

    Chihiro ItoOpenJDK Commiter, Application Services Solution Architect at Red Hat, ex-Oracle Groundbreaker Advocate

    Javaはどのように動くのか~スライドでわかるJVMの仕組み
  • JolokiaでMBeanにアクセスする | Ore no homepage

    ちょっとJVMってかMBeanの情報をぶっこぬくツールを作る必要があって、最初jythonで作ったんだけどjythonにはいろいろ失望した。で、同僚にJolokiaってのがあると教えてもらったのですが、これがなかなかイケてる。Jolokiaというのは、簡単に言うと、MBeanにHTTP経由でアクセスできるようにjmxの口を空けてくれるJavaのエージェント。こいつをJavaプログラムやJavaなミドルウェアに仕込んでやるだけでHTTPの口が空いて、そこ経由でいろいろできる。レスポンスはJSONで帰ってくる。 Cassandraの記事はまた次回www まぁ、今回もJolokiaに手を出したのもCassandra起因なんだけどね。Cassandraはレイテンシやリード/ライト数がMBeanに格納されてて、そいつを抜いてグラフ描画させたいなぁ、と。Cassandraのマネジメントツールとしては、

  • RegexPlanet: online regular expression testing for Java

    This is just an experiment and does not do anything yet!

    oinume
    oinume 2012/12/03
    Javaの正規表現のパターンマッチングがWebからできる。便利。
  • Java Springの逆引きメモ

    このブログでは、JavaのSpringの記事をメインに書いていきます。 その目次です。 【一般的準備(Springとは無関係です)】 ・TomcatのGETの文字化け対策 ・windowsでTomcatを使用する場合の注意点 【Spring準備編】 ・Springを使用するには? ・SpringでWEB作成するには?(基的な作成例) ・Springとは? (機能一覧と概要) ・Springにおけるファイル構成 【Springのコア機能】 ・DIの機能について ・DIの設定ファイルを書くには? ・DIの設定ファイルで外部ファイル(プロパティファイル)を参照するには? (↑環境変数やシステムプロパティを参照する方法も記載しています) ・DIの設定ファイル内から外部DIファイルを参照するには? ・プロパティファイルをPropertiesクラスのbeanにするには? ・MessageSource

  • Top 10 Java Performance Troubleshooting Tools - DZone

    Here are 10 tools useful for Java application performance troubleshooting. jconsole comes together with JDK 1.5 and above. It is a Java Monitoring and Management Console - JMX-compliant graphical tool for monitoring a Java virtual machine. It can monitor both local and remote JVMs. VisualVM is a visual tool that integrates several existing JDK software tools and lightweight memory and CPU profilin

    Top 10 Java Performance Troubleshooting Tools - DZone
  • JRubyのメモリを観察するには

    原文: チャールズ=オリバー=ナター Ruby言語の各実装において、どんなメモリ消費を解析するツールがあるのかが近頃ちょっとした話題になっています。 それもその筈、Rubyで書かれたアプリケーションの(不具合の調査は言うに及ばず)メモリ消費の具合を詳しく調べるのは容易い事ではありません。 JRubyを使わないのなら、そうです。 JRubyはJVM上で走るので、JVM向けに作られた何十ものツールの恩恵に授かる事が出来ます。 中にはJDKに同梱されているものを含め、メモリの調査、解析、レポートをするものもあります。 ヒープダンプが欲しければ、Hotspot系のJVM(SunまたはOpenJDK)に含まれるjmapやjhatが使えます。 もっと高度なツールが欲しければ、Eclipseを基にしたMemory Analysis Tool、 メモリ及びCPU性能解析ツールであるYourKit、 今では

    JRubyのメモリを観察するには
    oinume
    oinume 2012/03/01
    jmapとはjhatとかVisualVMとか。
  • Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か

    GC周りでトラブルシューティングした際の経験や、Web等で調べたことをまとめてみる。 前提 ・JVMは、Sun Javaを想定。(他は使ったことないです。。。) ・Sun Java 1.5-1.6を想定。 目標 マイナーGC、Full GCそれぞれが頻発することなく、かつそれぞれの実行時間を1秒未満に抑えること。 マイナーGCは1秒未満どころではなく、もっと短くなるべき。どれくらいが理想かは?(0.1秒未満ぐらいを目指したい?) 連続した負荷状態(想定されるピークアクセス)でもOutOfMemoryErrorが発生しないこと。 理想的な状態は、上記に加えて、Full GCの発生が低頻度であること。 具体的には、できるだけマイナーGCで短命オブジェクト(1回使ったらもう使わないようなオブジェクト。逆にセッションオブジェクト等は長命オブジェクトとなる)を破棄させて、短命オブジェクトが、Tenu

    Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か
    oinume
    oinume 2011/07/04
    すごいいいまとめ
  • Javaジェネリクス再入門 - プログラマーの脳みそ

    ジェネリクスでは、「型」を変数にした「型変数」というものを取り扱う。型変数で何が嬉しいかというと、メジャーな例ではコレクションAPIが挙げられる。java.util.Listとかjava.util.Mapとかのデータを格納するタイプのユーティリティクラスのことだ。 2004年にJavaのバージョンが5.0となるまでは、Javaにはジェネリクスの機能はなかった。なので、Listにデータを格納し、取得する場合は List list = new ArrayList(); list.add("hello!"); String str = (String) list.get(0); といったソースコードになる。 add()の引数はObject型で宣言されており、どんな参照型でもadd()することができた。 get()の戻り値もObject型で宣言されておりキャストが必要だった。このキャストはプログラ

    Javaジェネリクス再入門 - プログラマーの脳みそ