草庐IT

Double-free

全部标签

java - Spring Boot Actuator 指标 mem 和 mem.free

在通过/metrics端点公开的SpringBoot指标中,mem和mem.free的含义是什么?我们正在对部署在三个节点上的新SpringBoot微服务进行负载测试,每个盒子的mem总是在VM总4G中的250M左右,mem.free在不切实际的负载,比如正常负载的100倍,可以降到15M,测试后慢慢恢复。它们不是堆内存,因为SpringBootMetrics单独报告它们并且它们不是Java进程本身,因为从命令行我可以看到无论负载有多大,它都保持在4G的16%,大约900MB。这是/metrics调用响应片段:{mem:227657,mem.free:44280,processors:

java - 使用原始 double 值初始化 Double 对象

当一个java.lang.Double对象在没有调用构造函数而是使用原语的情况下被初始化时会发生什么?它似乎有效,但我不太确定为什么。编译器是否正在进行某种隐式转换?这是使用Java5。publicclassFoo{publicstaticvoidmain(String[]args){Doubled=5.1;System.out.println(d.toString());}} 最佳答案 这叫做Autoboxing这是Java5中添加的一个特性。它会自动在基本类型和包装类型之间进行转换,例如double(基本类型)和java.lan

java - 在Java Map <Integer, Double[]>中,是否需要在获取和修改后放置Double[]?

一个可能很蹩脚的快速问题。在下面的代码中:MapdataMap=newMap();dataMap.put(1,newDouble[]{100,100});Double[]dob=dataMap.get(1);dob[0]=100;dob[1]=200;dataMap.put(1,dob);是否需要最后的“dataMap.put”指令?或者dataMap.get(1)会产生对数组的引用,然后在后面的语句中直接修改该数组。我知道,在可变对象(例如Map)的情况下,Map.get()会给我所需对象的引用,但是有一个Double数组(其元素类型例如Double是不可变的)我不确定我是否得到了对

java - 无法在基本类型 double 上调用 compareTo(double)

returnarray[index1].compareTo(array[index2]);行提供了一个错误“无法在基本类型double上调用compareTo(double)”。如何解决这个问题?/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*//*::Thisfunctionimplementsacomparatorofdoublevalues:*//*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/pr

java - 如何以最小增量改变 double

是什么东西坏了还是我不明白发生了什么?staticStringgetRealBinary(doubleval){longtmp=Double.doubleToLongBits(val);StringBuildersb=newStringBuilder();for(longn=64;--n>0;tmp>>=1)if((tmp&1)==0)sb.insert(0,('0'));elsesb.insert(0,('1'));sb.insert(0,'[').insert(2,"][").insert(16,"][").append(']');returnsb.toString();}publ

java - 从 double 中删除尾随零

如果数字没有,我想删除所有尾随零而不截断或四舍五入。例如,数字可能类似于12.0,在这种情况下,应删除尾随零。但这个数字也可能是几乎不合理的东西,比如12.9845927346958762...一直在屏幕边缘。有没有一种方法可以设置DecimalFormat或其他一些类来削减尾随零,同时保持不合理性不变? 最佳答案 如果您愿意切换到BigDecimal,则有一个#stripTrailingZeroes()实现此目的的方法。 关于java-从double中删除尾随零,我们在StackOve

java - Java 中有类似 malloc/free 的东西吗?

虽然我从未见过这样的语句,但它是否存在于java世界中? 最佳答案 malloc的Java版本是new--它创建指定类型的新对象。在Java中,内存是为您管理的,因此您不能显式删除或释放一个对象。 关于java-Java中有类似malloc/free的东西吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4404872/

java - 如何在 Java 中获取 Double 的最大最安全整数

考虑到Java的doubles是double-precisionfloating-point数字。并且不丢失精度的最大整数是9007199254740991或253-1是否有任何干净的方法来获取此值?例如,像JavaScript中的常量MAX_SAFE_INTEGER 最佳答案 有一个名为sun.misc.DoubleConsts的内部JDK类它有一些常量,您可以使用这些常量来生成您正在寻找的值,使用"accpetable"magicnumbers1和2,但它没有自己定义的数字。publicstaticlongMAX_SAFE_VA

基于可用 FREE cpu 的 Java 并发性

问题当且仅当有空闲CPU时,我如何扩展以使用更多线程?像ThreadPoolExecutor这样的东西,它在cpu核心空闲时使用更多线程,如果没有空闲则更少或只使用一个线程。用例现状:我的Java服务器应用程序处理请求并提供结果。有一个ThreadPoolExecutor以合理数量的最大线程为请求提供服务,遵循以下原则:cpu核心数=最大线程数。执行的工作是cpu繁重的,并且有一些磁盘IO(DB)。代码是线性的,单线程的。处理单个请求需要50到500毫秒。有时每分钟只有几个请求,有时同时有30个请求。具有12个内核的现代服务器可以很好地处理负载。吞吐量不错,延迟还可以。期望的改进:当请

java - 将浮点值分配给 double 值

我指的是this甲骨文文档。在尝试执行以下操作时,publicstaticvoidmain(Stringargs[]){floatf=1.1f;doubledf=1.1f;System.out.println("f="+f);System.out.println("df="+df);f=1.5f;df=1.5f;System.out.println("f="+f);System.out.println("df="+df);}输出是f=1.1df=1.100000023841858f=1.5df=1.5为什么第二行输出显示的是一个近似值。但不是第四行。如何计算该值?