タグ

javaに関するinventのブックマーク (42)

  • Javaの難しいところ - きしだのHatena

    Javaをプログラム未経験者に教えるときの話。 細かいところまでちゃんと理解するための難しさではなくて、とりあえず頻出コードが読み書きできるまでの難しさの話です。細かいところまでの理解、どの言語も難しいので。 あと、ここではプログラム自体の難しさは別の話、ということで。 で、Javaには難しいところが結構あるんですけど、難しいのをひとことでいうと「昔の事情や歴史的経緯により、が多い」ところです。 プログラムを教えるときに何が難しいか たとえばpublic static void mainを書くとか、おまじないが多いとか記述量が煩雑とかは、ツールで対処可能で、ツールで対処可能というのは機械的に慣れればいい部分なので、そこまで問題にならないと思います。 あと「おまじないを減らしたい」というのは教える側のこだわりであって、理解しやすさとは別で、そのおまじないがどういうときに必要かというところさえ

    Javaの難しいところ - きしだのHatena
    invent
    invent 2017/04/01
  • JVMはそんなに重くない | POSTD

    Clojureに反対する大きな理由がJVMです。この役立たずは重いですからね。 これは、数週間前に ZA TechSlackで見た投稿です。休暇中にClojureの話題を何件か見たのですが、投稿者はJVMについても繰り返し言及していました。 私はこの投稿について Slack上で少しつぶやいていました が、もっと広く理解され議論されるように、稿を書くことを決めました。 背景 以前は、私もJVMは重いと思っていました。2000年代の初めにJVMとPHPと比べていた頃の話です。当時は、.NETやColdFusionなど、別の重い製品が他にもありました。また、PerlPythonという軽めの製品もありましたが、私はWindowsを使っていたのでActivePerlやActivePythonはやはり少し重めでした。 私が初めてJVMに対する“恐れ”を克服したのは、小規模な製品アプリを、JRu

    JVMはそんなに重くない | POSTD
    invent
    invent 2017/03/04
  • Java libraries you can't miss in 2017 · Blog by Sergej Jevsejev

    Hello, This blog post is heavily inspired by this presentation by Andres Almiray. This was so good, that I needed to groom it as the reference list. Sharing it with short feature lists and examples. Enjoy! Guice Guice (pronounced ‘juice’) is a lightweight dependency injection framework for Java 6 and above, brought to you by Google. # Typical dependency injection public class DatabaseTransactionLo

    Java libraries you can't miss in 2017 · Blog by Sergej Jevsejev
  • Optimizing JavaというJavaパフォーマンス系の書籍が面白そう - 谷本 心 in せろ部屋

    急激な冷え込みのせいで「寒い!」というつぶやきがTLに散見されるこの頃ですが、皆さんお風邪など召していらっしゃらないでしょうか。 否応なしに寒いという言葉に反応してしまう、けなげなエンジニアの [twitter:@cero_t] です。 このエントリーは Java Advent Calendar 2016 の8日目です。 昨日は [twitter:@haruo31] さんの「Java Stream APIでハマったこと」で、 明日は [twitter:@deaf_tadashi] さんの「マイクロベンチマークツール、JMHについて」でした。 今日のエントリーでは、Javaのパフォーマンス系書籍を紹介したいと思います。 Optimizing Java - O’Reilly Media URLを見るにつけ、あのオライリー様のサイトですら拡張子が由緒正しい .do なのですから、日SIer

    Optimizing JavaというJavaパフォーマンス系の書籍が面白そう - 谷本 心 in せろ部屋
    invent
    invent 2016/12/08
  • Effective Java for Android (cheatsheet).

    Effective Java is considered by many, one of the most important books for writing Java code that is maintainable in the long run and efficient at the same time. Android is using Java and that means that all of the advice given in the book must be applicable, right? Not exactly. Some people consider that most of the advice given by the book are not applicable in the Android development world. In my

    Effective Java for Android (cheatsheet).
  • 2016年現在のJavaについて - arclamp

    Sun MicrosystemsがOracleに買収されたのが2009年ですから、あれから7年が経ちました。 2013年、Javaは大人になったはずだった 僕は2013年に「イマドキのJavaORACLEについて - arclamp」という記事をアップし、次のように書きました。 そんなわけで「ORACLEJavaにコミットしているのか?」という質問が無意味なぐらい、ORACLEJava技術だけではなく、Javaユーザーの方を向いているのです。 もちろん、ORACLEは(SUNに比べて)イノベーションが足りないとかスピード感がないとか批判もできるのですが、これだけエンタープライズのユーザーが増えた中では、Javaの後方互換性を保ちつつ、着実に進化していく、つまりは引き続き安心してJavaを使うことができるというのは大きな価値でしょう。 そう、Java当の意味でオトナになったのかもし

    2016年現在のJavaについて - arclamp
    invent
    invent 2016/11/21
  • Introduction to okio - Speaker Deck

    okio is a library for A modern I/O API for Java, maintained by Square, Inc. I have talked about okio in general; the history and basics of it. * square/okio https://github.com/square/okio/ * Droidcon Montreal Jake Wharton - A Few Ok Libraries https://www.youtube.com/watch?v=WvyScM_S88c * Buffering data with Okio https://corner.squareup.com/2014/04/okio.html * OkHttpの依存ライブラリのOkioでチェックサム算出 - 初老のボケ防止

    Introduction to okio - Speaker Deck
    invent
    invent 2016/10/01
  • JDK9 で入るという新しい HttpClient を試してみた - tokuhirom's blog

    jdk9 で HTTP/2 に対応した新しい HttpClient が提供される。これは待望の新機能である。 Java には標準で java.net.httpurlconnection という http client が付属しているが、低機能で、とてもじゃないが実用には耐えない。 そこで Apache HttpClient がデファクトスタンダードっぽくなっているのだが、これまたあまり使いやすくはない。。wirelog が見づらいし。。 OkHttp というクライアントライブラリもあり、これは使いやすいが、なんか apache httpclient 信者の人に導入を阻まれがち。 そんな中で、HTTP/2 に対応した http client が jdk9 ではついてくるということで、ドキュメントを読んだり、jshell で動かしたりして遊んでみた。 [12:43 PM] tokuhirom

    invent
    invent 2016/09/11
  • 10のJava9で変わるJava8の嫌なとこ!

    Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4bitter_fox

    10のJava9で変わるJava8の嫌なとこ!
    invent
    invent 2016/09/03
  • Dockerコンテナ上でのJavaの実行はライセンス違反なのか?

    先日のブログ記事でHenn Idan氏が,Oracle Javaをコンテナで使用することはOracleのライセンス契約に違反しているのではないか,という問題を提起した。この記事は,発端となったAlpine Linux用のJavaの再コンパイルバージョンを推奨するツイートに対して,Oracleライセンスに対する明確な違反ではないか,とBen Evans氏が指摘したことを受けて提起されたものだ。 OpenJDKはGPLライセンス下で公開されているが,java.comでダウンロード提供される OracleJDKのコンパイル済バイナリには,これとは違うバイナリライセンスが適用されている。コードの著作権はOracleが所持しているため,Oracleには,GPL管理外のバージョンをリリースする権限があるのだ。また,Oracleの提供するJREにも,AppletプラグインやGUIをプラットフォームに依存

    Dockerコンテナ上でのJavaの実行はライセンス違反なのか?
  • Java Interoperability Policy for Major Version Updates - Jake Wharton

    Major version updates to libraries solve the API warts of old and bring shiny new APIs to address previous shortcomings—often in a breaking fashion. Updating an Android or Java app is usually a day or two affair before you reap the benefits. Problems arise, however, when other libraries you depend on have transitive dependencies on older versions of the updated library. Retrofit 2.0 is nearing rel

    Java Interoperability Policy for Major Version Updates - Jake Wharton
    invent
    invent 2016/01/10
  • RxJavaのsubscribeOn()とobserveOn()を使いこなしたい - Islands in the byte stream

    RxJava Advent Calendar 2015 の 12月12日分です。 RxJavaのSchedulersは、RxJavaのコールバックの実行スレッドを制御するためのコンポーネントです。 恥ずかしながら、最近まで subscribeOn() と observeOn() の使い方を理解していませんでした。よって稿では、 subscribeOn() と observeOn() の現状の私の理解したところを書きます。 SchedulersとsubscribeOn() / observeOn() RxJavaのSchedulersまわり一番難しいのは subscribeOn() と observeOn() がどう違うのか、という点だと思います。 これは実用的には以下のように考えるとよいかと思います。 subscribeOn() は Observable.OnSubscribe#call

    RxJavaのsubscribeOn()とobserveOn()を使いこなしたい - Islands in the byte stream
  • BazelでJavaのプロジェクトをビルドする - horie1024の日記

    2015年12月時点でのインストール手順はこちら 概要 Bazelを実際に使って見るためにインストールとサンプルプロジェクトのビルドを試してみる。 Bazel? BazelはGoogleで使われているビルドツールBlazeのOSS版。巨大なソースコードのビルド、テストおよびリリースの要件を満たすように設計されたビルドツールで、迅速かつ確実に巨大なソースコードをビルドすることが可能ならしい。現在α版。 Bazelの特徴 Fast キャッシュと並列処理でビルドを高速化 Reproducible ビルドサーバ、開発機問わずbitwise-identicalなバイナリをビルド Flexible 他言語サポート、同じコードベースでサーバ、クライアント両方のビルドに対応 なぜBazelを試してみるのか AndroidでのGradleの次のビルドシステム(と勝手に思っている) Gradleチームの見解

    BazelでJavaのプロジェクトをビルドする - horie1024の日記
  • Javaで定数を定義するには定数クラスを使おう -- ぺけみさお

    Javaで定数をまとめて定義するには、インタフェースとクラスを使う方法が考えられる。以下ではこれらをそれぞれ定数インタフェース、定数クラスと呼ぶことにする。このうち定数インタフェースは、以下の点で問題があるため、避けたほうが良い。 クラスが定数インタフェースを実装している事が不必要に外部に漏洩してしまう定数インタフェースが不要になった場合の変更に弱い定数インタフェースを実装したサブクラスの名前空間がすべて汚染されてしまうこのためJavaで定数をまとめて定義するには以下のような定数クラスを用いた方が良い。 package constants; // この例ではconstantsパッケージ public class MathConstants { // privateコンストラクタでインスタンス生成を抑止 private MathConstants(){} // 定数 public stati

    invent
    invent 2015/10/01
  • The "Java Life" Rap Music Video (Japanese Subtitles)

    JavaOne 2011に向けて作成された "Java Life"。 JavaOne Tokyo 2012に向けて、日語のサブタイトルを付けました。 This original rap music video made for JavaOne 2011 celebrates the "Java Life". Dedicated to the developer homies everywhere who code hard day and night. Think Java programmers meet street Hip Hop. オリジナルはこちら。 http://www.youtube.com/watch?v=b-Cr0EWwaTk

    The "Java Life" Rap Music Video (Japanese Subtitles)
    invent
    invent 2015/07/04
    キミのJavaランタイムに一直線
  • OracleとGoogleの判決文を斜め読む - Qiita

    (7/7追記)僕は斜め読みだったんですが、もっときちんと読んだ上で解釈を書いてくれている方がいます。僕も時間をとって全文を読みたいとは思っていますが、まだ時間がかかりますし、yudaiさんの会社の方が妥当性は高いと思いますので、そちらをご参照ください↓ 朝っぱらから色々衝撃が走った第一四半期の最終日ですが、OracleGoogleの裁判について、どのあたりが問題だったとされるのか気になるので判決文等を読んでみました。 経緯 2010年8月、OracleGoogleを訴える。当初の争点は特許侵害 (publicKey1) 2012年4月、サンフランシスコ連邦地裁の法廷開始 2012年5月、Googleの特許侵害はないとの陪審評決。ただし、フェアユースは意見が別れる。 2012年6月: OracleGoogleJava/Android訴訟、損害賠償金ゼロで合意。今回議論された37件のJ

    OracleとGoogleの判決文を斜め読む - Qiita
    invent
    invent 2015/07/01
  • [Java] もうコメント書くなお前-ウンコード・マニア

    改修案件でぶち当たったソース マジでこんなのに遭遇することってあったんだなぁ・・・ 他にもろくに追記されていないjavadocがゾロゾロ・・・ 頼むから、javadoc書くなら最後まで責任持ってくれよ・・・ /** * * 〇〇の値を取得する * */ public void getFoo(int foo){ this.foo = foo; } 使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

    invent
    invent 2014/11/30
    もうコメント書くなお前 - ウンコード・マニア
  • パーフェクトJava改訂2版 - きしだのHatena

    著者の井上さんからいただきました! 改訂2版 パーフェクトJava 作者: 井上誠一郎,永井雅人出版社/メーカー: 技術評論社発売日: 2014/11/01メディア: 大型この商品を含むブログ (4件) を見る 位置づけとしては、ある程度Javaを知っている人が、知識を補完するために読むです。一応Javaの概要やコンパイル手順などから始まっていますが、このあたりの情報が必要な人が読むにはちょっと厳しいと思います。 Java SEの細かいところまで広範囲に書かれてるので、Javaをもうすこししっかり勉強したいという人におすすめです。 残念なのは、前版にあったJava EEやデータベース関連が紙面からは落ちて、ダウンロード版になってるところです。その情報も目次前の「はじめに」に書いてあるので、見落とす人も多いんじゃないでしょうか。 そのかわり、GUIはSwingからJavaFXになってます

    パーフェクトJava改訂2版 - きしだのHatena
  • Java最強リファレンス - きしだのHatena

    ソフトバンク編集の方から送っていただきました!なかなかいいです。というか、これすげー時間かかってそう。 Java最強リファレンス 作者: 田中裕一出版社/メーカー: SBクリエイティブ発売日: 2014/10/25メディア: 単行この商品を含むブログ (1件) を見る 書名のとおりリファレンスなんですが、逆引きになってます。逆引きなので、やりたいことからJava APIを引く形になってます。 これが特に威力発揮してるのが、日付時刻の扱いやファイル操作です。日付時刻の扱いやファイル操作は、Java 8でDate & Timeが入ったり、Java 7でNIOが強化されたりで、同じことを新しい書き方と古い書き方で書けるようになってます。これらがやりたいことごとにまとまっているのは、結構便利だと思います。 特に、ファイル操作の新旧API比較表は、概要みるのに便利そうです。 よくないところとして

    Java最強リファレンス - きしだのHatena
  • [java] SecureRandom のアルゴリズムの選択について - tokuhirom's blog

    前提 Java SE 8 + Linux 前提です。 Java で暗号的に安全な乱数をえる Java で暗号的に安全な乱数を得るには SecureRandom クラスを利用します。 SecureRandom ではいくつかの乱数生成アルゴリズムをサポートしています。 各プラットフォームでもっとも安全な SecureRandom の実装は ${JAVA_HOME}/jre/lib/security/java.security の securerandom.strongAlgorithms という項目に書いてあります。 SecureRandom#getInstanceStrong() で取得できるのはこれです。 インスタンスの取得方法 new SecureRandom() でデフォルト実装が得られます OSXlinux では NativeBlocking です(SHA1PRNGの場合もある

    invent
    invent 2014/10/09
    SecureRandom のアルゴリズムの選択について - http://t.co/RBxZp7Ot5Q