////////////////////////2016-11-17///////////////////////////
int study_data(){
Stack:
Stack是存放方法和局部变量的内存空间
每个方法都会分配一块Frame
方法一旦执行完成,Frame会被销毁
对于原始类型,变量的值也保存在Stack里面
对于引用类型,Stack保存的是指向对象的内存地址(引用)
Heap堆是存放Object的
Java是传值的,不是传引用
GC:
垃圾回收器:GC(Gabege Collection)
Heap里面的对象由GC自动回收
GC维护和检测对象引用,引用数为0的对象会被回收
GC并不是实时回收内存的
Lambda:
“Lambda 表达式”(lambda expression)是一个匿名函数
Lambda表达式是一个方法,他可以作为参数在方法间传递
但只能在实现了FunctionalInterface接口的地方
Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。下面这个例子就是使用Lambda语法来代替匿名的内部类,代码不仅简洁,而且还可读。
没有使用Lambda的老方法:
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
System.out.println("Actiondetected");
}
});
使用Lambda:
button.addActionListener(()->{
System.out.println("Actiondetected");
});
让我们来看一个更明显的例子。
不采用Lambda的老方法:
Runnable runnable1=new Runnable(){
@Override
public void run(){
System.out.println("RunningwithoutLambda");
}
};
使用Lambda:
Runnable runnable2=()->{
System.out.println("RunningfromLambda");
};
Lambda表达式不仅让代码变的简单、而且可读、最重要的是代码量也随之减少很多
}
网友评论