This is the presentation which explained at the Microsoft Tech Summit 2018 Japan.Read less
![Java on Kubernetes on Azure](https://cdn-ak-scissors.b.st-hatena.com/image/square/6ba7139582476530db05956241ff928e5395c744/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Ftechsummit-2018-181107144756-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
更新: Red Hat Enterprise Linux 7.6でOpenJDK 11が追加されました。現在のサポート期間は2024/10までです。 【JDK 11 リリース直前】各ベンダーのJDKリリースモデル特集!というイベントがあってRed Hatさんもどうですか、ってお誘いが来たんですが予定が入っており参加できなかったのでエントリを書いておきます。 Red Hat Enterprise Linux (RHEL)には商用サポートされるOpenJDKパッケージが含まれています。RHELのサブスクリプション費用に含まれており、OpenJDKのサポートには追加の費用はかかりません。yum install java-1.8.0-openjdkのようにパッケージをインストールすれば使えます。 OpenJDKのサポート期間についてはOracle社の影響が大きいという側面があり、RHELのサポート
一年間のプログラミング言語Java教育を行っていると、「ハッシュテーブルの季節」と私が呼んでいる時期が到来します。どういうことかと言うと、テキストである『プログラミング言語Java第4版』の第3.8節「Objectクラス」(86頁)にhashCodeメソッドの説明があるのですが、その内容に関する質問を解説するために「ハッシュテーブルとは何か」ということから説明しないといけません。特にその節の最後の段落でIdentityHashMapの解説があり、その節になると誰も理解できていないのが毎年の恒例となっています。 そもそも、ハッシュテーブルとハッシュコードを、大学時代あるいは会社に入ってから研修で習っていないのか、習ったけど内容が浅かったのか、習ったけど覚えていないのか、どちらにせよきちんと理解している人は毎年皆無に近いです。 拙著『プログラマ”まだまだ”現役続行』の第6章「コンピュータサイエ
CloverClover は、Atlassian が提供する Java と Groovy のコードカバレッジツールです。継続的インテグレーションとデプロイメントの Atlassian Bamboo と密に連携するカバレッジツールとしても使われています。 Atlassian Clover 製品ページ オープンソース プロジェクトにブログで発表したように、Clover は、オープンソースプロジェクトになりました。 Atlassian Clover is now open source オープンソースになり、みなさんの貢献により発展していくことになります。プロジェクトは、Bitbucket にてホストされています。 Clover オープンソースプロジェクト こちらから、リポジトリをフェッチして貢献いただくことができます。 また、現在提供している Atlassian Clover 4.1.2 は、
眠いし、最近Java書いてないし、非同期とかあまりつかってないので、あまりピンとこない分野ですので、雑に書きます。 で、件の勉強会に行きました。 jjug.doorkeeper.jp 感想概要 Reactiveホゲホゲについては、まあ、データが来たら、変換して、IOを発生させるくらいの認識しかなかったので、とっかかりが欲しかったので申し込みましたが、如何せん非同期とかをうまく組み合わせてレスポンスを作るなどの(Play!Scalaでよくあるような非同期プログラミング)については全然扱ったことがなかったので、結構内容を把握するのが辛かったです。 発表資料 こちらにあるようです。 speakerdeck.com Reactive Streamsを使ってみよう Reactive Streams 入門 前者の資料。@okapiesによる発表。 資料作りに気合入って、資料は結構飛ばし飛ばしで発表され
ページが見つかりません。 目的のページは、移動または削除によって無効になっている可能性があります。申し訳ありませんが、検索またはリンク先よりお探しください。
public class Ratio { public long numerator; public long denominator; public Ratio(long numerator, long denominator) { this.numerator = numerator; this.denominator = denominator; reduce(); } public Ratio plus(Ratio x) { if (x.denominator == this.denominator) { this.numerator += x.numerator; } else { long d = this.denominator * x.denominator; this.numerator = this.numerator * x.denominator + x.numer
一人でプログラムを書いてたりすると、環境によってはあまりコードの書き方には指摘を受けなくて困りますよね。プロになっても、曲がりなりにもちゃんと動くコードを書けてしまうとあまりに当たり前のことなんかは指摘されることも稀で、そのままある程度偉くなっちゃった日には、もはや自分で気付くしかなくなってしまいます。 FindBugsとか、Effective Javaなら使ったり読んでみたり読ませたりすることはできますが、それ以前のところって難しいんですよね。よいコードと言うよりそれが当たり前だと思われているので、指摘するにしても「こうすればいいよ」(アドバイス)じゃなくて「なんでこうしてないの?」(詰問)になってしまいがちです。 そこで、最近そういうJavaニュービーに指摘している(したい)ことの多い、Javaの基礎的な事柄をまとめてみました。ワタシJavaチョットデキルって人は、これ以外にもやりがち
さらに高速化が必要な場合は、Scannerの代わりになる処理を自前で実装することになる。比較的実装が軽い方法としては、BufferedReader.readLineで行ごとに読み込み、String.splitかStringTokenizerで分割する方法がある。 実装は重いが、InputStreamで文字を少しずつ読み込み自前でパースするのが高速かつ省メモリ。 class FastScanner { private final InputStream in = System.in; private final byte[] buffer = new byte[1024]; private int ptr = 0; private int buflen = 0; private boolean hasNextByte() { if (ptr < buflen) { return true;
GoFデザインパターンの一覧表と,活用のためのコメント,および入門者が独学するためのリンク集(サンプルコード付き)。 入門者の独学を支援するために,このページのURLを提示して熟読させ,各パターンを短時間で効率よく学んでもらう。 デザインパターンはプログラマの常識だ。 Java使いかどうかは問わない。 にも関わらず,入門書を買ったまま,途中で挫折する人が多い。 挫折の原因は,パターンの数が23もあって,多いからだろう。 全パターンをすんなり覚えてもらうためには,各パターンごとに 「要するにこういう目的のパターンなんだ。」 「10文字で表現すると,パターンの意味はこうなんだ。」 という要点・本質を,短いコメントで伝えれば助けになるだろう。 こういった学習を通して,Java言語の「設計思想」も併せて感じ取ってゆけるはず。 全パターンの一覧表(要約コメント付き) 全パターンについて,10文字以内
この記事は、JavaとScalaの例外分析・パフォーマンス監視のツール Takapi の blog に投稿されたものです。 Javaのマイクロフレームワークとは何か、推奨される理由とは? どんなプログラミング言語にも、長所と短所はあるものです。例えばJavaは、安全性の高さや、厳しいテストを経ていること、後方互換性などの利点を持つ言語です。しかし、その代償として、アジリティ(俊敏性)や合理性といった面が少なからず犠牲になっています。冗長で、Java自体が肥大化しているという事実も否定できません。とはいえ、新規開発や大規模な開発を行いたい場合、JVM(Java仮想マシン)はバックエンドとして非常に魅力的です。JVMはパワフルな上に、非常に厳しい環境でテストされています。このような利点があるため、結果的にJavaは広く使用され、積極的にデプロイされているのです。 しかし、このJavaの現状を皆
エンタープライズJava開発に従事している方であれば、一度はStruts 1を扱ったことがあるでしょう。Struts 1はJavaのWebアプリケーションフレームワークとして2001年ごろに誕生しました。 MVCモデルに基づいたアーキテクチャと高い生産性から、数年後にはデファクトスタンダードとなるほどの人気を獲得。当時、多くの企業がこぞってStruts 1を使った企業システムを構築しました。筆者自身が業界に入ったのは2004年のこと。最初に参加したプロジェクトがStruts 1を使った企業システムの構築だったことをよく覚えています。 当時に作られたシステムの多くは、今でも現役で稼働しています。最近でもStruts 1ベースの企業システムを改修する話はよく聞きます。しかし、2013年にサポート終了を迎えたため、今後Struts 1を使い続けることは大きなリスクになりました(参考)。つまり、新
Java8で新たに追加されたクラスにjava.util.Optionalがあります。 Optionalを使用することで、プログラムの堅牢性を高めたり、煩雑な記述を減らすことが期待されます。 Optionalとは? Optionalは値をラップし、 その値がnullかもしれない ことを表現するクラスです。 使い方 メソッドgetHoge()はnullを返す場合があるとします。 これまでなら次のような感じでnullチェックをしていたと思います。 String hoge = getHoge(); // hogeはnullかも if (hoge != null) { // nullチェック System.out.println(hoge.length()); // hogeがnullじゃないのでlengthメソッドを呼ぶ } nullかもしれない変数hogeのメソッドを呼ぶ場合、事前にnullチェ
Mark your calendars: Java 9 lands next year Oracle is close to finalizing the Java 9 release schedule Java 9 would arrive on Sept. 22, 2016, under a proposed schedule posted online by a prominent Oracle Java official this week. In a mailing list message cited on Twitter, a schedule for Java Development Kit 9, which would be based on the Java Standard Edition 9 specification, has the release being
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く