タグ

javaに関するmuamqmのブックマーク (128)

  • 「staticおじさん」はなぜ自信満々なのか

    「staticおじさん」という言葉をご存じでしょうか。「static」というのは、Javaのstaticメソッドのことです。Javaでメソッドを呼び出すときにはクラスからインスタンスを生成してインスタンスのメソッドを呼び出すのが普通です。一方、staticメソッドはインスタンスを生成しなくてもクラスから直接呼び出せます。このため、オブジェクト指向プログラミングを理解していない古いタイプのプログラマは、Javaでもstaticメソッドを多用します。これを揶揄して「staticおじさん」と呼ぶのです。 staticおじさんについては、わかりやすく解説したブログエントリが有名です(参考リンク)。実際のシステム開発の現場でstaticおじさんに苦しめられている様子をまとめたページもあります(参考リンク)。 なお、Javaのstaticメソッドを多用する人に限らず、古い感覚にとらわれて周囲に迷惑をま

    「staticおじさん」はなぜ自信満々なのか
  • これからの「Java I/O」の話をしようwww (11) : Files クラスのメソッド ~MIME Type を調べる~ - 倭マン's BLOG

    Java nio の API を見ていくシリーズ(目次)。 Files クラスのメソッドがあと少し残っているので回収記事をサラリと。 今回はファイルの MIME Type を調べるメソッド Files#probeContentType() メソッド。 MIME type とは XML に対しての「text/xml」みたいなヤツです。 簡単にはファイルの拡張子で分かりますが、真面目な実装だとファイルの内容とかも解析するんでしょうね。 Files#probeContentType() メソッドは結構実装に依存するようで、OS などによって結果は変わりうるそうです。 probeContentType() メソッドの使い方Files#probeContentType() メソッドの使い方は簡単です。 import java.io.IOException; import java.nio.file.

    これからの「Java I/O」の話をしようwww (11) : Files クラスのメソッド ~MIME Type を調べる~ - 倭マン's BLOG
  • JDK9 新機能 (日本語&ショートバージョン) #jjug

    Shortener and Japanese translation version of http://www.slideshare.net/YujiKubota/jdk9-features-31jul2015-jjug .Read less

    JDK9 新機能 (日本語&ショートバージョン) #jjug
    muamqm
    muamqm 2015/08/11
  • Javaで1行ずつテキストデータを読み込むイディオムの変遷 - argius note

    テキストデータを読み込む場合、言語にかかわらず1行ずつ読み込んで処理します。ここではこのイディオムを"read-lines"と呼ぶことにします。 スクリプト言語なんかだと大抵、最初からforeachで済んでしまっていたりしますが、初期のJavaではちょっと面倒な手順が必要でした。 新しいバージョンではだいぶ簡単簡潔に書けるようになりましたが、今度はたくさんありすぎて、どれがなんなのかが良くわからなくなっています(大袈裟)。 そこで今回は、"read-lines"の変遷についてまとめてみました。 最近Javaを始めた方がバージョンが古い時に書かれたソースコードを読むときに役に立つ...かも知れません。 目次 基 BufferedReader (Java1.1~) Scannerと拡張for文 (Java5~) java.nio.file.Filesとtry-with-resources(J

    Javaで1行ずつテキストデータを読み込むイディオムの変遷 - argius note
    muamqm
    muamqm 2015/06/07
  • Java 8 "Optional" ~ これからのnullとの付き合い方 ~ - Qiita

    Java8で新たに追加されたクラスにjava.util.Optionalがあります。 Optionalを使用することで、プログラムの堅牢性を高めたり、煩雑な記述を減らすことが期待されます。 Optionalとは? Optionalは値をラップし、 その値がnullかもしれない ことを表現するクラスです。 使い方 メソッドgetHoge()はnullを返す場合があるとします。 これまでなら次のような感じでnullチェックをしていたと思います。 String hoge = getHoge(); // hogeはnullかも if (hoge != null) { // nullチェック System.out.println(hoge.length()); // hogeがnullじゃないのでlengthメソッドを呼ぶ } nullかもしれない変数hogeのメソッドを呼ぶ場合、事前にnullチェ

    Java 8 "Optional" ~ これからのnullとの付き合い方 ~ - Qiita
    muamqm
    muamqm 2015/05/25
  • Javaのプログラムはどうやって動いているの? JVM編

    MonotaROの基幹システムがこの先生きのこるには 2015.03.20 DevLOVE関西 事業会社の現場を知ろう~モノタロウ編~株式会社MonotaRO Tech Team

    Javaのプログラムはどうやって動いているの? JVM編
    muamqm
    muamqm 2015/04/26
  • 「Javaにおけるnull。これまでとこれから」という発表をしてきた | さにあらず

    JJUG CCC 2015 Spring(4 月 11 日開催) で発表をしてきました。 一コマ目であり、エントランスから一番近い入り易い場所だったせいもあるとは思いますが立ち見が出る程の盛況ぶりでした。発表を聞いて下さった皆様、当にありがとうございます。 発表資料はこちらです。 Past & Future of null in Java発表者がどういう風に考えてコンテンツを作り、どういう準備をしているのか、というのは余り共有されていないように思います このエントリでは僕がどの様に事前準備を行い、当日はどんな風に考えながら発表していたのか記録しておきます。 事前準備#内容の決め方#まず、50 分では前提条件の多くなる話はできませんので、凡そ言語仕様かライブラリの話をするのが妥当でしょうとアタリを付けます。 恐らくビギナー向けを標榜しつつも、設計方法論などメタモデルについて話をするのが良い

    「Javaにおけるnull。これまでとこれから」という発表をしてきた | さにあらず
    muamqm
    muamqm 2015/04/13
  • Java 代替言語が普及しないこれだけの理由 - Qiita

    1. はじめに 国内でシステム開発に使用される言語では、Java が最もメジャーでしょう。でも、Java っていろいろ決まりごとが多く面倒な言語でもあります。 それに気づいた海外の開発者たちが、便利な「Java 代替言語」を開発・利用可能になっています。にもかかわらず、国内では海外に比べ、あまり使われているようには見えません。その理由を考えてみました。 ※ 違う考えの方もおいでだと思います。もしよければコメントしてください。 2. Java 代替言語とは ここでいう「Java 代替言語」とは、JVM 上で動作し、Java より簡単な文法を持ち、Java のクラスライブラリがそのまま利用できるような「簡易言語」を指します。 具体的には、Groovy, Scala, jRuby, Jython, ... 等です。 3. 理由 実績がない 業務系アプリなどは、設計や開発思想が非常に保守的なので、

    Java 代替言語が普及しないこれだけの理由 - Qiita
    muamqm
    muamqm 2015/04/09
  • ふわっと JVM のヒープ領域監視について考える - ようへいの日々精進XP

    ども、かっぱです。 はじめに Java アプリケーションを運用する上では避けて通れないであろうヒープ領域の監視についてフワッと考えてみた JVM には幾つか領域があるがヒープ領域に焦点を当てる 参考 http://www.whitemark.co.jp/tec/java/javaHeap.html http://www.whitemark.co.jp/tec/java/javagc.html http://d.hatena.ne.jp/ogin_s57/20120623/1340463194 http://d.hatena.ne.jp/ogin_s57/20120709/1341836704 https://docs.oracle.com/javase/jp/1.5.0/guide/management/agent.html http://chonaso.hatenablog.com/en

    ふわっと JVM のヒープ領域監視について考える - ようへいの日々精進XP
    muamqm
    muamqm 2015/03/29
  • Javaパフォーマンス

    書ではJVMのチューニングとJavaプラットフォームでの問題解決の双方からJavaパフォーマンスの「アート」と「サイエンス」を明らかにします。Javaアプリケーションのテスト手法やベンチマーク測定、パフォーマンス分析に必須のモニタリングツールを学んだうえで、さまざまな性能改善について議論します。JITコンパイル、ガベージコレクションというチューニングが大きな役割を果たす2つの仕組みについて最初に考察します。続いて、Javaプラットフォームのさまざまな側面で高いパフォーマンスを発揮するためのベストプラクティスを紹介します。具体的には、Javaのヒープメモリ、ネイティブメモリ、スレッド、Java EEのAPI、JPAとJDBC、そしてJava SEのAPIでのヒントを取り上げます。Java 8対応。 目次 監訳者まえがき まえがき 1章 イントロダクション 1.1 概要 1.2 プラットフォ

    Javaパフォーマンス
    muamqm
    muamqm 2015/03/24
    ちょっと欲しい
  • 楽して JVM を学びたい #jjug

    JJUG ナイト・セミナー 「ビール片手にLT&納涼会」発表スライドです。 答えはソースで!Read less

    楽して JVM を学びたい #jjug
  • Contextとは何でしょうか?

    Contextとは何でしょうか? HttpServletを継承するクラス(例えば、DoSomethingServlet)を定義する中で、しばしば getServletContext() の呼び出しにより、ServletContextインターフェイス型オブジェクト(以下、オブジェクトSCと略)への参照を得ますが、このオブジェクトSCとはなんなのか?、そもそもServletの世界においてContextとは一体なんなのか?、どうもピンと来ません。 http://java.sun.com/javase/6/docs/api/ javax.servlet.http Class HttpServlet Methods inherited from class javax.servlet.GenericServlet getServletContext javax.servlet Class Gener

    Contextとは何でしょうか?
    muamqm
    muamqm 2015/02/28
  • Gradle入門 - Qiita

    追記1: コメントでの指摘を受け、gvmに関する記述を削除 この記事は、日経ソフトウェア 2013年 06月号 04/24発売 のステマ記事です。 6月号に、@keiji_ariyama(前座部分担当) と 僕(Gradle概要担当) と @sys1yagi(Android対応部分担当) という分担でGradle入門的な記事を書きました。 ですが、僕の目的としてはトップゲート社員への布教を主目的と考えて書いたため、来要求されている分量を(わざと)大幅にオーバーして書いていました。雑誌に掲載されなかった溢れ分をネットで公開して良いか打診した所、「全文掲載でも良いですよ」という豪気なお許しを頂いたのでここに公開します。この場を借りてお礼申し上げます。 プロの編集さんの手を経て、だいぶわかりやすく噛み砕かれたものが雑誌のほうには掲載されていますので、ここに書いてある内容が難しいなぁ…と思ったら

    Gradle入門 - Qiita
  • 恐怖の 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
  • Mojo - Maven 2 Plugins Project

    Welcome to the Mojo Project The Mojo project is a collection of plugins for Maven 2. Plugins are currently being published to the Codehaus repository. Previous releases have also been published on the Maven Central repository. Snapshots are available on request through the user mailing list or by emailing the maintainer. Each plugin has a list of people involved in creating or supporting it. Plu

    muamqm
    muamqm 2014/11/29
  • http://www.codehaus.org/

  • Java特有の冗長なコードを簡潔に記述する「Lombok」

    Javaは言語仕様上の制約により、ボイラープレートコード(自明だが省略できないお決まりのコード断片)がいくつかあります。例えば、メンバ変数を読み書きするだけのgetterメソッドやsetterメソッドがこれにあたります。Lombokを使えば、これらJava特有の冗長なコードを、見やすく簡潔なものにすることができます。記事ではLombokを利用して、ボイラープレートコードをシンプルに記述する方法について解説します。 はじめに 今やJava開発に必要不可欠となったものの一つに、IDEの存在があります。例えばEclipseではメンバ変数さえ定義すれば、getter/setterの自動生成や、equalsメソッドやhashCodeメソッド、toStringメソッドなどの自動生成などさまざまな場面でコーディングを強力にサポートしてくれます。 これは大変便利な機能ですが、裏を返せばJavaの言語仕様

    Java特有の冗長なコードを簡潔に記述する「Lombok」
    muamqm
    muamqm 2014/11/23
  • AtomicIntegerを追ってみた - プログラムdeタマゴ

    Atomic〜とか中身でsynchronizedしてるだけじゃね〜(´・∀・`) なんて思ってた。で、試す機会が来た。 import java.util.concurrent.atomic.AtomicInteger; public class Test{ //走らせるスレッドの数 static final int thread = 1000; //1つのスレッドの中でカウントする回数 static final int loop = 100000; //AtomicIntegerを使ってカウント static AtomicInteger acounter=new AtomicInteger(); static class Runnable1 implements Runnable{ public void run(){ for(int i=0;i<loop;i++)acounter.inc

    AtomicIntegerを追ってみた - プログラムdeタマゴ
    muamqm
    muamqm 2014/11/23
  • LINQ to Objects と Java8-Stream API の対応表

    Java8 で filter や map が使えるようになったー! というわけで .NET の LINQ to Objects との対応表を作ってみました。 2018.2.7 - Kotlin も追記しました! LINQ - Enumerable クラス (System.Linq) Java8 - Stream (Java Platform SE 8 ) Kotlin - kotlin.collections, kotlin.sequences らへん の比較です。 kotlin.collections は遅延ではないので注意です。 Java の方は Collectors (Java Platform SE 8 ) も使います。 まだ試したものは少ないので間違ってるかもしれない & カテゴライズが適当 なので、編集リクエストしてもらえるとありがたいです。 機能 LINQ Java8 Kot

    LINQ to Objects と Java8-Stream API の対応表