タグ

javaに関するmas-higaのブックマーク (74)

  • IBM、生成AIでCOBOLコード近代化計画 | スラド デベロッパー

    IBM が同社の AI・データプラットフォーム watsonx の生成 AICOBOL コードの近代化を加速すべく、IBM watsonx Code Assistant を開発しているそうだ (IBM Z and LinuxONE Community のブログ記事、 Ars Technica の記事、 The Register の記事、 紹介動画)。 COBOL コードのリライトには多数の開発者と手間のかかる手作業が必要であり、何年もの年月と数百万ドルの費用をかけても近代化できるのはごく一部にとどまる。IBM watsonx Code Assistant では巨大でモノリシックなアプリケーションのリファクタリング・変換・検証を自動化し、ビジネスサービスごとに分離して近代化できるという。 変換の過程では COBOL コードを Java コードに変換するほか、COBOL コードのままで最

    mas-higa
    mas-higa 2023/08/28
    Java as a COBOL
  • Javaがパブリックスタティックヴォイドメインの呪文から解放される - きしだのHatena

    みなさん、今日もパブリックスタティックヴォイドメインしてますか? ジャバと言えばパブリックスタティックヴォイドメインですよね。 最近はIDEでmain[tab]と入力すれば補完してくれるとはいえ、コードを読むときには目に入ってきたりしますね。 そんなパブリックスタティックヴォイドメインの呪文から解放される日が近づいています。 TL; DR 9月リリースのJava 21の試用機能として void main() { System.out.println("Hello"); } をhello.javaで保存したら、java hello.javaで実行できるようになります。 (Java 21では--enable-preview --source 21が必要) Javaではプログラムを開始するときにpublicなclassなどにStringの配列を受け取るpublicでs

    Javaがパブリックスタティックヴォイドメインの呪文から解放される - きしだのHatena
    mas-higa
    mas-higa 2023/06/13
    "入門したてで何もわからんとき" Java は入門用の言語じゃないでしょ。プロ向けの言語。
  • 【ネタ】コメントだけしか書いていないのに「Hello, world!」と表示されるJavaプログラム - Qiita

    これはJavaでポインタで使えるというネタから着想を得たプログラミングネタです。 厳密には 「コメントだけ書いてあるようにしか見えない」 です。 コメントだけしか書いていないのに「Hello, world!」と表示されるJavaプログラム % java --version openjdk 16.0.2 2021-07-20 OpenJDK Runtime Environment Microsoft-25298 (build 16.0.2+7) OpenJDK 64-Bit Server VM Microsoft-25298 (build 16.0.2+7, mixed mode) import java.util.*; public class Main { public static void main(String[] args) throws Exception { //\u000a

    【ネタ】コメントだけしか書いていないのに「Hello, world!」と表示されるJavaプログラム - Qiita
  • さよなら「あなたとJAVA」 - きしだのHatena

    みんなから愛された「あなたとJAVA」の役割が終わったようです。 「Java」で検索するとjava.comのサイトがひっかかるのですが、このサイトは古いまま放置されていて、Javaの学習を始める人にとっての罠になっていました。 https://www.java.com/ja/ 「あなたとJAVA」というキャッチコピーの脱力感と、「ダウンロー」で改行され「ド」だけが目立ってしまう間のヌケかたから大人気のサイトでしたが、かっこいいものではない・・・ もともとはJAVA+YOUで、2008年JavaOneのキャッチコピーでした。これは大文字だけのデザインだからよかったのだけど、日語訳するときJAVAだけ大文字で残ってしまい「JAVAではなくJava」の説得力をなくさせてくれていました。 それに、ほとんどの人がJavaのプログラミングの勉強をしようとして「Java」を検索するのにJREの配布サイ

    さよなら「あなたとJAVA」 - きしだのHatena
    mas-higa
    mas-higa 2022/05/26
    "役割が終わったようです" どんな役割があったのだろうか?
  • Log4jの深刻な脆弱性CVE-2021-44228についてまとめてみた - piyolog

    2021年12月10日、Javaベースのログ出力ライブラリ「Apache Log4j」の2.x系バージョン(以降はLog4j2と記載)で確認された深刻な脆弱性を修正したバージョンが公開されました。セキュリティ関係組織では過去話題になったHeartbleedやShellshockと同レベルの脆弱性とも評価しています。ここでは関連する情報をまとめます。 1.何が起きたの? Javaベースのログ出力ライブラリLog4j2で深刻な脆弱性(CVE-2021-44228)を修正したバージョンが公開された。その後も修正が不完全であったことなどを理由に2件の脆弱性が修正された。 広く利用されているライブラリであるため影響を受ける対象が多く存在するとみられ、攻撃が容易であることから2014年のHeartbleed、Shellshock以来の危険性があるとみる向きもあり、The Apache Software

    Log4jの深刻な脆弱性CVE-2021-44228についてまとめてみた - piyolog
  • フェアユースは認められたが、Googleは対価を支払うべき - Java API訴訟に寄せて - arclamp

    ようやく裁判の結果が出ました。結果としてフェアユースが認められたのはよかったのですが、Googleが勝訴したということは素直に喜べないので、その理由を書いておきます。 関連ニュースは、こういったところから。 約1兆円の賠償金を巡るGoogleOracleの10年にわたる訴訟が決着、「APIのコピー」は結局違法なのか? - GIGAZINE Google、オラクルの著作権侵害せず 米最高裁判決: 日経済新聞 グーグル、米最高裁でオラクルに勝訴--「AndroidJavaコード訴訟で - CNET Japan 経緯 では、経緯について時系列に沿って整理していきます。推定可能な事実に基づきますが、一部、妄想も含まれています。 2005年 Google(広告収入増やすには無償で改変自由なスマホOSが重要になるはず。普及させるなら開発者の多いJavaベースだよな。でも、クラスライブラリ改変しな

    フェアユースは認められたが、Googleは対価を支払うべき - Java API訴訟に寄せて - arclamp
    mas-higa
    mas-higa 2021/04/09
    ライセンスで求めてる以上の要求は無理があるでしょ。Sun の気持ちは分からんでもないけど Oracle の気持ちは分からない。
  • Javaは決してレガシーな言語じゃない。今も昔もJavaが世界の目指す方向を教えてくれる - Findy Engineer Lab

    世界中で広く使用されるオブジェクト指向プログラミング言語Java。日におけるこの言語の普及に、とても重要な役割を果たしたのが鈴木雄介さんです。鈴木さんは20年以上前からJavaに触れ、プログラミングだけではなく執筆・講演などの活動も精力的に行ってきました。 また、2007年に設立された日Javaユーザグループ(Japan Java User Group:JJUG)に当初から在籍し、2012年4月から2019年3月までは会長を、2019年4月からJJUG CCC運営委員長を務めています。 なぜ鈴木さんはJavaに大きな魅力を感じているのでしょうか。そして、さまざまな普及活動を続ける過程で見えてきたものとは。Javaとともに歩んだ20年をふり返っていただきました。 *…取材はリモートにて実施しました。 Javaをテキストエディタで書くのが当たり前だった時代 ──鈴木さんはいつごろJava

    Javaは決してレガシーな言語じゃない。今も昔もJavaが世界の目指す方向を教えてくれる - Findy Engineer Lab
    mas-higa
    mas-higa 2021/03/16
    "Javaの進化を見れば..." 確かに Java が採用するくらいなら、その技術は世に定着したと言えるかも知れない。
  • Java7からJava16までの変遷。 - Qiita

    まえがき ずっとJava11を使っていました。そのためすっかりラムダ式やStreamAPIでの書き方に慣れていたのですが、最近Java7を使って稼働しているプロジェクトに異動したので、何ができて何ができないのか、ちょっと調べてみました。 Javaの変遷 私見ですが主要だと思う仕様変更を並べてみました。アプリ実装に関係する部分のみピックアップしています。 このバージョンのこれは入れておいたほうが良いよ!との意見がありましたらコメントにぜひお願いします。 Java8 2014/03/18 正式リリース(GA) https://openjdk.java.net/projects/jdk8/ ラムダ式 https://openjdk.java.net/projects/lambda/ https://qiita.com/sano1202/items/64593e8e981e8d6439d3 pub

    Java7からJava16までの変遷。 - Qiita
    mas-higa
    mas-higa 2021/02/09
    Java9 とは何だったのか?
  • Rubyにもポータビリティを! シングルバイナリを作る3つの方法

    この記事はRuby Advent Calendar 2020の17日目です。 TL;DR GraalVM: 問題無く動作するがgemとか考えるとめんどそう。JavaのエコシステムやJS/Pythonなど別言語と組み合わせたい時には便利。 RubyPacker: gem/bunlder含めて特に問題なく動く。フルスペックRubyが必要なら現状でベスト mruby-cli: ビルド速度含めて最軽量。使えるならこれがベストシナリオ。エコシステムが弱いのが欠点 はじめに 皆さんはRubyをなんに使っていますか? 多くの方は 「Railsを使ったWebアプリケーション」 と回答されるのではないでしょうか? 私の場合は少し違ってCLIのコマンドを作るのによく使います。Bashよりちょっと凝ったことをするのに自分にはちょうど良いんですよね。手に馴染んでるので。 ただ、今この手の用途に一番利用されるのはG

    Rubyにもポータビリティを! シングルバイナリを作る3つの方法
  • jarコマンドを使ってjarファイル、warファイルを作る方法 - Qiita

    jarコマンドでjarファイル、warファイルを作る方法 メモしておきます。 サンプルを作った環境はWindows 10です。 jarファイルを作る方法 サンプルのソースファイルは以下の通り。 package sample; public class App { public static void main(String[] arg) { System.out.println("Hello World!"); } }

    jarコマンドを使ってjarファイル、warファイルを作る方法 - Qiita
  • Javaでリストの集約(Collectors.groupingBy) - Qiita

    Collectors.groupingByを用いて、Listをグルーピングし、Key-ListのMap型データを取得できます。実用的なサンプルコードをまとめました。 対象オブジェクト public class Product { private String productId; private String productName; private String productType; private BigDecimal price; private long qty; // getter setter 1 productName:iPhone X productType:iPhone price:120000 qty:2 2 productName:iPhone 8 Plus productType:iPhone price:110000 qty:3 3 productName:i

    Javaでリストの集約(Collectors.groupingBy) - Qiita
  • 大刷新リリース Java 8の新機能

    遅延評価、並列処理 Streamはラムダ式を使って関数型言語のようなスタイルで操作することができるため、従来のコレクションを操作するために使っても便利だが、遅延評価可能なコレクションという特徴も持っている。そのため、例えば以下のように無限に値を返すジェネレータをStreamで作成することもできる。 // 10、20、40、80…と無限に値を返すStreamを生成 Stream<Integer> stream = Stream.iterate(10, i -> i * 2); // 先頭の5件のみ表示 stream.limit(5).forEach(System.out::println); また、以下のようにして並列処理が可能なStreamを生成することもできる。並列処理可能なStreamではmap()やfilter()などのメソッドでの各要素に対する処理が自動的に並列に実行されるため、処

    大刷新リリース Java 8の新機能
  • Javaの現状:世界で最も人気のあるプログラミング言語の一つであるJavaの動向とデータ

    成功者がどのようにNew Relicを使用してKubernetesのパフォーマンスを4倍に向上させ、拡張性とスループットを改善したかをご覧ください。

    mas-higa
    mas-higa 2020/04/24
    Java はなぜか SIer に人気。
  • Javaカバレッジ計測ライブラリ - Qiita

    Javaのテストカバレッジを計測できるオープンソースライブラリの現状を調査してみました。 要約 Coberturaは開発が停止しているため、今後はJaCoCoもしくはCloverが主流となりそう。ただしCloverは最近オープンソース化されたため、今後の継続開発(=コミュニティの活発度)はあまり見えていない。 主要な3ライブラリの概要 JaCoCo 最新版は2018年1月リリースのバージョン0.8.0(2018年3月時点)。 実行時に計測(on-the-fly instrumentation)できないクラスに対して、クラスファイルに計測処理を事前に追加する(offline instrumentation)ことができる。 Cobertura 開発は2015年2月で止まっている。 Java 8に未対応でLambda式などの記法があるとその部分の計測ができない。 他のライブラリでは対応していない

    Javaカバレッジ計測ライブラリ - Qiita
  • OpenJDKと各種JDKディストリビューションの情報源まとめ #minjava - Qiita

    はじめに この記事は、2020年3月13日に正式出版された共著『みんなのJava』タイアップ企画としてお送りします。 英語版の記事は「Summary of information about OpenJDK and JDK Distributions」を参照ください。(リンク先も若干異なる箇所があります。) 【新刊】2020年3月13日発売『みんなのJava OpenJDKから始まる大変革期!』体2,280円+税、きしだ なおき、吉田 真也、山田 貴裕、蓮沼 賢志、阪田 浩一、前多 賢太郎 著 Javaの変化を一気にキャッチアップ! https://t.co/ec8tnNF3g7 pic.twitter.com/IMEhI3w989 — 技術評論社販売促進部 (@gihyo_hansoku) February 21, 2020 簡単に紹介したときのブログ記事はこちらですが、私の担当した2

    OpenJDKと各種JDKディストリビューションの情報源まとめ #minjava - Qiita
  • Gradle入門 - Qiita

    追記1: コメントでの指摘を受け、gvmに関する記述を削除 この記事は、日経ソフトウェア 2013年 06月号 04/24発売 のステマ記事です。 6月号に、@keiji_ariyama(前座部分担当) と 僕(Gradle概要担当) と @sys1yagi(Android対応部分担当) という分担でGradle入門的な記事を書きました。 ですが、僕の目的としてはトップゲート社員への布教を主目的と考えて書いたため、来要求されている分量を(わざと)大幅にオーバーして書いていました。雑誌に掲載されなかった溢れ分をネットで公開して良いか打診した所、「全文掲載でも良いですよ」という豪気なお許しを頂いたのでここに公開します。この場を借りてお礼申し上げます。 プロの編集さんの手を経て、だいぶわかりやすく噛み砕かれたものが雑誌のほうには掲載されていますので、ここに書いてある内容が難しいなぁ…と思ったら

    Gradle入門 - Qiita
  • 【Java入門】listの初期化を1行で終わらせるたった1つの方法とは? | プログラミング教育ナビ

    プログラムの構成は、おおよそ初期化と代入となっています。 何事もまずは初期化と覚えておいてほぼ間違いありません。 これまでListについてやってきましたが、もちろんListもこの形に当てはまります。 今回は、Listの初期化と追加(add)を1行で済ませる方法を伝授します。 プログラムは、暗黙のルールで同じことを繰り返すことはあまりよくないこととされています。 何故なら、しなくてもいい処理をしなければならないといったことになってしまうからです。 あまりにも無駄なソースコードを書いてしまうと、無駄な処理を発生させ、結果人によってはイライラすることにもなります。 今のうちからでも基をしっかり理解した上で、スマートなコードを書く癖をつけておきましょう。 Listの初期化の基 List<データ型>変数名=new ArrayList<データ型>(); まずは、Listの初期化の基礎をしっかり理解

    【Java入門】listの初期化を1行で終わらせるたった1つの方法とは? | プログラミング教育ナビ
    mas-higa
    mas-higa 2020/01/29
    "使い方によっては、不思議なことが起こるのです。" Java 初心者 (私だ) 向けの How to としては役立つんだけど、この解説は……ArrayList(Collection<E>) のコンストラクタ使ってるだけやん。
  • JUnit 5 のパラメーター化テストは超便利 - Qiita

    JUnit 5 といえば @Nested テストが一押しかなと思っていた時期もありましたが、 @ParameterizedTest を使い始めたら「JUnit 4 のあれは何だったんだ」と思えるくらい手になじんでとてもいい感じです。これだけでも移行をオススメできます。 確認環境 JUnit 5.3 AdoptOpenJDK 11.0.3+7 macOS 10.14.3 ValueSource パラメーターは、@ValueSource アノテーションを使って指定します。パラメーターの型に応じて、ints や strings、 doubles プロパティなどがあります。 @ParameterizedTest @ValueSource(ints = {1, 2, 100}) void positiveNumber(int n) { assertTrue(isPositiveNumber(n));

    JUnit 5 のパラメーター化テストは超便利 - Qiita
  • JUnitでパラメータ化テストをすばやく作成する方法 | ソフトウェア品質向上・セキュリティツールのParasoft

    パラメータ化テストは、データだけが異なる複数のテストケースを定義して実行するのによい方法です。ここでは、JUnitテストでよく使用される3つのフレームワークについて説明します。 ユニットテストを書くときは、メソッドの入力パラメーターと期待される結果をテストメソッド自体で初期化するのが一般的です。場合によっては、少数の入力の組み合わせだけで十分かもしれません。しかし、コードのすべての機能を検証するために膨大な値の組み合わせを使用しなければならない場合もあります。パラメータ化テストは、データだけが異なる複数のテストケースを定義して実行するのによい方法です。境界ケースを含むさまざまな値でコードの動作を検証できます。テストをパラメータ化すると、コードカバレッジが向上し、コードが期待どおりに機能しているという確信が得られます。 Javaには優れたパラメータ化フレームワークがいくつもあります。この記事

    JUnitでパラメータ化テストをすばやく作成する方法 | ソフトウェア品質向上・セキュリティツールのParasoft
  • オラクル、「Java有償化という誤解」を解き、未来を語る

    オラクルは5月17日、開発者の祭典「Oracle Code Tokyo 2019」を開催した。マダムと高級外車が似合う街、東京・白金台のシェラトン都ホテル東京が会場だったが、出で立ちはカジュアル系からスーツ組まで千差万別、いやむしろジーンズの人が目立ち、年齢も若手からベテランと幅広い。考えてみれば、イベントの話題の中心は、Javaだ。1995年に誕生し世界で最も普及していると称されるプログラミング言語だけに「Javaコミュニティ」を形成する人々の多様性とオープンマインドを考えればこの客層は当然と言えば当然であった。 イベントのオープニングを飾る基調講演は、Javaの開発責任者である米Oracleのジョージ・サーブ氏。「Javaの未来」というテーマでの講演。内容は大きく分けて2つ。(1)新しいJavaの提供方法とバージョンアップポリシー、(2)新機能を盛り込むプロジェクトの説明、を聞く

    オラクル、「Java有償化という誤解」を解き、未来を語る
    mas-higa
    mas-higa 2019/05/21
    OpenJDK の商用利用について説明したん?