年龄

JVM进入老年代情况

我怕爱的太早我们不能终老 提交于 2019-12-01 15:57:04
1.躲过15次GC之后进入老年代 默认的设置下,当对象的年龄达到15岁的时候,也就是躲过15次Gc的时候,他就会转移到老年代中去 这个具体是多少岁进入老年代,可以通过JVM参数 “-XX:MaxTenuringThreshold”来设置,默认情况是15岁 2.动态对象年龄判断 假如说当前放对象的Survivor区域里一批对象的总大小大于了这块Survivor区域的内存大小的50%,那么此时大于等于这批对象年龄的对象,就可以直接进入老年代了 另外我们要理清楚一个概念,这个实际这个规则运行的时候是如下的逻辑:年龄1+年龄2+年龄n的多个年龄对象总和超过了Survivor区域的50%,此时就会把年龄n以上的对象都放入老年代 在没有回收的情况下 所有对象存活着 比如说一块s区块 100M 如果第一次有20M 不到老年代 第二次来了51M存活 如果之前的20M全部存活,那么这51M和20M将全部到老年代 另外一种情况 在这3次的对象都持续引用,不能回收的情况下,比如说一块s区块 100M 如果第一次有10M 不到老年代 第二次20M 第三次 31M 那么就会由于20+31>50了 那么第一次的10M就会到老年代了。 3.大对象直接进入老年代 有一个JvM参数,就是 -XX:PretenureSizeThreshold“,可以把他的值设置为字节数,比如“1048576”,就是1M

GBDT

£可爱£侵袭症+ 提交于 2019-11-30 10:39:34
转自: https://blog.csdn.net/zpalyq110/article/details/79527653 【尊重原创,转载请注明出处】 http://blog.csdn.net/zpalyq110/article/details/79527653 写在前面: 去年学习GBDT之初,为了加强对算法的理解,整理了一篇笔记形式的文章,发出去之后发现阅读量越来越多,渐渐也有了评论,评论中大多指出来了笔者理解或者编辑的错误,故重新编辑一版文章,内容更加翔实,并且在GitHub上实现了和本文一致的GBDT简易版(包括回归、二分类、多分类以及可视化),供大家交流探讨。感谢各位的点赞和评论,希望继续指出错误~    Github: https://github.com/Freemanzxp/GBDT_Simple_Tutorial 简介:   GBDT 的全称是 Gradient Boosting Decision Tree,梯度提升树,在传统机器学习算法中,GBDT算的上TOP3的算法。想要理解GBDT的真正意义,那就必须理解GBDT中的Gradient Boosting 和Decision Tree分别是什么? 1. Decision Tree:CART回归树   首先,GBDT使用的决策树是CART回归树,无论是处理回归问题还是二分类以及多分类

java8对集合的处理

限于喜欢 提交于 2019-11-29 00:04:28
public static void main(String[] args) { List<Student> list = Lists.newArrayList(); list.add(new Student("测试", "男", 18)); list.add(new Student("开发", "男", 20)); list.add(new Student("运维", "女", 19)); list.add(new Student("DBA", "女", 22)); list.add(new Student("运营", "男", 24)); list.add(new Student("产品", "女", 21)); list.add(new Student("经理", "女", 25)); list.add(new Student("产品", "女", 21)); //求性别为男的学生集合 List<Student> l1 = list.stream().filter(student -> student.sex.equals("男")).collect(toList()); //map的key值true为男,false为女的集合 Map<Boolean, List<Student>> map = list.stream().collect(partitioningBy