タグ

Javaに関するkenichiiceのブックマーク (215)

  • https://blogs.oracle.com/otnjp/post/recipes-for-using-the-optional-class-as-its-meant-to-be-used-ja

  • Effective Java 2nd Edition と 3rd Editionで変化したところについて - Qiita

    この記事について Effective Java 3rd Edition が発行されました。Java7以降のJava9までの新言語要素が加味されていて、そういうのはとりあえずLambdaなのだろうと思うのですがそれ以外に変わった・追加されたところが気になりました。そこで、第2版と第3版を横に並べて見比べてそういう所をざっくり確認してみました。 この記事では新規の Item についてではなく既存の Item 内で変化した所について「特徴的かも!」と思ったところを並べています。1 多分あなたがこの記事を読まれてもわかった気分になることは決してなくて、どちらかと言うと第2版を読んだことがある人が第3版を学び直す時の参考資料のような使いみちになると思います。誤解や抜け漏れてんこ盛りかと思いますので、間違い探しを楽しむぐらいの感覚でお願いします。 変化したところを全体的に言えば、シリアライゼーションの

    Effective Java 2nd Edition と 3rd Editionで変化したところについて - Qiita
  • JMH - Javaマイクロベンチマークハーネス(枠組み) - torutkのブログ

    Javaプログラムにおいて、ある処理にかかる時間を計測したいということがあります。 Javaの実行環境(JavaVM:Java Virtual Machine)では、JITコンパイルやガベージコレクションがプログラム動作中に併せて動作し、プログラムの実行性能に少なからず影響を与えます。 例えば、JITコンパイルは、プログラム実行当初はJavaバイトコード(ソースファイルからJavaコンパイラがコンパイルしたクラスファイルに含まれる仮想マシンの命令コード)が、その実行する計算機のCPUの命令に翻訳されて実行されます(いわゆるインタープリターモード)。その後、ある処理部分が繰り返し実行され、ある閾値回数以上の繰り返しになると、その処理部分のバイトコードが実行する計算機のCPUのネイティブコードに「実行時コンパイル」されます。それ以降は実行時コンパイルされたCPUネイティブコードである処理部分が

    JMH - Javaマイクロベンチマークハーネス(枠組み) - torutkのブログ
  • スレッド名にデバッグ情報を埋め込むと激しく捗る件 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。 今回、Java のちょっとしたデバッグテクニックを紹介したいと思います。Java で運用中何かトラブルが発生した場合、スレッドダンプを取得することはしばしばあると思いますが、スレッドダンプだけだとちょっと情報が足りないことがあります。今回はスレッドダンプから得られる情報を増やして、素早く障害対応したりデバッグに役立てる方法を紹介します。 まずはじめに: スレッドダンプの取り方 基ですが、改めてスレッドダンプの取得の仕方を紹介しておきます。スレッドダンプを取得する対象のプロセス ID を仮に 12345 として、下記のように jstack コマンドを実行すればスレッドダンプが取得できます(※Linux上で操作する想定)。 $ jstack 12345 対象のプロセス ID は ps aux | grep jav

    スレッド名にデバッグ情報を埋め込むと激しく捗る件 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Android Studio / IntelliJ IDEA の日本語化と設定 - Qiita

    2022/12 追記 JetBrains 公式の日語言語パックがリリースされたため、Pleiades での IntelliJ 系 IDE の対応は廃止しました。問題が発生する可能性があるため、Pleiades で Android Studio や IDEA を 日語化しないでください。日語化する場合は下記を参照してください。 Android Studio を日語化する方法 | CBTDEV https://cbtdev.net/android-studio-japanese/ IntelliJ ベース IDE 向け日語言語パック | jetbrains.com https://www.jetbrains.com/ja-jp/lp/language-pack/ IntelliJ IDEA 向けに有志により公開されている日語リソースファイルがいくつかありますが、新しい機能で文字列連

    Android Studio / IntelliJ IDEA の日本語化と設定 - Qiita
    kenichiice
    kenichiice 2017/03/02
    Pleiadesを使う
  • Android: NonNullアノテーション

    Android Studio 0.5.5から@NonNullアノテーションがサポートされた. 今回はメソッドの引数に@NonNullアノテーションをつけるケースについて書いた. @NonNull @NonNullアノテーションはフィールドやメソッドの引数, メソッドのReturn値にNullを許容しないことを表明するアノテーションである. このアノテーションが便利な点は, @NonNullアノテーションにNullを代入したり, 戻り値のNullチェックをしたりする場合に, IDEが@NonNullの制約をCode Inspectionで示してくれるところだ. ただし, これはIDE付属のCode Inspection設定で報告レベルを調整可能でもあるし, @NonNullの値にNullを設定したからといってシンタックスエラーにはならない. @NonNullはドキュメンテーションや支援機能で

    kenichiice
    kenichiice 2016/12/06
    「そのようなケースでも, @NonNullが有益なケースはあるが, それによる副作用も考慮した上で, 必要なNullチェックは書いておこう. 」
  • JavaでMonadをはじめからていねいに :: Igreque -> Info

    JavaでMonadをはじめからていねいに by Yuji Yamamoto on August 28, 2016 「モナドについてSwiftで説明してみた」という記事などで指摘されているように、プログラマー向けにMonadを説明した記事はサンプルがHaskellで書かれていることが多いので辛いですよね。 HaskellではMonadは「ないと文字通りプログラムが書けないぐらい」大事なもので、入出力処理や例外処理、ダイナミックスコープのシミュレーション、非決定計算など、普通の関数では難しい、非常に様々な機能の実装に使用されています。 その一方、MonadはC言語のポインターに並んでHaskellを学ぶ上での障害である、なんて言われたりもするとおり、他言語ユーザーからHaskellを敬遠させる大きな要因の一つともなっています。 そんな悲しい現状を少しでも改善するために、上記の記事を参考にしつ

    kenichiice
    kenichiice 2016/10/25
    「Java (Java 8以降の知識を前提とします)でMonadを定義して説明してみたいと思います 」
  • Windows 10 x64 + AMD Radeon でNetBeansがクラッシュする

    昨日、Windows 8.1 x64 なメインPCWindows 10 Pro x64へアップグレードしました。 不具合があると困ってしまう開発環境周りは事前に検証をしていたのですが、実際アップグレードしてみるとハードが絡んだ問題が発生してしまったので書いておきます。 ちなみに発生条件は他に同様の報告も見当たらず詳しく調査していないので、記事タイトルにあるもの以外の要因があるかもしれません。 対象のソフトウェアは**NetBeans 8.0.2** 正常に起動するものの、しばらく操作していると突然クラッシュしてしまう現象が発生しました。 特定のアクションで発生するわけでもなく、ランダムに発生する感じでした。 まず、検証を行った環境と異なる点といえば、JDKを8u60に更新したので、以前発生したJava SE 8u20の不具合のような問題があるのではないかと考え、8u51にダウングレードし

    kenichiice
    kenichiice 2016/06/17
    「-J-Dsun.awt.nopixfmt=true」
  • JavaのOptionalのモナド的な使い方 - Qiita

    NullPointerException 嫌いですよね!そんなときに頼りになるのが Java 8 から導入された Optional です。 でも、 null の代わりに Optional を積極的に使うとコードが Optional だらけになり、特に次のような場合に面倒くさいです。 Optional<Integer> a があるとき、 a の値を二乗したい。ただし、 a が empty の場合は empty を得たい。 Optional<Double> a があるとき、 a の平方根を計算したい。ただし、 a が empty または負の数の場合は empty を得たい。なお、 Math.sqrt を安全にした(負の数を渡すと empty を返す)関数 Optional<Double> safeSqrt(double) があるものとして考えて良い。 Optional<Integer> a と

    JavaのOptionalのモナド的な使い方 - Qiita
  • 実行可能 jar をコマンドっぽく実行するために(java -jar 使いたくない) - Qiita

    $ cat sbt #!/bin/sh SBT_OPTS='-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M' java $SBT_OPTS -jar `dirname $0`/sbt-launch.jar "$@" $ chmod +x sbt $ ./sbt

    実行可能 jar をコマンドっぽく実行するために(java -jar 使いたくない) - Qiita
    kenichiice
    kenichiice 2015/11/27
    「基本は、シェルスクリプトにファイルを添付する と同じ発想。」
  • JavaFX 8 公式ドキュメント日本語訳へのリンク集 - ソフトウェアエンジニアリング - Torutk

    JavaFX 8 公式ドキュメント日語訳へのリンク集¶ 2015年9月13日時点で、OracleJava SE 8公式ドキュメント日語訳トップページ(次のURL)からJavaFX 8関連ドキュメントのリンクは日語訳ページではなく英語版ページへのリンクとなっています。 2016年5月3日時点で、OracleJava SE 8公式ドキュメント日語訳トップページ(次のURL)からJavaFX 8関連ドキュメントのリンクは日語訳ページになっていました。 http://docs.oracle.com/javase/jp/8/javase-clienttechnologies.htm ということで以下の情報はもう不要です。 まだ翻訳作業が完成しておらず、正式公開されたのではないかもしれません。ですが、日語で読めるドキュメントは貴重です。 そこで、日語訳されているJavaFX 8ドキュ

    kenichiice
    kenichiice 2015/09/14
    「そこで、日本語訳されているJavaFX 8ドキュメントの一覧とリンクを作成しました。」
  • 第1回:組み合わせ最適化とOptaPlannerとは | オブジェクトの広場

    この連載記事は、最適化問題の1つである「組み合わせ最適化問題」を解くことのできる「OptaPlanner」を紹介します。連載第一回目の記事では、組み合わせ最適化問題の例としてシフトスケジュール作成と集荷経路作成を題材にしながらOptaPlannerが組み合わせ最適化問題を解くために利用しているメタヒューリスティックな解法の概要説明と、適切にメタヒューリスティックな解法を動作させるためのポイントを説明したいと思います。 組み合わせ最適化とは シフトスケジュール作成や巡回ルート作成などは組み合わせや順番を入れかえながらより良いパターンを試行錯誤しながら作っていくことが多いと思います。実際の業務では、シフトの作成の場合は休み希望日や保有スキルを加味しながらより負荷が均等な割当が必要となり、巡回ルート作成では拠点への到着・出発時間の制限を守りながらより効率的な拠点の周り方が必要となります。このよ

    第1回:組み合わせ最適化とOptaPlannerとは | オブジェクトの広場
    kenichiice
    kenichiice 2015/05/15
    「Javaで作られたlightweightで組込み可能な最適化エンジンであると書かれています。」
  • Javaコーディング規約追補 - torutkのブログ

    最近GoogleJavaコーディング規約を公開したとニュースで知り、目を通してみたメモを書きます。 また、以前Javaのコーディング規約について調べたメモを次のURLに書きましたが、それ以降に公開されたJavaコーディング規約を探してみました。 http://www.alles.or.jp/~torutk/oojava/codingStandard/ Googleが策定・公開したJavaコーディング規約 先月、InfoQの日語訳の記事で、Googleが最近Javaコーディング規約を公開したことを知りました。 InfoQの記事(日語訳)GoogleJavaコーディング規約 (Google)http://google-styleguide.googlecode.com/svn/trunk/javaguide.html さらっと目を通してみたメモを箇条書きで列挙します。 ファイルのエンコ

    Javaコーディング規約追補 - torutkのブログ
  • Java Advent Calendar 2013 11日目 - Java SE 8の新クラス・メソッド一覧 - torutkのブログ

    2013年のJava Adventカレンダーの11日目のエントリーです。 前日のエントリーは、Satoyuki Tsukanoさんのtwitterとelasticsearchを簡単に連携させる(Apache Camel入門 その2 コンポーネントについて) - Taste of Tech Topics、 明日はkisさんです。 はじめに メジャーバージョンアップとなるJava SE 8が年明けの3月に正式版リリース(GA:General Availability)を迎えます。メジャーバージョンアップでは、目玉機能には注目が集まるのであちこちでその内容が紹介されます。たとえば、Java SE 8ではラムダ式とStream API、Date and Time APIなどが目玉機能となります。これらの記事はすでにあちこちで見かけますね。 一方、既存APIへのクラス・メソッドの追加は地味なので注目

    Java Advent Calendar 2013 11日目 - Java SE 8の新クラス・メソッド一覧 - torutkのブログ
    kenichiice
    kenichiice 2014/10/31
    UncheckedIOException, String#join(), StringJoiner, Logger#log()
  • GoogleのJavaコーディング規約

    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が最近リリースされ、重要な変...

    GoogleのJavaコーディング規約
    kenichiice
    kenichiice 2014/02/22
    「Googleは、最近、Javaコーディング規約の完全な定義を公開した」
  • 早わかり イベントモデル - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「イベントモデルの概念と用語法が混乱しているので、イライライするんですが」が随分長くなったので、その要点を箇条書きにまとめておきます。 Javaイベントモデルにおけるイベントソースを、DOMイベントモデルではイベントターゲットと呼ぶ。 DOMツリー内をイベントが伝搬する運動過程をイベントフローと呼ぶ。 イベントフローのときに通過するノードの列をチェインと呼ぶ。チェインの両端は、ルートノードとイベントターゲット・ノードである。 イベントフローは、キャプチャリング・フェイズ、ターゲット・フェイズ、バブリング・フェイズの3つの部分に分けられる。 イベントフローのチェインに含まれるノードは、EventTargetインターフェースを実装する必要がある。 「イベントフローの折り返し点=チェインの端点」であるイベントターゲットと、EventTargetインターフェースおよびEventTargetを実装し

    早わかり イベントモデル - 檜山正幸のキマイラ飼育記 (はてなBlog)
    kenichiice
    kenichiice 2014/02/21
    「「イベントモデルの概念と用語法が混乱しているので、イライライするんですが」が随分長くなったので、その要点を箇条書きにまとめておきます。」
  • GlassFish の落日 - notepad

    kenichiice
    kenichiice 2014/01/23
    「GlassFishの将来は、このままでは「実用的サーバ」から「新機能を試すためおもちゃ」に成り下がります。」
  • JavaFXの自動テストツールTestFXを始める第1歩 - torutkのブログ

    JavaFX Advent Calendar 2013の16日目のエントリーです。 前日のエントリーはYasuyuki Fukaiさんの3D初心者がJavaFXの3Dを使い初めてみた。 : 人生、気合いと具合 - blog、翌日のエントリーはpeko_kunさんです。 はじめに GUIの部分をユニットテストしようとすると、通常は人がGUIを操作して結果を判定するので、ロジックのユニットテストのように自動化することが困難です。 JavaのSwingでは、FEST-SwingというGUI自動化テストツールがありました。JavaFXでは何かないかと探していたところ、 JemmyFX TestFX MarvinFX というのがひっかかりました。JemmyFXは、OpenJFXプロジェクトのテストツールでもありますが、以前試してみたときはうまく使えませんでした。 TestFXは、JavaOneサンフ

    JavaFXの自動テストツールTestFXを始める第1歩 - torutkのブログ
  • Javaを創ろう - きつねとJava!

    この記事はJava Advent Calendarの13日目の記事です. 昨日は@kisさんのJava SE 8でパターンマッチを実装するでした. 明日は@megascusさんです. 皆さんはおそらく普段からJavaを使ってプログラムを作っているかと思います. そんな皆さんはJava言語について多くの思い・想いを持っているかと思います. 例えば,「こんな事ができたら良いのに」だったり,「ここが良くないんだよなぁ」といった具合です. そういった言語特徴の追加や改善を自分の手でできたら素敵だと思いませんか? 幸いJavaはOpenJDKというオープンソースプロジェクトで開発が行われており,第三者の僕達でもソースコードを手に入れ自由に変更を加えることができます.*1 この記事では言語の拡張の仕方を述べ,OpenJDKを実際に用いて極々簡単な言語特徴を実装してみます. コンパイラ概要 コンパイラの

    Javaを創ろう - きつねとJava!
  • new T()したいケースへの対処法 - プログラマーの脳みそ

    Javaのジェネリクスの話題のひとつにnew T()したいができないので困る、というテーマがある。 先日のセッションではこの対策についても簡単に述べたが今日はそのまとめ。 まず第一に疑うべきは当にnew T()する必然性があるか?というのが持論だが、ある種のフレームワークではその必然性がある。 O/RマッピングのフレームワークでPOJOにデータを詰めて返したい WebフレームワークでHTTPリクエストをPOJOに詰めてControllerクラスに渡したい (このあたりの議論はJavaのジェネリクスで,T.class や new T() ができず悩んだ話 (型パラメータのインスタンス化に関し、フレームワーク設計からケーススタディ) - 主に言語とシステム開発に関してによくまとまっている) ここで、これらのPOJO(Plain Old Java Object - 端的に言えばデータを格納する

    new T()したいケースへの対処法 - プログラマーの脳みそ
    kenichiice
    kenichiice 2013/11/30
    「いやいや、ひとつ忘れてますよ。T型が何かを知っているオブジェクトをひとつ。」