玩转 Java 8 Stream API

先贴上几个案例,水平高超的同学可以挑战一下: 从员工集合中筛选出salary大于8000的员工,并放置到新的集合里。 统计员工的最高薪资、平均薪资、薪资之和。 将员工按薪资从高到低排序,同样薪资者年龄小者在前。 将员工按性别分类,将员工按性别和地区分类,将员工按薪资是否高于8000分为两部分。 用传统的迭代处理也不是很难,但代码就显得冗余了,跟Stream相比高下立判。 1 Stream概述 Java 8 是一个非常成功的版本,这个版本新增的Stream,配合同版本出现的 La... ... [查看更多]

Views: 538

Java带Jar包编译方式

java命令行编译带jar包 项目的结构如下 简单的不带包名的java源文件编译 编译 运行 简单的带包名的java源文件编译 编译 运行 对带一个jar包的java源文件编译 编译 运行 注意 其中 -cp 等同于 –classpath 路径分隔符要注意windows系统要把冒号改成分号 引入多个jar包的java源文件编译 编译 运行 另外:对于多个jar分散在多个文件夹中时, 编译使用: 运行时使用: ... ... [查看更多]

Views: 8

Java多线程及Future用法

Java多线程及Future用法 同步和异步 – 比要发射10枚导弹,同步的方式就是上一枚导弹炸毁后才发射下一枚,而异步就是全部挨个发射出去,而不在乎它们是否击中目标,这种异步方式也被称为Fire and Forget。Kafka为了提高吞吐性能默认是异步发送消息的。为了更好的了解Kafka的Producer发送,我们先补充一些关于Java多线程的知识。 Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。 继承Thread创建线程... ... [查看更多]

Views: 28

Java集合框架

集合框架是 Java 中最重要的内容之一。无论是最基本的 Java SE 应用程序开发,还是企业级的 Java EE 程序开发,集合都是开发过程中常用的部分。 1 集合的基本概念 首先,什么是集合呢? 集合是一种对象,只不过这种对象的功能,是储存和管理多个对象。例如,我们生活中的“抽屉”对象,抽屉就是用来放东西的,也就是说,“抽屉”这个对象的功能,就是用来储存和管理多个对象的。 那是不是除了集合之外,就没有别的管理多个对象的方式了呢?不是。我们之前学到的 数组,就能够完成储存和管... ... [查看更多]

Views: 30

Java面向对象设计

抽象类 VS 接口 Java相比于其他面向对象语言,如C++,设计上有一些基本区别,比如Java不支持多继承。这种限制,在规范了代码实现的同时,也产生了一些局限性,影响着程序设计结构。Java类可以实现多个接口,因为接口是抽象方法的集合,所以这是声明性的,但不能通过扩展多个抽象类来重用逻辑。 在一些情况下存在特定场景,需要抽象出与具体实现、实例化无关的通用逻辑,或者纯调用关系的逻辑,但是使用传统的抽象类会陷入到单继承的窘境。以往常见的做法是,实现由静态方法组成的工具类(Utils),... ... [查看更多]

Views: 16