所以胖哥抽时间梳理了一下从Java 9到Java 17的一些常用API的变动。今天先来看看Java 9 都有什么东西。 Java 9 Java 9 最大的变化就是引入了一个JShell和模块化,日常并没有用太多,所以今天不花时间在这些功能上面。 Java 9改善了这一现状,现在你可以: // [1, 2, 3, 4] List<Integer> integers = List.of(1, 2, 3, 4); // {1,2,3} Set<Integer 在Java 9中Stream进一步得到了加强。 ofNullable Stream<T> ofNullable(T t) 返回包含单个元素的顺序Stream ,如果非空,否则返回空Stream 。 总结 其实Java 9 还有一些底层的优化,不过对于普通开发者来说了解这些就够用了。上面几个特性,比较常用的就是静态不变集合、try-with-resources优化。
序 本文主要解析一下nginx ngx_http_gzip_module以及ngx_http_gzip_static_module中的gzip相关配置参数。 gzip 名称 默认配置 作用域 官方说明 中文解读 模块 gzip gzip off; http, server, location, if in location Enables or disables Acceptable values are in the range from 1 to 9. 指定gzip压缩的级别,默认为1,该值可设置的范围是1-9,1为最小化压缩(处理速度快),9为最大化压缩(处理速度慢),数字越大压缩的越好,也越占用CPU时间 ngx_http_gzip_module
limit_rate 名称 默认配置 作用域 官方说明 中文解读 模块 limit_rate limit_rate 0; http, server, location, if in location Limits limit_except GET { deny all; } } limit_conn 名称 默认配置 作用域 官方说明 中文解读 第一个参数是key,第二个参数是指定zone及其存放元数据(key,current num of conns per key,zone size)的共享内存大小 ngx_http_limit_conn_module connections to the same server_name limit_conn servers 1000; } } limit_req 名称 默认配置 作用域 官方说明 中文解读 第一个参数指定key,第二个参数指定zone名称和元数据的内存大小,第三个参数rate指定单位时间的请求数阈值 ngx_http_limit_req_module limit_req_log_level
limit_rate 名称 默认配置 作用域 官方说明 中文解读 模块 limit_rate limit_rate 0; http, server, location, if in location Limits limit_except GET { deny all; } } limit_conn 名称 默认配置 作用域 官方说明 中文解读 第一个参数是key,第二个参数是指定zone及其存放元数据(key,current num of conns per key,zone size)的共享内存大小 ngx_http_limit_conn_module connections to the same server_name limit_conn servers 1000; } } limit_req 名称 默认配置 作用域 官方说明 中文解读 第一个参数指定key,第二个参数指定zone名称和元数据的内存大小,第三个参数rate指定单位时间的请求数阈值 ngx_http_limit_req_module limit_req_log_level
在 Java 9 中,Stream API 变得更好,Stream 接口中添加了 4 个新的方法:takeWhile, dropWhile, ofNullable,还有个 iterate 方法的新重载方法 而 Java 9 中的 ofNullable 方法允许我们创建一个单元素 Stream,可以包含一个非空元素,也可以创建一个空Stream。 stream.flatMap(x -> x.stream()).forEach(System.out::println); javascript引擎升级:Nashorn Nashorn 项目在 JDK 9 JDK 9 包含一个用来解析 Nashorn 的 ECMAScript 语法树的 API。
你可能已经听说过 Java 9 的模块系统,但是这个新版本还有许多其它的更新。 这里有九个令人兴奋的新功能将与 Java 9 一起发布。 1. Java 平台级模块系统 Java 9 的定义功能是一套全新的模块系统。当代码库越来越大,创建复杂,盘根错节的“意大利面条式代码”的几率呈指数级的增长。 (判断条件)来指定什么时候结束迭代: IntStream.iterate(1, i -> i < 100, i -> i + 1).forEach(System.out::println); 第二个参数是一个 这实际上意味着未来的很长一段时间,你都不能在库中运用 Java 9 所提供的新特性。 这是特别为 Java 9 准备的 class 版本,可以运用 Java 9 所提供的特性和库。
1 测试对象我们使用禅道的创建用户接口,对创建用户的信息进行参数化;接口详情:图片图片2 分析从接口看,我们需要参数化的有参数有account和password;其他的几个请求参数可以相同,不用做处理。 3 JMeter参数化3.1 配置元件配置元件提供了参数化支持,如图:图片什么是参数化? 其实通俗的讲,我们在准备测试数据时,对若要求每次迭代的数据不一样时,则需进行参数化,然后从参数化的文件中来读取测试数据;这里我们参数化使用CSV Data Set Config元件。 3.2.2 界面参数图片参数说明名称 任意设置具有业务代表意义即可注释任意设置,可为空文件名(Filename) 引用文件地址,选择即可文件编码(File encoding) 读取参数文件用到的编码格式 ,建议UTF-8变量名称(Variable Names)参数名称,逗号隔开,与文件中的参数对应分隔符(Delimiter)用来分割参数,默认逗号,支持tab和\t是否允许带引号(Allow quoted
可能会影响性能,但是可以消除碎片 1.3辅助信息 JVM提供了大量命令行参数,打印信息,供调试使用。 2 参数详细说明 参数名称 含义 默认值 说明 -Xms 初始堆大小 物理内存的1/64(<1GB) 默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx -XX:TLABWasteTargetPercent TLAB占eden区的百分比 1% -XX:+CollectGen0First FullGC时是否先YGC false 并行收集器相关参数 参数名称 CMS相关参数 参数名称 含义 默认值 说明 -XX:+UseConcMarkSweepGC 使用CMS内存收集 测试中配置这个以后,-XX:NewRatio=4的配置失效了,原因不明.所以,此时年轻代大小最好用 增加这个参数是个好习惯。
基本原理 随机森林(Random Forest)基本原理参考:https://blog.csdn.net/hhtnan/article/details/54580994 参数 A. max_features 上面决策树参数中最重要的包括最大特征数max_features, 最大深度max_depth, 内部节点再划分所需最小样本数min_samples_split和叶子节点最少样本数min_samples_leaf
序 本文主要解析一下nginx ngx_http_proxy_module中的cache相关配置参数。 proxy_cache 名称 默认配置 作用域 官方说明 中文解读 模块 proxy_cache proxy_cache off; http, server, location Defines a shared 设置是否开启对后端响应的缓存,如果开启的话,参数值就是zone的名称,比如proxy_cache mycache ngx_http_proxy_module proxy_cache_valid 没有默认值 指定缓存存储的路径,文件名为cache key的md5值,然后多级目录的话,根据level参数来生成,比如levels=1:2:3,第一个目录名取md5值的倒数第一个值,第二个目录名取md5值的第2和3 个值,第三个目录名取md5值的第4,5,6个值;key_zone参数用来指定在共享内存中缓存的元数据的名称和内存大小,比如keys_zone=imgcache:100m,所有的缓存查找首先经过这里查找元数据
序 本文主要解析一下nginx http模块配置参数。主要分socket相关参数,对clinet请求的buffer参数以及对response的buffer参数。 socket 名称 默认配置 作用域 官方说明 中文解读 模块 sendfile sendfile off; http, server, location, if in location Enables ngx_http_core_module client buffer 名称 默认配置 作用域 官方说明 中文解读 模块 keepalive_timeout keepalive_timeout 75s; ngx_http_core_module proxy buffer 名称 默认配置 作用域 官方说明 中文解读 模块 proxy_buffering proxy_buffering on; http, #server_names_hash_max_size 1024; ##设置servers hash表的大小,默认512;如果配置了多个虚拟server,比如24个域名对应一个地址,则需要考虑改此参数
books.urls')), ] 从以上代码我们可以看到当我们访问127.0.0.1/books/时会匹配这条路径path('', views.page),路径会去执行视图函数page,由于我们没有在路径中传入参数那么默认值就是 当我们输入127.0.0.1/books/page/2/时,django会匹配path('page/<int:page>/', views.page),然后还是去执行视图函数page,由于这次我们传入了参数
前言 经过4次跳票,历经曲折的Java 9 终于终于在2017年9月21日发布。 可以说Java 9是一个庞大的系统工程,完全做了一个整体改变。 设计理念 即写即得、快速运行 实现目标 Java 9 中终于拥有了 REPL工具:jShell。 查看当前 session 下所有创建过的变量 查看当前 session 下所有创建过的方法 Tips:我们还可以重新定义相同方法名和参数列表的方法,即为对现有方法的修改(或覆盖)。 在Java 9中,接口更加的灵活和强大,连方法的访问权限修饰符都可 以声明为private的了,此时方法将不会成为你对外暴露的API的一部分。
n = n * 10 +m % 10; m/=10; } return n == x; } } 详细解读
在上一篇我们对Java 9的特性进行了一些回顾,今天接着来看看Java 10带来了什么特性。 局部变量类型推断 在Java 6时初始化一个Map需要我们这样来声明: Map<String, String> map = new HashMap<String,String>(); 事实上泛型方法的参数可以通过上下文推导出来 不过请注意,此特性仅适用于初始化局部变量,它不能用于成员变量、方法参数、返回类型等场景中。 ❝另一件要注意的事情是var 并不是Java中的关键字,这确保了Java的向后兼容性。 new ArrayList<>(); 如果我们需要明确集合中放的都是Apple就必须在右边显式声明: var apples = new ArrayList<Apple>(); 不可变集合 其实在Java 9中不可变集合已经得到了一些加强
System.in)){ //读取数据细节省略 }catch (IOException e){ e.printStackTrace(); } Java 9 Collections.unmodifiableSet(new HashSet<>(Arrays.asList("a", "b", "c"))); // 如下操作不适用于jdk 8 及之前版本,适用于jdk 9 3); } }); map.forEach((k, v) -> System.out.println(k + ":" + v)); Java 9因此引入了方便的方法 List firsnamesList = List.of(“Joe” , ”Bob” , ”Bill”);调用集合中静态方法of(),可以将不同数量的参数传输到此工厂方法中。
今天我们接着在Java 9 到 Java 17系列文章中来认识针对普通开发者的Java 11。 字符串API增强 在Java 11中,针对String的操作进一步得到加强。 NotNull var s) -> s.contains("11"))) .collect(Collectors.toList()); ❝如果我们不声明var就没有办法为输入参数添加
前言 经过4次跳票,历经曲折的Java 9 终于终于在2017年9月21日发布。 从Java 9 这个版本开始,Java 的计划发布周期是 6 个月,下一个 Java 的主版本将于 2018 年 3 月发布,命名为 Java 18.3,紧接着再过六个月将发布 Java18.9。 可以说Java 9是一个庞大的系统工程,完全做了一个整体改变。 要想在java9demo模块中调用java9test模块下包中的结构,需要在java9test的module-info.java中声明: module java9test { //package we 对应在java 9demo 模块的src 下创建module-info.java文件: module java9demo { requires java9test; } requires:
version>3.1.0</version> <scope>provided</scope> </dependency> /** * 可以使用Servlet 原生的API作为目标方法的参数
JVM常用参数 关于-XX:+printGCDetails 作用:输出详细GC收集日志信息(当配置了-XX:+printGCDetails,控制台就会打印GC收集信息) GC: 详细 youngGC日志信息解读 FullGC fullGC地址信息解读 -XX: SurvivorRatio(设置Eden区的比例占多少,SurvivorTo(S0)和SurvivorFrom(