はじめに こんにちは!10 月から株式会社ログラスでエンジニアをやっています、Kyosuke です! ログラスでは、エクセルファイルをプログラムから操作する処理が一部存在しており、Apache POIというライブラリを使用しています。(以後POIと呼びます) しかし、POI には処理方式によってはメモリを多量に使用してしまうという問題があります。 今回はその対応として、まずエクセルファイルの読み込みをFastExcelというライブラリに置き換えた話を振り返っていきます。 TL;DR POIのXSSFWorkbookは、ファイルをメモリ内に読み込んで操作するため、大きなエクセルファイルを処理する際にファイルサイズ以上のメモリを必要とすることがある POI の公式ドキュメントより FastExcelは、POIより機能は劣る代わりに、読み書きともにパフォーマンスは大幅に上回る 書き込み Fast
[速報]古いJavaや.NETのコードを最新のJavaにAIが自動変換する「Amazon Q Code Transformation」、AWSが発表。AWS re:Invent 2023 Amazon Web Services(AWS)は、ラスベガスで開催中のイベント「AWS re:Invent 2023」の基調講演で、生成AIを用いて多様なAIサービスを提供する「Amazon Q」を発表。Amazon Qの機能の一部として、古いJavaや.NETのコードを最新のJavaや.NET対応に自動変換する「Amazon Q Code Transformation」を合わせて発表しました。 参考:[速報]AWS、Copilot対抗となる「Amazon Q」発表。生成AIによるシステム開発支援や業務支援など、多様なAIサービスを提供。AWS re:Invent 2023 Amazon Q Code
Red Hat のソリューションアーキテクトの瀬戸です。 この記事はRed Hat Developerのブログ記事、What's new for developers in JDK 21 | Red Hat Developer を、許可をうけて翻訳したものです。 Java開発者にとってエキサイティングな情報として、今年 9 月 19 日に JDK 21 がリリースされました。 このリリースには、仮想スレッド(Virtual Thread)、レコードパターン(Record Patterns)、順序付コレクション(Sequenced Collections)など、Javaのエコシステムに利益をもたらす多くの新機能が含まれています。JDK 21 のプレビューには、文字列テンプレート(String Templates)、スコープ付値(Scoped Values)、構造化並列処理(Structure
「Java 20」正式リリース。スレッド間で共有できるScoped Values、複数スレッド処理をまとめるStructured Concurrencyなど新機能 オラクルはJavaの最新バージョン「Java 20」正式版のリリースを発表しました。 Java 20 is now available! #Java20 #JDK20 #OpenJDK Download Now: https://t.co/6hZhod56WB Release notes: https://t.co/3eTwYKn1Cw API Javadoc: https://t.co/QUNgT4ol6Y Features: https://t.co/enLcqDmBQX Inside Java on JDK20: https://t.co/WIzDOeTgZl pic.twitter.com/7ahbOPF4LQ — Ja
原文(投稿日:2022/05/11)へのリンク JEP 425 "Virtual Threads (Preview)"が、JDK 19対象のProposed to TargetからTargetedに昇格した。Project Loomの傘下にあるこのJEPでは、仮想スレッドを導入する。これによって実現される軽量スレッドは、スループットの高いJavaプラットフォーム並列アプリケーションの記述、維持、監視に必要な労力を大幅に軽減するもので、現時点ではプレビュー機能である。 Javaは、メインストリームのプログラミング言語では初めて、並列プログラミング単位としてスレッドを言語のコア機能に取り入れた。従来のJavaスレッド(java.lang.Threadのインスタンス)は、オペレーティングシステム(OS)スレッド(いわゆるプラットフォームスレッド)の1対1のラッパである。一方の仮想スレッドは、OS
原文(投稿日:2022/03/22)へのリンク Oracleは、Javaプログラミング言語と仮想マシンのバージョン18をリリースした。この最終機能セットの9つのJEPは次のとおりである。 JEP 400: UTF-8(デフォルト) JEP 408: Simple Web Server JEP 413: Java APIドキュメントにコードスニペット JEP 416: メソッドハンドルを使ったCore Reflectionの再実装 JEP 417: Vector API(第3インキュベータ) JEP 418: インターネットアドレス解決SPI JEP 419: 外部関数・メモリAPI(第2インキュベータ) JEP 420: switchのパターンマッチング(第2プレビュー) JEP 421: 削除に向けたファイナライズの非推奨 Java 18の機能サイクルでは、以前のリリースよりも機能がわず
Java 15 でプレビューされ、Java 17 で正式に追加された Sealed Classes は、継承に関するルールを適用する新しい手段です。キーワード sealed をクラスまたはインターフェースの定義に追加すると、それを拡張 (extend) または実装 (implement) することができるクラスのリストも追加されます。たとえば、次のように定義されたクラスを作成した場合: public abstract sealed class Color permits Red, Blue, Yellow その場合、Red、Blue と Yellow のクラスだけが拡張できます。事前に定義されたもの以外はコンパイルに失敗します。 キーワード permits を完全に省略して、すべてのシールドクラス定義をクラス自体と同じファイルに次のように保持することもできます: public abstra
2021年12月10日、Javaベースのログ出力ライブラリ「Apache Log4j」の2.x系バージョン(以降はLog4j2と記載)で確認された深刻な脆弱性を修正したバージョンが公開されました。セキュリティ関係組織では過去話題になったHeartbleedやShellshockと同レベルの脆弱性とも評価しています。ここでは関連する情報をまとめます。 1.何が起きたの? Javaベースのログ出力ライブラリLog4j2で深刻な脆弱性(CVE-2021-44228)を修正したバージョンが公開された。その後も修正が不完全であったことなどを理由に2件の脆弱性が修正された。 広く利用されているライブラリであるため影響を受ける対象が多く存在するとみられ、攻撃が容易であることから2014年のHeartbleed、Shellshock以来の危険性があるとみる向きもあり、The Apache Software
ホーム ニュース 『マインクラフト』Java版にセキュリティ上の問題が判明。チャットからでも攻撃受ける可能性あり、開発元はパッチ配信 『マインクラフト』Java版などに利用されるライブラリに、緊急度の高い脆弱性が見つかったようだ。影響はプレイヤーおよびサーバー側、どちらにも及ぶ。開発元Mojang Studiosは脆弱性に対応する緊急修正パッチを配信。ゲームおよびランチャーの再起動によるアップデートと、サーバー管理者への対応を呼びかけている。 『マインクラフト』は、世界的に広い人気を誇るサンドボックスゲーム。今回発見された問題は、本作Java版が利用しているJava向けライブラリ「Apache Log4j 2」のゼロデイ脆弱性に起因するものだ。このライブラリは、Javaで構築されたソフトウェア上でのログ記録を助けるロギングツール。Apacheソフトウェア財団のもと、オープンソース(Apac
Webセキュリティ製品などを手掛ける米LunaSecの報告によると、Minecraftの他、ゲームプラットフォームのSteamやAppleの「iCloud」もこの脆弱性を持つことが分かっており、影響は広範囲に及ぶと考えられるという。 この脆弱性の影響があるのは、Log4jのバージョン2.0から2.14.1までと当初みられていたが、Log4jのGitHub上の議論では、1.x系も同様の脆弱性を抱えていることが報告されている。対策には、修正済みのバージョンである2.15.0-rc2へのアップデートが推奨されている。 セキュリティニュースサイト「Cyber Kendra」によれば、この脆弱性に対して付与されるCVE番号は「CVE-2021-44228」という。 脆弱性の報告を受け、Twitter上ではITエンジニアたちが続々反応。「やばすぎる」「思っていたよりずっとひどいバグだった」「なぜこんな
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く