Java全般目次ページ
if (dinner != null) { shop.setDinnerPrice(dinner.text()); } // 以下に置換可能 Optional.ofNullable(dinner).ifPresent(element -> shop.setDinnerPrice(dinner.text()));
// initParam はmap String hoge = "DEFAULT"; if (initParam != null) { hoge = initParam.get("key"); } // 以下に置き換え可能 String hoge = Optional.ofNullable(initParam) .map(param -> param.get("key")) .filter(str -> !str.isEmpty()) .orElse("DEFAULT");
// ifpresetとgetを使わないやり方 Optional<String> optTest = Optional.empty(); return optTest.map("SOME_VALUE"::equals).orElse(false);
sdkコマンド一発で関連ツールをインストールできる
curl -s get.sdkman.io | bash
readlink $(readlink $(which java))
これでOpenJDKの場所が判明する。
http://d.hatena.ne.jp/learn/20090218/p1
個人の開発環境のTomcatであればチューニングやタイプなど気にする必要もないが、実際の運用に入っているところでもあまり気にかけていないところが多いのではないか?
-clientオプションを指定する。立ち上がりは早い。しょっちゅう再起動する用途向け
-serverオプションを指定する。立ち上がりは遅いが長く使っているとよく使うクラスにおいてはパフォーマンスがよくなってくるらしい。あまり再起動しない用途向け。Tomcat6.0で試したら立ち上がりまでclientVMの3倍程度時間がかかっていた。
ファイルを指定することもできるが、何も指定しないとコンソールに出力。
-verbose:gc
ファイル名を指定するには下記オプション追加
-Xloggc:c:/gc.log
-verbose:class
-Xms64m 最小ヒープサイズ -Xmx256m 最大ヒープサイズ
-XX:MaxPermSize=256m
ユーザー作成のプロセス(thread)が多すぎるときに発生するらしい。
最新版のソースがなく確実に実行環境で動いているものでソースを確かめたい場合に重宝する。Jadが一番手軽で使いやすい。インストールは解凍して、jad.exe(Windows)を実行するだけ。
jar xvf xxx.jar
jar xvf xxx.jar META-INF/hogehoge.txt
Supplier以外はstreamの中で使えそうだ。
種類 | オーバーライドメソッド | 備考 |
Supplier | get | 引数を取らず値を返す |
Function | apply | 引数をとって値を返す。mapなど |
Consumer | accept | 戻り値を返さない。foreachなど |
Predicate | Booleanを返す。filterなど |
Stream.of(XXXEnum.values()).filter(p -> p.getCode() <= max.getCode()).collect(Collectors.toSet());