Javaプログラムにおいて,クラスを作ることを厭う人たちが多い. そのような人たちの多くはデータを桁数依存にて構造が存在する文字列にして扱うことを好む. しかしJavaにおいてStringを解析することは多くの例外の原因となり,ひいてはシステム障害の原因となることが多い. またStringの演算は重く,Stringはメモリ消費量が多い. この文章では,Java利用システムにおいてStringの濫用を戒め,適切な型の利用と適切なクラス設計を行うことを勧める.*1 Stringの問題 多発する例外 Stringを利用することにより発生する例外には次のものがある. NullPointerException StringIndexOutOfBoundsException IndexOutOfBoundsException IllegalArgumentException UnsupportedEn
土曜にJJUG CCC 2013 Fall(http://www.java-users.jp/?page_id=695)へ行ってきました。 事前にお知らせするのを忘れていましたが、17:15〜18:05のセッションでJVMのソースコードリーディングについてお話ししましたので、発表資料を公開します。 R5-5 JVMコードリーディング入門 〜JVMのOS抽象化レイヤーについて〜 JVMのコードを読みはじめたばかりの方を対象に、JVMとOSのメモリを中心とした関係性についてお話しします。JVMはOSからどのようにメモリを確保しているのでしょうか? そんな素朴な疑問をもとに、JVMのコードを楽しく追いかけてみましょう。※このセッションは入門者向けです。バイトコードやGCについては扱いません。 虎塚 (さくらば組) http://www.java-users.jp/?page_id=709#r5-
オブジェクトとクラスの関係について、次のような説明を見かけました(文言の引用ではなくて、檜山による要約)。 オブジェクトとクラスは全体としてツリー構造をしていて、ツリーの末端をオブジェクト、末端以外のノードをクラスという。末端であるオブジェクトは、その親ノードであるクラスのインスタンスと呼び、クラスどおしの親子関係を継承関係と呼ぶ。 うーむ、この説明、ある意味「簡潔でわかりやすい」とも言えるのだけど、ちょっと単純化し過ぎでしょ。 オブジェクトやクラスの概念て、そんなに美しくもなきゃ、整合的でもありません。実用性やら実装上の都合やらでゴチャゴチャですがね。しかし、そのゴチャゴチャが悪いともいえません。ゴチャゴチャを無理に単純化することなく、必然性を持った(幾分は偶発的だけど(苦笑))複雑さとして理解すべきかと思います。 というわけで、メタクラスやレイフィケーション(reification)な
Oracleは、Android OSに使用されているJava APIがOracleの保有する特許を侵害しているとしてGoogleに対して訴訟を起こしているが、Dr. Dobb's記事は、もしOracleが勝訴することになれば「プログラミングの将来は終わる」と予測している(本家/.、Dr.Dobb's記事)。 Oracleとのライセンス契約がないまま、GoogleがJava技術を無断で使用したことが特許侵害に当たると判断されれば、GoogleはOracleに対して多額のライセンス料を支払わざるを得なくなる。話はこれで済めばよいのだが、この訴訟から多くの訴訟が派生する可能性があるという。 つまり、例えばPythonにおけるJythonやIronPython、PyPy、またRubyにおけるRubinius、CやVBにおけるRono、CにおけるGCCといった、既存言語処理系の再実装によって著作権侵
Sprigを使って、DIを実際に動かしながら、これまでのプログラミングとの違いや活用方法を説明します。 Last modified: Mon Sep 05 18:27:56 JST 2005 1 DI 1.1 DIの由来 DI(Dependecy Injection)は、日本語では「依存性の注入」と訳されていますが、 PicoContainer, SpringではIoC(Inverse of Control)日本語では「制御の逆転」 と呼ばれていました。 IoCとは、アプリケーションが部品であるコンポーネントを生成し組み立てる 代わりに、コンテナーがコンポーネントを生成し組み立てた後、アプリケーション に渡すので「コンポーネントを生成し組み立てる」という制御がアプリケーション からコンテナーに移行したためにこのように名付けられました。 しかし、「制御の逆転」と言われても意味が伝わりにくいた
元ネタはこちらですが、「優れたJavaプログラマ」を見分ける質問ではありません*1。次のような状況を想定してください。 受託業務を中心にしている弊社は、Javaで業務系ウェブアプリケーションの開発を行う事になりました。しかし社内のリソースを使うにも1−2名足らない事が見積もりから解っています。そこで、中堅エンジニアを1−2名募集することになりました。正社員か派遣かは問いませんが、経験が3年程度の中堅プログラマが必要です。同等またはそれ以上のスキルを持つ正社員がプロジェクトを牽引しますが、ゼロから教えながら教育することはできないので、必要最低限のスキルを持っていることが条件になります。 こんな状況を想定して、面接の質問を考えてみました。経験が3年程度あれば、問題なく答えられるはずです*2。尚、質問はホーム言語がJavaである前提です。 下記質問にそれぞれ50文字以内を目安に簡単に説明すること
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く