タグ

Javaに関するcoppieeeのブックマーク (80)

  • 2010年現在のアクセスレベルの限界 - プログラマーの脳みそ

    前提条件を破った場合、どのような挙動をするのか? - 都元ダイスケ IT-PRESSで言及をもらったので 現代は4つのアクセスレベルでの可視性制御の限界が囁かれていて、打破するためにいろいろ模索しているところ はてなブックマーク - Nagiseのブックマーク / 2009年12月24日 についてちょっと具体的な話をしておこう。 このブックマークコメントは可視性と公開APIと非公開(内部)APIと - 都元ダイスケ IT-PRESSに対してつけたものだった。このエントリは設計する際にJavaの4つのアクセスレベルをどう使い分けるかを書いた良エントリだと思う。 privateで困る例:自動テスト JUnitといった自動テストコードを書くことを考えてみよう。クラス内だけで再利用される冗長コードをprivateメソッドとして括り出した。このメソッドが単体独立で動作検証が可能なのであれば、そのI/

    2010年現在のアクセスレベルの限界 - プログラマーの脳みそ
  • 2009-12-21 - Secret Sword!!!

    なぜか? おまじないの量が多くなってしまうから 一般的なHelloWorld public class HelloWorld { public static void main(String[] args) { System.out.println("Hello,World!"); } } staticとかStringとかSystemとかmainとか色々難しそう あと、このHelloWorldだと色々省略した結果このコードになっていることに気づけないんじゃないだろうか どうやったら初心者にやさしいJavaになるんだろうか 色々と省略しないで書いてみる public class HelloWorld { public static void main(java.lang.String[] args) { java.lang.System.out.println("Hello,World!")

    2009-12-21 - Secret Sword!!!
    coppieee
    coppieee 2009/12/25
    HelloWorldにmain文など必要ない!
  • Javaはバイナリをごりごりやるのに弱い - プログラマーの脳みそ

    プログラミングのジャンルは広いもので、しばらくいじってなかったジャンルを久々に触ると記憶違いとかしてて記憶をリフレッシュさせにゃいかんなぁとか思う今日この頃、みなさまいかがお過ごしでしょうか。僕は風邪で寝込んでました。 PCエンジンエミュレータ移植の件 - Aoisomeの以下略で、僕は何を勘違いしたかJavaのbyteをunsignedだと記憶違いしてて恥をかいたところ。そういえば誰かもFlexのバイナリをJavaでごりごり扱おうとしたらsignedで苦労したみたいなこと言ってたっけ。 Javaの仕様を再確認。short、char、byteは演算時に自動的にintにワイドニングして処理される。なので、単純なbyte型変数同士の演算をbyte型に代入するにもキャストが必要になる。 byte a = 1; byte b = 2; byte c = (byte)(a + b); 面倒くさいよね

    Javaはバイナリをごりごりやるのに弱い - プログラマーの脳みそ
    coppieee
    coppieee 2009/12/10
    twitterでの話し合いが興味深かったのでまとめた → http://togetter.com/li/1618
  • Mark Reinhold氏、Javaのクロージャについて語る

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Mark Reinhold氏、Javaのクロージャについて語る
    coppieee
    coppieee 2009/12/02
    Javaの世界が変わる!
  • Java並行処理プログラミングまとめ - 感想・はじめに - Akinekoの日記

    Java並行処理プログラミングがついに復刊されましたね!僕も図書館から借りて読みはしたんですが手元に置いておきたい一冊だったのですごく待ってました>< というわけで別に復刊記念というわけではありませんがいい機会なので宿題が溜まりすぎないうちに少しでも消化しようとJava並行処理プログラミングを読んだ感想やまとめです。 感想 タイトル通り書いてあるコードは全てJavaですしJVMなどJavaに偏った部分もありますが、内容としては並行処理プログラミング自体についての基礎知識から高度な知識までを段階的に解説されてあります。また、問題を解決する方法もいきなりこのAPIを使えばOKと紹介するのではなく、オブジェクトの作り方・組み合わせ方から説明した後にJavaなら既にこういったAPIがありますと紹介していますので、こういった作り方・組み合わせ方の知識は他言語にも流用できると思います。その際に注意する

    Java並行処理プログラミングまとめ - 感想・はじめに - Akinekoの日記
  • なぜJavaの価値があがるといえるか。 - きしだのはてな

    昨日の続き。 PHPの価値が相対的に落ちてJavaの価値があがっていく PHPJava Windows Azureでは、PHP対応もあるらしい。 また、GAE/J上でPHPを動かしたら一緒ではないかというコメントもあった。現状ではGAE/J上でPHPを動かす環境が未完成であったとしても、先のことを言うのであればこちらも完成度があがっていくことを考慮する必要がある。 ただ、これらを考慮したとしても、PHPの相対的な価値が下がったという意見には変わりがない。 PHPがこれまでもっていた「動かす環境が確保しやすい」という特権がなくなったということをもって、PHPの相対的な価値が下がったといっているからだ。実行環境の確保という点では、PHPがもっていたほかの言語に対する優位性がなくなった。 また、Google App EngineによってPythonではなくJavaが強くなったというのは、今まで

    なぜJavaの価値があがるといえるか。 - きしだのはてな
    coppieee
    coppieee 2009/10/22
    そもそもなんでPHPやPerlをサーバに使おうと思ったんだろうか。Javaの価値上がることに期待!
  • 総まとめ:Javaの将来的な後継者としての Scala

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    総まとめ:Javaの将来的な後継者としての Scala
  • 「C++ は難しいから」と言う定説 - Cube Lilac

    雑記. C++ は難しいから Java から始めた方が・・・ ここ最近(と言うか以前からずっとですが),上記のようなアドバイスを見かける機会が多かったせいか「C++ の何を指して(Java と比べて)難しいと言っているのだろう?」と言う事を単純に疑問に思うようになりました.Java 自体はほとんど使ったことないのですが*1,感想としては「どちらも大して変わらない」と言うものだったので余計に気になっています. 以下,現状で私が「これが要因かなぁ」と思っている事を列挙してみます. C++ には XXX と言うクラス/関数がない 可能性として一番高いのはこれかなぁと思っています.C++ の標準ライブラリは必要最低限のものしか(必要最低限のものさえも?)用意されていないので,他の言語と比べてライブラリの貧弱さは目立ちます.Boost を含めればかなりマシになりますが,それでもキツいかなと言う印象を

    「C++ は難しいから」と言う定説 - Cube Lilac
    coppieee
    coppieee 2009/07/09
    JavaとC++って似てるの構文だけだろ。言語思想がまったく異なる。
  • 5年後に後悔しないJavaプログラムの書き方 - L'eclat des jours(2009-07-02)

    _ 5年後に後悔しないJavaプログラムの書き方 ここ数日、死ぬほど後悔しまくっているので、あらためて(というのは、数年前にも一度後悔しまくって、そのときの知見はあらかた処方箋とかコーディングの掟に書いているからだが)後悔しないための書き方をいくつか紹介する。 とにかく、ファクトリメソッドパターンを使うこと。 これは当に重要。しかも簡単でありながら効果は絶大。 だめな例。 public class FooBar { private Connection conn; ... protected void setup() { ... conn = DriverManager.getConnection(url); ... } urlを指定することや、DriverManagerの実装を交換すれば良いだろうと想定していても(というか、Connectionならそういう方法もあり得るが、そうはいかな

    coppieee
    coppieee 2009/07/03
    DIコンテナ使えばよくね?
  • ぼくがLLのひとに「ガツン」と申し上げたこと - ひがやすを技術ブログ

    ぼくは水曜日にTokyo Cloud Developerの集まりに出た。 そこで、LLのひとから、「Google App Engineは、Python版以外にJava版も出たけど、サンプル見たけど、たくさんコード書かなければいけなくて、正直どこがいいのか教えて欲しい」という質問があった。 blogに名前を出していいかの了解を得ることを忘れたので、ここには、LLの人としか書けない。 ぼくは、そこで一言申し上げた。あるいはそれは、「申し上げた」というような生やさしいものではないかも知れない。端的な言い方をすれば、ガツンと言ってやった。 客観的に見て、ぼくはガツンと言ってやったと思う。LLな方々を前に、「いまどきのフレームワークは進化しているから、言語による差なんて余りない。仮に、Javaのほうが二倍コードを書く必要があったとしても、開発の中でコードを書いている時間より考えている時間のほうが圧倒

    ぼくがLLのひとに「ガツン」と申し上げたこと - ひがやすを技術ブログ
  • java-jaでTDDでペアプロUst中継をしました

    第二回チキチキ 日ペアプログラミングの会java-ja支部会(仮)に参加してきました。会場を提供してくださった株式会社ドワンゴ様、当にありがとうございました。 TDD(test-driven development)での開発ってどんな感じ?というセッションをまずt_wada氏がやって、 踏まえたうえでペアプログラミングで実践して体感するという流れ。 ペアプロの相手を探すフェーズがさながら合コンかお見合いパーティといった風情。私は@yamashiro氏とペアを組みました。 @yamashiro氏はTDD慣れしているんだけど、僕のLet'sノートのキーボードと相性が悪かったのが残念。僕らのペアプロ姿はUst中継で放映されていましたよ。 セッション内容は@monjudoh氏がリアルタイムにblogに上げた奴とかたくさんあるので割愛。 成果物 テーマはプライオリティキューを作ろう、というもの。

    coppieee
    coppieee 2009/06/08
    TDD
  • 自己流オブジェクト指向&Java参考書 『非』お勧め版 - カレーなる辛口Javaな加齢日記

    お奨めリスト*1と対をなす,非お勧め版の入門書・参考書リスト.*2 あくまで『非』お勧めの、駄、屑リストである点に注意。しかし皮肉な話だが,初心者を惑わす入門書を避けるためにも要チェックだろう. 主に「何故か有名だけど悪い」を取り上げる予定.「無名だけど悪い」はきりがないので,ここではパス.結果として持ってないが中心になるので詳細について触れるつもりはない.*3 「オブジェクト指向」 実は「オブジェクト指向」というのは,あまり専門的な用語ではない.*4オブジェクト指向プログラミング(OOP),オブジェクト指向設計(OOD),オブジェクト指向分析(OOA)などと,きちんと区別すべきだ.ただ口頭で話す時は「オブジェクト指向プログラミング」と言うのは冗長だしOOPと言っても理解してもらえない.しかたがないので省略して「オブジェクト指向」と言う時も少なくない. ここで挙げるのは「いわ

    自己流オブジェクト指向&Java参考書 『非』お勧め版 - カレーなる辛口Javaな加齢日記
  • 連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)
  • Google App Engine for Javaを使ってみよう! (1)Google Plugin for Eclipse

    2008年4月7日に発表されたGoogle App Engineが、ちょうど1年後の2009年4月7日にJavaに対応したことが発表されました。さらに、Java開発には必須のEclipse用のプラグイン「Google Plugin for Eclipse」が同時に発表され、Java利用者は簡単にGoogle App Engine用のプログラム開発とEclipse上からのデプロイができるようになっています。今回はそんな便利な「Google Plugin for Eclipse」の使い方を説明します。 はじめに 2008年4月7日、Googleのインフラでウェブサービスを展開できるという「Google App Engine」が発表され世界中が驚かされました。この時点では利用できる言語としてPythonのみがサポートされており、Pythonの開発者がGoogleの社員であることを考えると当然なの

    Google App Engine for Javaを使ってみよう! (1)Google Plugin for Eclipse
  • JavaはCより速かった — ありえるえりあ

    http://blog.liris.org/2009/03/java.html 仕事をせずに遊んでいる人のコードを、家のJava(Java6)で試してみました。 シェルで動かして、グラフはgnuplotです。ハイテク満載です。 $ seq 1 100 |xargs -n 1 java test |tee /tmp/java-cl.out $ seq 1 100 |xargs -n 1 java -server test |tee /tmp/java-sv.out 横軸は同時スレッド数、縦軸が時間(ミリ秒)です。要は低い方が速くて優秀です。 クライアントVMとサーバVMの差がすごいです。と言うか、サーバVMが優秀すぎます。と言うか、サーバVMの数値は変です。トータルでまわるループ数が線形に増えているはずなのに、処理時間があまり増えていません。 試しにと思って、Cのコードと比較してみました(コ

    coppieee
    coppieee 2009/04/10
    Javaが遅いと言われたのは昔の話。
  • 良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog

    Java並行処理プログラミングを読み終えた。ここ 1 年に読んだ技術書の中でダントツのベスト。(2位はWorking Effectively With Legacy Code) 「Javaだから関係ない」と思った人にこそ読んで欲しい。僕もここ数年 Java のコードなど一切書いていないが、このを読んで得たものは非常に大きかった。 このでは マルチスレッドプログラミングにおける問題と背景、その対処方法 Java が提供している API の設計と実装 を解説している。分かりやすさとレベルの高さを兼ね備えたとても良い。翻訳も最高。 僕はこのを読んで、Java の並行処理プログラミングは、想像を遙かに超えて進化している事に驚きを隠せなかった。何回も twitterJava すげーと叫んだ。 これを読んでしまうと、最近僕が熱心な Scheme も含めて、自分の身の回りにあるプログ

    良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog
  • Java SE コアAPI 使用コード例一覧 - @IT

    IT編集部 2009/3/24 最終更新: 2012/04/11 17:57 このページは、Java開発者/プログラマのための、Java SE(旧、J2SE)のコアAPIの使用コード例の記事へのリンク集です。パッケージごとに表でまとめてあります。メソッドやコンストラクタ、例外などAPIの使い方の参考にしてください。パッケージやクラスの並び順は、標準のJavadoc(「Java Platform, Standard Edition API 仕様」)と同様にしています。 すべてのクラス java awt(Abstract Window Toolkit) event image io(In/Out) lang(LANGuage) reflect math(MATHmatics) net nio(New In/Out) charset(CHARacter SET) rmi(Remote Meth

  • MergeDoc Project

    coppieee
    coppieee 2009/03/07
    日本語バージョン
  • 意外と知らないファイル圧縮技術の常識

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

    意外と知らないファイル圧縮技術の常識
    coppieee
    coppieee 2009/03/07
    Javaでファイル圧縮
  • 連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)