タグ

javaとprogrammingに関するtomoemonのブックマーク (17)

  • Java casting resulting in run-time error instead of compilation error

  • Javaの冗長な記法って小クラス主義の現れではないかな - 矢野勉のはてな日記

    Java以下は無駄に長い駄文です。なんか書いてみたはいいもののうまくまとまらなかった。ごく一部しか表せなかった気がする。これではInputStreamReaderとかがたくさんオブジェクトを連結しないと使えないめんどくささをなぜ許容できるか、しか表せてない... もともとは「 Java における質的でない記述がどのように大規模開発に役立つのか - kwatchの日記」がらみの話です。文中にいくつか「アクセッサが簡潔に定義できない」「FileReader に文字コードを渡せない」のような例があって、「それらが改善されたら大規模開発になにか不利益があるのかどうか」という具体的な質問があったので私はそこにコメントしときました。私はコメント欄に「不利益なんてないよ」と回答しました。実際のところ、後方互換性が維持され、言語としての統一性が維持されるなら別に不利益なんてあるわけない。あるとしたらマネ

  • スレッドセーフとデッドロック - Javaの日々

    ●スレッドセーフ スレッドセーフとは、複数のスレッドが実行されるプログラムにおいて、データの整合性が保障されていることをいう。この場合のデータとは、クラスのフィールドの状態を指す。状態を持たないフィールド( final属性の基型、final属性のイミュータブルオブジェクト )は更新されないので整合性を気にする必要はない。 staticメソッドとスレッドセーフかどうかは関係ない。 あるメソッドがstaticか非staticかはそのメソッドがスレッドセーフであるかどうかの判断基準にはならない。それらは互いに独立した概念である。 あるメソッドがスレッドセーフかどうかの基準は、以下の基準によっている。 #そのメソッド内で、あるクラスのフィールドの状態を更新しているかどうか もし、そのメソッド内で上記の操作が行われている場合、synchronized 修飾子をつけるべきである。こうすることで、その

    スレッドセーフとデッドロック - Javaの日々
  • Scala School

    Other Languages: 한국어 Русский 简体中文 About Scala school started as a series of lectures at Twitter to prepare experienced engineers to be productive Scala programmers. Scala is a relatively new language, but draws on many familiar concepts. Thus, these lectures assumed the audience knew the concepts and showed how to use them in Scala. We found this an effective way of getting new engineers up to spe

  • Inversion of Control コンテナと Dependency Injection パターン

    以下の文章は、Martin Fowler の「Inversion of Control Containers and the Dependency Injection pattern」を、かくたにが翻訳したものです。原著者の許可を得て翻訳・公開しています。 翻訳にあたっては、kdmsnr さんにご協力をいただきました。ありがとうございます。公開後の改訂履歴を記事の最後に記述しています。 Java コミュニティでは軽量コンテナが花盛りである。 軽量コンテナは、異なるプロジェクトのコンポーネントをひとまとまりのアプリケーションとして組み立てることを支援する。 このようなコンテナの根底には、コンポーネントの結び付け方についての共通したパターンがある。 そのパターンのコンセプトは「Inversion of Control(制御の反転)」と、まことに包括的な名前で呼ばれている。 記事では、このパタ

  • Java で Map を回す時は entrySet の方が早い(とりあえず HashMap の話) - 宇宙行きたい

    最近,SQL ばかり書いてて久しぶりに Java 書いたら 「Map ってどうやって回すんだっけ??」 という超初歩的な疑問がwwww 拡張 for 文で keySet 回せばいいかなぁと思ったら id:sett-4 に 「entrySet まわした方が早かった筈ですよ」 って言われた. 勝手な想像で,entrySet って Iterable#iterator() の Iterator#next() で return new Map.Entry(key,map.get(key)); 的な事してて逆に遅いんじゃね??って思ったので 調べてみた. とりあえずソース読んでみる そしたら public Set<Map.Entry<K,V>> entrySet() { return entrySet0(); } private Set<Map.Entry<K,V>> entrySet0() { Se

    Java で Map を回す時は entrySet の方が早い(とりあえず HashMap の話) - 宇宙行きたい
  • プログラムから起動ディレクトリを知るには? - OKWAVE

    こんにちは。 deadlockさんの方法を参考にサンプルを作ってみました。 でも、複雑でトリッキーになってしまいました。 もっと、シンプルな方法があればいいのですが・・・。 (コンパイルするときは、全角スペースを半角スペースに変換してからにしてください) package hoge.hoge; import java.net.*; import java.io.*; import java.util.regex.*; public class Test { public static void main(String[] args){ Test test = new Test(); Class testClass = test.getClass(); //リソースとして自分自身を探す。これなら、間違いなくあるはず。 URL url = testClass.getResource("Test.

    プログラムから起動ディレクトリを知るには? - OKWAVE
  • 時間を計測する

    2つの時間 システム時刻 大抵の計算機は、現在時刻として世界協定時(UTC:Coordinated Universal Time)などの時刻を保持して更新しています。これによって、ユーザが認識している「現在時刻」と互換性のある時刻をプログラム内で使用することができます。ただし、UTC時刻と合わせるための仕組みが必要になります。また、計算機は時刻の進みを次節で説明するクロックから算出して更新しているため、定期的にUTC時刻と同期を行なわないと徐々にずれていくことになります。 UTC時刻は、グリニッジ子午線(経度0度)での真夜中を0時0分0秒として1日の時間を表現します。しかし、ユーザの生活している国・地域(ロケール)では、それぞれロケール毎に基準となる子午線(経度)を決めて時刻を表現しています。例えば日標準時は東経135度を子午線として時刻を表現します。UTC時刻とは9時間(経度15度につ

  • Javaのhello worldの読み方 | mwSoft

    前書き お馴染み、hello worldのソース。 class Hello { public static void main(String[] args) { System.out.println("hello world"); } } このコードはコンパイルされると、こんなバイトコードになります。 ca fe ba be 00 00 00 32 00 22 07 00 02 01 00 05 48 65 6c 6c 6f 07 00 04 01 00 10 6a 61 76 61 2f 6c 61 6e 67 2f 4f 62 6a 65 63 74 01 00 06 3c 69 6e 69 74 3e 01 00 03 28 29 56 01 00 04 43 6f 64 65 0a 00 03 00 09 0c 00 05 00 06 01 00 0f 4c 69 6e 65 4e

  • Javaメモ目次(Hishidama's Java Memo)

    Javaの基礎(というか入門的な内容)から ちょっとした応用までをメモしています。 単純にJavaと言っても、場合によってソースを書く際の文法・ライブラリ(クラス)の使用方法・GC(ガベージコレクション)等のJavaVMの機構/動作など様々な事柄を含みます。 コンパイル・実行関連 [/2025-03-19] 文法関連 [/2024-09-23] ライブラリー関連 [/2025-03-19] サードパーティー関連 [/2022-11-11] 定石 [/2021-03-21] 新機能 [/2025-03-19] プレビュー版機能 [/2025-03-19] キーワード(抜粋)一覧 参考書

  • Javaフレームワークの比較検討資料公開 - 矢野勉のはてな日記

    Java仕事で各種フレームワークを比較検討したので、比較用に作った参考資料を公開します。ちなみに現在私は、ドワンゴさんの社内システム開発をお手伝いしてまして、その一環で調べたものです。会社資料じゃなく、私の資料ということでブログで公開してよい、むしろしとけ、とのことなので公開しときます。 今回の案件向けにアプリケーションを画面層コンテナ層データアクセス層に分けて、それぞれフレームワークを選ぶのが目的です。コンテナ層はDIコンテナのうちいずれか、データアクセス層はO/Rマッパーを選ぶことになります。 太枠の範囲が選定対象です。よくに出てくる杓子定規な階層図とは変えてあります。 次のものを比較検討しました。画面層SAStrutsApache Wicket(ほかにもTeedaとかClick Frameworkとかももともとは候補にあったが、調査が追いつかないので二つに絞った)コンテナSeasa

  • 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ジェネリクス再入門 - プログラマーの脳みそ
  • Javaバイトコード入門

    9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...

    Javaバイトコード入門
  • Programming Languages - Google Code University - Google Code

    Programming Languages Google's Python Class This is a complete online introduction to Python programming, including writen materials, lecture videos, and coding exercises. The class is geared for people with a little bit of programming experience, and is used within google to introduce Python. Below are video-taped lectures from Google Video on various technology areas. These videos are great oppo

  • - Java プログラマのためのC# 考察 -- 言語仕様の比較

    2000年6月に発表された Microsoft の新しい言語,C#(シー・シャープ)は, その目指す目標,言語仕様ともに Java と密接な関係がある.この記事では, C# 言語仕様の紹介を,特に Java との比較の観点から行う. C# およびこの言語が動作する .NET(ドットネット)プラットホームについては 多分にセンセーショナルな側面があるが,ここではJava と C# 周辺の政治的な部分には立ち入らず, 技術的側面にのみ焦点をあてる.

  • Java におけるコード進化パターン (Code Evolution Patterns in Java)

    Java におけるコード進化パターン (Code Evolution Patterns in Java) asato shimotaki <asatohan at gmail.com> 最終更新日 : 2009/6/21 (2004/4/22 より) [...] For twenty years, I spent two or three hours a day looking at pairs of things -- buildings, tiles, stones, windows, carpets, figures, carvings of flowers, paths, seats, funiture, streets, paintings, fountains, doorways, arches, friezes -- comparing them, and asking my

  • Javaでコンパイラの基礎を理解する

    そもそもコンパイラの中ってどうなっているの? Javaでコンパイラの基礎を理解する(1) 普段、なにげなく使っているコンパイラ。中身を理解すると、プログラミングへの意識が変わり、技術力もつきます! 開発者必見です

  • 1