阅读新Supplier界面我看不出它的用法有什么好处.我们可以看到它的一个例子.
class Vehicle{
public void drive(){
System.out.println("Driving vehicle ...");
}
}
class Car extends Vehicle{
@Override
public void drive(){
System.out.println("Driving car...");
}
}
public class SupplierDemo {
static void driveVehicle(Supplier<? extends Vehicle> supplier){
Vehicle vehicle = supplier.get();
vehicle.drive();
}
}
public static void main(String[] args) {
//Using Lambda expression
driveVehicle(()-> new Vehicle());
driveVehicle(()-> new Car());
}
Run Code Online (Sandbox Code Playgroud)
正如我们在该示例中所看到的,该driveVehicle方法需要一个Supplieras参数.为什么我们不把它改成期待Vehicle?
public class SupplierDemo {
static void driveVehicle(Vehicle vehicle){
vehicle.drive();
}
}
public static void main(String[] …Run Code Online (Sandbox Code Playgroud) java选项-XX:-EliminateAllocations有什么作用?我找不到任何关于它的文档.
AttachNotSupportedException尝试开始JFR记录时收到提示。到现在为止,它一直在正常工作。
jcmd 3658 JFR.start maxsize=100M filename=jfr_1.jfr dumponexit=true settings=profile
Run Code Online (Sandbox Code Playgroud)
输出:
3658:
com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded
at sun.tools.attach.LinuxVirtualMachine.<init>(LinuxVirtualMachine.java:106)
at sun.tools.attach.LinuxAttachProvider.attachVirtualMachine(LinuxAttachProvider.java:63)
at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:208)
Run Code Online (Sandbox Code Playgroud)
可能会发生什么?
因此:Oracle Linux Server 6.7版
$ java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud)