Embed presentation
Download as PDF, PPTX








































![JDK内部APIを利用するコード例try {sun.misc.BASE64Encoder b64 = new sun.misc.BASE64Encoder();System.out.println(b64.encode(new byte[]{1, 2, 3}));} catch (Throwable ex) { ex.printStackTrace(); }try {Field field = sun.misc.Unsafe.class.getDeclaredField(“theUnsafe");field.setAccessible(true);sun.misc.Unsafe unsafe = (sun.misc.Unsafe) field.get(null);} catch (Exception ex) { ex.printStackTrace(); }try {java.util.conccurent.ThreadPoolExecutor executor =new ThreadPoolExecutor(5, 10, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());Method addWorker = ThreadPoolExecutor.class.getDeclaredMethod(“addWorker", Runnable.class, Boolean.TYPE);addWorker.setAccessible(true);addWorker.invoke(executor, null, Boolean.FALSE);} catch (Exception ex) { ex.printStackTrace(); }その他41Deep Reflection代替APIが存在する影響が大きい](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f20210509cautionforjep396injdk16jjugccc2021spring-210522104212%2f75%2fJDK-16-JEP-396-JJUG-CCC-2021-Spring-41-2048.jpg&f=jpg&w=240)





















JJUG CCC 2021 Spring にて講演。2021年3月リリースのJDK 16 では、17個の JEP(JDK Enhancement Proposal)が導入されました。 JDK 16で導入された JEP 396: Strongly Encapsulate JDK Internals by Default による影響は十分に評価・準備することをお勧めします。 今回は、JEP 396での変更点やその背景を解説すると共に、アプリケーションでの評価・確認する際のポイントをご紹介します。








































![JDK内部APIを利用するコード例try {sun.misc.BASE64Encoder b64 = new sun.misc.BASE64Encoder();System.out.println(b64.encode(new byte[]{1, 2, 3}));} catch (Throwable ex) { ex.printStackTrace(); }try {Field field = sun.misc.Unsafe.class.getDeclaredField(“theUnsafe");field.setAccessible(true);sun.misc.Unsafe unsafe = (sun.misc.Unsafe) field.get(null);} catch (Exception ex) { ex.printStackTrace(); }try {java.util.conccurent.ThreadPoolExecutor executor =new ThreadPoolExecutor(5, 10, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());Method addWorker = ThreadPoolExecutor.class.getDeclaredMethod(“addWorker", Runnable.class, Boolean.TYPE);addWorker.setAccessible(true);addWorker.invoke(executor, null, Boolean.FALSE);} catch (Exception ex) { ex.printStackTrace(); }その他41Deep Reflection代替APIが存在する影響が大きい](/image.pl?url=https%3a%2f%2fimage.slidesharecdn.com%2f20210509cautionforjep396injdk16jjugccc2021spring-210522104212%2f75%2fJDK-16-JEP-396-JJUG-CCC-2021-Spring-41-2048.jpg&f=jpg&w=240)




















