Java9から17で入った新機能で、実際コード書く上で使いそうなものをピックアップします。 Java8を使い続けていた人向けです。 レコード (Java16) 不変なデータを保持するクラスを簡単に定義できるようになりました。 classの代わりにrecordで定義します。 名前の後に、フィールドのリスト(コンポーネントと呼ばれます)を記載します。
ファイルの読み書きをマルチスレッドで並列に行うための仕組みを、各種プログラミング言語(C++、C、Java、Ruby、Python)で利用できるようにライブラリを整備した。メモリマップI/O、通常I/O、ダイレクトI/Oを同じインターフェイスで利用できる。Tkrzw-0.9.38からこの機能が利用できる。メモリマップI/Oと通常I/Oは全ての処理系で、ダイレクトI/OはLinuxとMacとWindowsで利用できる。 データベースライブラリTkrzwはマルチスレッド環境での並列処理性能を重視して開発しているが、そこで利用しているファイル層の機能を直接利用できるようにAPIを整備した。データベースとしてではなく、単なるフラットなファイルとして利用するためのAPIである。テキストにもバイナリにも利用できる。 C++ API C API Java API Python API Ruby API
【入門】Kotlinとは?Javaとの違いから文法、実行サンプルまで紹介 公開日:2020.08.20 スキルアップ Kotlin(コトリン)は2011年に開発されたオブジェクト指向型言語で、Javaを簡潔かつ安全になるよう改良を加えた産業利用向けの汎用言語としてリリースされました。そのためJava仮想マシン上で動作し、文法などもJavaに近いものになっています。Javaと同様に素早くコンパイルでき、同程度の速度で動作するとされています。Androidの開発言語として公式認定され、スマートフォンアプリの開発現場でのシェアが広がりつつある言語の一つです。 今回はこのKotlinについて、Javaの違いや文法を解説しながら、実行サンプルを紹介していきます。 KotlinはJetBrains社が開発したプログラミング言語で、2011年7月に産業用汎用言語として発表されました。その後、2012年に
残念ながらしばらく誤解が続きそうなので、私以外の有識者からの発信を中心にまとめます。まず、Javaの中心的な用語については https://qiita.com/nowokay/items/c1de127354cd1b0ddc5e を参照ください。 また、Sun時代から延長アップデートを含む商用サポートは有償です。https://www.atmarkit.co.jp/ad/sun/0810javaseforb/0810javaseforb.html 次のブログからリンクされている記事もどれかだけでもよいので読むことをオススメします。http://tadashi.hatenablog.com/entry/2019/01/17/091324 セッション資料「これからのJDK 何を選ぶ?どう選ぶ?」https://www.slideshare.net/TakahiroYamada3/how-to-
オラクルはJava EEの策定をEclipse Foundationへ移行することを発表しました。(参考日本語訳) Eclipse Foundationも歓迎の意を表明しています。 Welcome the Java EE community to the Eclipse Foundation. https://t.co/g19n2orVg8 — Eclipse Foundation (@EclipseFdn) 2017年9月12日 オラクルは先月、もうすぐ策定が終了するJava EE 8の登場を機に、今後のJava EEの策定をオープンソースコミュニティへ移管することを模索していることを明らかにしていました。 この時点ではどのコミュニティに移管するのかは検討中とのことでしたが、その後Java EEの主要なコントリビュータであるRed HatやIBMにも相談したうえで、移管先をEclipse
前回、システム運用者は次の4つのポイントに絞ってJVMの動きを監視することを紹介し、そのうち1.と2.について解説しました。 JVMがアプリケーションを中断することなく実行できているか JVMがアプリケーションのリソースを奪っていないか OSのリソースが十分に割り当てられているか アプリケーションが動いているか 今回は、3.と4.について解説します。 「OSのリソースが十分に割り当てられているか」と「アプリケーションが動いているか」は、ともにスレッドを見ることで確認できます。 3.では、たとえばOS上で動くほかのプロセスによってストレージのリソースが大量に使われていると、JVMが十分なリソースを確保できなくなります。十分なリソースを確保できないと、JVMのI/Oの時間が長くなりますが、そのときファイルI/Oに関わるメソッドを処理するスレッドの実行時間が普段よりも長くなることが多いです。普段
DBのデータ量が増えてきた場合の対策の1つとしてユーザIDなどをキーにデータベースを分割するシャーディングと呼ばれる手法があります。これをJDBCのレイヤで実現してしまうsharding-jdbcというライブラリを見つけました。 github.com sharding-jdbcは中国のdangdang(当当)というEC大手企業が開発したOSSで、SQLをパースし、SQLに含まれるシャードキーを抽出して接続先のデータベースや、参照するテーブルを切り替えてくれるというものです。 使ってみる まずはpom.xmlに以下の依存関係を追加します。 <dependency> <groupId>com.dangdang</groupId> <artifactId>sharding-jdbc-core</artifactId> <version>1.4.1</version> </dependency>
Java VMで監視すべき4つのポイント 前回は、システム運用者がJava VM(JVM)、アプリケーションサーバ、Javaアプリケーションから、ログ、JMXとMBean、ダンプを使用して情報を取得する方法を紹介しました。今回と次回では、JVMからどのような情報を最低限取得するべきか、詳細を紹介します。 システム運用者は、JVMが滞りなくアプリケーションを支援できているか、アプリケーションが動いているかを確認する必要があります。JVMは内部で管理しているさまざまなリソースに関する情報を持っていますが、システム運用者がそれらをすべてを監視することは不可能です。そこで、たくさんある情報の中から、次の4つのポイントに絞ってJVMの動きを監視します。 JVMがアプリケーションを中断することなく実行できているか JVMがアプリケーションのリソースを奪っていないか OSのリソースが十分に割り当てら
思いつきエントリ。後で説明とか付け加える予定。付け加えた。 final なフィールドは基本的にコンストラクタ内部で初期化することしか出来ない。 でも、そのフィールドを初期化する方法が複雑な場合、素直に実装するとコンストラクタがどんどんふくれあがってしまう。 なのでメソッドに分割したい・・・というのはまぁ普通によくあることなんだけど、例えそのメソッドがコンストラクタからしか呼び出されていなかったとしても、 // コンパイルエラーになる public final class Hoge { final int hoge; public Hoge(int piyo) { prepareHoge(piyo); } // コンストラクタからしか呼び出されない private void prepareHoge(int piyo) { // 何かとても複雑な処理 // ... hoge = result;
よく使う3つの標準アノテーション型 アノテーションをソースコードへ埋め込むためには、コンパイラがチェックできるように、どんなアノテーションを使うのかをアノテーション型として最初に定義しておく必要があります。開発者は定義されているアノテーション型を使って、注釈を付けたいクラス、メソッド、変数などにアノテーションを付けます。 Javaには標準アノテーション型として、java.langパッケージに「Override」「Deprecated」「SuppressWarnings」が定義されています。これらは、よく使いますし、分かりやすいので、具体的にどういった使い方をすればいいのか、確認してみましょう。概要は、次の通りです(下記リストはインデックスになっています)。
GlassFish 4.0でも手順は同じですが、4.1では管理コンソール画面が英語しかありません。 今回のDBはPostgreSQLですが、どのDBでも基本的に同じのはずです。 Cドライブ直下にGlassfish 4.1がインストールされているものとします。 JDBCドライバの配置 まず、C:\glassfish4.1\glassfish\domains\domain1\libフォルダに、JDBCドライバのJARファイルを置きます。 (GlassFishはまだ起動しないでください) 注意してほしいのは、アプリケーション側で使用しているものと同じバージョンを使うということです。 バージョンが違っていたりすると、うまく動きません。 コネクションプールの作成 次に、GlassFishを起動し、管理コンソール画面(http://localhost:4848/)を開きます。 画面左の[Common
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 昔から「名は体を表す」と言ひます。クラスの名前がクラスの果たす役割と一致してゐるかどうか常に考へ続けませう。 ImageInfo, AccountData, etc. Info って何やねん? Data って何やねん? ImageInfo って Image とはどう違ふねん?? FooInfo や FooData よりも好ましいかもしれない名前の例: FooAttribute, FooProperty, FooMetadata, FooDescription FooConfiguration, FooSetting, FooParame
Jackson の、普段あんまり使わない機能過ぎて使いたいときに忘れてぐぐって時間を浪費してしまうようなケースを回避するためにメモメモします。随時更新予定。 見ればわかりますが、元ネタはほぼすべて Stack Overflow です。英語だけだと読むのが辛い、という方向け(主に自分)にまとめています。 snake_case でプロパティを表現している JSON と camelCase で表記している POJO をマッピングしたい java - Jackson overcoming underscores in favor of camel-case - Stack Overflow より。 引数に PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES PropertyNamingStrategy.SNAKE_CAS
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く