タグ

Javaに関するsinsengumi-2のブックマーク (165)

  • PHPにfinallyはないけどデストラクタがあるよ

    PHP finallyで検索すると、「PHPにはfinallyがない。欠陥言語だ!」という主張の記事がたくさんヒットします。これに対してPHPを擁護している記事があまりなさそうなので、PHPを擁護してみることにします。 finallyとは何か まずはおさらい。 try~catch~finallyは例外処理を行うための構文です。tryで例外が発生するかもしれない処理を書き、catchで例外が発生したときの対処を書き、finallyでは例外が起きても起きなくても実行される処理を書きます。…というのが初歩的な説明ですが、このfinallyの解説は十分ではありません。 finally節は、途中でどんなことが起ころうとも必ず実行されるというかなり特殊な性質を持っています。たとえば以下のJavaScriptのコードはいずれも「try」「finally」と表示します。tryの中でgoto相当の構文を実行

    PHPにfinallyはないけどデストラクタがあるよ
  • 自分用ListUtils作った - id:k-z-h

  • Java コーディングスタンダード CERT/Oracle 版

    Top へ AA参考情報 References (CERT Oracle Secure Coding Standard for Java のページにとびます) 『Java セキュアコーディング 並行処理編』 Top へ BBGlossary Glossary (CERT Oracle Secure Coding Standard for Java のページにとびます) Top へ XXお問い合わせ ページに関するご質問・お問い合わせは、secure-coding@jpcert.or.jp までメールにてお願いいたします。 Top

    Java コーディングスタンダード CERT/Oracle 版
  • FindBugs version2.0.2 バグパターン詳細

    Bx : 非効率な浮動小数点数のコンストラクタを呼び出しています。 valueOfスタティックメソッドを代わりに使用してください。 (DM_FP_NUMBER_CTOR) new Double(double)を呼び出すと、常に新たなオブジェクトが生成されます。これに対し、Double.valueOf(double)は、コンパイラ、クラスライブラリ、JVMによってキャッシュすることが可能です。キャッシュを使用することによって、余計なオブジェクトの生成を防ぎ、コードの実行効率を改善できます。 バージョン5.0より前のJava実行環境との互換性が不要であれば、オートボクシングか、Double、FloatのvalueOf()メソッドを代わりに使用してください。 Bx : 非効率なNumberのコンストラクタが呼び出されています。 代わりに valueOf スタティックメソッドを使用してください。

  • dalvik VM伝説 - oops

    ・10秒に1回のFull GCは当たり前。1秒に1回Full GCすることも ・起動と同時にFull GCを連発 ・dalvikにとってGC_FOR_ALLOCは一時オブジェクトの確保しそこない ・BitmapFactoryをひと睨みするだけでGC_FOR_ALLOCで止まる ・あまりにFull GCするからGC_CONCURRENTでも止まってない扱い ・オブジェクト1個の生成時間が3フレームに見える ・グッとガッツポーズしただけで5フレームくらい止まった ・1オブジェクト生成で1Full GCはザラ、2回Full GCすることも ・Androidフレームワークが自分で作った一時オブジェクトでFull GCするというファンサービス ・画面タッチと同時にFull GCし、1GHz CPUを追い抜きフレーム落ち成功 ・2フレームスキップのFull GCが起こった次の瞬間気

  • 第43夜 JAX-RSをWebアプリのフロントエンドとして利用する - しんさんの出張所 はてなブログ編

    久々のJavaネタ。 JAX-RSのRI実装であるJerseyでのWebアプリケーションの作り方。 いつものように足し算する。 テンプレート。今回はJSP。 <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h1>${a} + ${b} = ${c}</h1> </body> </html> アクションクラス。 @Path("calc") public class CalcResource { @Path("{a}/{b}") @GET public Viewable add(@Context HttpSe

    第43夜 JAX-RSをWebアプリのフロントエンドとして利用する - しんさんの出張所 はてなブログ編
  • Scala School

    Other Languages: 한국어 Русский 简体中文 About Scala school started as a series of lectures at Twitter to prepare experienced engineers to be productive Scala programmers. Scala is a relatively new language, but draws on many familiar concepts. Thus, these lectures assumed the audience knew the concepts and showed how to use them in Scala. We found this an effective way of getting new engineers up to spe

  • マイクロソフトに厳格な一家を襲う悲劇。Javaよ永遠なれ

    いまさらJava対.NETはちょっとテーマとして古くないかな? とは思うものの、とても面白いビデオが公開されたので紹介します。「Java 4-ever」という映画のトレーラー、という設定のおもしろビデオ。 9月8日にノルウェイのオスロで開催されるイベント「JavaZone 2010」の宣伝のために作られたようです。こんなストーリー。 Java 4-ever Trailer 父親は寝る前に息子にマイクロソフトテクノロジーのすばらしさをおとぎ話のように語る。その父に子どもは無邪気に問いかける。「パパ、どうしていつも.NETなの?」 父親の顔色が変わる。「さあ、もう寝る時間だ」 少年は青年となり、禁じられた技術をこっそり友人と試すようになる。「こいつはスゲー、ロバストで、セキュアで、ポータブルで、スケーラブルじゃんか!」 そこへ父親の監視の目が光る「お前たち、Javaやオープンソースを使ってたり

    マイクロソフトに厳格な一家を襲う悲劇。Javaよ永遠なれ
  • Javaの匿名クラスを使ってかっこよくオブジェクトを初期化するテクニック - 矢野勉のはてな日記

    JavaJavaの匿名クラスはすごくかわしいかわいい技術でいろいろキモイことができます。匿名クラスは基的に「サブクラス生成のための特殊記法」であって、クロージャではありません。匿名クラスとクロージャを対比して云々するのはそもそも誤りです。なんならクロージャでサブクラス作ってみなよってことです。匿名クラスによって、Javaではなにかのサブクラスを任意の場所で即座に作り出すことが出来るんです。なにかのクラスのメソッドを三つほど書き換えた新しいクラスをさっと作れるのは、なかなか面白い機能ですよ。 その匿名クラスを利用したカッコイイ(でも使うのは躊躇されている)記法として、次のようなのがあります。(追記:この用法はヨシオリさんところで見たのが最初です) List list = new ArrayList() {{add("a"); add("b"); add("c");}}; Javaには「初期

  • イマドキのWebシステムに向けて - nemuzukaの「明日から本気出す」

    最近のWebシステムは、クライアント依存しづらくしなきゃだめよねー、ということで、サーバサイドにはJava、クライアントはJSON+JavaScriptでレンダリングという構成でシステム構築を考えております。そんな中で気づいた事をメモっとこうかなぁ、と。 なんでそんな構成にするの? PCのWebブラウザだけでなくスマフォのブラウザやネィティブなアプリに対応しやすくするためです。サーバサイド処理を変えることなくクライアント側の処理で対応させちゃおうということです。サーバサイドの処理はJavaでなくてもPHPRubyでもなんでも良いわけです。クライアント側と会話さえできれば。 サクサク感がたまらない 今まではsubmitして画面表示しなおすという方式が当たり前だったのですが、この方式に慣れてしまうと、画面遷移がモサく感じます。何か、ボタンを押すたびに画面が切り替わってスクロールバーが一番上に

    イマドキのWebシステムに向けて - nemuzukaの「明日から本気出す」
  • Androidコンポーネント初級編#4 : GridViewの使いかた | DevelopersIO

    はじめに 今回はGridViewの使いかたを解説したいと思います。 GridViewは、その名の通り要素をグリッドで表示するコンポーネントです。 今回は、テキストのみの簡単なGridViewと、GridViewを使った画像ギャラリーのサンプルを作成します。 GridViewの作りかた 1.ArrayListを作る これまで同様、まずはデータリストを作成します。 例ではString型のArrayListを作成しています。 2.ArrayAdapterを作る ここも前回と同様、ArrayAdapterを作成します。 例では、String型のArrayListを作成しています。 レイアウトは前回も使用したandroid.R.layout.simple_list_item_1を使っています。 3.GridViewにAdapterをセットする 最後に、GridViewのsetAdapter()メソッ

    Androidコンポーネント初級編#4 : GridViewの使いかた | DevelopersIO
  • JUnit4のassertThat()って便利なの?

    JUnit4ではhamcrestライブラリーが統合されており、伝統的なassertEquals()を使った比較以外に汎用的なassertThat()が使えます。これを使うとより英語的に自然に読めるアサーションを記述できるとされています。しかし、Classクラス同士の比較ができないといった問題もありますし、そもそも日人にとって便利なのかという疑問もわきます。

    JUnit4のassertThat()って便利なの?
  • プログラマなら人月なんかさっさと超えろ - 矢野勉のはてな日記

    Java, プログラミングノリノリで書いてみる。 人月というのは「人月の神話」以来、現場の技術者にとっては「お金の計算にしか使えない単位」なのですが、発注者側に分かりやすいということでいまでも大はやりしています。というか受注者側もまじめにこの単位で計算しています。 そしてJavaの世界というのは、私のようにJavaが大好きだからやってる、という人間はすごく少数派で、「そろそろJavaでもやっとくか」「Strutsの使い方覚えたからもういいか」「できればJavaなんかいじりたくないなー。俺も早くプログラマに『これやっといて』って言えるようになりたい」という人のほうが多いのが実情なんですね。その点Rubyの世界は、今は「好きだからやってる」人が圧倒的でしょう。プログラム能力の高いJavaプログラマを探すのは、プログラム能力の高いRubyプログラマを探すよりずっと大変だろうと思う。 Javaの世

  • デザイナーの作るHTMLを壊したくないWeb開発者のために

    フレームワークは数あれどデザイナーの作るHTMLにコードを埋めるテンプレートフレームワークは失格だよね。Strruts,JSP,XSL、Velocity、みんな使えない。 どれもこれも開発工程を考えてないし、手戻りのことが考えられていない。HTML→XSLなんかに変換してしまった日には、デザイン修正があったらどうすんの?大規模修正があったら、これ一つに1人日費やすのは選択ミス以外の何物でもない。とにかく、for eachとif文をデザインコードに埋め込むコードは最悪ね。とにかく、こういうのはHTMLタグに重きをおかないエンジニアonlyの発想でしかない。 また、変換入れると、マスターデザインのデータが2つになることを意味しているわけ。ここで修正ミス、デザインの不一致が起きうる。XSL使ってみたら、実際起きてるし。 そもそもモノ作りとは、何かの状態遷移をもたらすことで発生するビジネスであるな

  • ビルドツールエントリを見直してみて思ったことなどなど - @ikikko のはてなブログ

    ちょっと前に書いた Javaプロジェクトにおけるビルドツール - @ikikko のはてなダイアリー Javaプロジェクトにおけるビルドツール2 - @ikikko のはてなダイアリー に関連して、はてブコメントへの反応とか、その他追加で考えたことについて。 IDE連携 eclipseと統合されてるかは極めて重要:Javaプロジェクトにおけるビルドツール - @ikikko のはてなダイアリー URL 2011-08-02 20:47:25 via BBS (JP) どのIDEを用いるかの議論はあるにせよ、今どきJavaプロジェクトの開発で何もIDEを用いないのはさすがにしんどいかと思われます。ただ、IDEだけ用意すればいいわけでもありません。IDEとは独立してビルドツール・ビルドスクリプトも用意しておかないと、ビルドがIDE依存になってしまったりCIが回せなかったりと、色々不都合な面も出

  • Javaセキュリティーメモ(Hishidama's Java security Memo)

    アクセス権は、grantの{ }ブロックの中に「permission」から始めて権限のクラス名(と引数)を記述する。[2009-04-15] 1つのgrantのブロックの中に複数のpermissionを書くことが出来る。 grant { permission java.security.AllPermission; ←全権限を許可 }; grant { permission java.util.PropertyPermission "*", "read"; permission java.io.FilePermission "C:/temp/test.txt", "read"; }; ${ }で、システムプロパティーを使うことが出来る。[2009-04-15] grant codeBase "file:${user.dir}/classes" { permission java.io.Fi

  • Unicode ~エンディアンとBOM~(文字コード関連) | 読み物 | ウナのIT資格一問一答

    Unicode ~UTF-8、UTF-16との違い~では、Windowsメモ帳の保存ダイアログの「文字コード」セレクトボックスにおける選択肢「Unicode」が、実際には「UTF-16」を意味しているというお話をしました。 では、選択肢「Unicode」の下にある「Unicode big endian」というのは何なのでしょう? 実はUTF-16には、エンディアンというものの違いにより2種類あり、上のセレクトボックスの選択肢「Unicode」は「UTF-16 リトルエンディアン」を、「Unicode big endian」は「UTF-16 ビッグエンディアン」を意味しています。 では、エンディアンとは一体何なのでしょう? エンディアンとは、多バイトのデータをメモリ上に配置する方式のことです。 上位バイトから順番にメモリに並べる方式をビッグエンディアン、下位バイトからさかさまにメモリに並べる

  • UTF-8で文字化け回避してCSV出力する方法 - エムイズム - つぶやきブログ

    UTF-8で文字化け回避してCSV出力する方法です。 なかなか情報が出ていないのでメモしておきます。 【現象】 UTF-8CSV出力すると、エクセルがUTF-8をサポートしていないため エクセルでWクリックして開いたときに文字化けしてしまいます 【試行錯誤】 CSV出力時にshift-jisとかに変換するという回避もありましたが shift-jisだと出ない漢字などが発生してしまいます 【最終回避方法】 ①CSVファイルの冒頭のバイナリデータにUFT-8のBOMであるef bb bfを追記してCSVを吐く ②WクリックでCSVファイルを開くのではなく、エクセルの「開く」 メニューからファイルを開く ③ファイルを開くときにダイアログが出てきてutf-8指定、カンマ区切りの指定ができるので開けるようになる ちなみにJAVAでバイナリの追記をする方法は下記。 -----------------

  • Shift_JIS、CP932、MS932、Windows-31J(文字コード関連) | 読み物 | ウナのIT資格一問一答

    Windows標準の文字コードはShift_JISではなく、Windows-31Jです。 それらの違いやCP932、MS932といった用語もあわせて整理してみましょう。 まずはShift_JIS。 これは日語の文字集合を符号化する文字符号化方式のうちの一つです。 Microsoftにより、MS-DOSの標準日語コードとして採用され、CP932という管理番号を与えられるとともに独自の拡張が行われました。 MicrosoftはこのCP932を独自に拡張することを、OEMメーカー(MS-DOSを搭載したパソコンを販売するメーカー)に許していたため、各OEMメーカーごとに異なる拡張が行われました。 その後、MicrosoftWindows3.1の日語版を出すにあたり、OEMメーカーにCP932の独自拡張を許すという方針を撤回し、当時、日のパソコン市場で特に大きなシェアを持っていたIBMと

  • Hadoopの異端さが面白い - wyukawa's diary

    Hadoopはほんとブームです。バブルだと言っていい気がします。各種セミナーはすぐに埋まりますし、実際に聞きに行くと会場は満員です。 この分野は日だとNTTデータが先頭をきったように見えます。 NTTデータ、Hadoopの商用ディストリビューション「CDH3」を販売開始 | 日経 xTECH(クロステック) またHadoop専業会社「ノーチラス・テクノロジー」というのもできました。 ウルシステムズとイーシー・ワンが経営統合、Hadoop専業会社を立ち上げ | 日経 xTECH(クロステック) しかし最近では富士通やIBMもHadoopソリューションを展開しておりレッドオーシャンな感じです。 富士通がビッグデータ分析・活用向けのPaaSサービス | 日経 xTECH(クロステック) 日IBM、表計算のように分析できるHadoopソフト新版「BigInsights」 | 日経 xTECH

    Hadoopの異端さが面白い - wyukawa's diary