JAVA 8新特性

1.接口中包含默认方法和静态方法

/*
 * 接口静态方法和默认方法
 */
interface jdk8{
	public static void fun() {
		System.out.println("接口静态方法");
	}
	public default void sun() {
		System.out.println("接口默认方法");
	}
	public int aun();
	public void dun(int flag);
}
class ojbk implements jdk8{
	@Override
	public int aun() {
		System.out.println("接口重写方法");
		return 1;
	}

	@Override
	public void dun(int flag) {
		// TODO Auto-generated method stub
	}
}

接口可以定义静态方法  默认方法  抽象方法;抽象类可以定义抽象方法 静态方法  一般方法

default方法通过对象调用,静态方法由接口调用

2.Lamada表达式和Stream接口

说lamada表达式之前我想说一下匿名内部类,因为两者在某些程度上有相似之处

1.必须继承一个父类或者实现一个接口

2.匿名内部类不能是抽象的,不能定义构造器(因为没类名)

/*
定义的接口
*/
interface jdk8{
	public static void fun() {
		System.out.println("接口静态方法");
	}
	public default void sun() {
		System.out.println("接口默认方法");
	}
	public int aun();
	public void dun(int flag);
}

/*
 * 定义的抽象类
 */
abstract class 抽象ojbk{
	public void fun() {
		System.out.println("抽象类一般方法");
	}
	public static void sun() {
		System.out.println("抽象类静态方法");
	}
	abstract boolean aun();
}


	/*
	 * 接口和抽象类实现的匿名内部类
	 */
	public void test(jdk8 jd) {
		System.out.println(jd);
		jd.dun(0);
	}
	public void test2(抽象ojbk oj) {
		System.out.println(oj.aun());
	}

                jdk.test(new jdk8() {
			@Override
			public int aun() {
				return 0;
			}
			@Override
			public void dun(int flag) {
				
			}	
		});
		jdk.test2(new 抽象ojbk() {
			@Override
			boolean aun() {
				return false;
			}
		});



Lamada与匿名内部类的区别

		/*
		 * 匿名内部类实现多线程
		 */
		new Thread(new Runnable() {

			@Override
			public void run() {
				System.out.println("匿名内部类");
			}
		}).start();
		/*
		 * Lamada表达式实现多线程
		 */
		new Thread(()->System.out.println("Lamada")).start();

Lamada表达式处理list

Stream是对集合的包装,通常和lambda一起使用,使用lambdas可以支持许多操作,如 map, filter, limit, sorted, count, min, max, sum, collect 等等。 同样,Stream使用过滤方法和distinct去重方法

stream接口经常与Lamada配合使用,相当于一种高级迭代器,类似于Iterator又由于Iterator,它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用 fork/join 并行方式来拆分任务和加速处理过程 。

list.stream().filter((x)->x%2==0).
			forEach((x)->System.out.println(x));

List<Integer> max=list.stream().filter((x)->x%2==1).collect(Collectors.toList());

3.重复注解

java8允许在一个位置可以注解多个,这就不多解释了

4.JVM方面

永久代被移除了,取而代之的是元空间,相应的参数也发生了变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值