タグ

*Javaに関するAkinekoのブックマーク (410)

  • wait, notifyはもう古い - かとじゅんの技術日誌

    スレッドでシグナルを送受信する場合は、典型的にwait, notifyのAPIがよく使われてきました。 でも、Java5以降ではもう古いんですよ。そのやり方。concurrentパッケージにCountDownLatchというクラスがあります。これで同様のことがすごくシンプルに実現できるんです。(Seasar-usersでもwait/notify使った回答を投稿したのですが、Java5以降なら当はこっちを使うべきです) java.util.concurrent クラス CountDownLatch たとえば、以下のような複数スレッドの開始シグナルと終了シグナルで同期する場合です。 CountDownLatch自身が保持しているカウント数 - countDownメソッドが呼ばれた回数でゼロなったとき、awaitメソッドが待機せず、それ以外は待機します。その特性を使って開始や終了のシグナルを実

    wait, notifyはもう古い - かとじゅんの技術日誌
  • Javaアセンブラ「Jasmin」を使おう [Javaプログラミング] All About

    Javaアセンブラ「Jasmin」を使おうJavaのアセンブラ「Jasmin」を使い、アセンブラでJavaのプログラムを作ってみましょう。 Javaバイトコードとアセンブラ Javaのプログラムというのは、普通、Javaのソースコードを書き、コンパイルして作ります。Javaというプログラミング言語を使わなければJavaのプログラムは作れません。――これが、今までの常識でした。が、時代は変わってきます。この常識は、今では通用しなくなっているのです。 Javaのプログラムは、一般に「バイトコード」と呼ばれます。これは、Javaの実行環境であるJava仮想マシンで実行可能なコードが記述されたファイルですね。例えば、普通のパソコンだと、そのマシンのCPUやOSに用意されているAPIを実行するバイナリコードが書かれたEXEファイルなどを作り、実行します。このバイナリコードは、C言語でも作れますし、B

    Javaアセンブラ「Jasmin」を使おう [Javaプログラミング] All About
  • private についての疑問 - いけむランド

    private の挙動がちょっとひっかかったので、ここに記す。 PHP で親クラスの private なフィールドを子クラスから読み出すと NULL になる。*1 <?php class ParentClass { private $var; } class ChildClass extends ParentClass { function func() { var_dump($this->var); } } $child = new ChildClass(); $child->func(); ?> そもそも親しかアクセスできないフィールドに子からアクセスするならば、NULL (実際は未定義) を返すのではなく、アクセス違反の例外を投げるのがデフォルトの動作であって欲しいと思ってつぶやいたら、「そもそも親がそのようなフィールドを private で持っていることがわかってしまったら、それは

    private についての疑問 - いけむランド
    Akineko
    Akineko 2009/08/10
    試してみたら実行時例外(IllegalAccessError)でました。[version:1.6.0_14]
  • JavaにもRailsの波がきた!·Play! framework MOONGIFT

    Ruby on Railsのもの凄い勢いは他の様々なプログラミング言語に影響を与えている。Railsに影響されて開発されたフレームワークも少なくはない。そんな中、個人的にはJavaは我が道を進んでいる気がしていた。 一部の操作はコマンドラインから もちろんホットデプロイや各種フレームワークなど便利な機能は多数存在する。だが何となくスクリプト言語とは違っていた。そんなJavaの世界にもRailsの影響を受けたフレームワークが登場した。 今回紹介するオープンソース・ソフトウェアはPlay! framework、JavaのWebアプリケーション用フレームワークだ。 Play! frameworkは独自のWebサーバを内包しており、コマンドラインからWebアプリケーションを生成して立ち上げると9000番ポートでサービスが立ち上がる。コードはコンパイル不要で、修正した内容が即座に反映される。 ジョブ

    JavaにもRailsの波がきた!·Play! framework MOONGIFT
  • eclipseでunitテストを書く前に最低限やっておくこと - Yamkazu's Blog

    メモでつ。eclipseはGanymedeです。 1. quick-junitを入れる http://quick-junit.sourceforge.jp/ テスティングペアを開く: Ctrl + 9 JUnit テスト:Ctrl + 0 で操作できる。 2. static importの展開をやめる 参考:http://d.hatena.ne.jp/Yamashiro0217/20090409/1239242490 Preferenceの[Java]-[Code Style]-[Organize Imports]の「Number of static imports needed for .*」を1に設定する。 3. GanymedeのテンプレートにassertThatとか追加する 参考:http://d.hatena.ne.jp/ashigeru/20090216/1234756826

    eclipseでunitテストを書く前に最低限やっておくこと - Yamkazu's Blog
  • プログラムの裏側:内部情報を得るためのJavaリフレクション

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

    プログラムの裏側:内部情報を得るためのJavaリフレクション
  • JUnit4でテストクラスの並列実行 - cactusman日誌

    最近、スローテスト問題というのが深刻になっています。 JUnitは基的に逐次実行されるため、高性能なPCでも待たされる処理があるとどうしても時間がかかってしまいます。 JUnit3では川口さんが作成した「Parallel Junit」があるので並列実行することができるのですが、JUnit4対応はされていません。 なので、JUnit4で何かないかと調べてみましたが、使えそうなものはなさそうでした。 なければ作るというわけで、とりあえずSuiteクラスを継承して実装してみました。 package org.cactusman; import java.util.ArrayList; import java.util.List; import org.junit.runner.Runner; import org.junit.runner.notification.RunNotifier; im

    JUnit4でテストクラスの並列実行 - cactusman日誌
  • Eclipse 3.4を使ったデバッグとテスト~Eclipse 3.4 入門~

    はじめに 第4回「Eclipse 3.4でのアプリケーション開発方法(swing/JSP/サーブレット)」までで、Eclipseのインストールと設定からEclipseを用いてアプリケーションを開発するまでの一般的な流れなどを説明しました。 今回は、複雑なアプリケーションを開発するために必要な「デバッグやテストを支援する機能」の基を紹介します。 事前準備 第4回のJSP開発の章で紹介した「Tomcat Launcherプラグイン」を用いるので、あらかじめ導入しておいてください。また「JStyle」も導入しておくと便利でしょう。今回の画面画像は「JStyle」導入済みの場合になっています。 今までの記事 第1回「Eclipse 3.4のインストールと日語化」 第2回「Eclipse 3.4の各種設定と利用方法」 第3回「Eclipse 3.4プラグインのインストール/設定方法」 第4回「E

    Eclipse 3.4を使ったデバッグとテスト~Eclipse 3.4 入門~
  • Eclipse 3.4のコード生成&リファクタリング機能 ~Eclipse 3.4入門~

    はじめに 第7回「Eclipse 3.4を使ったデータベース操作」までで、Eclipseのインストールと設定、Eclipseを用いてアプリケーションを開発・デバッグしテストするまでの一般的な流れ、バージョン管理システムと連係する機能、データベースを操作する機能などを説明しました。 今回は、Javaプログラムの作成と編集を効率化するコード生成機能とリファクタリング機能を紹介します。 コード生成機能は、クラスの作成時などにプログラムの一部を自動生成してくれる機能です。これに対して、リファクタリング機能は、作成済みのプログラムを編集するときに関連する編集を自動化してくれる機能です。よって、この2機能はEclipseではメニューが異なり、関連書籍などでは別々に説明している場合が多いようです。しかし、実際のプログラム開発では、プログラムの生成と編集は連続した作業であり、作業の流れに例えて理解したほう

    Eclipse 3.4のコード生成&リファクタリング機能 ~Eclipse 3.4入門~
  • Eclipse 3.4のコード生成&リファクタリング機能(続)~Eclipse 3.4入門~

    はじめに 今回は、第8回「Eclipse 3.4のコード生成&リファクタリング機能」で紹介しきれなかったEclipse 3.4のリファクタリング機能の続きです。 前回説明したとおり、リファクタリング機能は、作成済みのプログラムを編集するときに関連する編集を自動化してくれる機能です。今回も、Eclipseがコード生成機能とリファクタリング機能として提供しているたくさんの機能から、初心者にも利用しやすいいくつかをサンプルの流れに沿って説明します。 今までの記事 第1回「Eclipse 3.4のインストールと日語化」 第2回「Eclipse 3.4の各種設定と利用方法」 第3回「Eclipse 3.4プラグインのインストール/設定方法」 第4回「Eclipse 3.4でのアプリケーション開発方法(swing/JSP/サーブレット)」 第5回「Eclipse 3.4を使ったデバッグとテスト」 第

    Eclipse 3.4のコード生成&リファクタリング機能(続)~Eclipse 3.4入門~
  • 日本のいま、そして未来を、世界に正しく伝える | 株式会社ニューズ・ツー・ユーホールディングス

    Accurately conveying Japan, present and future, to the world. Mission Providing trustworthy information that deepens understanding of, and generates interest in, Japan. 世界中で、日に興味を持つ人を増やし、日についての理解を深めるために、私たちは、信頼できる情報を提供します。 Vision Contributing to a better world through the promotion of mutual understanding between Japan and various international communities. 日と世界の相互理解を推進することで、よりよい世界の実現に貢献します。

    日本のいま、そして未来を、世界に正しく伝える | 株式会社ニューズ・ツー・ユーホールディングス
  • PHPも使える! Google App Engine for Java(前編)

    はじめに Amazon EC2をはじめ、クラウドコンピューティングのインフラ環境は以前に比べて手に届きやすいところにやってきました。しかしながら、サーバの設定が複雑だったり、独自言語だったりと、お手軽に試すにはもう一歩踏み出すことができない方が多いのではないでしょうか? GoogleGoogle App Engineを2008年4月に公開しました。このときはPythonのみが対象でしたが、2009年4月にはJavaにも対応しました。このことは大きな意味を持っています。それはJava言語のみならず、JavaVM上で動作する多くのスクリプト系言語も(ある程度の修正や設定は必要になりますが)動作させることができるためです。 前編ではJavaVM上に実装されたスクリプト系言語の中でもPHPを、簡単なWebアプリケーションを例に、Google App Engine for Javaで動作させる方法

    PHPも使える! Google App Engine for Java(前編)
  • PHPも使える! Google App Engine for Java(後編)

    Google App Engine for Javaでは、Servlet/JSP以外にJavaで実装されたスクリプト系言語も動作させることができますが、前編ではQuercusを使用して簡単なPHPスクリプトを動作させる方法について紹介しました。Google App EngineではRDBMSやファイルにデータを出力することはできませんが、App Engineデータストアという仕組みを利用してデータを永続化することができます。後編である編では、このApp Engineデータストアを使って、データを保存する方法を説明します。 はじめに Google App Engine for Javaでは、Servlet/JSP以外にJavaで実装されたスクリプト系言語も動作させることができますが、前編ではQuercusを使用して簡単なPHPスクリプトを動作させる方法について紹介しました。 Google

    PHPも使える! Google App Engine for Java(後編)
  • Javaにおける開発インフラまわりのメモ - wyukawa's diary

    Javaで開発する場合に使う可能性があるツール類(おもにインフラまわり)をメモっておきます。テスト関係はあんまりないです。その辺はJavaにおける開発・Test(Unit/Web/負荷)環境のまとめ - よねのはてななどを参考に。 構成管理ツール ツール名 URL 現行バージョン Subversion http://subversion.tigris.org/ 1.6.3 さすがに今やこれは鉄板といってもいいでしょう。 Eclipseプラグインとしては僕はSubclipseを使っています。 Subversiveでもいいんでしょうけど以前試してみて不安定だったのでやめました(不安定だったのは違う原因かもしれないけどw)。 TortoiseSVNも必須ですね。 というのも例えばtrunkの下が以下のようになっている場合Subclipseだとexample-porject/build.xmlが取

    Javaにおける開発インフラまわりのメモ - wyukawa's diary
  • JUnit 4.7 : テストごとのルール

    あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。

    JUnit 4.7 : テストごとのルール
  • Integer.toString( i ) に見る数値から文字列への変換 | mwSoft

    Integer.toString( int )の動作例 Integer.toString( int )はこんな感じで動きます。 /** 100の場合 */ String str = Integer.toString( 100 ); System.out.println( str ); // => 100 Integer.toString( int )の中身 では、Integer.toString( int )の中身はどうなっているのでしょう。 覗いてみました。けっこう長いです。 public static String toString(int i) { // Integer.MIN_VALUEは正の数に変換することができない // 下の処理で正の数への変換を行う箇所がある為、固定の結果を返す形で逃がしている if (i == Integer.MIN_VALUE) return "-214

  • JUnit.org

    The programmer-friendly testing framework for Java and the JVM User Guide Javadoc Code & Issues Q & A Sponsor About JUnit 6 is the current generation of the JUnit testing framework, which provides a modern foundation for developer-side testing on the JVM. It requires Java 17 and Kotlin 2.1 or above and enables many different styles of testing. Resources You’re invited to follow our ongoing work, r

  • Java開発を変える最新の設計思想「Dependency Injection(DI)」とは:ITpro

    「DIする」,「インジェクション(注入)する」──新しい技術に敏感なソフトウエア開発者たちの間で使われている言葉である。DIとは,「軽量コンテナ」を実現する新しい設計思想Dependency Injection(依存性注入)の略称である。同じ概念をIoC(Inversion of Control,制御の反転)と呼ぶ場合もある(詳細は後述)。「DIする」と言えば開発者の間では通用するぐらいに,この設計思想は注目されているのだ。 DIが注目される理由は簡単だ。ソフトウエア開発者の開発サイクルを大幅に改善するからだ。筆者が司会を担当した「軽量コンテナ」に関するパネル・ディスカッション(注1)では,DIを適用した軽量コンテナ「Spring Framework」のおかげで「睡眠時間が確保できるようになりました」と複数のパネリストが真顔でコメントしたほどである。DIは,それだけ有効な技術なのだ。 注1

    Java開発を変える最新の設計思想「Dependency Injection(DI)」とは:ITpro
  • 【ハウツー】シンプル&タイプセーフなJava用モックライブラリ"Mockito"の魅力 (1) Mockitoとは? | エンタープライズ | マイコミジャーナル

    ユニットテストを記述する際に問題になるのがモックの作成方法だ。テストケース時にモックに差し替えることを想定してしたコードであればテストケースでモックに差し替えることは難しくない。しかし、差し替えるモックを作成する手間は馬鹿にならない。そこで登場するのがモックライブラリだ。 モックライブラリはテストケースで使用するためのモックオブジェクトを手軽に作成するためのものだ。実際にモックオブジェクトのクラスを定義しなくても、動的にモックオブジェクトを作成できるものが多い。 Java向けのモックライブラリにはJMock、EasyMockなどさまざまなものがあるが、稿で紹介するのはMockitoという比較的新しいモックライブラリだ。 MockitoのWebサイト MockitoはMITライセンスで開発されているオープンソースソフトウェアで、他のモックライブラリと比較して直感的な記述でモックの挙動を設定

  • 総まとめ:Javaの将来的な後継者としての Scala

    あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。

    総まとめ:Javaの将来的な後継者としての Scala