jdk1.8新特性,jdk1.9 模块化开发

jdk1.8新特性

随着jdk的升级 ,会出现一些新的类:

  • lambda表达式
  • 文件操作类 Files Path paths
  • Stream流式思想(流水线的思想)

eg:在集合中保存10个学生信息,信息式字符串的“张三,20,男”.
(遍历 普通 增强 iterator )
获取年龄大于20岁的年龄,String,改为int类型

public class StreamIO {
	@Test
	void stream() {
		List<String> stus=new ArrayList<String>();
		stus.add("张三,20,男" );
		stus.add("李四,30,女" );
		stus.add("王五,40,男" );
		//将所有的age获取的保存到新的集合中
		List<String> ages=new ArrayList<String>();
		for (String stu : stus) {
			//获取年龄字段
			String[] split = stu.split(",");
			ages.add(split[1]);
		}
		//将ages集合中的数据转为int类型的集合
		List<Integer> age=new ArrayList<Integer>();
		for (String sage : ages) {
			//转类型
			Integer valueOf = Integer.valueOf(sage);
			age.add(valueOf);
		}
		//输出age>20的年龄
		for (Integer a : age) {
			if(a>20) {
				System.out.println(a);
			}
		}
	}
	
	
	/*
	 * 使用流式Stream对象,类似与iterator,map方法使用lambda进行内容的过滤操作, 得到一个新的Stream  
	 * stream的filter方法对Stream中的数据进行过滤操作,将不需要的数据过滤掉,得到一个新的Stream  
	 * Stream的Foreach方法对Strsam流中的数据进行输出 
	 */
	@Test
	void stream01() {
		List<String> stus=new ArrayList<String>();
		stus.add("张三,20,男" );
		stus.add("李四,30,女" );
		stus.add("王五,40,男" );
		//类似于Iterator,age字符串值
		Stream<String> stulist = stus.stream();
		Stream<String> sage = stulist.map(stu->stu.split(",")[1]);
		sage.forEach(System.out::println);
		//得到int类型
		Stream<Integer> iage = sage.map(strage->Integer.valueOf(strage));
		//使用过滤器思想
		Stream<Integer> filter = iage.filter(age->age>20);
		filter.forEach(System.out::println);
		stus.stream().map(stu->stu.split(",")[1]).map(age->Integer.valueOf(age)).filter(age->age>20).forEach(System.out::println);
		for (String string : stus) {
			System.out.println(string);
		}
	}
	//集合的spliterator
		@Test
		void  spliterator() {
			List<String> strs=new ArrayList<String>();
			for (int i = 0; i < 10; i++) {
				strs.add("100"+i);
			}
			//普通for循环
			for (String s : strs) {
				System.out.println(s);
			}
			//spliterator,主要是可以将集合数据 拆分为三个迭代器,如果结合多线程技术,同时使用三个对象类分别进行一个集合数据的遍历 
			//可以快速进行遍历  
			Spliterator<String> spliterator = strs.spliterator();// 第一个迭代器
			Spliterator<String> trySplit = spliterator.trySplit();//第二个迭代器  
			Spliterator<String> trySplit2 = trySplit.trySplit();//第三个迭代器  
			spliterator.forEachRemaining(System.out::println);
			System.out.println("============================");
			trySplit.forEachRemaining(System.out::println);
			System.out.println("============================");
			trySplit2.forEachRemaining(System.out::println);
			
		}
		
		
		// 使用stream的 parallelStream
		@Test
		void  parallelStream() {
		List<String> strs=new ArrayList<String>();
		for (int i = 0; i < 10; i++) {
			strs.add("100"+i);
		}
		//创建一个printWriter
		PrintStream out=System.out;
		//类似于spliterator 
		Stream<String> parallelStream = strs.parallelStream();
		//以下两个流,必须与第一个同时进行操作 
		Stream<String> parallel = parallelStream.parallel();
		Stream<String> parallel2 = parallel.parallel();
		parallelStream.forEach(out::println);
		System.out.println("---------------------");
		//第一个Steam已经执行结束,使用三个线程对象,也同时对三个stream进行操作
		parallel.forEach(out::println);
		System.out.println("--------------------");
		parallel2.forEach(out::println);
		}
}

jdk1.9 模块化开发

  • 模块化是将java程序分解为一个一个的小程序。

  • 将环境改为1.9,下载jdk1.9,进行安装,与1.8方式一样 。

jdk配置环境变量 :
系统变量

  • JAVA_HOME:JDK的jdk的安装目录
  • CLASS_PATH:%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
  • Path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
    Path在配置的时候,需要将配置的内容置顶去掉“”

修改eclipse中的jdk的环境

在这里插入图片描述
在这里插入图片描述

  • 1.9选择性的将模块中的内容暴露
    在这里插入图片描述
  • A项目需要使用 B\C 导入模块就可以
    在这里插入图片描述
    在这里插入图片描述
    A B 不允许 A<------>B
    A<------B
    B<------A
    将公共的,经常使用到工具类创建为模块供别人使用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值