タグ

Javaに関するno8410のブックマーク (107)

  • 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()したいケースへの対処法 - プログラマーの脳みそ
    no8410
    no8410 2013/11/22
  • スレッド・並行プログラミング/ マルチコア・並列プログラミングを学びはじめるためのN冊 - laiso

    読みたいのリストを作ってる(いくつかは購入済み)。 なんかおすすめあったら教えてください。 でもこういうのってリスト作って仕事した気になって満足してしまう。 並列と並行 学びはじめる前なんだから当然よくわかってはいないんでけど、並列と並行処理の違いは以下で認識してる parallel と concurrent、並列と並行の違い - 当は怖い情報科学 parallel と concurrent 、並列と並行の覚え方 - まめめも (追記) 孫引きなんだけど「コーディングを支える技術 171P」に「プログラミング言語の概念と構造」から引用した記述があった ここでは並行→プログラミング上の概念、並列→ハードウェアレイヤーの話となっていますね。 並列処理・並行処理がプログラミングに必要な理由 マルチコアを生かしたパフォーマンスの向上 大規模なデータの処理 GUIアプリケーションのユーザビリティ

    スレッド・並行プログラミング/ マルチコア・並列プログラミングを学びはじめるためのN冊 - laiso
  • Scala稟議の通し方(公開版)

    22. Scalaのメリット 1. 少ないコード量で生産性向上 n 例 Javaの例 List<User> list = new ArrayList<User>(); list.add(user01); .... Collections.sort(list, new Comparator<User>(){ @Override public int compare(User o1, User o2){ return 01.id - o2.id; } }); Scalaの例 val list = List(.... User ....) list sort (_.id < _.id)

    Scala稟議の通し方(公開版)
  • Eclipseデバッガを活用する31のTips - Fly me to the Luna

    Eclipseデバッガを活用するための31のtips from Hiroki Kondo speakerdeckに貼ろうかどうか迷ったけれども、どこかで話したわけではないのでslideshareに。 Eclipseのデバッガを活用すると開発が捗ります。自宅ではIntelliJを使い始めてみて、さくさくコードが書ける事を体感しているのですが、デバッグはEclipseの方がやりやすいです。で、自分の知っているノウハウをチームで共有するために作りはじめたんですが、広くみんなに公開したほうがいいと思っておすそ分け。調べてみると、結構知らなかったネタがゴロゴロでてきました。Run to Lineとかお手軽で強力な機能だと思う。 「こんなネタ知りたい」とか、フィードバックを是非お寄せください。調査して追記していきますので、コメントとかよろしくお願いします。

    Eclipseデバッガを活用する31のTips - Fly me to the Luna
  • JavaScript時代のJava #kansumiB7 #kansumi

    The document discusses new features in Rails 5.1.0 including encrypted secrets, npm and webpacker integration, system tests, and parameterized mailers. It provides instructions for setting up encrypted secrets in Rails, including using the bin/rails secrets:setup command to generate an encryption key, editing secrets via bin/rails secrets:edit, and configuring different secrets for environments li

    JavaScript時代のJava #kansumiB7 #kansumi
  • 日本語形態素解析ライブラリ Kuromoji のコマンドライン用インターフェイスを書いた - ひだまりソケットは壊れない

    Java で書かれた日形態素解析ライブラリ Kuromoji を Perl から使ってみたいなー、と思って、別の言語のプログラムから使いやすいようなインターフェイスを書きました。 Kuromoji について kuromoji - japanese morphological analyzer Java で書かれたオープンソースの日語の形態素解析ライブラリです。 検索用のライブラリらしくて、Apache Lucene と Apache Solr に組み込まれているらしいです。 もちろん検索エンジンとは独立して利用することも可能です。 独立して使用する場合は、単に jar ファイルをダウンロードしてきて Java のライブラリパスに追加するだけ (あるいは公開されている Maven リポジトリを使用して依存関係を解決するだけ) で形態素解析できるようになります。 便利ですね。 Java

    日本語形態素解析ライブラリ Kuromoji のコマンドライン用インターフェイスを書いた - ひだまりソケットは壊れない
  • マルチコア時代のプログラマは関数脳になろう〜Java8のススメ〜 - Tech-Sketch

    CPUのクロックアップに限界が訪れ、マルチコア化することで処理性能向上を目指す時代になりました。これからのプログラマには、マルチコアで処理性能が向上するプログラム=マルチスレッドで並列処理が可能なプログラムを書く能力が必要になります。今回は「関数型」でプログラムを書くことによって、いとも簡単に並列化ができることを実例を元に解説します。 関数型プログラミングと並列処理 「関数型でプログラムを書くことで簡単に並列化できる」と書きましたが、そもそもここで言う「関数」とは何なのでしょうか? 関数型プログラミングの特徴 関数型プログラミングの「関数」を理解するためには、数学における「関数」を想像するとわかりやすいでしょう。 例えば三角関数を用いた y=cos(x) という式を考えてみます。この式に入力値 x=0 を与えた場合、いつでも必ず結果は y=1 になります。x= π/3 の場合は y =

  • Javaの内部動作を可視化する「ENdoSnipe」、Acroquest TechnologyがOSSとして公開

    Acroquest Technologyは2013年7月11日、Javaシステムの内部動作を可視化・診断するソフトウエア「ENdoSnipe Ver.5.0」をオープンソースとして公開したと発表した。Ver.4まではプロプライエタリな製品だった。ダウンロード・サイトおよびGitHubのページからダウンロードできる。 新版の診断機能には、同社が提供するJavaシステムのトラブルシューティング・サービス「JaTS」での障害解析のノウハウを組み込んだという。アプリケーションの性能を監視する機能も追加した。従来版はEclipseプラグインとしてユーザーインタフェース(UI)を実現していたが、新版はWebベースのUIに変更されている。 診断機能では、メモリリークやハングアップリスク、非効率なデータベース・アクセスなどを検出する。プロファイラやデバッガとは異なり、問題が発生する具体的な理由まで指摘でき

    Javaの内部動作を可視化する「ENdoSnipe」、Acroquest TechnologyがOSSとして公開
    no8410
    no8410 2013/07/11
  • 奇跡のJava

    アプリケーションの最も基的な部分を支える開発基盤が大きく変わろうとしている。主役は「二つのJava」だ。Javaを基に、関数型という先進技術を導入した「Scala」。Scalaに触発されて関数型のアイデアを取り入れたJavaの次期版「Java 8」。この二つが互いに影響を及ぼしながら、来ならトレードオフの関係にある「高生産性」「高品質」を両立できる新たな基盤を実現しようとしている。三菱UFJフィナンシャル・グループのように利用を始めた企業も出てきた。情報システム部門として二つのJavaを生かさない手はない。 (進藤 智則) 記事は日経コンピュータ7月11日号からの抜粋です。そのため図や表が一部割愛されていることをあらかじめご了承ください。「特集」の全文は、日経BPストアの【無料】特別編集版(電子版)で、PCやスマートフォンにて、7月18日よりお読みいただけます。なお号のご購入はバ

    奇跡のJava
  • from old Java to modern Java

    16. from old Java to modern Java ∼ 職業プログラマに聞いて欲しいJava再入門 Acroquest Technology株式会社 JJUG / 関西Javaエンジニアの会 谷 心 ( @cero_t ) 19. private List m_list = null; private int process_file(String str_file_name) { String str_line; List list_lines = new ArrayList(); int i_result = read_file(str_file_name, list_lines); if (i_result == 0) { List list_record = new ArrayList(); for (int i = 0; i < list_lines.size(); i+

    from old Java to modern Java
    no8410
    no8410 2013/06/26
  • JavaSE 7でメソッド名に使えなくなった文字 | 株式会社エイチ・オー・エス

    パッケージJava製品開発担当の大です。こんにちは。 朝晩はだいぶ肌寒くなって、秋らしい空気になってきましたね。 前回も書いたとおり、現在HOSでは製品のJavaSE 7での動作検証を進めています。JavaSE 7で早く使いたい方、申し訳ありませんがいましばらくお待ちください。 さて、検証している上でちょっと困ったことが出てきました。従来動いていたテストコードの一部が、JavaSE 7ではコンパイルもできなくなってしまったのです。これはJavaSE 7の不具合か?と思い、調査してみました。 日語のテストメソッド名 製品のクラス名やメソッド名では使いませんが、開発時のユニットテストのメソッド名やクラス名は、最近は、基的に日語で書くようになりました。これまで日語メソッド名で特に問題が起こっていなかったことと、テストのレポートの出力がアルファベットのキャメルケースに比べ圧倒的に見やすいか

    JavaSE 7でメソッド名に使えなくなった文字 | 株式会社エイチ・オー・エス
  • Parcelable vs Serializable

    When starting on Android, we all learn that we cannot just pass object references to activities and fragments, we have to put those in an Intent / Bundle. Looking at the api, we realize that we have two options, we can either make our objects Parcelable or Serializable. As Java developers, we already know of the Serializable mechanism, so why bother with Parcelable? To answer this, lets take a loo

  • Java8で強化されたMapと、書きやすくなったメモ化再帰 - きしだのHatena

    Java8のlambda構文の話を書くと、旧来の書き方でいいというコメントがつくのですが、それでも便利になったMapの恩恵を受けることは多いんじゃないかと思います。 ※ 2018/5/31 Java9からはメモ化再帰には使えなくなっています ※ 2019/2/15 なんか問題ない? Mapには、lambda式を使ったメソッドが多く追加されていますが、たとえばgetOrDefaultメソッドのようなlambda式を使わないメソッドも追加されていて、これも便利です。 そして、このようなlambda式を使わないメソッドも、間接的にはlambda構文サポートでの言語拡張のおかげです。 Mapはインタフェースなので、Java7までの構文でメソッドを追加しようとすると、Mapを実装しているすべてのクラスに新しいメソッドの実装を追加する必要がありました。そしてそれは現実的に不可能なので、今までMapなど

    Java8で強化されたMapと、書きやすくなったメモ化再帰 - きしだのHatena
  • Javaのパフォーマンスについての9つの誤信

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

    Javaのパフォーマンスについての9つの誤信
  • Java 8のリリースが延期,いまだ続くセキュリティ問題のために2014年まで

    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のリリースが延期,いまだ続くセキュリティ問題のために2014年まで
  • A fast build tool

    Use Buck2This project is no longer actively maintained. Please see https://buck2.build for the build system that replaces it. Old content continues below for historical purposes. Buck is a build system developed and used by Facebook. It encourages the creation of small, reusable modules consisting of code and resources, and supports a variety of languages on many platforms. Why Buck?Buck can help

    A fast build tool
  • 第5回 チューニングのために理解しておきたいGCの4つのアルゴリズム | gihyo.jp

    なぜアルゴリズムを学ぶのか GCによる停止時間が長くなり、アプリケーションの処理時間が短くなると、業務に使える時間が短くなってしまいます。その問題を解決するために、GCをチューニングすることで、アプリケーションの停止時間を短くすることが考えられます。 その際大事なのは、GCのアルゴルズムを把握しておくことです。 GCのチューニングを行うときは、GCで行われている処理の内、どの処理に時間がかかっているかをモニタリング⇒分析⇒チューニングする、という流れになります。しかし、GCのアルゴリズムを知らないと、モニタリング結果を見てもどこに問題があるかがわからず、分析やチューニングを行うことができません。 今回は、以下の4つのアルゴリズムをご紹介します。 マーク&スイープGC コンパクション コピーGC 世代別GC GCのアルゴリズムはJVMの実装によって異なりますが、多くの場合、上記4つのアルゴリ

    第5回 チューニングのために理解しておきたいGCの4つのアルゴリズム | gihyo.jp
    no8410
    no8410 2013/03/28
  • ScalaでOpenCVを使って画像処理 – Rest Term

    でインストールできます。簡単ですけどcmakeのオプションを自由にいじれないのでオススメできないかも。 sbt(Simple Build Tool) sbt(Simple Build Tool)はScala/Java用のビルドツール。ライブラリの依存関係を自動で解決してくれるし、Scalaで書かれたDSLを使ってビルド設定を簡潔に記述できます。今回はEclipseのようなIDEは使わずにemacs + sbtでストレスなく開発ができました。 参考: 始める sbt OpenCVのインストールに成功したら、ライブラリファイル(opencv-244.jar, libopencv_java244.so)をsbtプロジェクトのlibディレクトリにコピーしておきます。sbtが自動でクラスパスを追加してくれます。 Hello OpenCV in Scala Javadocを参考にしながら進めます。 *

    ScalaでOpenCVを使って画像処理 – Rest Term
  • Javaでヒープ領域を余らせたままOutOfMemoryErrorを出す方法 - 西尾泰和のはてなダイアリー

    先日、こんな問題を見かけたのだけども、JavaのGCにはあまり詳しくないので答えがわからなかった。 OutOfMemoryErrorが発生しました。(中略)ヒープメモリは足りているようです。原因として何が考えられますか? http://d.hatena.ne.jp/iad_otomamay/20130318/1363596244 なんでだろうなぁと思っていたところid:moriyoshiが「Permanent領域があふれたんじゃないの」と一言。「Permanent領域」で検索してみると、なるほど、そういうことなのかー。 というわけで早速それを再現させるコードを書いてみた。ヒープの大部分ががら空きなのにPermanent領域だけ99%になっているのがわかるかと思う。 Exception in thread "main" [Full GC [Tenured: 515K->515K(56896K

    Javaでヒープ領域を余らせたままOutOfMemoryErrorを出す方法 - 西尾泰和のはてなダイアリー
  • 8つの質問で、Java SI業界の現状を知る - レベルエンター山本大のブログ

    Webサービス系の会社の隆盛があって、人材流出が騒がれたのが1−3年ぐらい前だろうか。 SIの産業の人材動向が、今どうなってるかって? 大方の予想より凄惨ですよ。 それが分かる方法がある。JavaWeb技術者に技術力を問う8つの質問によってだ。 SI業界のエンジニアの平均レベルを知りたくって、いろんな会社さんのJavaWeb開発者(経験者)向けに以下のような8つの質問を継続的にしている。 対象者としては、Java経験3から10年ぐらいの現役バリバリのはずのJavaエンジニアだ。 その8つの質問というのはこんな問題だ。 JavaWeb技術者に技術力を問う8の質問 インターフェイスのメリットを一言で表して下さい。(筆記解答) HttpRequestオブジェクトからPostされたデータを取得するServletのメソッドは何ですか?(筆記解答) Sessionのスコープを端的に説明してください。(

    8つの質問で、Java SI業界の現状を知る - レベルエンター山本大のブログ