タグ

Javaとprogrammingに関するcoppieeeのブックマーク (12)

  • Java回顧録 〜独白: 僕は全ての事をJavaから学んだ〜 - 風と宇宙とプログラム

    先日Javaのコードを3年振りくらいで書いてみたら、無性にJavaについて振り返ってみたくなった。Javaの誕生当時をリアルタイムで経験した僕にとってJavaは感慨深いものであり、多くのことをJavaから学び、僕を成長させてくれた原点でもある。 僕とJavaとの関わりはJavaがまだOakと呼ばれていた頃から始まる。1994年の暮れの頃だったと思う。Oakで書かれたWebブラウザはWebRunnerと呼ばれていて、両者はほとんど一体だった。会社の上長からこれを使って携帯情報端末機器を開発することになったから、秘密裏に調査しておくようにと突然指示された。後になって知ったことだが、Oakは家電などの組込み系を想定して開発されたもので、当時Sunは日の多くのメーカに呼びかけてOak を普及させようとしていたようだ。 その頃のインターネット事情というのは、Mozilla(Netscape)が登場

    Java回顧録 〜独白: 僕は全ての事をJavaから学んだ〜 - 風と宇宙とプログラム
    coppieee
    coppieee 2010/12/06
    あとで読む(Javaのコードを)
  • 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ジェネリクス再入門 - プログラマーの脳みそ
  • そろそろIDEよりコマンドラインのほうが理解が深まるという有害な妄想は捨ててはどうか? - きしだのはてな

    Java入門ブックガイド(入門編)よりよき入門書と出会うために」を読んで。 第一印象として、よりよきJava入門ブックガイドに出会う必要があるなということ。 コマンドラインでは慣れ親しめない サブタイトルに「慣れ親しむことが上達の秘訣」とあるけども、コマンドラインで慣れ親しむのは難しいと思います。 「慣れ親しむことが上達の秘訣」が正しいのであれば、IDEで慣れ親しんだほうが上達するのではないでしょうか? 現実問題として、書籍を買って勉強する人は強制されて勉強するわけではないです。自分の時間をやりくりして入門書を読んでいます。 そして、まだプログラムの面白さを知りません。 コマンドラインでコンパイルエラーが出たとき、じっくりとそのエラーを読み解くのではなく、そこでくじけてやめる可能性が高いと思われます。 それよりは、IDEでエラーを入力段階で修正しつつ進むほうがいいと思います。 javac

    そろそろIDEよりコマンドラインのほうが理解が深まるという有害な妄想は捨ててはどうか? - きしだのはてな
    coppieee
    coppieee 2010/09/01
    JavaでIDE使わないのは、ありえないよね。
  • プログラマが知っておきたいJavaと.NETの違い

    システム開発がますます複雑化していく中、エンジニアには、テクノロジを理解して、さまざまな場面に適した選択が求められます。連載では、Javaと.NETの基的な仕組みから最新の傾向や技術などについて、数回に分けて紹介します いまさら聞けない、Javaと.NETの違い 今日、アプリケーション開発・実行のプラットフォームは、大きく2つのテクノロジに収束しているといえるでしょう。 1つは、エンタープライズ・アプリケーション開発の定番ともいえる「Java」です。 実行環境、開発環境の無償提供、OSを自由に選べること、フレームワークや開発環境が充実していることが人気の理由です。大規模アプリケーションの採用実績も多く、ほかのプラットフォームをリードしてきました。 もう1つは、マイクロソフトが発表した「Microsoft.NET」構想に基づいた「.NET」です。 プラットフォームが主にWindowsに制

    プログラマが知っておきたいJavaと.NETの違い
    coppieee
    coppieee 2010/06/09
    C#とJavaの一番の違いともいえるラムダ式と拡張メソッドの説明が全くない。
  • Javaでセミコロンなしでプログラムを書く - プログラマーの脳みそ

    java-ja温泉2日目の夕。 @yoshiori がpythonのワンライナの楽しさを得々と語っていた。 @yoshiori「Brainf*ck を Python-oneliner にコンパイルする Python-onelinerを書いたけど全ッ然反応がなかった。こんなに面白いのに!」 @yamashiro「だって分かりにくいもん」 西尾先生が通常ワンライナではtry-catchが使えないけど子プロセス立ち上げて例外を出力してパースすればエラー処理ができるとか(http://www.nishiohirokazu.org/blog/2006/08/python_12.html参照)そんな話で盛り上がる中、 @nagise「Javaでセミコロンなしでプログラムが書けるような気がしてきた」 Javaの場合、普通にセミコロン(;)でマルチステートメントにかけるのでただ1行にしようというなら改行

    Javaでセミコロンなしでプログラムを書く - プログラマーの脳みそ
    coppieee
    coppieee 2010/03/22
    かっこいい
  • 佐藤先生がErlang、Scala、Javaなどの並行処理を斬る! - スティルハウスの書庫の書庫

    ここ数日の佐藤先生のエントリが熱い! Erlang、ScalaGoJavaなどの現代の言語(Erlangは古いか)における並行処理の扱い方について、それぞれの歴史的背景や意義、得手不得手などがわかりやすく紹介されてます。80年代から並行処理やオブジェクト指向を研究されてきた佐藤先生ならではの視点ですね。ちょっと長くなりますが特に私が興味深かった部分を引用します(強調は私): 佐藤一郎: Web日記 (2010年) 最近、興味深いのはオブジェクト指向言語のScalaやErlangが話題を集めていることでしょうか。どちらもActor Modelをベースにしているそうですが、オブジェクト指向言語の歴史でいうと、Actor Modelなどの並行処理用オブジェクト指向言語の研究が盛んになったのは1985年からの6,7年ぐらいだと思います(Actor Model自身はもっと古いですが)。そして19

    佐藤先生がErlang、Scala、Javaなどの並行処理を斬る! - スティルハウスの書庫の書庫
  • Effective Java 読書会 8 日目 「それ enum で出来るよ」 - IT戦記

    はじめに 今日読んだところ 143 ページ〜 159 ページ 前回はこちら Effective Java 読書会 7 日目 「PECS! PECS! PECS!」 - IT戦記 int 定数とか使わない 型安全じゃないから enum 使う enum Hoge { FOO, BAR; } 簡単 メソッドも持てる enum Hoge { FOO, BAR; void a() { /* (snip) */ } } で、以下のように使う Hoge.FOO.a(); シングルトンも 最近の Java では enum でやるらしい! switch 文の代わりに固有メソッド enum Hoge { FOO { void a() { /*snip*/ } }, BAR { void a() { /*snip*/ } }; abstract void a(); } 以下のコードが // これはダメ swit

    coppieee
    coppieee 2010/02/26
    C#のEnumとは大違い
  • Javaバイトコードの読み方 - プログラマーの脳みそ

    Javaのデバッグをしていて、ステップ実行中にステップインを繰り返したらソースコードのないところに行き当たったことがあるだろう。あるいはEclipseでF3キーでクラスやメソッド・フィールドの宣言元を辿っていってソースコードのないところに行き当たったことがあるだろう。 Eclipseの場合、"Class File Editor"というものが開く。そこにはJavaのバイトコードのニーモニックがズラズラと並んでいて、「これは読めないや、ワケが分からない」と投げ出してしまったりしていないだろうか。 怖がることはない。ちょっとコツを掴めばすぐに読めるようになる。 Class File Editorの開き方 自前のJavaクラスの場合、ビルドして出来上がったclassファイルを開く必要がある。"Package Explorer"だとclassファイルは隠されていて見えないのでWindow -> Sh

    Javaバイトコードの読み方 - プログラマーの脳みそ
  • Java変態文法最速マスター - プログラマーの脳みそ

    Java基礎文法最速マスター - いろいろ解析日記をリスペクト。 Javaの変態文法・技法一覧です。Javaの基礎をある程度知っている人はこれを読めばJavaの変態をマスターしてJavaを書くことができるようになっています。簡易リファレンスとしても利用できると思いますので、これは足りないと思うものがあれば教えてください。 1.基礎 エンクロージング型内部classの作成 外部classのインスタンスに紐付くインスタンスを生成します。外部クラスのインスタンス - 内部クラスのインスタンス間に、クラス - インスタンスのような関係を持たせることができます。 public class Outer { public class Inner { } } というようなクラスを作った場合、 Outer o = new Outer(); Inner i = o.new Inner(); となります。new

    Java変態文法最速マスター - プログラマーの脳みそ
  • Java基礎文法最速マスター - いろいろ解析日記

    Javaの文法一覧です。他の言語をある程度知っている人はこれを読めばJavaの基礎をマスターしてJavaを書くことができるようになっています。簡易リファレンスとしても利用できると思いますので、これは足りないと思うものがあれば教えてください。 1. 基礎 classの作成 プログラムはclassに記述します。たとえばSampleという名前のclassを作る場合、Sample.javaファイル内に次のように書きます。 public class Sample { } mainメソッドの作成 プログラムはclass内のmainメソッドの先頭から実行されます。mainメソッドは次のように書きます。 public class Sample { public static void main( String[] args ) { // 処理を書く } } System.out.printlnメソッド 文

    Java基礎文法最速マスター - いろいろ解析日記
  • Java の参照と C++ の参照の違い - Cube Lilac

    kimuraya Javaでは、参照型を引数として渡す時は、C++で言う参照渡しに相当する処理を行っているようだな。そうでないと、Javaの動作は説明出来ない。 bleis @kimuraya よくある勘違いですけど違いますよ。Javaで参照型を引数として渡すときは、意味的にはC++で言うポインタ渡しに近いです。 数日前に関数引数の参照渡しの話が盛り上がっていたのですが,この話は今まで私も混同していました.TL を眺めていた時点では,説明している人達の言ってる事がよく理解できていなかったのですが,後で下記のコードを実行したところ,この時に言われていた事が少し理解できました. class Foo { public Foo(String s) { message = s; } public String toString() { return message; } private String

    Java の参照と C++ の参照の違い - Cube Lilac
  • 意外と知らないファイル圧縮技術の常識

    連載は、Java言語やその文法は一通り理解しているが、「プログラマー」としては初心者、という方を対象とします。Javaコアパッケージを掘り下げることにより「プログラマーの常識」を身に付けられるように話を進めていきます。今回はアーカイブと圧縮の違いなどの基礎知識とともに、Java APIJava定番のファイル圧縮形式jarやgzipzip形式を扱う方法も紹介。 今回はデータの圧縮技術を学んでいきます。データの圧縮技術はさまざまなコンピュータ関連用途において利用されていますが、この記事では「ファイル圧縮」の話題に絞って話を進めていきます。 意外と知らない、「圧縮」って何? 私たちが普通にOSを利用していると、ファイルの拡張子が「.zip」「.lzh」「.cab」などとなっているファイルを扱うことがあります。これらの拡張子を持つファイルは、複数のファイルやディレクトリを1つのファイルにまと

    意外と知らないファイル圧縮技術の常識
    coppieee
    coppieee 2009/03/07
    Javaでファイル圧縮
  • 1