タグ

Javaに関するblythegirlsのブックマーク (47)

  • 引数にOptionalを使うことの是非について

    2023/12/20】【更新】まとめ作成時のツイートの取得や投稿にエラーが表示される場合がありましたが、現在復旧しており正常にご利用いただけます。ご迷惑おかけいたしました。

    引数にOptionalを使うことの是非について
  • Concurrency Utilitiesの「再」まとめ - Java8対応版 - argius note

    以前、このような記事を書きました。 Concurrency Utilitiesを使った並列処理・マルチスレッドのおさらい (2013-12-26) 前回の内容は、Concurrency UtilitiesだけでなくJavaのマルチスレッドの話も一部含んでいましたが、今回は、Concurrency Utilitiesだけにフォーカスして、全体が分かるように整理してまとめ直しました。 目次 概要 準備 タスク・フレームワーク (Executor) 同期キュー シンクロナイザー 並行処理コレクション 時間単位 アトミック値型とアトミック操作 ロック・フレームワーク 概要 今回は、Concurrency UtilitiesのAPIをいくつかのグループに分類し、それぞれのグループの主要な機能を「広く浅く」紹介する、という形式でまとめています。 パッケージ単位で分け、それからjava.util.con

    Concurrency Utilitiesの「再」まとめ - Java8対応版 - argius note
  • Android開発でRxJavaをチームに導入した話 - クックパッド開発者ブログ

    買物情報事業部の八木(@sys1yagi)です。 Android界隈でRxJavaが話題になっていますね。クックパッドアプリ(以後、「体」と表現します)でも先日ついにRxJavaの導入を果たしました。エントリではRxJavaをチームに導入する為に行ったいくつかの取り組みを紹介します。 目次 RxJava導入の失敗 どのような課題を解決するのか 導入の為に機能を分解し、学習コストを考える ブログを書く 低コスト、低リスクに導入する 勉強会を開く RxJava導入の失敗 2014年11月にRxJavaの1.0.0がリリースされました。遂に実用段階かという事で個人的にあれこれ触り、体に導入する機会を伺っていました。ある日、bug fixの為にRxJavaを使うと簡潔になるのではないかと思い気軽にPull Request(以後、PRとします)を送った所、「このタイミングで急に導入する意図はな

    Android開発でRxJavaをチームに導入した話 - クックパッド開発者ブログ
  • ダブルチェックの代わりに・・・ - Shammer's Philosophy

    JSR 133に、Javaのメモリモデルについての情報がある。 そして、この情報は和訳されている様子。 http://www.javareading.com/bof/cookbook-J20060917.html reorderとか、volatileの話など、かなりマニアックな情報だ。 さらに、FAQの話もある。先のダブルチェックはNGという話もここに情報が・・・ http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html このようにすれば、複数スレッドからアクセスされても安全な実装になるらしい。 public class InitializeOnDemandHolder { private static class LazyHolder { public static InitializeOnDemandHolder sin

    ダブルチェックの代わりに・・・ - Shammer's Philosophy
  • 「Java パフォーマンス」感想 - unnamed

    書の翻訳者の一人である@cero_tより献頂きました、ありがとうございます。というわけで一週間かけて読んでみた。 www.amazon.co.jp 今現在 Java で開発している人、特に運用者や試験者は間違いなく買っておくべきです。Javaに限らない一般的なパフォーマンスチューニングの考え方・観点から、Java アプリケーションにおいてボトルネックになりやすい GC や JIT の詳細な確認方法からチューニング方法が解説されている。特にすごいのが Java の世界のみならず、OS の世界まで触れている点。流石に OS の世界はここに書かれているのが全てではないけれど、Java アプリに関わる部分で問題になりやすい点は割と触れている。 JDK8 にも対応しており、今現在手に入る情報としては一番頼もしいと思う。4000 円程度でこの知識量が手に入るなら非常に安い。 お勧めの読み方 個人

    「Java パフォーマンス」感想 - unnamed
  • 会社員になってJJUG CCCのスポンサーセッションで発表してきた - きしだのHatena

    2月1日からLINE Fukuoka株式会社というところで会社員をやっております。 ということで、JJUG CCC 2015 Springのスポンサーをやらせてもらって、スポンサーセッションで登壇してきました。 だれも教えてくれないJavaの世界。 あと、ぼくが会社員になったわけ。 from なおき きしだ ※4/15 15:41追記 P37の「近所の定屋」は今週値上げして490円になりました 内容としては、Javaエンジニア養成読の記事をベースに、Java歴史について、技術トレンドや経済的な情勢、そしてハードウェアの事情から捉えてみて、いろいろな流れのなかで影響を受けてきたことを示しつつ、コミュニティがどう変遷してきたか、個人的にこの先をどう考えて動いてたかってのを、ふんわりと説明したかった感じです。 ということで、タイトルにある「誰も教えてくれないJavaの世界」というのは、そう

    会社員になってJJUG CCCのスポンサーセッションで発表してきた - きしだのHatena
  • だから、あれほどFiles#lines(Path)を使うときはtry-with-resourcesでちゃんと包めといったのに… #jjug #ccc_f2 - mike-neckのブログ

    以前、こういう記事を書きました。 mike-neck.hatenadiary.com 僕は、世間的にあまり知られていない人間なので、この記事があまり伝わっていなかったのでしょう。ちょっと恐れていたことがありました。 JJUG CCC 2015 SpringのセッションF2で、このような発表がありました。 ほんとうに便利だった業務で使えるJava SE8新機能(JJUG CCC 2015 Spring) from Yuuki Fukuda www.slideshare.net これの33ページのコードにはリソース解放漏れがあります。 FIles.lines(path).lines().forEach(System.out::println); このバグの可能性のあるコードがJJUG CCCというかなり規模の大きくなってきた大舞台でサンプルコードとして紹介されてしまいました。規模の大きいイベン

    だから、あれほどFiles#lines(Path)を使うときはtry-with-resourcesでちゃんと包めといったのに… #jjug #ccc_f2 - mike-neckのブログ
  • 来年後半に登場予定のJava EE 8、オブジェクトのJSONバインドやHTTP/2対応へ

    国内最大のJavaのイベント「Java Day Tokyo 2015」が4月8日に開催されました。「Java EE directions and future」(Java EEの方向性と未来)と題されたセッションでは、JavaOneでもつねにJava EEについて解説を行う米オラクルのリンダ・デミケル氏がJava EEの現時点での計画について紹介を行いました。 セッションの内容をダイジェストで紹介します。 HTML5、Ease of Development、Cloudが3大テーマ リンダ・デミケル氏。 Java EE 8について4500人以上に調査を行い、どんな機能の優先度が高いのかをまとめてみた。1番はJSONB、2番目はSecurity Simplification、3番目はJCache、4番目はSecurity Interceptors、5番目はMVCとなった。 業界の動向などを検討

    来年後半に登場予定のJava EE 8、オブジェクトのJSONバインドやHTTP/2対応へ
  • Java Day Tokyo 2015に行ってきた - すぎゃーんメモ

    最近またJavaを勉強し始めたし、ちょうどいいタイミングで開催されていたので、参加させていただきました。 Java Day Tokyo 2015 自分が聴きに行ったセッションは以下。 Java SE 8: Lambdas and Streams API Date and Time API and other technologies of Java SE 8 実践的なJavaアプリケーションサーバの構築・運用〜転ばぬ先の杖 人気番組との戦い!Javaシステムのパフォーマンス・チューニング奮闘記 Java and The Internet of Things For Automotive Applications スーツの人たち多めで、午前中のキーノートからホールの席が埋まっていてすごいなーと思った。 「Lambdas and Streams」、「Date and Time」はJava8初心

    Java Day Tokyo 2015に行ってきた - すぎゃーんメモ
  • Scala が支える医療系ウェブサービス #jissenscala

    Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)TIS Inc.

    Scala が支える医療系ウェブサービス #jissenscala
  • Java: 本番環境でのデバッグスキルを磨く - ワザノバ | wazanova

    https://www.youtube.com/watch?v=7KS4L-mA_-c 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Takipi のFounderであるTalWeissのSan Francisco Java User Groupミートアップでの講演。番環境で役に立つデバッグテクニックの紹介です。 1. スレッド名の活用 スレッド名はmutable(EJB除く)である。コードのコンテキストにあわせて、Thread.currentThread().setName(Context, TID, Params, Time,...);のようにすれば、トランザクションID、Serveletパラメータ、キューメッセージID、起動時間など、スタックトレースに役に立つ情報を表示できるようになる。 J

  • 恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ミドルウェア開発チームの青木(@a_o_k_i_n_g)です。将来の夢は川口浩探検隊に入ることです。 先日、弊社のアプリケーションサーバーで大量にメモリを消費するという現象に遭遇しました。アクセス頻度の低いサーバーがメモリを大量消費するという謎深いものでした。 発生当初の状況はこんな感じです。 アプリケーションサーバーでは Jetty が稼働 現象が発生した JVM は 5GB 程度のメモリを消費しており、明らかに通常ではない量のメモリを消費している 複数台のサーバーで発生していたが、全てで発生したわけではない。 また、発生したサーバーはいずれもアクセス頻度が少ないサーバーだった。 ヒープ、パーマネント、スタック ひとまず、JVM でトラブルが発生した時は何はともあれヒープダンプとスレッドダンプを見るに限ります。各種情報の取得をインフラ部隊へ依頼し、得られたヒープを解析すると、

    恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Java 8とScala ‐アプローチの違いと相互イノベーション | POSTD

    ScalaJava 8に関する プレゼンテーション が、他の似た内容のものよりも多くリツイートされ、大変うれしく思います。だから、こうして皆さんにブログでも書いてお伝えすることにしました。ScalaJavaとの違いと、それぞれの重要性についてお話しします。両者は相互にイノベーションしています。言語間でお互いに取り入れています。では、Javaが使える場合であっても、Scalaを学ぶ必要があるのでしょうか? もちろんです。より多くの言語を知れば知るほど、あなたはさらにプロフェッショナルになっていきます。 もし、ScalaエンジニアScalaJavaとの基的な違いについて尋ねたとしても、おそらくその人はラムダ関数とトレイトに関する違いを全て言うことはないでしょう。代わりに次のような例を出すはずです。 public class Person { private String firstN

    Java 8とScala ‐アプローチの違いと相互イノベーション | POSTD
  • Rx で Koan した - steps to phantasien

    Android 入門にあわせて Java も勉強しなおすかと Effective Java を読みはじめたらすっかり疲れてしまった。Java… 昔 Effective Java 初版を読んだ頃は結構好きだった気がするけれど、いま二版を読むとこれ Bureaucratic Java じゃないのという気がしてしまう。まあ Effective C++ を読んだ人も多くは Wicked C++ だと感じるだろし Effective JavaScript は Ridiculous JavaScript だろう。文句は言うまい。何事も慣れるには時間がかかる。Java 8 はだいぶマシと伝え聞くものの、Effective Java の三版がでるのはいつになることやら。 そんな日々の現実逃避に @Scale Conference のビデオを眺めていたところ、Netflix が RxJS でクライアントサイ

  • C# 使いから見てうらやましい Java8 の default 実装の使い方 - ぐるぐる~

    Java8 から追加されるインターフェイスの default 実装ですが、C# の拡張メソッドに似てますよね。 実際、このどちらも「シンインターフェイス」を定義するだけで「リッチインターフェイス」が手に入ります。 しかし、C# の拡張メソッドと Java のインターフェイスの default 実装には、それぞれの利点と欠点があります。 拡張メソッドの利点 拡張メソッドの利点は、インターフェイスの実装者だけでなく、 インターフェイスの使用者に対してもインターフェイスの拡張が開かれている点です。 既存の型ですら、後付けでメソッドを追加することができるということです。 using System; public static class StringExtension { // インターフェイスでなくても、どんな型に対しても拡張可能 public static int ToInt(this str

    C# 使いから見てうらやましい Java8 の default 実装の使い方 - ぐるぐる~
  • 遅延評価いうなキャンペーンとかどうか - ぐるぐる~

    遅延評価については以前も書いてるんですが、そのときは結論なしでした。 が、ちょっと考えるところがあって、言語を Java に絞って自分の考えを明確にしておきます。 結論から書きましょう。 「Java(とC#) で遅延評価って書いてあるものは遅延評価ではない」です。 Java における「評価」とは まず一番最初に、Java で「評価」って言うと、どういうことを指すのかを確認しておきます。 言語仕様の該当部分を要約すると、こんな感じでしょうか。 プログラム中の式を評価すると、結果は 変数 値 無し のうちのどれかとなる。 評価した結果が値になる、というのはいいでしょう。それ以外の 2 つを軽く説明します。 評価の結果が「変数」とは? コメント欄で指摘が入っています。 代入の結果は変数ではありません(15.26)。 結果が変数となるのは、ローカル変数、現在のオブジェクトやクラスの変数、フィールド

  • エフセキュアブログ : Javaランタイム環境 = 常に脆弱なマシン

    Javaランタイム環境 = 常に脆弱なマシン 2012年08月28日20:49 ツイート sean_sullivan ヘルシンキ発  by:ショーン・サリバン さて皆さん…常に脆弱なマシン、OracleJavaランタイム環境(JRE)には高度に悪用可能な新しい脆弱性(CVE-2012-4681)がある。たった今、共有化されたところなので、遠からずBlackholeのようなポピュラーなエクスプロイトキットに到達するだろう。 また、もしあなたがJavaJRE)をインストールしているなら、そしてブラウザプラグインをオンにしているなら…ドライブバイダウンロードの危険にさらされている。我々がこれまでに調査した詳細にもとづけば、あらゆるブラウザに悪用される可能性がある(Chromeは若干、議論の余地があるようだが)。 そしてJavaJRE)はクロスプラットフォームのため、もし攻撃者が適切に設定し

    エフセキュアブログ : Javaランタイム環境 = 常に脆弱なマシン
  • Java SE 7の新しいファイルI/O - torutkのブログ

    今まで、なかなかJava SE 7の新しいAPIに取り組めていなかったので、ちょっとしたツールを作成する機会に、コマンドライン引数で指定したファイルを読み込むという、よくありがちなシナリオで、Java SE 7の新しいファイルI/OのAPIを試してみました。 新しいAPIの解説記事はいろいろ出ていますが、意外とわかりづらかったので(解説指向で高度な内容を書かれているためと思われる)、ごく簡単なシナリオでどんなコードになるかをみてみました。 import java.io.BufferedReader; import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; これが

    Java SE 7の新しいファイルI/O - torutkのブログ
  • Java言語で固定要素のListを初期化する際のイディオム - 達人プログラマーを目指して

    Generics(総称型)のプログラミングはJava言語(バージョン5以降)で最も習得が困難な文法*1の一つです。私自身、時々どうやって文法エラーを修正すべきか悩むこともあるくらいで、実際かなり複雑です。Genericsの導入は賛否両論なので、実際Javaに導入したのは間違いだったという議論もある一方で、静的な型安全性を重視するプログラマーもいます。 好き嫌いはともかくとして、Javaプログラマーとしては、一度きちんとGenericsの正しい使い方(=使い勝手のよい総称型やメソッドの正しい定義方法)について勉強しておいてもよいと思います。 Java Generics and Collections: Speed Up the Java Development Process 作者: Maurice Naftalin,Philip Wadler出版社/メーカー: O'Reilly Media

    Java言語で固定要素のListを初期化する際のイディオム - 達人プログラマーを目指して
    blythegirls
    blythegirls 2010/12/27
    モヤッとする
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
    blythegirls
    blythegirls 2010/12/10
    眠くないときにいただきます