タグ

javaに関するkotaro-onoのブックマーク (12)

  • Lesson: Generics (Updated) (The Java™ Tutorials > Learning the Java Language)

    The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available. See Dev.java for updated tutorials taking advantage of the latest releases. See Java Language Changes for a summary of updated language features in Java SE 9 and subsequent releases. See JDK Rel

    kotaro-ono
    kotaro-ono 2021/09/29
    ジェネリクス備忘
  • Compare and Swap

    Compare and swap is a technique used when designing concurrent algorithms. Basically, compare and swap compares the value of a variable with an expected value, and if the values are equal then swaps the value of the variable for a new value. Compare and swap may sound a bit complicated but it is actually reasonably simple once you understand it, so let me elaborate a bit further on the topic. By t

    Compare and Swap
    kotaro-ono
    kotaro-ono 2021/09/27
    AtomicBooleanやAtomicReferenceなどCPUレベルでCompare and Swapを実現するクラス。
  • 【Java】初期化ブロックについて - TASK NOTES

    初期化ブロックとstatic初期化ブロックについて使い方と実行順序をまとめました。 初期化ブロック(オブジェクトイニシャライザ) オブジェクトの初期化を行うための仕組みに初期化ブロックがあり、インスタンスの生成時に実行されます。復数の初期化ブロックがある場合はコードに書かれた順に実行されます。 import java.util.Date; public class InitializerSample { private final Date date; { // 初期化ブロック System.out.println("初期化ブロックの実行"); date = new Date(); } public Date getDate() { return date; } public static void main(String[] args) { InitializerSample init

    【Java】初期化ブロックについて - TASK NOTES
  • JAR,WAR,EARそれぞれの違いについて - Java習得を目指すブログ

    JAR, WAR, EAR はいずれもJava仕様に準拠して定義されたZIP形式のパッケージ(複数のファイルをまとめたアーカイブ) いずれもJavaで実装したプログラムを実行・配布しやすくするための形式である。 JARJava プログラムの実行に必要なクラスファイルや設定ファイルがまとめられているアーカイブJavaで作成したソフトウェアを配布する際に関連するファイルを1つにパッケージングする際に利用され、実際に多くのクラスライブラリはこの形式で配布されている。 WARJava 製のWebアプリで利用されるクラスファイル(servlet)、設定ファイル、JSPやHTMLファイル、JAR形式のライブラリなどがまとめられているアーカイブ。 また、web.xmlが含まれ、TomcatなどのアプリケーションサーバにWARファイルを配布すると、これを元にデプロイされる。 これはMVCモデルでいえば

    JAR,WAR,EARそれぞれの違いについて - Java習得を目指すブログ
  • 第3回 システムトラブルの原因はGCの実装を知れば見えてくる | gihyo.jp

    原因は大きく分けて3つあります。 1つめは、リソース不足です。たとえば、CPUのクロックやコアが足りず、処理の完了待ちであることなどが原因として考えられます。 図1 CPUのリソース不足の例 2つめは、M/W(ミドルウェア)からアプリケーションに提供されるスレッドや、コネクションのプールにあるリソースが不足していて、その提供待ち(無応答)になっている可能性です。 M/Wでプールしているリソースが不足した状況は、会社の書籍棚に1冊しかないを社員で順番待ちしている状況に似ています。1冊しかないため、今借りている人が返すまでは他の人は借りれません。 図2 M/Wでプールされたリソースが不足しているケース 1つめのケースで問題がGCにある場合、GCに割り当てるリソースのバランスが悪いことが原因です。たとえば、特定のプロセスに対するCPUリソースの割り当てが大きい場合、GCが起きると、CPUリソー

    第3回 システムトラブルの原因はGCの実装を知れば見えてくる | gihyo.jp
    kotaro-ono
    kotaro-ono 2013/02/15
    JVM仕組み3
  • 第2回 ヒープが再利用される仕組みを理解する | gihyo.jp

    不要なオブジェクトを回収するしくみ~ガベージコレクタ 前回の最後で触れたように、あるオブジェクトに対する参照をすべて削除すると、そのオブジェクトへはたどり着くことができなくなるため、プログラム中で使用できなくなります。このようなオブジェクトが増えていくと、二度と参照されることのないオブジェクトがヒープを占有してしまい、ヒープが枯渇してしまいます。 図1 不要なオブジェクトであふれたヒープ 日常生活では、建物内にゴミが溜まってしまい、足の踏み場がなくなっても、週1~2回あるゴミの日にまとめて捨てれば部屋はきれいになります。しかし、不要なオブジェクトでヒープが占有されてしまったJVMは、どうすれば良いのでしょうか? JVMでは、このような不要なオブジェクトを「ゴミ」として回収し、不要なオブジェクトが使用していたヒープを解放することで、ヒープが枯渇することを防ぎます。その仕組みが「ガベージコレク

    第2回 ヒープが再利用される仕組みを理解する | gihyo.jp
    kotaro-ono
    kotaro-ono 2013/02/15
    JVMの仕組み2
  • 第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
    kotaro-ono
    kotaro-ono 2013/02/15
    JVMの仕組み1
  • いまから始めるJava

    プログラミング初心者がJava言語の基、サーブレット/JSP、Playフレームワークを使ったWebシステム開発、Androidアプリ開発、データベース接続、バッチ処理、Hadoopを中心にしたビッグデータ活用などを学ぶエンジニアのための入門講座です。学習法や歴史、リファレンス、書評などもあります。

  • 一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選 - 設計と実装の狭間で。

    10万行コード読んだらJava分かるよってTwitterに書いたらすげぇ勢いでRTされたので、調子に乗って捕捉エントリ書くよ。 Java Core API JDKインストールしたディレクトリに入ってるsrc.zipを展開すると入ってるから読むと良いよ。 すぐ近くにあるのから読むってのはメンタル的に楽でいい。 厳密にはOSSじゃなくて単に公開されてるってだけなんだけども、JavaプログラマなのにコアAPIのコード読んでないとか無いよね? どれから読めば良いか分からんかったら、 java.lang java.util java.io java.text 辺りをまずはキチンと理解すること。当然コードを読み終わったら、それを使ってコードを書く事。 OpenJDK http://hg.openjdk.java.net/jdk7/jdk7 OpenJDKを読むことで、プログラム言語してのJavaではな

    一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選 - 設計と実装の狭間で。
    kotaro-ono
    kotaro-ono 2012/06/06
    読んでおくべきOSS
  • 連載インデックス「Androidで動くJavaアプリ開発入門」 - @IT

    連載インデックス 「Androidで動くJavaアプリ開発入門」 初心者のための入門連載です。「Androidアプリとは何か」の基礎知識から開発環境の構築(Android Studio、SDK ToolsとEclipse ADT、NDK、エミュレーターなどのインストールや使い方)、Java言語で書くアプリ開発の基的なところから、最新版5の新機能までまとめて解説します。Activity、Intent、サービス、WebView、ゲーム開発、センサー、カメラ、位置情報/GPSBluetooth通信、NFC、Android Wearなど ※連載のアップデート版連載は「実業務でちゃんと使えるAndroidアプリ開発入門」として連載中です。 Javaでの常識が通用しないAndroidにおけるメモリ管理の注意点 実業務でちゃんと使えるAndroidアプリ開発入門(3) Androidアプリのメモリ

    kotaro-ono
    kotaro-ono 2012/02/18
    入門
  • Google Android用携帯アプリ作成のための基礎知識 (1/5) - @IT

    Android”って何? 人造人間のこと? Androidは、Googleが発表した携帯電話のプラットフォームです。発表と同時にいろいろな媒体で紹介されましたから、ご存じの方も多いことでしょう。まだ、ご存じでない方は、ニュース記事「グーグルが「アンドロイド」SDK公開——動画デモも〜エミュレータも提供〜」が参考になるでしょう。 Linux 2.6カーネルをベースとしていて、アプリケーションの開発にはJavaを使うことができます。早速、SDK(ソフトウェア開発キット)をダウンロードして試用してみました。 携帯電話アプリ向けのJava MEとの互換性がない ところで、携帯電話などで動作するアプリケーション向けのJava Platformといえば、SunのJava ME(Java Platform, Micro Edition)があるわけですが、Androidで動作するJavaアプリケーション

    Google Android用携帯アプリ作成のための基礎知識 (1/5) - @IT
    kotaro-ono
    kotaro-ono 2012/02/18
    基礎知識
  • いまさら聞けない「Javadoc」と「アノテーション」入門

    いまさら聞けない「Javadoc」と「アノテーション」入門:【改訂版】Eclipseではじめるプログラミング(22)(1/4 ページ) これからプログラミングを学習したい方、Javaは難しそうでとっつきづらいという方のためのJavaプログラミング超入門連載です。最新のEclipseとJava 6を使い大幅に情報量を増やした、連載「Eclipseではじめるプログラミング」の改訂版となります 注釈とコメントで開発しやすくしよう 開発者がソースコードにコメントを自由に記述すると、統一性がなくなり、同じ内容をさまざまな表現で書いてしまいます。これを防ぎ、重要な情報について統一的な表現で記述したいときは、「アノテーション(annotation、注釈)」を使うことを検討してみましょう。 Javaではアノテーションをプログラムのソースコードへプログラムのメタデータとして記述できます。また、プログラムにア

    いまさら聞けない「Javadoc」と「アノテーション」入門
    kotaro-ono
    kotaro-ono 2011/05/26
    アノテーション入門
  • 1