タグ

Javaに関するthreeMonthsのブックマーク (225)

  • 別におぼえたくないのに…Javaの方から勝手に脳に入り込んできて、気がつけばJavaを習得してしまうゲーム「Robocode」 - techiela

    HelloWorldやっても面白くねーんだよ!! 皆さんこんにちは。 Google App Engine (GAE)でJavaがサポートされ、 PythonはスルーしたけどJavaならやりたい!でもJava未経験! GAE/Jに手を出してみたけど、結局hello, world!のサンプルアプリを公開したまま 放置した状態になっていませんか? 僕はそうです! Java使えたら楽しいだろうなー Java覚えて仕事の案件こなしたいなー Java使えたらオブジェクト指向がもっとわかるだろうなー リア充へのあこがれ と、常々思っていつつも、Javaの最初の面倒臭さの前にいつもやる気喪失するんですよね。 HelloWorldひとつやるのにpublic static void main()書くなんて面倒臭すぎです コンパイルなんて面倒でやってられません eclipseの使い方憶えるのが面倒だし ecli

    別におぼえたくないのに…Javaの方から勝手に脳に入り込んできて、気がつけばJavaを習得してしまうゲーム「Robocode」 - techiela
  • java_getset.vim : Javaのゲットメソッド、セットメソッドを生成 — 名無しのvim使い

    Java言語用のスクリプトで 変数のアクセサメソッドを作成します。 Java言語では、アクセサメソッドは多用されるので 有用なスクリプトです。 (Windows, Mac) 概要 java_getset.vim : Automatically add getter/setters for Java properties (including array-based) http://www.vim.org/scripts/script.php?script_id=490 Java言語用のスクリプトで 変数のアクセサメソッドを作成します。 // 変数 private String name; // アクセサメソッド生成(デフォルト) /** * Get name. * * @return name as String. */ public String getName() { return n

  • InfoQ: JavaプログラマがFlexとBlazeDSを学んだ方がいい13の理由

    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が最近リリースされ、重要な変...

    InfoQ: JavaプログラマがFlexとBlazeDSを学んだ方がいい13の理由
  • Wavフォーマットと音の波 - bonar note

    最近趣味Java Sound API を弄ってます。外に出せるくらいのものになるまではまだまだ時間かかりそうですが、これがすごく面白い。Java Sound API を使うとすごく簡単に録音したり再生したりできます。ローカルのファイルを再生する場合はこんな感じですね。 AudioInputStream in_stream = null; try { in_stream = AudioSystem.getAudioInputStream(audio_file); audio_fmt = in_stream.getFormat(); } catch (IOException e) { System.err.println("IO error " + e.getMessage()); System.exit(1); } .... int buffer_size = frame_size *

    Wavフォーマットと音の波 - bonar note
  • Java EEサーバからレスポンス返らず。何から調べる?

    今回は、Webシステムの代表的な問題の1つとして、Java EE(J2EE)サーバのプロセスのハングアップが発生した場合を取り上げる。こういった場合、IT情シス・SE/プログラマがどういった流れで問題解決をしていくべきか。その手順について話をうかがったので、その内容を紹介する。 現象の見え方 今回は、以下の問題についての話だ。 問題解決への流れ 通常のプロセスハングアップが発生した場合、設定によっては、Java EEサーバのハングアップを検知して、自動的に障害資料採取およびサーバの再起動が実施される。しかし、このような設定を行っていない場合は、どうすればいいのだろうか。手動で障害資料を取得してから、サーバの再起動を行う必要がある。 プロセスハングアップ時に必要な障害資料は、OSの統計情報やJava EEサーバのログ・トレース、スレッドダンプだ。 スレッドダンプ 特に、スレッドダンプはハング

    Java EEサーバからレスポンス返らず。何から調べる?
    threeMonths
    threeMonths 2009/11/27
    一応javaタグ
  • 第9回 圧縮ファイルの操作方法

    Javaを使って普段の仕事をラクにするツールを作るこの連載も,早くも第9回を迎えます。今回は,皆さんが普段から使っている圧縮ファイルの扱い方について見ていきます。Javaを使ってファイルを圧縮/解凍する方法を学びましょう。 この連載では,日々の定型的な業務をJavaで自動化してラクする方法を紹介しています。今回は,皆さんも利用する機会の多い圧縮ファイルをJavaから操作してみましょう! Javaを使って,ファイルを圧縮/解凍する方法を説明します。 おそらく読者の皆さんのほとんどは,ファイルの圧縮や解凍に専用のツールを使用していると思います。便利なことに,Javaもこうした専用ツールと同様に,ファイルを圧縮/解凍できる機能を備えています。この機能を使うと,GUIベースのファイル圧縮/解凍専用ツールでは難しい操作もできるようになります。例えば,あるフォルダ以下に含まれたファイルから,特定の文字

    第9回 圧縮ファイルの操作方法
  • Javaで軽快に使える「軽量フレームワーク」特集 低い学習コストを重視した「Apache Click」 (1)

    はじめに 「軽量フレームワーク」と呼ばれるソフトウェアは、その「軽量」という言葉から、つい動作速度やプログラムサイズなどに目が向いてしまいがちです。しかし、「軽い」は物理的なことだけを示すわけではありません。 「手軽に使えるフレームワーク」を考えるとき、その最大の魅力はファイルサイズや動作速度よりも学習にかかるコストではないでしょうか。とにかく短期間で習得し使えるようになる、それこそが、今のフレームワークに何よりも求められるものかもしれません。 今回取り上げる「Apache Click」は、何より「低い学習コスト」を重視して開発されているフレームワークなのです。 対象読者 Javaで手ごろなフレームワークを探している技術者 最近のフレームワークをごくざっと理解しておきたい方 Web開発の手法がどうも気に入らない、と常々考えているJavaプログラマ Apache Clickとは? 「Apac

    Javaで軽快に使える「軽量フレームワーク」特集 低い学習コストを重視した「Apache Click」 (1)
  • 第4回 WicketでTwitterアプリケーションを作る(後編) | gihyo.jp

    前回までに、サブミットの受け付け方法が分かりましたので、実際にonSubmit()を実装してTwitterにログインする処理を記述したいところです。ですが、サンプルプログラムのコードを理解するには、Wicketにおけるユーザセッションの取り扱いについて理解する必要があります。 そこで今回は、このユーザセッションの取り扱いについて解説します。 ユーザセッションにアクセスする サーブレットでプログラムを作るとき、ユーザごとに用意されるデータ格納領域としてHttpSessionオブジェクトを使用することができました。Wicketでも、同様の仕組みがあります。 とはいえ、Wicketではページ自身がフィールドを持つことができ、Wicketがページの状態を保存してくれます。あるページオブジェクトはユーザ固有のもので、同じページクラスから作られたページでも、ユーザが異なれば、別のオブジェクトが割り当て

    第4回 WicketでTwitterアプリケーションを作る(後編) | gihyo.jp
  • log5j - mtoyoshi開発メモ

    googleからlog5jなるものがリリースされていた。単にGoogle Codeで公開しているだけっぽい。log5jという名前からGoogle発だと勘違いしていまいました。spinn3rという会社の作みたいです(2010.2.24)。 http://code.google.com/p/log5j/ オレオレ翻訳で概要を。勝手に追記したりしてますので、その辺の差異は原文を見て確認してください。 ■特徴1. いちいちカテゴリ指定しなくても使える。以下のコードって必要なクラスで使いまわすからコピペすることが多いため、引数のところをついつい変更忘れがちになるよね。 private static final Logger log = Logger.getLogger( MyClass.class ); log5jならこんな感じ。 private static final Logger log =

    log5j - mtoyoshi開発メモ
  • Twitter4J

    Twitter4Jとは? Twitter4J は TwitterAPIJava ラッパです。 Twitter4J を使うと XML や HTTP に詳しくなくても容易に Twitter とインタラクトするアプリケーションを書くことが出来ます。 システム要件 OS: Java をサポートする Windows または Unix 系 OS JVM: JDK1.4.2 以降 使い方 twitter4j-1.0.3.jar をクラスパスに通して、好きなメソッドを呼び出してください。 Java が分かっていれば JavaDoc を見るのが早いです。 twitter4j.Twitter クラスが最初に見るべきクラスです。 コードサンプル サンプルコードは src/twitter4j/examples/ 以下に配置されています。 それぞれ bin/className.cmd|sh で実行できます。

  • コンストラクタで final なフィールドをあきらめない方法 - ぐるぐる~

    思いつきエントリ。後で説明とか付け加える予定。付け加えた。 final なフィールドは基的にコンストラクタ内部で初期化することしか出来ない。 でも、そのフィールドを初期化する方法が複雑な場合、素直に実装するとコンストラクタがどんどんふくれあがってしまう。 なのでメソッドに分割したい・・・というのはまぁ普通によくあることなんだけど、例えそのメソッドがコンストラクタからしか呼び出されていなかったとしても、 // コンパイルエラーになる public final class Hoge { final int hoge; public Hoge(int piyo) { prepareHoge(piyo); } // コンストラクタからしか呼び出されない private void prepareHoge(int piyo) { // 何かとても複雑な処理 // ... hoge = result;

    コンストラクタで final なフィールドをあきらめない方法 - ぐるぐる~
  • http://japan.internet.com/developer/20091110/26.html

  • Javaでデバッガがブレークポイントで止まらない - Yamashiro0217の日記

    Javaでデバッガがブレークポイントで止まらない」現象に僕の周りでハマってる人が割といました。まぁ、Eclipse以外でもそうだと思うのですが、とりあえずEclipse環境で。 で、twitterなどで教えてもらったのですが、 sun の jdk の 1.6.0_14 〜 15 で デバッグの問題 Java ™ Virtual Machine Tool Interface (JVM TI) のブレークポイントは、並列スカベンジガベージコレクタ (-XX:+UseParallelGC) または並列圧縮ガベージコレクタ (-XX:+UseParallelOldGC) が使用されている場合のみ信頼できます。 というリリースノートが。 http://java.sun.com/javase/ja/6/webnotes/6u15.html というわけで、デバッガ起動時にこのオプションを付けてあげれば

    Javaでデバッガがブレークポイントで止まらない - Yamashiro0217の日記
  • 小数点の計算をやるからといってすぐにfloatやdoubleを使ってはいけない - かとじゅんの技術日誌

    おつかれさまです。 型を選ぶというのはプログラミングの基礎中の基礎ですが、以外に開発の現場でも注意が必要なのが、floatとdoubleの精度の問題があります。これぐらい当然と思っていたのですが、最近よく耳にしますので、あえて言及w これらの型の目的が科学技術計算のための用途。多少誤差が生じても高速に演算をすることを目的としています。グラフィックなどの描画系とかですかね。 このように、float型やdouble型は誤差を含む可能性があるため、科学・工学計算で多少の誤差は許容できる場合はよいのですが、金融・会計分野のように正確な値が要求される計算には向きません。 どうしても正確な値が欲しい場合は、BigDecimalクラスを使用することになります。基データ型のdoubleやfloatと比較すると不便かつ低速ですが、精度が保証されており、丸め方も指定できます。 ここで言及されているように、お

    小数点の計算をやるからといってすぐにfloatやdoubleを使ってはいけない - かとじゅんの技術日誌
  • Javaにおけるファイルロックについて - World Wide Wonderful

    いわゆるファイルロック File lockFile = new File("pid.lock"); lockFile.deleteOnExit(); while (lockFile.createNewFile()) { try { // ロックを取得している場合の処理 ... } finally { lockFile.delete(); } } else { throw new RuntimeException("ロックを取得できませんでした."); } 上記はいわゆるファイルロックと言われるものです。 マルチスレッド環境の際に同じ処理が並列に実行されるとマズい場合、ファイルロックにより同じ処理が並列に実行され内容に制御します。 File#createNewFile() は、ファイルが存在しなければ新規にファイルを作成しTrueを返し、既にファイルが存在すればFalseを返します。 ただし

    Javaにおけるファイルロックについて - World Wide Wonderful
  • Java製のデータモデリングソフトウェア·Ermodeller MOONGIFT

    ErmodellerはJava製のオープンソース・ソフトウェア。最近はデータが主体になったシステム開発が多い。データは大抵がデータベースによるものだ。そうなるとデータの定義が固まればコントローラの仕組みも大抵決まってくる。データベースを適切に設計することが、システムの組みやすさやパフォーマンスに大きな影響を及ぼすのだ。 各種DBに対応したモデリングができる そうなるとデータモデリングソフトウェアに対する期待が大きくなる。その点、マルチプラットフォームで動作するJava製のモデリングツールは優位だろう。Ermodellerは多数のデータベースに対応したモデリングソフトウェアとして便利に使えそうだ。 Ermodellerが対応するのはMySQL/PostgreSQL/Oracle/PointBaseとなっている。モデリングは概念、論理、物理型の3つに対応している。データベースからのリバースエン

    Java製のデータモデリングソフトウェア·Ermodeller MOONGIFT
  • 第69回 微分・積分の数学 数値微分 [前編] | gihyo.jp

    料理レシピを読んでいて困るのが「○○を少々」という表現です。量りで量れないようなわずかな分量だから「少々」と書くのです。材料が元々含む塩分や、好みによってこの「少々」が変動することはよく分かります。でも、困るのです。経験の浅い私は臆病になって「ほーんのちょっぴり」になってしまったり、加減が分からなくて「入れすぎ」になったりします。結果、妙に味のないスープになってしまったり、辛くて思わずしかめっ面したくなるような野菜炒めになってしまったり。「⁠少々」というのは難しいものですね。「⁠さじ加減」をしながら、だんだん上手になりたいものです。それまでは、おおよその加減で「おいしい」と思えれば、それで良しとするのが精神衛生上も良いのでしょう。 これから紹介する数値微分は、まさしくそのような手段です。「⁠出来ないよりは、役に立つ程度に出来ればOK」そんなツールです。どうです?興味がわいたことでしょう。

    第69回 微分・積分の数学 数値微分 [前編] | gihyo.jp
  • オブジェクト指向のプログラムに込める「意図」 - 都元ダイスケ IT-PRESS

    その昔、プログラムを覚えたての頃、プログラムってのは単に「処理」を記述するものだと考えていた。処理を1ステップごとに記述し、場合によってはサブルーチンに切り出し、再利用する。 今振り返ると、オブジェクト指向を覚え始めてしばらくして、その意識は変わっていた。当然「処理」を落とし込まなければプログラムは動かない。だから「処理」はプログラムに込める。ただ、オブジェクト指向言語を使うと、これに加えて「意図」を落とし込むことができる。 オブジェクト指向を学び始めた当初、Javaのインターフェイスの存在意義がわからなかった。プログラムは「処理」を記述するものだという視点で見ると、インターフェイスには「処理」を書くことができない。インターフェイスだけでは何も起こらないからだった。 さらに、IDEを使ってコードを追っていると、途中でインターフェイスのソースを開くことになり、「なんだよ、中で何やってっかわか

    オブジェクト指向のプログラムに込める「意図」 - 都元ダイスケ IT-PRESS
  • LinkedList の途中への挿入の効率 - ぐるぐる~

    連結リストの挿入は O(1) ってのに異論はないんだけど、挿入場所が分かっていなければ O(1) じゃなくて O(n) になるってのは忘れられがち・・・というか、下手したら認識されてさえいない。 例えば List#add(int index, E element) の効率だけど、これは index の場所を見つけるまで先頭、もしくは末尾からシーケンシャルな走査が必要なため、O(1) じゃなくて O(n) となる。 Sun の実装は、 public void add(int index, E element) { addBefore(element, (index==size ? header : entry(index))); } public Entry<E> entry(int index) { if (index < 0 || index >= size) throw new Ind

    LinkedList の途中への挿入の効率 - ぐるぐる~
  • 保守の観点から見るオブジェクト指向レベルの量り方 - 高卒文系プログラマの日常 by zetta1985

    Java, 保守 保守業務をしていると、十人十色のソースコード・コメントと出逢う。 最近、実装者がどの程度オブジェクト指向を意識しているかは、その人のコード・コメントを少し見るだけで、ある程度わかるようになってきた。 以下、独断と偏見で個人的にオブジェクト指向レベルが推し量れる「短いコード・コメント」の例を挙げてみる。(勿論、コーディング規約で規定されている場合は除きますし、あくまで独断と偏見です) 1. 参照 Bean bean = dao.getBean(); List list = bean.getHogeList(); list.add("aaa"); list.add("bbb"); // (略) bean.setHogeList(list); 最後の一行は必要ない。 Bean#getHogeListから変更可能なListオブジェクトが返される事、Bean#setHogeLis