記事一覧
FOREIGN KEY(外部キー)の罠
データベースのFOREIGN KEY(外部キー)を活用していますでしょうか。テーブル間のデータ整合性を保証するために便利な機能ですが、「遅くなるのでFOREIGN KEYは使わずにソフトウェア側で整合性を保証する。」という選択をしていた時代もありましたね。ハードウェアの性能向上、データベース製品の成熟、ソフトウェアの複雑化により、現在ではテーブル間のデータ整合性はFOREIGN KEYで保証するケ
もっとみるJavassistとメモリリーク
何かと便利なJavassistですが、使い方によってはメモリリークが発生することをご存じでしょうか。今回はJavassistのメモリリーク回避方法を紹介したいと思います。
下準備まずはメモリリークの検証コードを実行する下準備をします。
今回はIntelliJで環境を構築しました。
プロジェクトの作成
IntelliJでプロジェクトを新規作成します。
言語:Java
ビルドシステム:Gra
Javaの難デコンパイル化用ClassLoader
Javaは簡単にデコンパイルできるから簡単にノウハウが流出してしまう・・・みたいな話を聞かなくなって久しいですね。対策としては難読化やAOTコンパイラによるネイティブコードへの変換があるわけですが、今回は難デコンパイルの実装コードを実用レベルに近い形で公開しちゃいます。
難デコンパイルを実現する製品について軽く調べてみたところ、ClassGuardが現在もメンテナンスされているようです。今回公開