タグ

*Javaと*tipsに関するspodophyllumのブックマーク (27)

  • Date and Time API 相互変換チャート - Programming Studio

    Date and Time API の主要な日付・時刻クラスについて、相互変換を図にしてみました。これは昨年 3 月の JJUG Java 8 ローンチ・イベントの発表資料に収録した図を、印刷に耐えられるよう改版したものです (マスタを Illustrator 形式で作成)。 イメージは以下の通りです。 PDF 形式も用意しました → jsr310-conversions.pdf この図を持っていても皆様の給料は上がりませんが、Date and Time API の使い勝手は少しだけ上がります。

    Date and Time API 相互変換チャート - Programming Studio
  • javaからwindowsのバッチファイル(*.bat)を実行する - 文系プログラマによるTIPSブログ

    これ、未だに重要あるのです〜 今回はJavaから*.batを実行する方法についてまとめます。 説明が面倒なので、サンプルコードを。 サンプルコード 「echo|」とは? 「new BufferedReader(new InputStreamReader(in, MS932"));」とは? 「process.waitFor()」とは? サンプルコード public int executeBat(String path) { String[] cmds = { "cmd.exe", "/c", "echo|" + path }; try { return execCommand(cmds); } catch (Exception e) { e.printStacktrace(); } } private int execCommand(String cmd) throws IOExceptio

    javaからwindowsのバッチファイル(*.bat)を実行する - 文系プログラマによるTIPSブログ
  • Java のアップデート時に余計なアプリをインストールしない方法: ある SE のつぶやき

    Java のアップデート時に、毎回表示される以下の画面にうんざりしていたのですが、このアプリ(Ask のツールバーですか)をインストール時に表示しない方法を教えてもらいました。 さて、その方法というのは、Java のコントロールパネルを起動して、[詳細]タブを表示し、一番下にある「Java のインストールまたは更新時にスポンサのオファーを表示しない」にチェックを入れて設定するだけで OK とのこと。 しかし、分かりにくい。教えてもらわなければ気が付きませんよ。これは。 でもこれで、毎回煩わしかったアップデートも、少しは気が楽になりますね 追記: こちらから、JRE 7 Update 75 をインストールして、バージョンアップしてみたところ、確かにツールバーのインストール画面は表示されなくなりました。素晴らしい。

    Java のアップデート時に余計なアプリをインストールしない方法: ある SE のつぶやき
  • https://qiita.com/pcpDev/items/0c83712e93f8f972f208

  • Javaで文字化けする文字を判別する方法 | Divide et impera

    例えばHTMLはCP932、DBUTF-8、メールはISO-2022-JP そんな環境だったときに困るのが文字コード servletで動いているウェブアプリがあったとして、HTMLからJavaDBへの流れは特に意識しないでも問題ない。Javaがやってくれるから でも、困っちゃうのがアプリに登録されているネタを別の媒体に出力する時だ。 主にあるのがメール。ISO-2022-JPは、CP932(shift_jisの拡張)で使えた文字が使えない。 官公庁にだす書類などでは第一水準と第二水準にしなければならないとかあるそうだ。 e-taxの使える漢字はどのようなものなのかを調べようと思ったら、JIS X 0221で使える文字みたいなことが書いてあった。 JIS X 0221はUnicodeだそうで、ならば結構な数の漢字が使えそうだと思ったのだけれども、 使える漢字使えない漢字一覧がPDFで公開

    Javaで文字化けする文字を判別する方法 | Divide et impera
    spodophyllum
    spodophyllum 2015/02/26
    文字コード
  • 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
  • Java8日付時刻APIの使いづらさと凄さ - きしだのHatena

    いままでのJavaでは、日付時刻を扱おうとするとめんどくさい割に非常に低機能でした。 Java8では、新たに日付時刻APIが導入され、めんどくささが増しつつ非常に高機能になりました。 (以降、Java8で導入された日付時刻APIを単に「日付時刻API」と表します) もちろん、慣れてきて、ちょっとしたサポートメソッドを用意してやれば、結構使いやすいのですが、それは「このAPIは使いやすい」という評価にはなりません。 つまり日付時刻APIは、慣れないとぜんぜんわからないし、サポートメソッドがないと面倒なコードが必要ということです。 いろいろあってよくわからない 日付時刻では、時点を扱うInstantや期間を扱うPeriod、時間量をあらわすDurationなど多くのクラス・インタフェースが導入されています。 これらは、IDEの補完でAPIを探りながら機能を推測すれば、それなりにドキュメントなし

    Java8日付時刻APIの使いづらさと凄さ - きしだのHatena
    spodophyllum
    spodophyllum 2013/09/24
    コメント欄も参照
  • 正規表現 ( Javaサンプル集 )

    Javaサンプル集 正規表現に関するJavaサンプルプログラム集です。 RSS2.0 サイト更新情報 ・サイトマップ ・Twitterはじめました (http://twitter.com/yunpons) [ 記事一覧 ] 作って遊ぼうJavaプログラミング トップページ ご意見、ご感想、ご質問 ユーザー投稿フォーム お役立ちリンク集 Java関連書籍 Java アプレットゲームコーナー Java入門 サンプル集 Javaサンプル集 文字の連結 部分文字列の取り出し 文字列の変換(英字) カタカナからローマ字への文字列変換 ひらがなからローマ字への文字列変換 数値の文字列フォーマット変換 日付の文字列フォーマット変換 時刻の文字列フォーマット変換 いろいろな文字列フォーマット変換 正規表現 オブジェクトのソート ファイルの入出力 外部プログラムの実行 図形の印刷 日にちの計算 いろ

  • Java 9が1.5以前のソースコードのコンパイルを非サポートに

    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 9が1.5以前のソースコードのコンパイルを非サポートに
  • HashMapでOutOfMemoryErrorが発生するケース - wadahiroの日記

    HashMapの同期化をしていないと無限ループになるという話はこことかここで説明されているのでかなり有名かと思います。 今回不運にも遭遇したのは、同期化をしていなくてOutOfMemoryError(以下、OOM)が起きてしまうというケース。かなり特殊かもしれないですが、同じ問題で悩む人が今後いればと思い、記録しておきます。 再現方法 早速再現方法を。以下のようなコードを実行すると、たまにOOMが起きてしまいます。HashMapに異なるデータをputをし続けてデータが増加し続けるという単純なリークではありませんよ! ここで行っていることは、 HashMapにデータを追加(キーは0-3000までのランダムな数字)するスレッド×2 追加されたデータを全て削除するスレッド×1 を同時に実行しているだけです。キーは0-3000で固定なので、どんどんHashMapの中身が増加し続けるということはあり

    HashMapでOutOfMemoryErrorが発生するケース - wadahiroの日記
  • 業務系のJavaプログラマーが知っておくべき10個のBad Partsとその対策 - 達人プログラマーを目指して

    Java: The Good Partsののタイトルに触発されて、逆にJava言語の使いにくい部分をいくつかピックアップしてみました。Java EEなどの業務系のアプリケーションプログラマーの視点で書いていますので、別の立場ではここで指摘している事項が必ずしもBad Partではないという指摘もあるかもしれませんし、他にもいろいろなポイントがあると思いますが、とりあえず、私の独断で思いついたものを10個説明したいと思います。 1.標準APIのチェック例外が扱いにくい Java言語のチェック例外は当にGood Partなのか? - 達人プログラマーを目指してでも取り上げましたが、Bad Partの第一番目として標準APIのチェック例外が扱いにくいという点を指摘させていただきたいと思います。チェック例外については、理屈上コンパイラーによって例外の処理をプログラマーに強制させることができるす

    業務系のJavaプログラマーが知っておくべき10個のBad Partsとその対策 - 達人プログラマーを目指して
  • デコンパイルツール「Java Decompiler」を試してみた。 - 谷本 心 in せろ部屋

    Jadが大好きなんだけど、Java5以降の文法に対応してないから 若干やきもきしつつもガッカリしている皆さん、こんばんは。 名前そのまま、Java Decompilerというツールがありました。 http://java.decompiler.free.fr/ Java6まで対応しており、 Eclipseプラグインとしても、単体のGUIアプリとしても使えるスグレモノです。 Java5のアノテーションやGenrics、foreach文なんかの復元にも対応しており Jadが「デコンパイル失敗しました(><)」とすぐに根を上げていたクラスも 開けるようになるんじゃないかと思います。 ということで、早速試してみました。 GUI版 http://java.decompiler.free.fr/?q=jdgui#downloads ここからダウンロードして、解凍して実行するだけです。簡単です。 GUI

    デコンパイルツール「Java Decompiler」を試してみた。 - 谷本 心 in せろ部屋
    spodophyllum
    spodophyllum 2013/03/01
     逆コンパイル
  • Stringの連結はそう簡単なものではない - かとじゅんの技術日誌

    追記: 指摘の通りで、現実的な連結回数での計測でもないですし、統計手法を用いた分析をしていないので、このエントリの計測値は当てにしないでください。なので以下のブログを参考にしてください。 currentTimeMillis()で計測しておいて plusTime:14780, concatTime:7053, sbuilderTime:7, sbufferTime:13 とか、その7とか13の有効数字はいくつだっての。 激しく今更感があるタイトルですが(;・∀・) 昔に取り上げたのですが、 文字列の結合をやるからといって、すぐにStringの+をつかってはいけない - じゅんいち☆かとうの技術日誌 Stringの+演算子は間違った使い方するとパフォーマンスが低下しますよっていう話題。若干ネタ成分ありますが、ご容赦ください。 これ系の話題は自分的にはオワコンなんですが、最近、また話題を見つけた

    Stringの連結はそう簡単なものではない - かとじゅんの技術日誌
    spodophyllum
    spodophyllum 2013/02/21
    StringBuilder StringBuffer
  • DateFormatは前方一致だったのか - syttruの日記

    yyyy/MMという日付書式に、2010/06/15っていう文字列日付を入れてもパースできちゃうっていうのはどうゆう仕様なんだろうか。 JavaのDateFormat - 何言語でも話したいPGの開発日記 気になったので調べてみました。 メソッドは pos によって指定されたインデックスを開始位置としてテキストの解析を試みます。解析が完了すると、pos のインデックスは、使用された最後の文字 (解析では、文字列の最後までのすべての文字を使用する必要はありません) のあとのインデックスに更新され、解析された日付が返されます。更新された pos は、このメソッドの次の呼び出しの開始点を示すのに使用できます。エラーが発生した場合は、pos のインデックスは変更されず、エラーが発生した文字のインデックスに pos のエラーインデックスが設定され、null が返されます。 DateFormat#pa

    DateFormatは前方一致だったのか - syttruの日記
    spodophyllum
    spodophyllum 2013/02/20
    日付
  • SimpleDateFormatで日付の妥当性チェック - Develop with pleasure!

    SimpleDateFormatで日付の妥当性チェックをしようと SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); format.parse("20080132"); とするが、日付が英字だったりするとParseExceptionが発生するが、実在しない日付を設定してもParseExceptionは発生しない。SimpleDateFormatじゃあ妥当性のチェックまではできないのかと思ったらちゃんと設定があった。 setLenientという日付の厳密な解析を行うかどうかを設定できるメソッドがある。デフォルト値はtrue。trueだったら厳密の解析が行われた結果じないかと思うが、この設定falseの場合に厳密な解析を行ってくれるとのこと。紛らわしい…。なので、 format.setLenient(false); forma

    SimpleDateFormatで日付の妥当性チェック - Develop with pleasure!
  • 月末日を求めるプログラム

    検索すると結構見つかるものですが、JavaのCalendar#getActualMaximumを使った間違ったサンプルを多く見かけるので正しいやり方をメモメモ。相手の力量をはかるためのクイズとして使っても良いかもしれませんね。 カレンダーがgetInstance()じゃない事は言及しません。 以下は2006年2月の月末日を求めるコードです。 ●とりあえず間違ったコード GregorianCalendar c = new GregorianCalendar(Locale.JAPAN); c.set(Calendar.YEAR, 2006); c.set(Calendar.MONTH, 2 - 1); System.out.println(c.getActualMaximum(Calendar.DAY_OF_MONTH)); 何がいけないか。 月末に実行してみるとわかると思います。 仮に今日が

    月末日を求めるプログラム
    spodophyllum
    spodophyllum 2013/02/20
    日付 calendar
  • java.util.Calendarによる月初・月末の計算方法 - my-notebook

  • 各種ブラウザーで Java (applet) を無効にする方法

    こちら(米国)では、見つかった Javaセキュリティホール(+それを利用した実際のアタック)が大問題になり、米国政府が「ただちに Java を無効にするように」と声明を出し(参照)、全国ニュースでも大きく取り上げられている。 実質的な危険があるのは Java applet なのだが、JavaJava applet の違いの分からない報道機関は、大々的に「Java が危険」と報道しており、Sun Microsystems を買収して Java を入手した Oracle にとっては大きなブランドイメージの損失だ。Oracle は火曜日には56カ所のセキュリティホールを塞いだパッチを提供するそうだが、そんなパッチでは、今回作られてしまった「Java は危ない」というイメージは拭えない。 どのみち、Java applet にはほとんど価値がないので、これを機会に無効にする人も多いようだ(

    各種ブラウザーで Java (applet) を無効にする方法
  • Log4J徹底解説〜使い方

    目次 QuickStart カテゴリー ログ出力 レイアウト log4Jの初期化 1.3 の内部ログ XML設定ファイル JoranConfigurator(1.3) Filter機能 commons-loggingから使う 速度に対する配慮 log4j の初期化 ここで少し log4j の初期化について話しておこう。実際には、 Logger log = org.apache.log4j.Logger.getLogger( this.getClass() ); のように、org.apache.log4j.Logger クラスのクラスメソッドである getLogger() を呼び出して利用を開始するのだが、これは /** Retrieve a logger by name. */ static public Logger getLogger(String name) { return Log

  • Log4jの設定ファイルではプロパティ形式よりXML形式のほうが優先される - yummy-yummy

    Log4jの設定ファイルをいじってて、アプリ実行→ログが出力。。。のはずが、設定したとおりのログが出ない。。。 あれれ〜?と小一時間ほどはまって問題解決!! どうやらsrcフォルダとresourcesフォルダにそれぞれLog4jの設定ファイルがはいっていたのが原因だったようです。 「log4j.xml」 →前からあったの 「log4j.properties」 →今回追加したの 既存のlog4j.xmlに気づかずにlog4j.propertiesを追加して、log4j.propertiesの設定を変えていたんだけど、どうやらLog4jlog4j.xmlの設定のほうを優先するらしいので、変更がまったく反映されていなかったようです。 log4j.xml は既に述べたように、クラスパス上の log4j.properties よりも優先して設定ファイルとして解釈される。言い替えれば両方あった時には

    Log4jの設定ファイルではプロパティ形式よりXML形式のほうが優先される - yummy-yummy