java 浮動小数点型の暗黙の型変換
doubleなどレガシーな型における暗黙の型変換とその優先順位のメモ
(1) どちらかの値が double 型の場合は他の値を double 型に変換する
(2) どちらかの値が float 型の場合は他の値を float 型に変換する
(3) どちらかの値が long 型の場合は他の値を long 型に変換する
(4) (1)から(3)に該当しない場合は両方の値を int 型に変換する
詳しくは下記に説明されています。
jvmパラメータ
java8以降、パラメータ変更あるのでそのメモ
従来のPermanent領域はMetaspace領域として定義される
比較項目 | Permanent領域 | Metaspace領域 |
---|---|---|
1.領域の取り扱い | ヒープの一種 | ネイティブメモリ |
2.デフォルトの最大容量 | 環境依存だが60〜80MByte程度 | 無尽蔵 |
3.サイズ調整用Javaパラメータ | -XX:PermSize -XX:MaxPermSize |
-XX:MetaspaceSize -XX:MaxMetaspaceSize |
4.格納する情報 | クラス/メソッド static変数 定数や文字列のintern表現(〜Java6まで) |
クラス/メソッド |
5.ガーベッジコレクトの有無 | 有(FullGC対象) | 有(FullGC対象) |
参考にさせてもらいました。
【postgres】group by 〜 first row 集計して最初の行をとる
select * from detail;
product_id | item | value
------------+------+--------------
000001 | 01 | 1111-1111-11
000001 | 02 | 100000
000001 | 03 | 100000
000001 | 04 | in
000001 | 05 | 100000
000002 | 01 | 2222-1111-11
000002 | 02 | 100000
000002 | 03 | 100000
000002 | 04 | out
000002 | 05 | 100000
000003 | 01 | 3333-1111-11
000003 | 02 | 100000
000003 | 03 | 100000
000003 | 04 | in
000003 | 05 | 100000
(15 rows)
select *,rank() over (partition by product_id
order by item desc ) as rank
from detail;
product_id | item | value | rank
------------+------+--------------+------
000001 | 05 | 100000 | 1
000001 | 04 | in | 2
000001 | 03 | 100000 | 3
000001 | 02 | 100000 | 4
000001 | 01 | 1111-1111-11 | 5
000002 | 05 | 100000 | 1
000002 | 04 | out | 2
000002 | 03 | 100000 | 3
000002 | 02 | 100000 | 4
000002 | 01 | 2222-1111-11 | 5
000003 | 05 | 100000 | 1
000003 | 04 | in | 2
000003 | 03 | 100000 | 3
000003 | 02 | 100000 | 4
000003 | 01 | 3333-1111-11 | 5
(15 rows)
あとはrank=1のものに条件を絞ればOK
【easymock】partial mocking method easy mock 2.x
クラスそのものではなく、一部のメソッドをモッキングしたいときの手法