草庐IT

Java从构造函数调用构造函数

我有一个构造函数privateDoublemA;privateDoublemB;Foo(Doublea){mA=a;mB=a+10;}Foo(Doublea,Doubleb){mA=a;mB=b;//somelogichere}如果我像这样调用第二个构造函数:Foo(Doublea){Doubleb=a+10;this(a,b);}编译器告诉我,构造函数应该是第一个语句。那么我是否需要将所有逻辑从第二个构造函数复制到第一个构造函数? 最佳答案 为什么不直接执行this(a,a+10)呢?请注意,this()或super()必须是构造

java - 如何计算物体自由落体 10 秒后的位置

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭7年前。Improvethisquestion我得到了这个基本代码:publicclassGravityCalculator{publicstaticvoidmain(String[]args){doublegravity=-9.81;//Earth'sgravityinm/s^2doubleinitialVelocity=0.0;double

Java 错误 - "invalid method declaration; return type required"

我们现在正在学习如何在Java中使用多个类,并且有一个项目要求创建一个包含radius的类Circlecode>和diameter,然后从主类中引用它来查找直径。此代码继续收到错误(标题中提到)publicclassCircle{publicCircleR(doubler){radius=r;}publicdiameter(){doubled=radius*2;returnd;}}感谢您的帮助,-AJ更新1:好的,但我不应该将第三行publicCircleR(doubler)声明为double,对吧?在我正在学习的书中,示例没有这样做。publicclassCircle{//Thisp

java - 整数中的字母。这些是什么?

这是我在Java中使用的一个类的代码摘录(如下)。显然,代码定义了一个名为EPSILON的静态变量,数据类型为double。我不明白的是“1E-14”部分。那是什么数字?什么意思?最终双EPSILON=1E-14; 最佳答案 在您的情况下,这等同于编写:finaldoubleEPSILON=0.00000000000001;除了你不必数零。这叫做scientificnotation并且在编写非常大或非常小的数字时很有帮助。 关于java-整数中的字母。这些是什么?,我们在StackOve

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

java - 如何删除字符串值中的尾随零并删除小数点

这个问题在这里已经有了答案:Howtonicelyformatfloatingnumberstostringwithoutunnecessarydecimal0's(28个答案)关闭8年前。如果字符串在小数点后仅包含零,如何删除字符串值中的尾随零并删除小数点?我正在使用以下代码:Stringstring1=Double.valueOf(a).toString()这会删除(10.10和10.2270)中的尾随零,但我没有得到第一个和第二个输入的预期结果。输入10.010.0010.1010.2270预期输出101010.110.227

java - 正弦的多项式逼近中的这些系数是如何确定的?

背景:我正在用Java编写一些几何软件。我需要Java的BigDecimal类提供的精度。由于BigDecimal不支持三角函数,我想我应该看看Java如何实现标准数学库方法并编写我自己的支持BigDecimal的版本。阅读thisJavaDoc,我了解到Java使用的算法“来自著名的网络库netlib作为包”自由分发数学库”fdlibm。这些算法是用C编程语言编写的,然后可以理解为以所有float执行-遵循Java浮点运算规则的点运算。”我的问题:我查找了fblibm的sin函数,k_sin.c,看起来他们使用13阶泰勒级数来近似正弦(编辑-njuffa评论说fdlibm使用极小极大

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为什么第二行输出显示的是一个近似值。但不是第四行。如何计算该值?

Java 光线追踪 float 与 double

上学期我们不得不为学校的一门类(class)开发光线追踪器。学校快结束了,我试着摆弄一下。我想看看如果我将所有浮点计算从double更改为float(所有计算均使用double完成)会发生什么变化。所以我将每个变量都更改为float类型,并将Math方法返回的每个double简单地转换为float。在几个场景上测试我的光线追踪器显示出相当不错的性能提升。在网络上搜索后,我发现了float可以更快的各种原因,但也有人说double可以同样快,甚至在64位环境中更快。问题是,我在64位环境和JVM中运行。性能提高的原因是什么?现在,我正在阅读PBRT书籍,并计划在此之后从头开始重写光线追踪

java - 如何将 lambda 参数转换为可用对象?

我正在尝试将double列表流式传输到Map中,其中键是原始列表中的double值,值是一些计算值。我的代码是这样的://"values"isaListthatwaspassedinImmutableMapvalueMap=values.parallelStream().collect(Collectors.toMap(p->p,p->doThing(values,p)));privateDoubledoThing(List,Doublep){DoublecomputedValue=0.0;//DomathherewithpreturncomputedValue;}但是,Intelli