`
文章列表
原文链接:http://www.yeetrack.com/?p=822   最初,Http被设计成一个无状态的,面向请求/响应的协议,所以它不能在逻辑相关的http请求/响应中保持状态会话。由于越来越多的系统使用http协议,其中包括http从来没有想支持的系统,比如电子商务系统。因此,http支持状态管理就很必要了。 当时的web客户端和服务器软件领先者,网景(netscape)公司,最先在他们的产品中支持http状态管理,并且制定了一些专有规范。后来,网景通过发规范草案,规范了这一机制。这些努力促成 RFC standard track制定了标准的规范。但是,现在多数的应用的状态管 ...
原文链接:http://www.yeetrack.com/?p=782   2.1.持久连接 两个主机建立连接的过程是很复杂的一个过程,涉及到多个数据包的交换,并且也很耗时间。Http连接需要的三次握手开销很大,这一开销对于比较小的http消息来说更大。但是如果我们直接使用已经建立好的http连接,这样花费就比较小,吞吐率更大。 HTTP/1.1默认就支持Http连接复用。兼容HTTP/1.0的终端也可以通过声明来保持连接,实现连接复用。HTTP代理也可以在一定时间内保持连接不释放,方便后续向这个主机发送http请求。这种保持连接不释放的情况实际上是建立的持久连接。HttpClient ...
v4.5.2 官网:http://hc.apache.org/httpcomponents-client-4.5.x/tutorial/html/index.html v4.3 原文链接:http://www.yeetrack.com/?p=773#Fundamentals 4.5.2和4.3中基本概念一样,没什么变化   1.1. 请求执行 HttpClient最基本的功能就是执行Http方法。一个Http方 ...
一般项目在验收之前都会有专业的机构进行安全漏洞扫描,下面是这些天碰到的几个常见的中高危漏洞安全。   1、跨站点脚本编制 漏洞描述: “跨站点脚本编制”攻击是一种隐私违例,可让攻击者获取合法用户的凭证,并在与特定 Web 站点交互时假冒这位用户。  这个攻击立足于下列事实:Web 站点中所包含的脚本直接将用户在 HTML 页面中的输入(通常是参数值)返回,而不预先加以清理。 如果脚本在响应页面中返回由 JavaScript 代码组成的输入,浏览器便可以执行此输入。 因此,有可能形成指向站点的若干链接,且其中一个参数包含恶意的 JavaScript 代码。 该代码将在站点 ...
简单介绍一下java和scala的不同,公司里暂时还没有使用到scala,也就没有更多的去看它的API,语法挺精简的,有兴趣的可以多看下官网:  http://www.scala-lang.org/api/current/#package。   1、scala中的hello world: def main(args: Array[String]){ ...
在java8中引入了新的日期和时间库,整合了很多Joda-Time的一些特性。 1)LocalDate + LocalTime + LocalDateTime public void testLocalDate(){ LocalDate date = LocalDate.of(2016, 05, 22); println(date.getYear()); //2016 println(date.getMonth()); //MAY print ...
当数据量大的时候,采用并行的方式有时候也不是最好的选择,查看并行流的源码: default Stream<E> parallelStream() { return StreamSupport.stream(spliterator(), true); } default Spliterator<E> spliterator() { return Spliterators.spliterator(this, 0); } 可以看出parallelStream是将Collection通过Spliterators先切分成小的数据块,至于能比stre ...

Stream的并行

    博客分类:
  • jdk8
先举个例子说明一下并行和并发: 假设:有8辆车(8核处理器)、8堆货物(8个应用) 并行:用8辆车在同一时刻上开始去拉这8堆货物,相当于每车拉一堆。 并发:用1辆车在某个时间段去拉这8堆货物,轮流着拉,先拉一段货物A、再拉一段货物B、再拉货物A、再 拉货物B,依次循环   sequential():可将并行流修改为顺序流。 parallel():将顺序流修改为并行流。    在java8中,stream并行流就是一个把内容分割成多个数据块,再用不同的线程去分别处理每个数据块的处理方式。在并行流内部使用的是ForkJoinPool(分支/合并框架),其中默认的线程数 ...
原文链接:http://www.cnblogs.com/weidagang2046/archive/2011/06/04/2063696.html   基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢?我认为很大程度上应归功于简单有效的HTTP协议。HTTP协议是一种分布式的面向资源的网络应用层协议,无论是服务器端提供Web服务,还是客户端消费Web服务都非常简单。再加上浏览器、Javascript、AJAX、JSON以及HTML5等技 ...
    jetty默认的表单最大size为200000,   参考:http://www.eclipse.org/jetty/documentation/current/setting-form-size.html   For All Apps on a Server Set an attribute on the Server instance for which you want to modify the maximum form content size: <Configure class="org.eclipse.jetty.se ...
Stream还可以像数据库的操作那样处理数据:比如分组、分区、汇总等等。 导入Collectors类中的所有静态方法,使用时不再需要Collectors.去调用,直接使用即可: importstatic java.util.stream.Collectors.*;   1、数据分组: groupingBy List<String> views = Lists.newArrayList("wsbs","xafaswzx","b8fw","ad"); Map<Integer, List& ...
关于流的使用,Stream API提供了很多的操作   1、常用操作 stream.filter(vo -> vo.getAge()>25).distinct().skip(3).limit(6) .collect(Collectors.toList()); // distinct 去重,排除重复元素 // skip 跳过,即扔掉前n个元素 // limit 截断流,返回n个元素,与skip组合可作为内存上的分页   2、map + flatMap 之间的联系: // 直接使用map打印: i: 1i: 3i: 5 // 使用flatMap打印: // ...
描述一下有关流的概念   1、关于流 Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator。原始版本的 Iterator,用户只能显式地一个一个遍历元素并对其执行某些操作;高级版本的 Stream,用户只要给出需要对其包含的元素执行什么操作,比如 “过滤掉长度大于 10 的字符串”、“获取每个字符串的首字母”等,Stream 会隐式地在内部进行遍历,做出相应的数据转换。 Stream 就如同一个迭代器(Iterator),单向,不可往复,数据只能遍历一次,遍历过一次后即用尽了,就好比流水从面前流过,一去不复返。 而和迭 ...
前面也有写一篇jdk8 + guava的博文,都是一些零碎的记录,感觉不是很好。   都说java8运行速度比之前的其他版本要快很多,这都要归功于Stream的概念,既然能那么快就从它与多线程的关系说起吧。   1、java 8 和多线程 在java8之前通过多线程来达到并行效果需要使用Thread API,syncharonized关键字,同时当线程访问并更新共享变量时,要是没有协调好线程之间的关系,可能就会出错。 而在java8中,会更多关注的是数据分块,而不是协调问题,所以基本上很少使用syncharonized,而是使用Stream的并行化方式来处理的。 如在两个CPU ...
部署服务器需要用到的命令,记录一下,有需要的也可以看看:   1、一个新的服务器需要先检查一下服务器的内存、磁盘、核数、网络这些的(我暂时用到的是这几个) top: 查看进程,在此基础上再按1即可查看:linux核数 + 内存      查看磁盘: df -lh 查看目录占用大小:du -lh      至于网络:ping tech.meituan.com,要是不能访问外网就傻了(排除内网环境的情况)        ifconfig:查看当前ip地址 还有就是,有些挂载的磁盘在 /dev/vdb 目录,需要格式化挂载到/data目录下,可参考上一篇博文: ...
Global site tag (gtag.js) - Google Analytics