Java学习日记14——Lambda表达式(λ表达式)以及一些高级语法
Lambda表达式的基本写法
Java1.8以后才有的。
(参数) -> (结果) //例如: (String s) -> s.length(); x -> x*x; () ->{
System.out.println("aaa");}
在Java中的Lambda表达式,大体相当于其他语言的匿名函数或者指针函数。然而在Java中,则可以认为是匿名类的一个实例。至于匿名类,在前面已经简单陈述过了。
举一个简单的例子:
Runnable dolt=new Runnable(){
public void run() {
System.out.println("普通写法"); } } new Thread(doit).start();//线程 // Runnable doit = () ->{
System.out.println("Lambda 写法");}//只有一句,也可以不写花括号 new Thread(doit).start();//线程 // new Thread(()->{
System.out.println("Lambda+线程 写法");}).start();
Lambda表达式大大的简化了书写,可用于线程、数学计算、按钮事件处理等等。由于Lambda只能表示一个函数,所以能写成Lambda的接口要求包含最多只能一个抽象函数。可以将Lambda表达式将代码当成数据来处理。
包装类
Integer i = new Integer(10);
装箱与拆箱
装箱 : Integer I = 10; 拆箱 : int i = I;
枚举
枚举是一种特殊的class类型,在简单情况下,用法与其他语言的enum基本一致。
enum Light{
Red,Yellow,Green};
可以在enum中添加字段、方法、构造方法等。
注解
@Override//表示覆盖父类方法 @Deprecated//表示过时的方法,会产生警告 @SuppressWarnings//编译不产生警告
自定义注解:比较复杂比较少用,下面给一个小小例子
public @interface Author{
String name(); }
引用与指针
相等于不等
Integer i = new Integer(10); Integer j = new Integer(10); System.out.println(i==j); //输出是false,因为这里是两个对象。 Integer m = 10; Integer n = 10; System.out.println(m==n); //输出是true,因为利用了包装,-128~127之间的数有缓存 Integer p = 200; Integer q = 200; System.out.println(p==q); //输出是false,超过缓存区域大小
执行结果为:
false true false
String对象的特殊性,判断相等时,不要使用==。而是使用equals。
String hello = "Hello",hel = "Hel",lo = "lo"; System.out.println(hello == ("Hel"+"lo"));//true System.out.println(hello == ("Hel"+lo));//false System.out.println(hello == new String("Hello"));//flase,新的对象String System.out.println(hello == ("Hel"+lo).intern());//true
如果你对Java有兴趣,可以了解一下前面几期的基础知识!下面附上链接:
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216032.html原文链接:https://javaforall.net
