タグ

Javaに関するtsry9000のブックマーク (20)

  • [Java]newした時のメモリを想像しよう!~参照型変数とインスタンスは別物~ | Gabekore Garage

    前回の記事では、 Javaの文字列比較においては、==演算子ではなくequalsメソッドを使いましょうという説明をしました その理由も説明しました この記事では、もう少しだけ詳しい説明をします ◆対象読者 Javaの文字列比較で==演算子ではなくequalsメソッドを使うのは分かった人 でも、その理由が分かったような分かってないような・・・イマイチ理解しきれていない人 Javaのインスタンスの正体を知りたい人 ◆解決できるかも知れないお悩み Javaの文字列比較で==演算子ではなくequalsメソッドを使う理由 そもそも、newしたときのインスタンスの正体ってなに? ◆どうやって解決するか Stringではなく、独自のクラスを使ってメモリについて説明します ==演算子でも一致させてみよう! まずはサンプルコードとその結果をご覧ください ソースコードとともに、コメントを読んでください pub

    [Java]newした時のメモリを想像しよう!~参照型変数とインスタンスは別物~ | Gabekore Garage
  • java.util.loggingの闇 - nekop's blog

    Javaの1.4からjava.util.logging(以下JULと表記)というロギングパッケージが標準で使えるようになって、ログ出力のためにlog4jなどのサードパーティライブラリをいちいち導入したりする必要がなくなりみんな幸せになりました。 と言いたいところですこいつが超不便なAPIをしていてとてもとてもとっっっても使い辛い。ふざけんな。 まずさらっと使ってみましょう。Java 7です。 Logger.getGlobal().info("log") Logger.getLogger("foo").info("log") 出力はこうなります。 Jan 15, 2015 5:11:41 PM JUL main INFO: log Jan 15, 2015 5:11:41 PM JUL main INFO: log はい、キモイですね。軽くつっこむと なんで2行なんだよ 日時AM/PM表記か

    java.util.loggingの闇 - nekop's blog
  • Javaで業務アプリを開発するための環境構築手順(Windows/Mac対応)

    この連載は、Javaをいきなりやることになってしまった新卒の人や、Java以外の言語の使用経験しかない人など、Javaの初心者なのに業務アプリ(ビジネスで使われるアプリケーション)の開発で即戦力にならないといけない人達に向けての連載になります。標準のJavaでできることはもちろん、DB操作のためのSQLやよく使われるライブラリの使い方など、単なるJavaのみの紹介ではなく、Javaでの業務アプリの開発に必要とされる基礎知識全般について連載を通じて学んでいくことを目的としています。 はじめに 今回の記事では、Java(ジャバ)で業務アプリを開発するための開発環境の構築を行います。また、Javaのアプリケーションの開発では統合開発環境(IDE)を使って作業することがほとんどです。統合開発環境とはアプリケーションの開発をサポートする環境で、この連載では多くの現場で使われているEclipse(エク

    Javaで業務アプリを開発するための環境構築手順(Windows/Mac対応)
  • JavaしかかけないおいらがiPhoneアプリをリリースするまで - しんさんの出張所 はてなブログ編

    今回の内容は前回よりだいぶましだぞ・・・。 業務系Java屋がMixiアプリをリリースするまで Javaしかかけないおいらがmixiアプリ第2弾をリリースするまで mixiアプリ第3弾「コレオススメ!」リリースするまで Javaしかかけないおいらがmixiアプリ第4弾をリリースするまで JavaしかかけないおいらがAndroidアプリをリリースするまで の続きになります。 正直実装的にはmixiアプリ第2弾のエントリ(GWT+Flash+JavaSEとの互換レイヤでサクサク開発)が飛びぬけていると思いますが、それ以来くらいのインパクトはあると思います。 長文です。 iOS版を開発するぞ マモノバスター2のAndroid版は無事だせました。読んでない人は上に並んでる過去のエントリを読んでみてください。 AndroidJavaSEと同じJava言語ということで、JavaSEと互換のレイヤーを

    JavaしかかけないおいらがiPhoneアプリをリリースするまで - しんさんの出張所 はてなブログ編
  • Javaトラブルに備えよう #jjug_ccc #ccc_h2

    オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)

    Javaトラブルに備えよう #jjug_ccc #ccc_h2
  • StringBuilderを使ったクソコードはどこまで遅いか - きしだのHatena

    ※ 4/9 11:25 いろいろ計測しなおしてます。こちらも参照 Javaで文字列連結する場合には+演算子よりもStringBuilderを使うべき、という話があるのですが、よく sb.append("[" + data + "]"); みたいなコードをみかけて、あんまり意味ないなーと思ったりします。 あと、 sb.append("title:"); sb.append("[" + data + "]"); みたいに、+演算子を使った一行の式にして sb = "title:" + "[" + data + "]"; としておけば「title:」と「[」はコンパイル時点で最適化されたのに、ってコードもあります。 ということでTwitterJavaでの文字列連結は+を使うべき、ってやったほうが、StringBuilder使ったsb.append("[" + data + "]")みたいなク

    StringBuilderを使ったクソコードはどこまで遅いか - きしだのHatena
  • 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を出す方法 - 西尾泰和のはてなダイアリー
  • 第1回 JVMはどのようにメモリ空間を利用するのか | gihyo.jp

    あのWebサービスもJVMを利用している 「Javaは大規模なエンタープライズシステムにしか使われない」 それが常識だと思っていませんか? たしかに、これまでJava Virtual Machine(JVM)は、他の言語を実行すると遅く、Javaのプログラムを実行する環境にすぎないものでした。ところが、Java 7から実装されたInvokeDynamicにより、JVM上で、RubyPHPなどさまざまなコンピュータ言語で記述されたプログラムをより高速に実行できるようになりました。 これにより、今までエンタープライズでJava言語で記述されたプログラムを実行するだけの環境であったJVMが、汎用的な実行環境になったと言えます。また、これまでJavaの実行環境として使用されていたノウハウが、他の言語で記述されたプログラムを実行する際にも利用できます。 最近では、TwitterがJVMをアプリケー

    第1回 JVMはどのようにメモリ空間を利用するのか | gihyo.jp
  • Eclipseを改善するインクリメンタルサーチプラグイン「Glance」がオススメ!

    Chromeのページ内検索ライクに結果が表示できる「Glance」プラグインがとても良く、「何で標準じゃないんだ!」と思うくらいだったので、紹介します。 標準から置き換えてしまうのがおすすめです。インストール方法・置き換え方法付き。 また、インクリメンタルサーチを知らない人も、インクリメンタルサーチはとても基的なテキスト内の移動手段なので、これを機に使い始めることをおすすめします。 目次 1. インクリメンタルサーチとは2. Eclipse標準のインクリメンタルサーチが貧弱3. Glanceの特徴1:他のヒット位置が表示される4. Glanceの特徴2:ヒット位置がスクロールバーに表示される5. Glanceのその他の特徴5.1. 現在のヒット数が表示される5.2. 拡張検索5.3. 検索履歴5.4. 設定ができる5.5. 実はダイアログなどでも使える6. Glanceのインストール方法

    Eclipseを改善するインクリメンタルサーチプラグイン「Glance」がオススメ!
  • 例外設計における大罪 - 契約

    PHPカンファレンス2012 & WordCampTokyo2012 LT発表資料です。 タイトルの元ネタ: http://www.amazon.co.jp/dp/4094512624

    例外設計における大罪 - 契約
  • Java の語彙で Maybe を説明してみる - ぐるぐる~

    java-jaで例外処理の話をしてきました - 西尾泰和のはてなダイアリー を読んで。 Maybe は値があるかないかを型で表すことができます!そう、直和型なんです!とか言われてもイミフだと思うのです(リンク先のエントリがそう説明してるわけではないですが)。 Java の語彙で Maybe の説明をできたら嬉しい人もいるんじゃないかなぁ、とかなんとか。 ただし、書いてたら結構長くなりました。時間がある人はどうぞ。 Maybe? null より安全に「値がないこと」が扱えるものだよ スタート地点としてはこれでいいでしょう。 以降で、「なんで安全なの?」という全うな疑問に答えてみたいと思います。 問題点 int で説明すると煙に巻いてしまうような気がしたので、User クラスを見てみます。 import java.util.*; class User { final String name;

    Java の語彙で Maybe を説明してみる - ぐるぐる~
  • Javaの例外処理で知らないと損する7つのテクニック

    Javaの例外処理で知らないと損する7つのテクニック:【改訂版】Eclipseではじめるプログラミング(24)(1/3 ページ) これからプログラミングを学習したい方、Javaは難しそうでとっつきづらいという方のためのJavaプログラミング超入門連載です。最新のEclipseとJava 6を使い大幅に情報量を増やした、連載「Eclipseではじめるプログラミング」の改訂版となります(この回と前回のみ、別連載「EclipseでJavaに強くなる」の改訂版です。今回は第4回Javaの例外のテクニックを知る」の改訂版です) 前回の「プログラマの宿命! 例外とエラー処理を理解する」では、Javaにおける例外の用途と基的なコードの書き方、例外が発生するさまざまなケースについて理解しました。 今回は、独自に例外を定義する方法や、ちょっとした例外のテクニックを紹介します。 【1】Eclipseで独自の

    Javaの例外処理で知らないと損する7つのテクニック
  • 2クリックで10GBも空き容量が増えた!Macの大掃除にMagicanは試してみる価値がある!|男子ハック

    Macおすすめアプリ2クリックで10GBも空き容量が増えた!Macの大掃除にMagicanは試してみる価値がある!2011年12月20日708 @JUNP_Nです。年末の大掃除というかメンテナンスはお済みですか?まだというMacユーザーの皆さん、Magicanは試してみましたか?僕は2クリックでディスク領域が10GBも増えましたよ。

    2クリックで10GBも空き容量が増えた!Macの大掃除にMagicanは試してみる価値がある!|男子ハック
  • JUnitとEclipseを使って学ぶ、“テスト”の常識

    JUnitとEclipseを使って学ぶ、“テスト”の常識:Webアプリの常識をJSPとStrutsで身につける(10)(1/4 ページ) 連載は、JSP/サーブレット+StrutsのWebアプリケーション開発を通じて、Java言語以外(PHPASP.NETRuby on Railsなど)の開発にも通用するWebアプリケーション全般の広い知識・常識を身に付けるための連載です いまさら聞けない、“テスト”の考え方やポイント 今回は、「テストの常識」と題し、Webアプリのテスト方法を説明したうえで、実際にJUnitを使用してWebアプリのテストを行ってみましょう。 そもそも、テストとは何のために行うのでしょうか? ただ何となくテスト項目を作成して実施するのでは、作成したWebアプリの品質が低かったり、開発コストが高くなったりと後々、後悔することになります。まず「テストをなぜ行うのか」「何を

    JUnitとEclipseを使って学ぶ、“テスト”の常識
  • プログラムの裏側:内部情報を得るためのJavaリフレクション

    はじめに プログラミングにおけるリフレクションとは、変数からメソッドの宣言まで、プログラムの内部構成のすべてを知ることのできる機能です。Javaでこの機能を利用するには、その名のとおり、JavaリフレクションAPIを使用します。 JavaリフレクションAPIを使用すると、特定のJava仮想マシン(JVM)のクラス、インターフェース、およびオブジェクトの内部情報を知ることができます。一般に、開発者はこのAPIを使用して次のような作業を行います。この作業内容を見れば、デバッガや統合開発環境(IDE)などのツールの開発にこのAPIが頻繁に使用される理由が分かると思います。 オブジェクトのクラスを判別する。 クラスの修飾子、フィールド、メソッド、コンストラクタなどに関する情報を得る。 インターフェースの定数とメソッドの宣言に関する情報を得る。 実行時まで名前はわからないが、設計時に使用されたり、ラ

    プログラムの裏側:内部情報を得るためのJavaリフレクション
  • 直列化可能クラスについて - asa nisi masa

    Eclipseで「serialVersionUIDが定義されていない」警告が出て、放置しておくのも気持ち悪いので、serialVersionUIDについて調べた。 参考:JDK1.5ドキュメント 参考:APIドキュメント まず、Serializableについて確認 何者? 直列化可能であることをマーキングするインターフェース 用途は? (SOAP、EJB、RMIなど)通信、ストリームの読み書きなど様々 Serialize可能なクラスの条件は? java.io.Serializableを実装していること デフォルトコンストラクタを定義していること Serializeされる属性とは? 以下の条件を満たす属性。 staticでない transientでない ※Java5でサポートされたEnumとかもSerializeされる。 次に、serialVersionUIDについて確認 目的は? 直列化さ

    直列化可能クラスについて - asa nisi masa
  • FindBugsパターン説明

    FindBugs とは、プログラム中に存在するバグを検出するツールです。 プログラミングで問題となり得るバグパターンを検知し、ユーザにそれを知らせます。 以下、FindBugs が定義するバグパターンの一覧と簡単なサンプルコードを示します。 対象バージョンは 1.2.1 です。 Limy Eclipse Plugin を使えば、Findbugsによるコードチェックを簡単に行えます! Bad practice このカテゴリのバグパターンは、「バッド・プラクティス」。 良くないコード記述法を指します。 AM: Creates an empty jar file entry 空のjarファイルを作成しています。 putNextEntry() メソッド呼出の後、すぐに closeEntry() を呼び出しています。 jar圧縮するコンテンツは putNextEntry() メソッドを呼び出した後で

  • http://www.sk-jp.com/java/tips/index.html

  • FindBugsのバグパターン一覧 - たかのり日記

    Javaに対する静的解析ツールには、以下のようなものがあります。 FindBugs PMD Jlint Lint4j Jtest(有償) 近頃の動向を見ていると、OSSのツールでは、FindBugsがデファクトスタンダードになりつつあるように思います。FindBugsは、2007/11/08にリリースされた1.3.0以降、1〜2ヶ月に一度の頻度でリリースされており、チェックルールも充実してきています。最近、FindBugsのチェックルールを調べる機会があったので、どんなルールがあるのかをまとめてみました。 FindBugsが検出するバグパターンは、次のような括り方となります。 バグカテゴリ > バグコード > バグタイプ 左側がより大きい括りになっており、バグタイプが1つの検出ルールに対応付きます。 FindBugsは、1.3.4時点で、8個のカテゴリと354個のチェックルールから成り立ち

    FindBugsのバグパターン一覧 - たかのり日記
  • 純log : findBugs

  • 1