- 博客(93)
- 资源 (2)
- 收藏
- 关注
原创 《Java 8 in Action》【06】----用流收集数据(二)
文章目录1.前言2.Collector接口及toList实现1.前言Collector接口中包含一系列方法,为实现具体的归约操作(即收集器)提供了范本。Collectors类中已经提供了一些静态工厂方法来返回常见收集器,例如toList或者groupingBy。这表示可以为Collector接口提供自己的实现,从而创建在自定义归约操作。本章将会先介绍toList收集器实现过程,来更好了解Col...
2020-04-11 14:06:54
288
原创 《Java 8 in Action》【05】----使用流(二)
文章目录1.数值流1.1 原始类型流特化1.2 数值范围1.3 数值流应用:勾股数2.构建流3. 总结1.数值流通过reduce方法可以计算流中的元素的总和,例如计算菜单的总热量int calories = menu.stream() .map(Dish::getCalories) .reduce(0, Integer::sum);这段的代码的问题是暗含一个装箱的成本,每个Integ...
2020-04-05 16:14:40
206
原创 《Java 8 in Action》【05】----使用流(一)
文章目录1.前言2.筛选和切片2.映射1.前言Java8中流Stream API可以通过内部迭代形式对集合数据的遍历。它不需要开发人员自己去显式地编写迭代代码(外部迭代)。这种处理数据的方式很有用,Stream API可以对代码进行多种优化,如并行运行代码。此外Stream API提供了许多复杂操作,它们能快速完成复杂的数据查询,如筛选、切片、映射、查找、匹配和归约。2.筛选和切片本节将介...
2020-04-03 14:45:13
196
原创 《Java 8 in Action》【04】----流概述
文章目录1.前言2.流的概念2.流与集合3.流操作4.总结1.前言流是Java API中的新概念,它允许以声明性方式处理数据集合,可以将其看成遍历数据集的高级迭代器。此外流可以透明地并行处理,无需写任何多线程代码。现在简单看下使用流的好处,例如需要对菜单筛选,从中返回低热量的菜肴名称,并按照卡路里排序,Java7中代码如下:List<Dish> lowCaloricDishes...
2020-04-03 10:04:46
150
原创 《Java 8 in Action》【03】----Lambda表达式(二)
文章目录1.方法引用2.Lambda和方法引用实战2.复合Lambda表达的有用方法2.1 比较器复合2.2 谓词复合2.3 函数复合3.总结1.方法引用Java8中引入了另外一个功能:方法引用,可以将其看作仅仅调用特定方法的Lambda的一种快捷写法。它的基本思想是,如果一个Lambda代表的是"直接调用这个方法",那最好是用名称来调用,而不是去描述如何调用它。方法引用根据已有的方法实现来创...
2020-04-01 09:51:41
251
1
原创 《Java 8 in Action》【03】----Lambda表达式(一)
文章目录1.Lambda介绍2.Lambda使用及函数式接口2.1 Predicate2.2 Consumer2.3 Function2.4 原始类型特化3.类型检查、类型推断及限制3.1类型检查3.2 同样的Lambda,不同的函数式接口3.4 类型推断3.5 使用局部变量4.总结1.Lambda介绍前面章节提到利用行为参数化来传递代码有助于应对不断变化的需求,Java8之前表现不同行为是需...
2020-03-30 15:24:56
147
原创 《Java 8 in Action》【01】----基础知识
1.前言Java 8自2014年3月发布以来,受到广泛关注,java 8中添加新功能使编程更加简单。例如对苹果库存根据苹果重量排序,java 8之前代码可能如下:Collections.sort(inventory, new Comparator<Apple>() { @Override public int compare(Apple a1, Apple a2) { ...
2020-03-28 14:43:24
757
原创 Java8 日期和时间
文章目录1.介绍2.LocalDate、LocalTime、Instant、Duration以及Period2.1 LocalDate和LocalTime2.2 LocalDateTime2.3 Instant2.4 Duration和Period3.操纵、解析和格式化日期4.时区和其他历法1.介绍如果曾经使用过java8之前处理日期和时间的api,我想大多数人会被java.util.Date...
2020-02-27 15:01:13
492
原创 Spring Cloud微服务(二):服务提供与调用(Greenwich SR3)
可以简单地创建的服务,然后向eureka服务注册中心注册自己。【步骤一】创建一个SpringBoot项目,在pom.xml文件中添加Eureka client的依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boo...
2019-12-09 09:46:55
693
原创 Windows 7上传文件到VirtualBox(Ubuntu系统)。
文章目录1.介绍1.1 Ubuntu系统上传和下载文件。1.2 Ubuntu监听连接1.3 Windows远程连接2.安装软件2.1 Ubuntu软件安装和网络设置2.2 Windows安装Xshell3.上传和下载文件4.出现问题4.1 Could not load host key4.2 连接问题5.参考1.介绍我们经常要在虚拟机中安装一些软件,比如jdk、zookeeper。可以在虚...
2019-10-14 13:13:35
1427
原创 VirtualBox安装Ubuntu系统过程及问题排查
文章目录1.虚拟机介绍2. Linux操作系统3.VirtualBox安装Ubuntu系统详细3.1 环境准备3.2 VirtualBox虚拟机安装3.3 Ubuntu系统安装4 出现问题4.1 This kernel requires an X86-64 CPU,but only detected an i686 CPU报错4.2 忘记登录密码5. 参考1.虚拟机介绍 ...
2019-10-10 19:07:14
5056
原创 【Spring IN ACTION】-----REST概述及Spring对REST支持(二)
文章目录1. 编写REST客户端2. RestTemplate操作2.1 GET资源2.2 PUT资源2.3 DELETE资源2.4 POST资源2.5 交换资源3.总结4. 参考1. 编写REST客户端Spring即支持提供一个Rest类型的服务端,又支持使用Rest客户端来访问Rest服务器端。Spring提供的访问REST API的方式有以下几种:RestTemplate——由Spr...
2019-06-25 10:49:57
250
原创 【Spring IN ACTION】-----REST概述及Spring对REST支持(一)
文章目录1.REST概述2. Spring支持REST2.创建REST端点3.编写REST客户端4.参考1.REST概述REST全称是Representational State Transferm,中文意思是表述性状态转移。REST首次出现在2000年的Roy Fielding博士论文中,Roy Fielding是HTTP规范的是主要编写者之一, 他在论文中提到:“我这篇文章的写作目的,就是...
2019-06-21 14:24:44
475
原创 【JMX】-----JMX管理Spring Bean(二)
文章目录1.介绍1.1Spring Bean导出为MBean的方式1.2 MBean冲突3.暴露远程MBean4.访问远程MBean5.通知5.1通知监听5.2 通知3.测试4.参考1.介绍Spring对DI的支持是通过在应用中配置bean属性,但对于已经部署并且运行的应用来说,并不能直接改变应用的配置,此时可以使用java管理扩展(Java management Extensions ,JM...
2019-06-17 10:21:23
524
4
原创 【JMX】-----JMX管理Spring Bean(一)
文章目录1. 介绍2.将spring Bean导出为MBean2.1通过名称暴露方法2.2使用接口定义MBean的属性和操作2.3注解驱动MBean3.处理MBean冲突4. 参考1. 介绍2.将spring Bean导出为MBean2.1通过名称暴露方法2.2使用接口定义MBean的属性和操作2.3注解驱动MBean3.处理MBean冲突4. 参考...
2019-06-13 08:49:23
1042
原创 【JMX】-----MBean和Standard MBean
文章目录1.简介2. 介绍3. 测试4.参考1.简介MBean类型分为多种,常见的不管是Standard MBean,还是Dynamic MBean,当创建一个MBean时需要满足以下规则:MBean是一个具体的java类,不能是抽象类,因此可以进行实例化。MBean必须有一个公共的构造器,构造器可以是有参或者无参。MBean必须实现自己的MBean接口或者是javax.managme...
2019-06-04 10:58:53
356
原创 【JMX】-----JMX概述
1.简介分布式程序,设备,服务在企业以各种方式出现,为了能够正常访问这些服务或者程序,需要进行程序以及程序部署的设备的运维。那么就要说到资源管理(Resource Management),资源管理是个管理概念,用于程序或者资源管理的计划和工具。企业中资源管理意味着用工具报告程序和硬件的健康状况,基于此来对系统故障和重大事件作出快速的反映。理想的管理环境1.将具有处理问题的主动能力,管理系统持...
2019-06-02 13:28:42
1049
原创 【WebService学习】-----使用wsgen工具构建JAX-WS的WebService
1. 简介jdk中自带的工具wsgen为构建JAX-WS的WebService提供了便利,我们需要使用JAX-WS的注解编写一个服务实现类,wsgen工具将会解析服务实现类并且生成构建服务的必要文件。wsgen工具目录在$jdk/bin文件下面。wegen工具可以生成文件如下:1.为构建WebService服务生成JAX-WS便携式文件。2.生成WSDL和XSD文件,用于测试和web服务客...
2019-05-16 13:21:14
340
原创 【WebService学习】-----SpringBoot整合JAX-WS构建WebService
文章目录1.简介2.Spring整合JAX-WS2.1 介绍2.2 Common2.3 WebServiceServer(服务端)2.4 WebServiceConsumer(客户端)3.测试4.参考1.简介 Spring框架整合RMI和Hessian,以及Spring框架中的HttpInvoker来构建远程服务时,可以发现Spring框架都会提供了一个对应导...
2019-05-16 08:49:59
3550
2
原创 【Web Service学习】-----JAX-WS构建Web Services
文章目录1.简介2. 介绍3. 测试4. 参考1.简介远程服务调用中RMI远程服务调用或者HttpInvoker服务都存在一个限制,只能在java程序之间调用,但实际生产上往往存在着各种语言编写如C++、C#、Visual Vasic等编写的程序,当前实现不同语言的程序间的调用最优解决方案是WebService,WebService是一种跨编程语言和跨操作系统平台的远程调用技术,Webserv...
2019-05-15 16:29:24
2581
2
原创 Spring远程服务----HttpInvoker实现远程调用
1.简介Spring的之前两篇远程服务调用方式,RMI服务使用的是Java标准的对象私有序列化机制,但很难穿越防火墙,而Hessian和Burlap服务是基于HTTP的服务,所以不受防火墙限制,但采用了私有的对象序列化机制。那么有没有一种服务可以总和了2.介绍3.测试4.参考文档...
2019-05-13 09:40:26
1300
原创 Spring远程服务----Hessian和Burlap实现远程调用
文章目录1.简介2.介绍3.测试调用4.参考1.简介2.介绍3.测试调用4.参考
2019-05-10 09:32:48
610
原创 .net报错----A potentially dangerous Request.Form value was detected from the client
问题 .net项目,项目表单里面需要提交带有<strong></strong>或者<br/>这种带有html标签的字符串,提交标签时候就会出现A potentially dangerous Request.Form value was detected from the client错误,如下面截图:原因 &...
2019-04-17 14:09:45
2556
原创 Java并发编程-Exchange
1.简介 Exchange位于java.util.concurrent包下面,主要是用于线程之间数据交换的工具类,经常用于管道设计和遗传算法中。Exchange提供了一个同步点,在这个同步点上,线程完成配对并进行数据的交换。第一个线程调用exchange()方法时传入对象,它会一直等待,直到第二个对象调用exchange()方法时,每个线程的exchange()方法将返回并...
2019-03-28 10:37:27
591
原创 Java并发编程-信号量Semaphore
Semaphore是一个计数信号量,与concurrent.locks或者synchronized锁相比(任意时刻只允许一个线程访问某个特定的资源),它可以控制同时访问特定资源的线程数量。可以将Semaphore理解为许可证的集合,实际上没有使用任何许可证对象。创建Semaphore时需要指定许可证数目,即由此来限制同时执行的线程数量。调用acquire()方法是从Semaphore中获取...
2019-03-27 09:34:18
156
原创 Excel的常用快捷键
目录移动操作和区域选择单元格编辑操作单元格内容设置移动操作和区域选择快捷键 功能描述 Home 快速移至一行的开始 Ctrl+Home 快速移到工作表的开始单元格 Ctrl+End 快速移至工作表区域的结尾 PageUp 翻至前一页 PageDown 翻至下一页 向上,左,右,下方向箭 分别向上、向下、向左、向右...
2019-03-03 13:46:23
1800
原创 Java并发编程----线程池技术(二)
目录线程的创建与销毁管理队列任务线程工厂饱和策略线程池配置及执行流程 Java类库中提供的线程池创建方式常见有四种,通过调用Executors类中的静态方法可以实现不同策略的线程池技术,其中newFixedThreadPool,newCachedThreadPool,newSingleThreadExecutor是通过访问ThreadPoolExecutor构造函数实...
2019-02-28 16:59:18
238
原创 Java并发编程----线程池技术(一)
目录串行执行任务一任务一线程固定线程数量Executor框架类库中的线程池返回任务结果的Callable与Future---------------------------------笔记来自于《Java并发编程实战》串行执行任务 以客户端请求服务器为例,同一个时期有多个客户端请求服务器时,单线程中一次只能处理一个客户端的请求,当客户向一个已经被其他客户端...
2019-02-24 13:30:37
265
原创 Java集合源码分析11----HashSet源码分析
目录 简介介绍方法源码迭代方式-----------源码分析基于jdk1.8.简介 HashSet自jdk1.2引入,继承了抽象方法AbstractSet,实现了Set接口,Cloneable接口,以及java.io.Serializable接口,所以能被克隆和序列化。 HashSet底层是使用HashMap实现的,其中HashMap的键就是Hash...
2018-12-25 16:33:34
198
原创 Java集合源码分析10----LinkedHashMap源码分析
简介 LinkedHashMap自jdk1.4引入,继承了HashMap,实现了接口Map,与HashMap具有相同数据结构,底层是哈希表结构,即数组+单向链表(或红黑树)。但LinkedHashMap在HashMap维护节点关系的基础上,将所有的节点串起来,形成了双向链表。所以存储到LinkedHashMap中元素能够保持一定的顺序。默认情况下,迭代时返回元素顺序是插入的顺序。另外一种...
2018-12-24 13:55:37
194
原创 Java集合源码分析09----Hashtable源码分析
目录简介介绍源码分析(jdk1.8)迭代HashtableHashtable与HashMap的区别------分析基于jdk1.8.简介Hashtable是jdk1.0引入,与HashMap一样,是用散列表(哈希表)实现的,存储的是键-值对映射。Hashtable继承了抽象类Dictionary,实现了Map、Cloneable、java.io.Serializab...
2018-11-28 14:44:03
178
原创 Java集合源码分析08----HashMap源码分析
目录 简介源码分析迭代HashMap总结简介 HashMap是自jdk1.2引入的,底层使用散列表实现的,存储的是键-值对映射。HashMap继承了抽象类AbstractMap,实现了Map、Cloneable、java.io.Serializable接口,所以它可以克隆,进行序列化传输。HashMap允许存储null键和null值,null键的哈希值是0,它不能...
2018-11-23 19:27:20
179
原创 Java集合源码分析07----Map集合
目录 Map集合综述Map接口SortedMap接口NavigableMap接口Dictionary抽象类AbstractMap抽象类总结--------------------------分析基于jdk1.8.Map集合综述 Map接口是Map继承体系中的根接口,与Collection集合没有必然的联系。Map集合存储的是键-值映射(键-值对)。...
2018-11-07 15:15:59
381
原创 Java集合源码分析05----Vector源码分析
目录简介介绍源码分析(基于jdk1.8)案例(部分api)简介 Vector与ArrayList相比,有大部分的方法一样的,不一样的是Vector几乎所有的方法都使用了synchronized修饰,进行了同步,所以Vector是线程安全,可以用于多线程的情况。 Vector底层也是数组实现的,Vector继承了AbstractList抽象类,实现了L...
2018-11-06 09:34:01
143
原创 Java集合源码分析06----Stack源码分析
目录简介介绍源码分析(基于jdk1.8)案例简介 Stack模拟的是栈的操作,继承了Vector类,底层也是通过数组来实现的。栈的数据特点是先进后出(FILO,First In Last Out),即最后压入栈的元素,总是第一个弹出栈。由于Stack继承了Vector,所以线程安全,并且提供了操作队列的方法,可以随机访问,能克隆,能进行序列化和序列化传输。介绍...
2018-11-06 08:44:41
144
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人