タグ

Javaとjavaに関するR2Mのブックマーク (73)

  • Macchinetta Framework

    Macchinetta Frameworkとは Macchinetta Frameworkは高い信頼性が求められるエンタープライズ開発における利用を志向したアプリケーションフレームワークです。世界中で幅広く利用されているOSSを最大限に活用して、高品質なアプリケーションを効率良く開発することができます。 Macchinetta Server Framework Springを中心としたOSSスタックを用いてWebアプリケーションのサーバサイドの実装を行うためのフレームワークです。 AWS等のクラウドプラットフォームを利用する際のスケーラビリティを考慮した実装については Cloud Extension に纏めています. Macchinetta Batch Framework Spring Batchを中心としたOSSスタックを用いてバッチ処理を実装するためのフレームワークです。 Macchi

  • Java 10が本日付で正式リリース。ローカル変数の型推論、ガベージコレクタが入れ替え可能、不揮発性メモリ対応など。Java 9は早くもサポート期間終了

    Java 10が日付で正式リリース。ローカル変数の型推論、ガベージコレクタが入れ替え可能、不揮発性メモリ対応など。Java 9は早くもサポート期間終了 昨年9月に登場したJava 9から、Javaは6カ月ごとのタイムベースによるアップデートサイクルが採用されました。そしてその最初のワンサイクルが経過し、今日3月20日付けでJava 9の次のメジャーバージョンアップとなるJava 10が登場する予定です。 おそらくJava 10の正式な発表は米国時間の3月20日、日時間では休日となる明日の午前中あたりになると思われます。 Java 10の新機能:ローカル変数の型推論、ガベージコレクタが入れ替え可能など Java 9では、通称「Project Jigsaw」と呼ばれるJavaのモジュール化機能が入り、Javaに対する大きな変更が行われました。しかし今回のJava 10では、それほど大きな機

    Java 10が本日付で正式リリース。ローカル変数の型推論、ガベージコレクタが入れ替え可能、不揮発性メモリ対応など。Java 9は早くもサポート期間終了
    R2M
    R2M 2018/03/20
  • NTT、Java開発フレームワークをGitHubで公開

    NTTは、Webシステムを開発するためのアプリケーションフレームワーク「Macchinetta(マキネッタ)フレームワーク」をGitHub上で公開した。 Macchinettaフレームワークは、Java言語向けのオープンソースソフトウェアのアプリケーションフレームワーク「Spring」を中心に、Webシステムの開発において必要となる共通機能の提供と、アプリケーションの基的な実装手法等をドキュメントとして整備したもの。NTTグループにおいて広く標準的に活用されており、豊富なベストプラクティスに基づいて作成されているという。 OSSの組み合わせによる共通機能の提供においては、様々なユースケースを想定した動作検証を行い、OSSのアプリケーションフレームワークであるSpringを中心にOSSスタック推奨モデルとして定義しているという。 MacchinettaフレームワークのOSSスタック推奨モデ

    NTT、Java開発フレームワークをGitHubで公開
  • ジェネリクスと配列 - プログラマーの脳みそ

    Javaのジェネリクスは一般に配列と混ぜてはいけないとされるが、混ぜて用いた場合に何が問題となるのか。 歴史的な問題 Javaが1995年に登場した当時、Javaに配列はあったがジェネリクスはなかった。 ジェネリクスを含む型システムの理論的な整備は、1990年代から2000年代にかけてのJavaのバージョンアップの時期に並行して行われていた。これは1995年当初のJavaになぜより良いジェネリクスを搭載した形でリリースされなかったのか?ということにひとつの答えを示すだろう。つまり、1995年当時にはジェネリクス(Java5に搭載されたような変性を含むもの)は未来の技術であって、まだ理論的に固まっていないものであった、というわけだ。 Java言語仕様にも記述されているが Historically, wildcards are a direct descendant of the work b

    ジェネリクスと配列 - プログラマーの脳みそ
    R2M
    R2M 2018/02/14
  • Oracle Javaの無償配布終了で何が起こるのか? - セカイノカタチ

    www.publickey1.jp 世界中で30億デバイスに搭載されているプログラミング言語Javaのリリースサイクルが変更になることと、オラクル版のJavaが無償提供されなくなるというニュースです。 リリースサイクルが半年ごとに オープンソースのOS、LinuxのメジャーなディストーションであるUbuntuなどで採用されているリリース方式で、「機能ができたらリリースする」のではなく、「時間が来たらリリースする」方式です。 Javaぐらい大規模で歴史も深いプロジェクトになると、影響範囲の検証などをじっくり行うため、大きな機能改善などは、何年もかかったりします。すると、自然とリリースサイクルは長くなり、Java7からJava8までで、2年半、Java8→Java9では、3年半もかかってしまいました。 機能ベース = いつリリースされるかわからない このことを回避するために、「リリースペースを

    Oracle Javaの無償配布終了で何が起こるのか? - セカイノカタチ
    R2M
    R2M 2018/02/09
  • 来月にはJava 10が登場し、9月にはJava 11が登場予定。新しいリリースモデルを採用した今後のJava、入手方法やサポート期間はこう変わる(OpenJDKに関する追記あり)

    来月にはJava 10が登場し、9月にはJava 11が登場予定。新しいリリースモデルを採用した今後のJava、入手方法やサポート期間はこう変わる(OpenJDKに関する追記あり) 2017年9月に「Java 9」が登場したばかりですが、いまから1カ月後の2018年3月には早くもJavaの新バージョン「Java 10」がリリースされます。そしてその6カ月後の9月にはさらに次の「Java 11」がリリース予定です。 Java 9以後のJavaは、毎年3月と9月の年2回メジャーバージョンアップを行う、タイムベースのリリースモデルを採用することになりました。今年はその最初の年となります。 オラクルによるJDKの提供方法やサポートポリシーも、これから大きく変更されることが明らかになっています。一般公開され無償でダウンロードできたOracle JDKの公開はJava 10が最後となり、サポートは3年

    来月にはJava 10が登場し、9月にはJava 11が登場予定。新しいリリースモデルを採用した今後のJava、入手方法やサポート期間はこう変わる(OpenJDKに関する追記あり)
    R2M
    R2M 2018/02/08
  • Androidアプリで活用しているKotlin・RxKotlinの紹介

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog Androidアプリで活用しているKotlin・RxKotlinの紹介 Yahoo!ニュースでAndroidアプリを開発している池田 惇です。2017年はKotlinAndroidアプリの公式開発言語になり、開発者にとってうれしい年になったと思います。今回は、Kotlin, RxJava, RxKotlinについて簡単に紹介します。 Kotlinの特徴 2017年5月のGoogle I/OでAndroidの開発言語として公式にサポートされ、利用が急速に広がっています。Androidだけではなくサーバーサイドでも活用できます。 実用性を重視した言語である Kotlinは新しい概念を提案したり革新的な機能を提供したりしません。その代

    Androidアプリで活用しているKotlin・RxKotlinの紹介
  • OracleがJDKの全ての機能をオープンソース化し、Java EEの欠点に取り組む計画を発表した

    あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。

    OracleがJDKの全ての機能をオープンソース化し、Java EEの欠点に取り組む計画を発表した
    R2M
    R2M 2017/11/28
  • Java SE 9の紹介: モジュール・システムを中心に

    Java SE 9を、新たに導入されたモジュール・システム(Jigsaw)を中心として紹介します。JJUG CCC 2017 Fallの発表資料です。 補足: p. 7 正しくは「JMX」→「JMS (Java Message Service)」。JMXはJava SE内の、モニタリング用の仕組みです。 p. 43 これに加えて、SPIの実装を提供するモジュールも、モジュールレイヤーに含まれます。具体的にはConfiguration.resolveAndBindの動きです。 p. 47「Oracle JDKでは、外部モジュールの非公開メンバへのリフレクションが可能」は、OpenJDKでも同じ動作です。「HotSpot系の」とすべきところでした。 このスライドはCC Attribution Licenseの元に、利用・改変・再配布をライセンスします。

    Java SE 9の紹介: モジュール・システムを中心に
    R2M
    R2M 2017/11/19
  • [速報]Java 9が正式リリース、Javaをモジュール化するProject Jigsawがついに実現。今後のJavaは6カ月ごとタイムベースのアップデートへ

    [速報]Java 9が正式リリース、Javaをモジュール化するProject Jigsawがついに実現。今後のJavaは6カ月ごとタイムベースのアップデートへ 米オラクルは9月21日(日時間9月22日未明)、Javaの最新バージョンとなるJava 9正式版を公開しました。 Java 9 is Out!!!!#JDK9 #Java9 #Javahttps://t.co/VE7BI4KPlK pic.twitter.com/kOdNiLJ1ky — Java (@java) 2017年9月21日 Java 9最大の新機能は「Project Jigsaw」として開発されたJavaのモジュール化機能です。おそらくJavaの開発のなかでももっとも難産なプロジェクトだったといえるでしょう。 難産の末にProject Jigsawがついに実現 Javaをモジュール化して必要な部分だけを使えるようにする

    [速報]Java 9が正式リリース、Javaをモジュール化するProject Jigsawがついに実現。今後のJavaは6カ月ごとタイムベースのアップデートへ
    R2M
    R2M 2017/09/22
  • Kotlinの隠れたコストについてのベンチマーク | POSTD

    @BladeCoder が書いた Kotlinの隠れたコストの調査 という一連のブログ記事は、ある Kotlin 構文にどのように隠れたコストがあるのかを説明しました。 実際の隠れたコストは、普通、不可視オブジェクトのインスタンス化やプリミティブ値のボクシング/アンボクシングに起因します。これらのコストは、Kotlinコンパイラがどのように上記の構文をJVMのバイトコードに変換するのかを理解していない開発者には特に見えづらいのです。 しかし、何らかの数字を示さずに隠れたコストの話をするだけでは、実際にどのくらいコストのことを心配すべきなのかという疑問が湧いてきます。コードベースのいたるところで、これらのコストを考慮すべきでしょうか?あるKotlin構文は単に全面的に禁止されるべきでしょうか?あるいは、最も範囲の狭い内部ループの中でだけ考慮されるべきでしょうか? さらに挑発的な言い方をすれば

    Kotlinの隠れたコストについてのベンチマーク | POSTD
    R2M
    R2M 2017/08/16
  • Javaをモジュール化する「Project Jigsaw」、コミュニティ再投票でついに可決! ほぼ全会一致で賛成

    Javaをモジュール化する「Project Jigsaw」、コミュニティ再投票でついに可決! ほぼ全会一致で賛成 Javaをモジュール化して必要な部分だけを使えるようにすることで、Javaライブラリの複雑な依存関係の解消やJavaのスリムダウンを実現する「Project Jigsaw」は、9月に登場予定のJavaの新バージョン「Java 9」最大の目玉機能です。 そのProject Jigsawの仕様であるJSR 376(JPMS:Java Platform Module System)のコミュニティ再投票が6月26日に締め切られ、Red Hatが棄権した以外はすべて賛成票となり、ほぼ全会一致で可決されたことが明らかになりました。 Project Jigsawは、5月8日に締め切られた前回の投票では、賛成10、反対13と否決されていました。 その後、Project Jigsawの仕様を検討

    Javaをモジュール化する「Project Jigsaw」、コミュニティ再投票でついに可決! ほぼ全会一致で賛成
    R2M
    R2M 2017/06/30
  • あっと驚かせるJavaプログラミング(をやめよう) - Qiita

    はじめに 驚き最小の原則(法則)という言葉があります。 Wikipediaの記事を引用すると http://ja.wikipedia.org/wiki/%E9%A9%9A%E3%81%8D%E6%9C%80%E5%B0%8F%E3%81%AE%E5%8E%9F%E5%89%87 ユーザインタフェースやプログラミング言語の設計および人間工学において、インタフェースの2つの要素が互いに矛盾あるいは不明瞭だったときに、その動作としては人間のユーザやプログラマが最も自然に思える(驚きが少ない)ものを選択すべきだとする考え方である。 要するに、使うときに「おやっ?」という驚きが少ないほうが良いプログラムであるといえます[1]。 [1]: どっちが驚きが少ないか迷う場面もかなり多いですが・・・ この記事では敢えて驚きの多いプログラムの書き方を紹介します。驚きの多いプログラムを読むとどんな気分になるか、

    あっと驚かせるJavaプログラミング(をやめよう) - Qiita
  • 自堕落な技術者の日記 : Amazon AWSの認証局が少し怪しい件 - livedoor Blog(ブログ)

    Amazon AWSのELBとCloudFrontで使えるらしい、無料の証明書発行サービスで、AWS Certificate Manager(ACM)というのがあるそうです。([参考1])。ちょっと気になったきっかけはJavaからHTTPSで繋ぐと検証失敗するケースがあった はてブを垂れ流すだけのフレンズ@matsuuん?これJRE同梱のルート証明書にACMのルート証明書が含まれてなかったってことか。どのバージョンから対応してるんだろ。決済連携などで決済会社の環境が古くてACMが使えないパターンありそう。 / “JavaクライアントからAWS…” https://t.co/pf9J6QRSTD 2017/04/30 11:57:07 というので、ちょっと見始めたらドツボにはまったので、少しメモを書き残しておこうかとおもいます。 ACMの証明書を使ったサイトにブラウザで繋いでみると、、、 J

    R2M
    R2M 2017/05/03
  • Struts2が危険である理由

    技術者ブログ クラウド型WAF「Scutum(スキュータム)」の開発者/エンジニアによるブログです。 金床“Kanatoko”をはじめとする株式会社ビットフォレストの技術チームが、“WAFを支える技術”をテーマに幅広く、不定期に更新中! はじめに 2017年3月、Struts2にまたしても新たな脆弱性(S2-045、S2-046)が見つかり、複数のウェブサイトにおいて情報漏洩等の被害が発生しました。筆者は2014年4月(およそ3年前)に「例えば、Strutsを避ける」という記事を書きましたが、今読み返してみると「やや調査不足の状態で書いてしまったな」と感じる点もあります。今回、良いタイミングなのでもう一度Struts2のセキュリティについてざっとまとめてみたいと思います。 なぜJavaなのにリモートからの任意のコード実行(いわゆるRCE)が可能なのか Struts2はJavaアプリケーショ

    Struts2が危険である理由
  • なぜマイナポータルはJava必須なのか、開発者側の理屈でユーザー体験がおざなりに

    ICリーダーライターを購入し、民間サイトを含む複数のサイトを巡ってソフトをインストールし、設定を完了させる。ITリテラシーの高いユーザーでも、ログイン成功まで至るのは相当な苦労を要する。 さらにJava実行環境は、2013~2014年にかけて、脆弱性を狙ったサイバー攻撃が多発した経緯がある。通常利用のブラウザーに組み込むにはセキュリティ面で不安が残る。 なぜ、マイナポータルはJava実行環境が必須となったのか。今後、改善の余地はあるのか。内閣官房 番号制度推進室 番号制度推進管理補佐官の楠正憲氏に聞いた(取材は文章ベースのやり取りで実施し、表現は一部編集した)。 Java実行環境を必須とする構成にした理由は。 楠氏 店頭で販売され、また実際に利用されている、できるだけ多くのPCMacに対応しつつ、できるだけ端末ソフトウエアを共通化して開発および保守の工数を最適化するためだ。 e-Taxの

    なぜマイナポータルはJava必須なのか、開発者側の理屈でユーザー体験がおざなりに
    R2M
    R2M 2017/01/26
  • 入門書が教えてくれないJava 変数編 - プログラマーの脳みそ

    春なのでJava入門的なことを書こうと思い立ったので、入門書ではあまりとりあげられない部分を解説するコンセプトの入門記事を書いてみようと思う。(←ひねくれ者) 対象読者としては、Java言語の基礎を学んだがもう一歩踏み込んだ話が知りたいぐらいの初学者〜中級者を想定してる。上級者の方は記述に誤りがないかチェックしていただければ幸いだが、説明を簡単にするためにいろいろ端折っている点はご理解いただきたい。 今回は変数・フィールド編とした。筆者のやる気次第だがこのシリーズでいくつか書こうと考えている。 入門書が教えてくれないJava 変数編 (稿) 入門書が教えてくれないJava スコープ編 - プログラマーの脳みそ 初期値を指定しない変数宣言 変数宣言に際して初期値を設定しないことができる。 int i; この場合、このint i;がフィールドであるか、ローカル変数であるかで扱いが変わってくる

    入門書が教えてくれないJava 変数編 - プログラマーの脳みそ
    R2M
    R2M 2016/04/23
  • 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による高階型変数の実装 - プログラマーの脳みそ

    高階関数というものをご存知か。関数自身を引数あるいは戻り値に取る関数のことである。「高階」は「こうかい」と読む。その昔「たかしな」と読んだ人がいたとか、いないとか。 先のエントリ「HttpSessionを型安全にする」では「javax.servlet.http.HttpSessionのsetAttribute()/getAttribute()のようなモノをどうやって型安全にするか」という動機付けから、 public class KeyValue<K> { public <T> void put(K<T> key, T value){} } といったことをやろうとして、Javaの言語仕様上、型変数に型変数を持たせることができないので実現できないと述べた。 簡単に解説すると、ここでKayValueはHashMap的なキーを渡せば値を返すオブジェクトで、型変数Kはキーの集合体を表現している。ty

    Javaによる高階型変数の実装 - プログラマーの脳みそ
    R2M
    R2M 2016/04/14
  • Javaの謎のパフォーマンス劣化現象との戦い - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。アプリケーション基盤チームの横田です。 Javaの謎のパフォーマンス劣化にまつわる調査をしていたのですが、1ヶ月の苦労の末に原因がわかりましたので、報告させていただきます! 公開後に頂いたはてなブックマークでのご指摘・社内でのタイポ・読みにくいなどの指摘を受けてたので、謹んで修正させいただきます。 修正した内容につきましては、記事の最後を参照してください。 忙しい人のためのまとめ jdk-7u4以降のjdk-7 *1 でJavaのパフォーマンスが劣化する謎の現象 CodeCacheの容量限界に近づくとJITコンパイラを停止してコンパイルしたコードを捨てる機能が原因だった 起動オプションで回避できるので、長期運用するときは -XX:-UseCodeCacheFlushing, -XX:ReservedCodeCacheSize=128m をつける 上のオプションを設定した時に、C

    Javaの謎のパフォーマンス劣化現象との戦い - Cybozu Inside Out | サイボウズエンジニアのブログ
    R2M
    R2M 2016/04/13