タグ

Javaに関するalcusのブックマーク (1,566)

  • 【10分で分かる】Java8からJava15まで - Qiita

    Java 8からJava 15までの道のりには、朗報がたくさんだ。 はじめに この記事ではJava 7以降に追加された素晴らしい新機能を紹介します。2020年秋にリリースされたJava 15まで、Javaのバージョン毎に大きな改善点を見ていきます。Javaは今や、ラムダ式、関数型プログラミング、varによる型推論、単純なコンストラクタによる不変コレクション、複数行文字列を、完全にサポートするようになりました。さらに、データクラス(record)やsealedクラスなど、新しくて面白い実験的な機能があります。そして、時間対効果の高いJava REPLについて説明します。 1. 関数型プログラミング (Java 8) Java 8は、関数型プログラミングとラムダ式を言語機能として追加しました。関数型プログラミングの2つのコアパラダイムは、不変の値と関数の重要性向上です。データは変換処理のパイプ

    【10分で分かる】Java8からJava15まで - Qiita
    alcus
    alcus 2021/02/08
  • Javaアプリケーション配布方法 ~jlink ランタイム作成~ | tyablog.net

    jlinkでランタイム用のイメージを作成する。 この記事では、Java9以降のモジュールシステム(JPMS) を使ったアプリケーションを JIMAGE(カスタムランタイム)という形で配布する方法について解説します。 JIMAGE形式では、配布先のPCにあらかじめ、Javaをインストールしておかなくても、 配布したファイルだけで、実行が可能になります。 Javaアプリケーションの配布方法 従来までは、配布先にJava(JRE)をあらかじめインストールしておいてもらい 作成したアプリケーション(jarファイルなど)を配布していました。 しかし、依存するJavaバージョンが異なるアプリケーションを複数併用したい場合、 すぐにJavaバージョンを上げる事ができません。 そこで、オラクルはJavaのアプリケーション配布方法として、次の方法を提唱しています。 アプリケーション開発者は、JIMAGE(カ

    Javaアプリケーション配布方法 ~jlink ランタイム作成~ | tyablog.net
    alcus
    alcus 2021/02/05
  • UbuntuでJava版マイクラサーバをサクッと立ててみる - Qiita

    こんにちは。すずともです。 この記事では、WSL版のUbuntuを使いJava版のマイクラサーバを立てていきます。 サーバを立てるきっかけは、友達がうまくいかないと悩んでいたのでやってみたという感じです。ちなみに僕はマイクラやったことないです🙇 そんな僕でもサクッと立てられたので、その方法を紹介します。 筆者の環境 筆者はWindows上にあるWSLのUbuntuにてサーバを立てましたが、Ubuntu機でもほとんど同じ手順で立てることが可能です。 OS:Windows 10 Professional Build 10.0.19042.746 CPU:Intel Core i7-8700K RAM:16GB WSL Ubuntu:Ubuntu 20.04 Minecraft server 1.16.5 流れ 以下の流れで立てていきます。Ubuntuがインストール済みの方は2へと進んでくださ

    UbuntuでJava版マイクラサーバをサクッと立ててみる - Qiita
  • Apache POIのバージョンあげたらサイズ跳ね上がったので調べたログ - 日々常々

    2023-03-04追記: Apache POI 5.1.0で解消しているのでご安心ください。 Apache POI 5.1.0出てた - 日々常々 Apache POI の久々のメジャーバージョンアップである 5.0.0 が 2021-01-20 に出ました。 テストも通るしいっかーと、雑に更新したらexecutable jarのサイズが26MB増えてウケました。(笑いごとじゃない 多少のJarサイズはそれほど問題にならないことが多いのですが、今回はもともと40MB程度のJarで、それでも「ちょっと大きいなー」って思っていたのがいきなり60MBを超えただけに、ちょっと待ってくれって気分です。 そんなわけでちょっとみてみようかーと。見ていった手順をだらだら書きます。参考になるかどうかは知りません。 ちなみにPOIのソース管理は Subversion で、GitHubにあるのはミラーです。

    Apache POIのバージョンあげたらサイズ跳ね上がったので調べたログ - 日々常々
    alcus
    alcus 2021/02/04
  • M1搭載MacBook Airが届いたのでJavaやDockerなどいろいろベンチマークした - きしだのHatena

    M1 MacBook Airが届いていろいろやってたら年も明けてだいぶたったけども、ビルド速度とかJavaとかDockerとかTensorFlowとか、技術者が気になるベンチマークを試してたので、まとめました。 MacBook Airを買ってしまった なんかM1 Mac解説動画をとるためにいろいろ調べていたら、悪質サイトのリンクを踏んだみたいで、MacBook Airを買ってしまっていた。 その悪質サイトは最初は7万円台ですよーっていっておいて、結局12万円くらいになっていた。 みんなもapple.comってサイトには注意しましょうね。 www.youtube.com とどいた! 12/12到着予定といいつつ11日になっても羽田から動いてなかったので大丈夫かーと思ったら11日深夜というか12日未明というかそのあたりには福岡に届いてて、朝発想されて夜にとどいた。 でこれだ! ベンチマーク G

    M1搭載MacBook Airが届いたのでJavaやDockerなどいろいろベンチマークした - きしだのHatena
    alcus
    alcus 2021/01/26
  • JSF Facelet タグライブラリのXMLネームスペースについて - A Memorandum

    はじめに XMLネームスペース 定義ファイルの所在 Facelet タグライブラリの定義 DOCTYPE の設定 はじめに JSF2.2 (JSR-344 2013年) から Facelet タグライブラリのXMLネームスペースが変更になりました。となりました。Sun 時代のネームスペースは下位互換のために現在でも有効なため、いたるところで java.sun.com が使われ続けておりややこしい感じなのでまとめておきます。 XMLネームスペース 新旧の比較は以下のようになります。 Library prefix JSF2.1まで JSF2.2以降 Composite Components cc http://java.sun.com/jsf/composite http://xmlns.jcp.org/jsf/composite Faces Core f http://java.sun.co

    JSF Facelet タグライブラリのXMLネームスペースについて - A Memorandum
    alcus
    alcus 2021/01/22
  • Javaのstaticな話 - Qiita

    はじめに この記事はMicroAd Advent Calendar 2017の18日目の記事です。 普段そこまで意識することがないのか、あるのか、 今語らないと今後語ることはないでしょう、java における static のイマサラな話をしてみようと思います。 ゴール たかが static されど static、 簡単なクイズを書きながら、java における static なモノをこそこそと、今一度簡単に整理してみること。 static フィールド そもそも static は 「静的」 を意味します。こそこそ。 「動的ではない」ということで、そのフィールドはいくらインスタンスをたくさん生成したとしても、クラスにたった1つです。 複数のインスタンスの間で共有されつづける情報、共有資源にして欲しいフィールドに static をつけます。クラス名.フィールド名 で呼びます。インスタンスを生成して

    Javaのstaticな話 - Qiita
    alcus
    alcus 2021/01/20
  • GitHub - yusuke/businessCalendar4J

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - yusuke/businessCalendar4J
    alcus
    alcus 2021/01/20
  • 実践!安全ではないデシリアライゼーションの攻撃手法 | yamory Blog

    記事では、実際のコードを交えて Java における安全ではないデシリアライゼーションの解説を行い、この脆弱性を見つけた場合にどのように扱えばよいのか、どのような対策を行えばよいのかを解説します。

    実践!安全ではないデシリアライゼーションの攻撃手法 | yamory Blog
  • SpringBootのプロジェクトを作成する - 日々常々

    2020-12-29 時点で私がどうやっているかって言うの。 色々やり方あるし、他でも書いた記憶あるけど、現時点のスナップショットを書いておきます。 必要なもの 以下が実行できること curl gradle 私は SDKMAN で入れてます gradle の実行にJDKいるけど、JDKは入ってるでしょ← idea IntelliJ IDEAのCLIね やること curl -O https://start.spring.io/build.gradle gradle wrapper idea . こんだけ。以下は解説とかおまけとか。 やってること curl で叩いてるのは Spring Initializr です。 SpringBootの雛形を作成してくれるWebサービス。必要なライブラリとかを -d dependencies=web,actuator とかで指定できるんだけど、それはあまり使

    SpringBootのプロジェクトを作成する - 日々常々
  • OpenJDKのソースコードリポジトリは、どれを見ればいい? - CLOVER🍀

    これは、なにをしたくて書いたもの? 自分の使い方というと、最新のJavaや開発中のJavaの情報を追うというよりも、リリースされてから(今のご時世だとLTS) ちょっと間を空けて使い始めることが多いです。 で、以前はOpenJDKのソースリポジトリを見ることはそんなになかったのですが、勉強している時にたまに見たり、 エントリを書く時にソースコードへリンクをつけるようなこともたまにするようになりました。 OpenJDK 今までソースコードをまったく見ていなかったということはないのですが、JDKに含まれているsrc.zipを 見ていた感じですね。 OpenJDKのソースリポジトリがGitHubに移ったというのも、やりやすくなったなぁと。 OpenJDKのソースコード、GitHubへの移行を完了 - Publickey GitHub - openjdk/jdk: JDK main-line de

    OpenJDKのソースコードリポジトリは、どれを見ればいい? - CLOVER🍀
    alcus
    alcus 2020/12/28
  • IntelliJ IDEA に CheckStyle と PMD と SpotBugs を導入してコードを自動でチェックしてもらう - Multi Vitamin & Mineral

    IntelliJ IDEA で Java 開発をするにあたり、コードチェックを自動で行いたいと思います。そのためのツールの導入と簡単な実行までを記載しました。 チーム開発での運用や、CIと絡めた話までは手を出していません。今回は簡単に使ってみるところまでのお話となります。 尚、当該記事の内容は、バージョン 2020.03 を基にしています。 導入するプラグイン チェックルールは変更&共有できる 導入方法と利用方法はどれも同じようなモノ CheckStyle 導入 利用 PMD 導入 利用 SpotBugs の導入 導入 利用 導入するプラグイン Java で開発をするのに辺り、以下の3つのプラグインを導入したいと思います。(個人的には、 CheckStyle と FindBugs (SpotBugs の前身) の知名度が高そうって思ってましたがどうなんでしょう?) CheckStyle :

    IntelliJ IDEA に CheckStyle と PMD と SpotBugs を導入してコードを自動でチェックしてもらう - Multi Vitamin & Mineral
    alcus
    alcus 2020/12/25
  • 「ソースないけどバグ直して」をランタイムで可能にするJavaバイトコードプログラミング - Qiita

    はじめに この記事はシスコ同志によるAdvent Calendarの25日目として投稿しています。 幸いタイトルのような無茶振りには遭ったことはありませんが、シスコではJavaバイトコードを操作する技術を使った監視製品を開発しているので、その技術について記事でサンプルを交えて紹介します。 この記事を読んで出来ること おわかりでしょうか?HelloWorldはAliceに対して挨拶するプログラムだったのに、-javaagent:agent.jarというオプションを付けて実行すると、Malloryに挨拶するプログラムに変わってしまいました。 このカラクリはJVMが読み込んだJavaバイトコードを実行時に書きかえ、変数の値をAliceからMalloryに変えています。HelloWorldのソースコードも、コンパイル後の.classファイルも変えていないにも関わらず、実行時に処理を変更できてしま

    「ソースないけどバグ直して」をランタイムで可能にするJavaバイトコードプログラミング - Qiita
  • Stream API がもっとわかる記事 - Qiita

    はじめに これは、株式会社ワークスヒューマンインテリジェンスのアドベントカレンダー Develop fun!を体現する Works Human Intelligence Advent Calendar 2020 12月20日の記事です。 よろしければ、ぜひ他の記事もご覧になっていってください。 想定読者 Java プログラマ Stream API を普通に使ってる 関数型プログラミングにはあまり詳しくない Stream APIとは? Stream API とは、Java 8 から追加された、コレクションに対する繰り返し処理を便利に扱う仕組みです。 Oracleのドキュメントでは、次のように説明されています。 パッケージjava.util.streamの説明 コレクションに対するマップ-リデュース変換など、要素のストリームに対する関数型の操作をサポートするクラスです https://docs

    Stream API がもっとわかる記事 - Qiita
    alcus
    alcus 2020/12/22
  • Java の + 演算子による文字列結合は、どのように処理されているのか - 地平線に行く

    Java 9 以降 JEP 280: Indify String Concatenation に基づき、 + 演算子による文字列結合は以下のようにコンパイルされるように変わりました。 invokedynamic #7, 0 // InvokeDynamic #0:makeConcatWithConstants:(Ljava/lang/Object;I)Ljava/lang/String; (InvokeDynamic を使うように変更された理由は、「Java の + 演算子による文字列結合で、StringBuilder は使われなくなりました。」を参照) この InvokeDynamic によって、最終的にどのように文字列結合が行われているのでしょうか。 環境 Adopt OpenJDK 15 で調査しました。 openjdk version "15" 2020-09-15 OpenJDK

    Java の + 演算子による文字列結合は、どのように処理されているのか - 地平線に行く
    alcus
    alcus 2020/12/22
  • Spring Cloud GCP を使ったアプリケーション開発入門

    この記事は Google Cloud Japan Customer Engineer Advent Calendar 2020 の 21日目の記事です。 みなさん、こんにちは、Google Cloud の柳原 (@yanashin18618)です。 2020 年の今年は Java が公開されてから 25 周年というアニバーサリー・イヤーで盛り上がりを見せた年でした。Java に馴染みのない人も 今年は Java というキーワードを目にしたりしたのではないでしょうか。 私はと言えば、日夜 Google Cloud 上で Java アプリケーションをどう組み上げていくかと想いを馳せた1年でした。 TL;DRこれから Google Cloud 上で Java アプリケーションを作っていこうとしている方のために参考になるような話を綴っていきます。 特に開発フレームワークの Spring が提供して

    Spring Cloud GCP を使ったアプリケーション開発入門
    alcus
    alcus 2020/12/22
  • Visual Studio Code開発環境で役立つエクステンション機能について(その4)

    前回に引き続き、今回もVisual Studio Codeでの開発を助けてくれるエクステンション機能をご紹介します。 最後となる今回は、コードの品質を高めてくれるPMD機能を実現する「Apex PMD」を中心に進めていきたいと思います。 ※以下の内容は、Windows10 環境を前提とし、すべて稿執筆時点(2019/10/03)のバージョンでのものとなります。 PMDとは(主にJAVAにおいて)ソースコードの解析をおこない、無駄な変数、ループ、条件式、バグの原因となる可能性のあるコードの判定を行ってくれるツールです。 参照:Wikipedia PMD (ソフトウェア) https://ja.wikipedia.org/wiki/PMD_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2) 他の言語においてはコンパイル時にコンパイ

    Visual Studio Code開発環境で役立つエクステンション機能について(その4)
  • 【業務系】世の中に逆行するJavaのWebアプリでの画面フレームワーク選定 - Qiita

    これは何? Java Advent Calendar 2020 を見て、記事の少なさ (後で見たら参加者増えてた!)、よい記事なのにLGTMの少なさに驚愕して、少しでもJava言語を盛り上げたく記事を書きます。 Webな業務アプリにおいて画面を作る画面系フレームワークの選択肢について、偏見たっぷりに書いてみます 想定読者:Javaで画面フレームワーク?ReactとかVueとかじゃねーの?っていう人向け。 業務系 && Webアプリ で画面フレームワークといったら?(前置き) 普段はBtoBでJavaで業務アプリを開発しています。Spring Framework(Boot)だったり、JavaEE(JakartaEE)にお世話になっております。 今時の定番でいえば、やはり、Spring MVCでしょうか? 更にモダンになると、RESTfulAPI + Vue.js とか ReactJs とか

    【業務系】世の中に逆行するJavaのWebアプリでの画面フレームワーク選定 - Qiita
    alcus
    alcus 2020/12/16
  • Spring Boot 2.2.x の Web アプリを 2.3.x へバージョンアップする ( その10 )( Spring Boot を 2.3.2 → 2.3.7 へバージョンアップする+Docker コンテナの image をバージョンアップする、redis・redis_exporter 編 ) - かんがるーさんの日記

    概要 記事一覧はこちらです。 Spring Boot 2.2.x の Web アプリを 2.3.x へバージョンアップする ( その9 )( Docker コンテナの image をバージョンアップする、postgres・pgadmin4・flyway・docker-mailserver 編 ) の続きです。 今回の手順で確認できるのは以下の内容です。 Spring Boot を 2.3.2 → 2.3.7 へバージョンアップします。 今回は以下の Docker コンテナの image をバージョンアップします。 redis oliver006/redis_exporter Redis を 5 → 6 にバージョンアップしますが、spring-boot-starter-data-redis が利用している lettuce-core の release notes を見ると Lettuce

    Spring Boot 2.2.x の Web アプリを 2.3.x へバージョンアップする ( その10 )( Spring Boot を 2.3.2 → 2.3.7 へバージョンアップする+Docker コンテナの image をバージョンアップする、redis・redis_exporter 編 ) - かんがるーさんの日記
  • 循環的複雑度を測定して、生産性をBoostしよう!(Java) - Qiita

    記事では、 プロジェクトのリスク患部にすぐ効き すばやくテスト実行ができ 当に重要なことに焦点をあてることができ アプリケーションコードとテストコードのバランスを保つことができ CIに組み込むことができ IDEで使えて生産性を爆上げできる といったツールを紹介します。 それがOpenCloverというツールです。 OpenCloverとは 高機能なJavaカバレッジ計測ツールの1つです。 もともとはAtlassianという会社の製品だったのですが、2017年にOSSになりました。以降も開発は続けられているようですが、現在(2020/12時点)の最新版のリリースは2019年10月のものとなっています。 特徴 対応言語 Java, Groovy, AspectJに対応しています。 値段 OSSなのでもちろん無料です。 コードカバレッジの種類 3種類のカバレッジを提供しています。 metho

    循環的複雑度を測定して、生産性をBoostしよう!(Java) - Qiita