It may involve synchronized blocks and/or methods when you call methods of Java platform. If the method you call itself is synchronized you may be noted by tiny icon or otherwise within IDE such as Eclipse in auto-proposal coding, but probably the synchronized is involved potentially, that would become problematic in situation of single threaded performance critical program and it’s not easy to find out. By parsing rt.jar using ASM, this document presents a full calling graph of methods of rt.jar of Java 8 to help quick check, it’s organized in a tree formatted with indents with below rules.
- S denotes synchronized method
- SI denotes synchronized block inside method body
- Parent node is called by children
- awt and swing packages are excluded
- The first level must be synchronized on either method or block
Below is just a sample, it's too long to post, if you need please feel free to email me.
SI java/io/FileInputStream.getChannel()Ljava/nio/channels/FileChannel; sun/nio/cs/StreamDecoder.getChannel(Ljava/io/FileInputStream;)Ljava/nio/channels/FileChannel; SI java/io/FileOutputStream.close()V sun/rmi/log/ReliableLog.writeVersionFile(Z)V sun/rmi/log/ReliableLog.createFirstVersion()V sun/rmi/log/ReliableLog.getVersion()V com/sun/corba/se/impl/util/ORBProperties.main([Ljava/lang/String;)V sun/applet/AppletProps$2.run()Ljava/lang/Object; java/awt/color/ICC_Profile.write(Ljava/lang/String;)V sun/security/tools/keytool/Main.doCommands(Ljava/io/PrintStream;)V com/sun/xml/internal/org/jvnet/staxex/Base64Data$Base64StreamingDataHandler.moveTo(Ljava/io/File;)V S sun/security/krb5/internal/ccache/FileCredentialsCache.save()V sun/net/www/MimeTable.saveAsProperties(Ljava/io/File;)Z S sun/net/www/MimeTable.save(Ljava/lang/String;)Z S javax/management/modelmbean/RequiredModelMBean.writeToLog(Ljava/lang/String;Ljava/lang/String;)V java/io/FileOutputStream.finalize()V java/lang/ProcessImpl.start([Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;[Ljava/lang/ProcessBuilder$Redirect;Z)Ljava/lang/Process; com/sun/media/sound/StandardMidiFileWriter.write(Ljavax/sound/midi/Sequence;ILjava/io/File;)I jdk/management/resource/internal/inst/StaticInstrumentation.writeOutputClass(Ljava/io/File;[B)V SI java/io/FileOutputStream.getChannel()Ljava/nio/channels/FileChannel; SI java/io/FilePermissionCollection.add(Ljava/security/Permission;)V SI java/io/FilePermissionCollection.elements()Ljava/util/Enumeration; SI java/io/FilePermissionCollection.implies(Ljava/security/Permission;)Z SI java/io/FilePermissionCollection.writeObject(Ljava/io/ObjectOutputStream;)V