タグ

Javaに関するkijitoranekoのブックマーク (65)

  • これからの「Java I/O」の話をしようwww (4) : Files クラスのメソッド 〜ファイル、ディレクトリの操作〜 - 倭マン's BLOG

    Java nio の API を見ていくシリーズ(目次)。 前回から結構時間が空いてしまいましたが、java.nio.file パッケージのクラスを見ていきま〜す。 今回はファイル、ディレクトリの操作です。 ファイルをコピーとか移動とかします。 以降の記事では「ファイル」と書いてファイルとディレクトリの両方を指している場合があります。 文脈で分かるかと思いますが。 ファイルの存在と削除 LinkOption 定数 ファイルのコピーと移動 CopyOption シンボリック・リンクを読み込む ファイルの存在と削除まずはファイルの存在を確認するメソッドと、ファイルを削除するメソッド。 メソッド 返り値 説明 exists(Path, LinkOption...) notExists(Path, LinkOption...) boolean ファイル、ディレクトリが存在するかどうかを確認する d

    これからの「Java I/O」の話をしようwww (4) : Files クラスのメソッド 〜ファイル、ディレクトリの操作〜 - 倭マン's BLOG
  • Javaでランダムで一意な文字列を生成したい

    Javaでランダムで一意な文字列を生成したい...って時、どんなものを使ってますか?? そういう場面になったので見てみたものをちょっとマトメ。 桁数が長くてもいいから一意に 系 UUIDJDK1.5 で導入された java.util.UUID で UUID.randomUUID().toString(); をする。 取得される文字列(16進)は ffbac078-8cf0-483f-817d-184a5e812613 のような感じ。 これをMath.absで10進数にすると 2080304300 のような感じ ナノ秒これまたJDK1.5で導入された System.nanoTime() を使う。 取得される値は 1236777382401532000 て感じ。 複数Threadの場合には、ThreadIdをプラスしないと重複しちゃう事もあるだろうし...そうでなくても当に重複しないって保証

  • はてなブログ | 無料ブログを作成しよう

    顔に見える?最近「送水口」が気になるという話 「送水口」が気になる今日この頃 最近街中で気になる存在、それがこの「送水口」です。地上のフロアが7階以上あるビルなど、一定の条件を満たした建築物には設置が義務付けられているもので、火事が発生したフロアにただちに水を送るために使われるものです。ポンプ車…

    はてなブログ | 無料ブログを作成しよう
  • Javaの型システムとコンストラクタ - プログラマーの脳みそ

    今回はJavaの型システムのコンストラクタについて考えてみたい。 Javaの型システム、あるいはJavaのオブジェクト指向において、コンストラクタという存在は特殊な存在だ。 コンストラクタ内からはそのクラスのインスタンスフィールドにアクセスできる。これは通常のインスタンスメソッドと同等のスコープであってstaticメソッドのそれとは異なる。しかし、コンストラクタを呼び出すにあたってはインスタンスのメソッドという体ではなく、staticメソッドのように(インスタンスではなく)クラスに属するものとして呼び出すことになる。(もっともnewという専用のキーワードを用いるのでそうは見えないかもしれないが) クラスやinterface、つまりJavaの「型」によるポリモフィズムの世界を考えるとき、コンストラクタはのけものである。継承関係を持つクラスであってもコンストラクタは継承されないし、オーバーライ

    Javaの型システムとコンストラクタ - プログラマーの脳みそ
  • 大刷新リリース Java 8の新機能

    2014年3月18日(米国時間)、ラムダを筆頭に数多くの新機能が含まれるJava 8がいよいよリリースされる。 ここ数年、JavaOracleのSun買収による混乱、当初Java 7で実装されるはずだった多くの機能の先送り、さらにはJava 8のリリースの遅延など様々な要因によって強い停滞感があり、それが関数型言語の機能を取り入れたScalaなどJavaの代替となるJVM言語の台頭にも繋がった。 そうしたJavaプログラマの溜まりに溜まったモヤモヤを払拭するアップデートとして期待されているのが今回のJava 8だ。前述の通りラムダの導入による新たな構文からStream APIやTime APIといったライブラリの追加まで、非常に多くの新機能を含んでいる。 稿ではそのJava 8の主要な新機能についてサンプルコードを交えて紹介していく。Java 8の新機能を押さえるための参考になれば幸い

    大刷新リリース Java 8の新機能
    kijitoraneko
    kijitoraneko 2014/04/10
    あと3年。
  • 第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
  • Eclipseデバッガ徹底解説 - Yamashiro0217の日記

    Java Advent Calendar -ja 2010 : ATND 11日目。昨日は、id:daisuke-m でした。 完全に Eclipse のこと書けとふられてる感じがしたので Eclipse について書く。 Eclipse の何について書こうかと考えたんだけど、先日、社会人になってからプログラム書き始めた弊社の若い子が、「デバッガ」の存在を知らなかったのでデバッガの基的な使い方などについて書く。 PHPというちょっとしたWebページをさらっと書くには素晴らしい言語だけしか知らないみたいだから、あんまりデバッガ使う文化が無かった模様です。 var_dumpデバッグェ…。 今回は初心者向け記事なので、基Java使い倒してる皆様は読まなくてよろしいが、Break Point Properties の Condition とかDrop To FrameとかExpressionの機

    Eclipseデバッガ徹底解説 - Yamashiro0217の日記
  • オブジェクト指向できていますか?

    3. 自己紹介 1992年~1997年 某ゲーム会社 プログラマ SFC,GB,PS1,N64のゲーム開発経験 1998年~現在 日工学院八王子専門学校 @mozmoz1972 専任講師 プログラミング教育を中心に担当 twitterもfacebookも実名です。よかったらフォローしてください。

    オブジェクト指向できていますか?
    kijitoraneko
    kijitoraneko 2012/08/31
    [オ
  • ジェネリクスによるVisitorパターン拡張の考察 - プログラマーの脳みそ

    先日twitterで "Expression Problem" という問題を知った。 静的な型付けの下で、場合分けのデータ構造に対して、新しい場合分けとその場合に対する新しい処理を、元のソースコードに手を加えることなく拡張定義すること 2009-05-16 この問題が意図するところを語るにはまずオブジェクト指向から流れを辿らねばなるまい。 オブジェクト指向のポリモーフィズム Javaのようなオブジェクト指向の言語で、ある特定のメソッドがあることを抽象クラスHogeで保証するとしよう。 public interface Hoge { void hoge(); } このとき、機能性、つまりメソッドというのは増えることがない固定のものだが、継承して実装されたクラスというのは自由に増やすことができる。そして、抽象型Hogeを扱っている既存コードは修正する必要がない。 これはいわゆる開放/閉鎖原則(

    ジェネリクスによるVisitorパターン拡張の考察 - プログラマーの脳みそ
  • Javaのクラス宣言5種+α - プログラマーの脳みそ

    Javaのクラス宣言には5種類ある。 トップレベルクラス・ネストしたクラス・内部クラス・ローカル内部クラス・匿名クラス(無名クラスとも言われる)の5種類だ。 今回はこの5種類のクラス宣言のおさらい。 トップレベルクラス これは普段使っているクラス。拡張子が.javaのファイルを作り、そのファイル名とクラス名を合致させなくてはいけない。そのjavaファイルのトップレベルに位置する。 ネストしたクラス 「ネストしたクラス」(Nested class)とはクラスの中にクラスがネストしている状態。トップレベルクラスの内側にstaticキーワードをつけてクラス宣言を行う。 public class Outer { public static class Nested { } } このネストしたクラスは、トップレベルクラスと同等の機能性を持つ。 クラス名はOuter.Nestedという名前で扱われるが

    Javaのクラス宣言5種+α - プログラマーの脳みそ
  • Javaジェネリクス再入門 - プログラマーの脳みそ

    ジェネリクスでは、「型」を変数にした「型変数」というものを取り扱う。型変数で何が嬉しいかというと、メジャーな例ではコレクションAPIが挙げられる。java.util.Listとかjava.util.Mapとかのデータを格納するタイプのユーティリティクラスのことだ。 2004年にJavaのバージョンが5.0となるまでは、Javaにはジェネリクスの機能はなかった。なので、Listにデータを格納し、取得する場合は List list = new ArrayList(); list.add("hello!"); String str = (String) list.get(0); といったソースコードになる。 add()の引数はObject型で宣言されており、どんな参照型でもadd()することができた。 get()の戻り値もObject型で宣言されておりキャストが必要だった。このキャストはプログラ

    Javaジェネリクス再入門 - プログラマーの脳みそ
  • OS X 10.6 Snow Leopard - OneSwarm Wiki

    Snow Leopard problems Update: We're working now on a patch that doesn't require downgrading java and plan to issue a dev update including this early next week. Stay tuned. OneSwarm 0.6.5 does not run properly on Mac OS X 10.6 "Snow Leopard" because of compatibility issues between the 64 bit Java 6 VM and SWT, symptoms are: Connections will never handshake completely because packets sent by the us

  • VM Spec The Structure of the Java Virtual Machine

    Java Language and Virtual Machine Specifications Java SE 22 Released March 2024 as JSR 397 The Java Language Specification, Java SE 22 Edition HTML | PDF Preview feature: Implicitly Declared Classes and Instance main Methods Preview feature: Statements Before super(...) Preview feature: String Templates The Java Virtual Machine Specification, Java SE 22 Edition HTML | PDF Preview feature: Implicit

  • mac Eclipseでrt.jarのソースを見るには? - nakawai’s diary

    環境はmac OS X 10.6 下記を参考に。 Java API のソースコードを見たいのに Mac に src.jar が入ってない? - YKMbPP Java/Eclipse on MacOSX: where is the src.zip ? - Stack Overflow 上記に書いてあるパスをあたってみたけど、src.jarが見つからない。 ユーティリティ>Java Preferencesから最上段のJava SE 6をダブルクリックしたら、jdkに飛べた。そこから辿ったらsrc.jar発見。 /Library/Java/JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Home/src.jar EclipseのJava>Installed JREsでは /System/Library/Frameworks/JavaVM.fr

    mac Eclipseでrt.jarのソースを見るには? - nakawai’s diary
  • Java: ファイルロック | Inside ASCADE

    File lockFile = new File("file.lock"); int retryCount = 30; // timeout = 3sec while (! lockFile.createNewFile()) { if ((retryCount--) == 0) { throw new LockFailedException("give up!"); } Thread.sleep(100); } try { // ファイルロックで保護された処理 ... } finally { lockFile.delete(); } マジックナンバーを使っていたり副作用のある式を条件式に使っていたりと、 気になるところはいろいろあるかも知れませんが、このコードの一番の問題は "File.createNewFile() に頼ったロック機構になっている" ことです。どういうことか簡単に説明して

  • Mac Java の複雑な階層構成のまとめと管理 ||| Apribase

    元々の Mac OS X Leopard の特殊なディレクトリ階層に加えて、Sum Microsystems からは Mac 向け Java が提供されていないため AppleJava を用意しているわけですが、これがさらに特殊な階層構成になっていました。

    Mac Java の複雑な階層構成のまとめと管理 ||| Apribase
    kijitoraneko
    kijitoraneko 2010/11/15
    MacでのJavaの複雑な構成のまとめ
  • Mac OS X にJavaの開発環境を設定する - やさしいデスマーチ

    昨年の新型の発売に合わせてMacBookを購入したわけですが、初Macという事もありWindowsのアプリを使うことも多かった事から、ほとんどBoot Campで使っていました。年末年始で時間も取れたのでMacに慣れるべく色々とやろうと思ったものの、色々とはまっています。 まずはJavaの開発環境を整えてみようという事で、EclipseとJava6をインストールしてみたので、まとめておきます。Windowsと違って色々と勝手も違いますね。慣れれば当たり前のような話かもしれませんが、同じようにそろそろMacに乗り換えてみようかな、とか思っているJava屋の人の参考になればと思います。 MacJava事情 Windowsで開発する場合と色々と事情が異なるので、まずはそれを整理して理解しておく必要があります。 VMの提供はSunではなくAppleが行っている VMには32bit版と64bit

    Mac OS X にJavaの開発環境を設定する - やさしいデスマーチ
    kijitoraneko
    kijitoraneko 2010/10/28
    ありがたい
  • キュー構造をJavaで実装してジェネリック型を理解する

    キュー構造をJavaで実装してジェネリック型を理解する:【改訂版】Eclipseではじめるプログラミング(19)(1/3 ページ) これからプログラミングを学習したい方、Javaは難しそうでとっつきづらいという方のためのJavaプログラミング超入門連載です。最新のEclipse 3.4とJava 6を使い大幅に情報量を増やした、連載「Eclipseではじめるプログラミング」の改訂版となります 安全なままコレクションフレームワークを利用するために 今回は、「ジェネリックス(Generics)」について説明します。 Javaでは、すべてのクラスはjava.lang.Object型から派生しているので、どのオブジェクトもObject型として扱えば、ある処理をさまざまなデータ型に対して適用できます。 ただし、この場合は型について安全であることを保証するために、自分でチェックコードを記述したりキャス

    キュー構造をJavaで実装してジェネリック型を理解する
  • @IT:Javaの文字化け対策FAQ(1)

    質問1: Webブラウザが文字コードを判定する基準は何ですか? 解答:HTTPのContent-Typeヘッダです まずは、Webにおける文字コードの扱いをおさらいしておこう。HTML 4.01仕様では、Webブラウザが以下の優先順位で文字コードを決定することを規定している。 HTTPにおけるContent-Typeヘッダのcharsetパラメータ HTML文書内のMETA宣言およびhttp-equiv属性で設定された、Content-Typeヘッダのcharsetパラメータ HTML文書内の各要素のcharset属性 Webサーバが送信するHTTPヘッダの中には、送信内容がどのような素性のコンテンツなのかをWebブラウザに教えるために、以下のようなContent-Typeヘッダを通じてコンテンツのメディアタイプ(下記例ではtext/html)を明示する。 これによりWebブラウザは、受信

    @IT:Javaの文字化け対策FAQ(1)
  • J2SE 5.0 虎の穴 Java2 SE v5.0 Tiger の新機能

    「トラだ、トラだ、お前はトラになるんだ !!」 というわけで J2SE 5.0、コードネーム Tiger の新機能を紹介していきます。 まちがい、コメント等ありましたら、遠慮なくおねがいします。 JSR-176 J2SE 5.0 Release Contents http://jcp.org/en/jsr/detail?id=176

    kijitoraneko
    kijitoraneko 2009/05/18
    5.0