模块  jdk.jfr

Package jdk.jfr.consumer

此程序包包含用于使用Flight Recorder数据的类。

在以下示例中,程序打印记录中所有方法样本的直方图。

   public static void main(String[] args) { if (args.length != 0) { System.out.println("Must specify recording file."); return; } try (RecordingFile f = new RecordingFile(Paths.get(args[0]))) { Map<String, SimpleEntry<String, Integer>> histogram = new HashMap<>(); int total = 0; while (f.hasMoreEvents()) { RecordedEvent event = f.readEvent(); if (event.getEventType().getName().equals("jdk.ExecutionSample")) { RecordedStackTrace s = event.getStackTrace(); if (s != null) { RecordedFrame topFrame= s.getFrames().get(0); if (topFrame.isJavaFrame()) { RecordedMethod method = topFrame.getMethod(); String methodName = method.getType().getName() + "#" + method.getName() + " " + method.getDescriptor(); Entry entry = histogram.computeIfAbsent(methodName, u -> new SimpleEntry<String, Integer>(methodName, 0)); entry.setValue(entry.getValue() + 1); total++; } } } } List<SimpleEntry<String, Integer>> entries = new ArrayList<>(histogram.values()); entries.sort((u, v) -> v.getValue().compareTo(u.getValue())); for (SimpleEntry<String, Integer> c : entries) { System.out.printf("%2.0f%% %s\n", 100 * (float) c.getValue() / total, c.getKey()); } System.out.println("\nSample count: " + total); } catch (IOException ioe) { System.out.println("Error reading file " + args[0] + ". " + ioe.getMessage()); } }  

空操作

所有方法都定义它们是否在Javadoc中接受或返回null 通常,这表示为"not null" 如果在null情况下使用null参数,则抛出java.lang.NullPointerException 如果将null参数传递给抛出其他异常的方法(例如java.io.IOException ,则java.lang.NullPointerException优先,除非该方法的Javadoc明确说明如何处理null ,即抛出java.lang.IllegalArgumentException

从以下版本开始:
9