Java的椭圆中的定点定值问题题

23:10 提问
JAVA类和类之间的赋值问题
建立下三个类(文件那种)
public class Dto {
public String getHehe() {
public void setHehe(String hehe) {
this.hehe =
public class R {
public void hehe() {
String test = "test";
Dto dto = new Dto();
dto.setHehe(test);
3.Main.java
public class Main {
public static void main(String[] args) {
R r = new R();
Dto dto = new Dto();
System.out.print(dto.getHehe());
最后想要的结果是test 但却是null,求解为什么和解决方案
按赞数排序
public class R {
public void hehe(dto) {
String test = "test";
dto.setHehe(test);
public class Main {
public static void main(String[] args) {
R r = new R();
Dto dto = new Dto();
r.hehe(dto);
System.out.print(dto.getHehe());
public class R {
public void hehe(Dto dto) {
String test = "test";
dto.setHehe(test);
还有一种写法,把hehe定义成static
R r = new R();
这个hehe你应该往里传值,;一般是这样,但是你把值写到hehe里了,
Dto dto = new Dto();
此dog 非hehe中的dog,等于又重新生出来一个
System.out.print(dto.getHehe());
最后,你想输出hehe里的dog 但其实生出来的是上面你new的,可不是空呗
Public void hehe()是无参不返回值的方法,变量r指向的引用对象调用的hehe()方法无返回值,那么公共成员变量hehe jiu 没有被初始化,值就是为空,所以结果是null,我是这样理解的,多多指教
Dto 虽然名字是一样的,但是他是两个对象,在R中的Dto 对象中给hehe 赋值, 然后再mian() 中的 Dto这个对象中是获取不到的。 要么把对象传递过去,要么把hehe 设置成静态的。
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐&>&分析java的传值问题
分析java的传值问题
上传大小:2KB
java传参问题,通过对原始类型的传参和对应用类型的传参分析java的传值问题
综合评分:0
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
综合评分:
积分/C币:3
综合评分:
积分/C币:3
rose_marry
综合评分:
积分/C币:3
zhong_qm2331
综合评分:
积分/C币:0
综合评分:
积分/C币:3
综合评分:
积分/C币:0
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:5
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
分析java的传值问题
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
luochao5700
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
分析java的传值问题用java做的两个系统之间的数据库同步问题
用java做了两个系统,用户在一个系统中上报了数据,如何同步到另一个系统中,前提:数据库端口是不对外开放的,数据量也很大
另外个系统提供webService接口
--- 共有 1 条评论 ---
现在想的就是用webservice,就是数据量大,不知道会有影响不
用数据库同步
用binlog吧
数据库同步,常用数据库,都支持数据库级别的同步了。
--- 共有 3 条评论 ---
: 存到库中,供页面查询,不需要及时同步的
: 问一下,同步到另外一个系统中,仅仅是做存储,还是做查询什么的?另外一个系统对时效性的要求是什么样的?
数据库有的是mysql,有的是SqlServer,库是不确定的
不建议在数据库层面上动手脚。
可以采用消息队列这样轻量级的方式,例如ActiveMQ。然后交给应用自己去做、避免强耦合。
如果能改造上报系统就简单了,直接在上报了数据的时候给另外一个库中搞一份,可以WS,JSON,网络,DB各种方式。不谢,感觉对了给分就行。
将数据封装成xml上传到文件服务器指定目录中,另外一个系统监控读取该目录下文件。
或使用消息中间件RabbitMQ \ActiveMQ
让产生数据的系统提供借口 不然自己写也行 然后数据直接扒过来就行了
量大的话,肯定要走中间件了吧。kafka也不错的。成为Java GC专家(5)—Java性能调优原则 - ImportNew
| 分类: ,
| 标签: ,
这是“”系列的第五篇文章。在第一篇中,我们已经学习了不同的GC算法流程、GC的工作原理、新生代(Young Generation)和老年代(Old Generation)的概念。你应该了解了JDK7中5种GC类型以及各种类型对应用程序的影响。
在第二篇中,阐述了是怎样实际执行垃圾回收的,我们怎样去监控GC以及哪些工具能让这个过程更高效。
第三篇中展示了一些基于真实案例的最佳实践。同时讲解了怎样尽量少地将对象放入老年代空间(Old Area),避免频繁地执行完全垃圾回收(Full GC)。还说明了如何设置GC的类型和内存大小。
在第四篇中,解释了MaxClients参数的重要性以及它在垃圾回收过程中对整个系统性能的显著影响。
第五篇文章将讲解Java程序性能调优的原则,尤其是在这个过程中必要的知识以及判断你的程序是否需要调优。还会介绍调优过程中你可能遇到的问题。本文最后会给出一些建议,依据这些你能在对Java程序调优时做出更好的决策。
并不是每个程序都需要调优。如果一个程序性能表现和预期一样,你不必付出额外的精力去提高它的性能。然而,在程序调试完成之后,很难马上就满足它的性能需求,于是就有了调优这项工作。无论哪种编程语言,对应用程序进行调优都需要丰富的技术知识并且注意力高度集中。另外,你也不应该用相同的方式对两个程序调优,因为每个程序都有它自己独特的运作方式和不同的资源使用方式。正因如此,调优比写程序需要更多基础知识。例如,你需要熟悉虚拟机、操作系统和计算机架构。而当你面对在这些知识基础上编写的程序时,就能成功地对它进行调优。
有时调优Java程序只需要修改JVM参数,比如GC的参数。但也有些时候需要修改程序代码。无论那种方法,你首先都需要监控执行Java程序的进程。因此本文会讲解下面几个问题:
怎样监控Java程序?
应该给JVM设置怎样的参数?
如何确定是否需要修改代码?
对Java程序进行调优的必要知识
Java程序在Java虚拟机中运行。因此为了进行调优,你需要理解JVM的工作流程。我之前有一篇博文,将让你对JVM有深入的了解。
本文中有关JVM运作过程的知识主要关于GC和Hotspot。尽管只有这两方面的知识可能无法对所有的Java程序进行调优,但是这两个因素在大多数情况下都影响着Java程序的性能。
值得注意的是,从操作系统的角度来看,JVM也是一个应用程序进程。为了给JVM创造良好的运行环境,你还需要对操作系统分配资源的过程有所了解。这意味着,想要调优Java程序,除了JVM你也应该理解操作系统或者硬件的工作方式。
需要具有的知识还有Java这门语言本身。另外理解锁和并发、类加载和对象创建都是非常重要的。
当开始调优Java程序时,你应该整合以上各方面的知识来完成工作。
Java程序性能调优的过程
图1是一张Java程序性能调优的流程图,摘自由Charlie Hunt和Binu John所著的Java Performance。
图1:Java程序性能调优的过程
JVM分布式模型
JVM分布式模型用于决定是在一个JVM还是多个JVM上执行Java程序。你可以根据其有效性、响应能力和可维护性来进行选择。当在多台服务器上运行JVM时,你也可以选择将多个JVM运行于一台服务器或者每台服务器运行一个JVM。例如,对于每台服务器,你可以运行一个使用8GB堆内存的JVM,也可以运行4个使用2GB的JVM。你理应根据处理器内核的个数还有程序的特性来决定这个数量。当优先考虑响应能力时, 使用2GB的堆内存会优于8GB的,原因是这样能在更短的时间内完成Full GC。当然,8GB的堆内存可以降低Full GC的频率。如果你的程序使用了内部缓存,还可以通过增加缓存命中率来提高响应能力。综上所述,选择合适的模型需要考虑应用程序的特性,然后在各种模型中 选定一个能够扬长避短的。
选择JVM其实就是决定使用32位还是64位的JVM。在相同的条件下,你最好用32位的。因为32位的JVM比64位性能更好。然而,32位 JVM最大支持的堆内存是4GB(无论在32位操作系统还是64位的上,实际可分配的大小都只有2-3GB)。如果需要更大的堆内存,还是用64位的 JVM比较合适。
表1:性能比较()
时间(秒)
Java 64-bit
Java 32-bit
Java 32-bit GC*
Java 32-bit SPEC GC*
Scala low-level*
Scala low-level GC*
下一步就是运行程序来测试它的性能。这个过程包括GC调优、改变操作系统设置和修改代码。对于这些工作,你可以使用系统监视工具或者性能分析工具。
注意:针对响应能力的调优和针对吞吐量的调优可能使用不同的方法。如果经常性地发生(串行GC暂时中断程序执行),程序的响应能力就会被降低。比如在高吞吐量时执行Full GC。不要忘记,在调优时往往有得有失。这样需要折衷处理的事情不仅发生在响应能力和吞吐量之间。例如使用更多的CPU资源来降低内存的使用,或者不得不忍受响应能力和吞吐量其中一个性能指标的下降。相反的情况同样可能发生,实际的调优应该根据各指标的优先级来执行。
上面图1中的流程展示了几乎可用于所有Java程序的性能调优过程,包括Swing应用。然而,对于我们公司用于提供网络服务的服务器端程序来说,这个方法多少有些不合适。下面图2中的流程是根据图1修改而来,它更简单,也更适合NHN。
图2:对HNH的Java程序的调优过程
其中,Select JVM表示尽可能使用32位的JVM,除非你需要用64位的JVM来维护一个数GB的缓存。
现在,跟随图2中的流程,你会了解到每一步具体的工作。
我会主要讲解如何为Web服务端程序设置合适的JVM参数。尽管不一定适合所有的案例,但是最好的GC算法是(CMS垃圾回收),特别是对于Web服务端程序。因为低延迟是非常重要的。当然,在使用CMS时,由于新生代空间(New Area)的分配,可能发生较长时间的stop-the-world现象,不过调整新生代空间的大小或者它和整个堆空间的比例可能解决这个问题。
指定新生代空间的大小和指定整个对堆内存的大小同样重要。你最好使用–XX:NewRatio来指定新生代和整个堆的大小比例,或者直接用–XX:NewSize来指定所需的新生代空间。这个配置是非常必要的,因为大部分对象都不会存活很久。在Web程序中,除了缓存数据,其他多数对象都只在HttpRequest到HttpResponse期间创建。这个时间几乎不会超过1秒,表示这些对象的存活时间也不会超过1秒。如果新生代空间不够大,对象会被转移到老年代空间,以便腾出地方给新对象使用。老年代空间(Old Area)垃圾回收的代价是比新生代空间大的多的,因此很需要设置一个充足的新生代空间。
然而,当新生代空间的大小超过一个特定的水平,程序的响应能力会被降低。因为新生代空间的垃圾回收过程,基本上是将数据从一个Survivor Area复制到另外一个(From Space和To Space)。另外,stop-the-world的现象在新生代空间和老年代空间执行垃圾回收时都会发生。如果新生代空间变大,那么Survivor Area的空间也会更大,于是每次复制的数据就更多。基于这样一种特性,我们应该通过指定不同操作系统中HotSpot JVM的NewRatio参数来分配合适大小的新生代空间。
表2:不同操作系统和配置下NewRatio的默认值
操作系统及参数
默认-XX:NewRatio
Sparc -server
Sparc -client
x86 -server
x86 -client
如果设置了NewRatio,那么整个堆空间的1/(NewRatio +1)就是新生代空间的大小。上表可以看出Sparc -server的NewRatio默认值很小,因为相比x86的操作系统,Sparc以前更多用于高端应用,这个值就是为它们设置的。但现在x86操作系统的性能有很大提升,使用它们作为服务器已经很普遍了。因此指定NewRatio为2或者3是更好的选择,就和Sparc -server上的配置一样。
另外,你还可以通过指定NewSize和MaxNewSize来代替NewRatio。那么新生代空间创建时的大小就是指定的NewSize,随后可以一直增长到MaxNewSize的值。Eden(新创建对象存放的区域)和Survivor Area两个区域会随比例增加。就和你为-Xms(译者注:原文是-Xs,应该是笔误)和-Xmx设置相同的值一样,将MaxSize和 MaxNewSize设置为相同的也是一个好选择。
如果同时指定了NewRatio和NewSize,你应该使用更大的那个。于是,当堆空间被创建时,你可以用过下面的表达式计算初始新生代空间的大小:
min(MaxNewSize, max(NewSize, heap/(NewRatio+1)))
无论如何,仅通过一次尝试就找到合适的堆空间和新生代空间大小是不可能的。根据我在NHN运行Web服务器的经验,建议使用下面的JVM参数来运行Java程序。监控在这些参数的条件下程序的性能表现之后,你就能够选择更合适的GC算法或者配置。
表3:推荐的JVM参数
整个堆内存大小
为-Xms和-Xmx设置相同的值。
新生代空间大小
-XX:NewRatio: 2到4. -XX:NewSize=? –XX:MaxNewSize=?. 使用NewSize代替NewRatio也是可以的。
持久代空间大小
-XX:PermSize=256m -XX:MaxPermSize=256m. 设置一个在运行中不会出现问题的值即可,这个参数不影响性能。
-Xloggc:$CATALINA_BASE/logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps. 记录GC日志并不会特别地影响Java程序性能,推荐你尽可能记录日志。
-XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75. 一般来说推荐使用这些配置,但是根据程序不同的特性,其他的也有可能更好。
发生OOM时创建堆内存转储文件
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$CATALINA_BASE/logs
发生OOM后的操作
-XX:OnOutOfMemoryError=$CATALINA_HOME/bin/stop.sh 或 -XX:OnOutOfMemoryError=$CATALINA_HOME/bin/restart.sh. 记录内存转储文件后,为了管理的需要执行一个合适的操作。
测定程序的性能
为了得到程序的性能表现,需要以下这些信息:
系统吞吐量(TPS、OPS):从整体概念上理解程序的性能。
每秒请求数(Request Per Second – RPS):严格来说,RPS和单纯的响应能力是不同的,但是你可以把它理解为响应能力。通过这个指标,你能够了解到用户需要多长时间才能得到请求的结果。
RPS的标准差:如果可能的话,还有必要包括事件的RPS。一旦出现了偏差,你应该检查GC或者网络系统。
为了得到更准确的性能表现,你应该等到程序彻底启动完成后再进行测量,因为字节码随后会被HotSpot JIT编译为本地机器码。总体来说,需要在程序加载完指定功能后,用等工具测试至少10分钟。
切实地调优
如果nGrinder测试的结果满足了预期,那么你不需要对程序进行性能调优。如果没有达到预期结果,你就应该执行调优来解决问题。接下来会通过实例讲解方法。
stop-the-world耗时过长
stop-the-world耗时过长可能是由于GC参数不合理或者代码实现不正确。你可以通过分析工具或堆内存转储文件(Heap dump)来定位问题,比如检查堆内存中对象的类型和数量。如果在其中找到了很多不必要的对象,那么最好去改进代码。如果没有发现创建对象的过程中有特别的问题,那么最好单纯地修改GC参数。
为了适当地调整GC参数,你需要获取一段足够长时间的GC日志,还必须知道哪些情况会导致长时间的stop-the-world。想了解更多关于如何选择合适的GC参数,可以阅读我同事的一篇博文:。
CPU使用率过低
当系统发生阻塞,吞吐量和CPU使用率都会降低。这可能是由于网络系统或者并发的问题。为了解决这个问题,你可以分析线程转储信息(Thread dump)或者使用分析工具。阅读这篇文章可以获得更多关于线程转储分析的知识:。
你可以使用商业的分析工具对线程锁进行精确的分析,不过大部分时候,只需使用JVisualVM中的CPU分析器,就能获得足够的信息。
CPU使用率过高
如果吞吐量很低但是CPU使用率却很高,很可能是低效率代码导致的。这种情况下,你应该使用分析工具定位代码中性能的瓶颈。可使用的工具有:JVisualVM、Eclipse TPTP或者JProbe。
建议你使用如下方法对程序进行调优。
首先,检查性能调优是否必要。测量性能不是一件简单的工作,你也不能保证每次都获得满意的结果。因此如果程序已经满足预期性能需求,不必在调优上增加额外的投入了。
问题只出在一个地方,你要做的就是去解决掉它。二八定律()对性能调优同样适用。这不是说某个模块的低性能一定只源于一个问题,而是强调我们应该在调优时把注意力放在影响最大的那个问题上。在处理好了最重要的之后,你才应该去解决剩下其他的。也就是建议一次只对一个问题进行修复。
另外需要考虑到气球效应(),有得必有失。你可以通过使用缓存来提高响应能力,但是当缓存逐渐增大,执行一次Full GC的时间也会更长。一般而言,如果你希望内存使用率比较低,那么吞吐量和响应能力可能都会恶化。因此,要知道什么对自己程序来说最重要的,而哪些又是次要的。
到此为止,你应该已经了解了如何对Java程序进行性能调优。为了介绍性能测定的具体过程,我不得不省略其中一些细节,不过我认为这些也足够应对大多数Java Web服务端程序了。
最后祝调优好运!
原文链接:
- 译文链接: [ 转载请保留原文出处、译者和译文链接。]
关于作者:
Coding for love, coding for fun.
(新浪微博:)
非常nice~~~
关于ImportNew
ImportNew 专注于 Java 技术分享。于日 11:11正式上线。是的,这是一个很特别的时刻 :)
ImportNew 由两个 Java 关键字 import 和 new 组成,意指:Java 开发者学习新知识的网站。 import 可认为是学习和吸收, new 则可认为是新知识、新技术圈子和新朋友……
新浪微博:
推荐微信号
反馈建议:ImportNew.
广告与商务合作QQ:
– 好的话题、有启发的回复、值得信赖的圈子
– 写了文章?看干货?去头条!
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 活跃 & 专业的翻译小组
– 国内外的精选博客文章
– UI,网页,交互和用户体验
– JavaScript, HTML5, CSS
– 专注Android技术分享
– 专注iOS技术分享
– 专注Java技术分享
– 专注Python技术分享
& 2018 ImportNewJAVA大数值问题总结
大数值问题:
如果基本的整数(如:int、long)和浮点数的精度不狗满足需求时,那么就可以用java.math包中的两个类BigInteger(任意精度的整数)和BigDecimal(任意精度的浮点数).
这两个类可以实现人一次长度数字的数值
BigInteger a = BigInteger.valueOf(100);//把100转换为大数类型的整数使用valueOf()方法可以将普通的数值转化为大数
那么接下来,怎么用大数实现数值运算呢?
在JAVA中提供加法方法就是:
BigInteger sum = a.add(b);//c = a +BigInteger ji = a.multiply(b.add(BigInteger.valueOf(2)));//ji = a * ( b + 2)
和C++不同,java只提供了字符串的连接,重载了+运算符,java没有提供运算符的重载功能,也没有给java程序员在自己的类中写运算符重载的机会。
计算组合数:
c = c.multiply(BigInteger.valueOf(n-i+1).pide(BigInteger.valueOf(i)));//(n-i+1)/i/**
有n个球,一手可以抓m个,问有多少抓取方式,n以0输入结束
应用java.math包中的BigInteger类
运用a.multiply(b)得出a*b积
import java.math.BigI
import java.util.S
public class Main
public static void main(String[] args)
Scanner in = new Scanner(System.in);
int n = 1,m;//求C(m,n)的组合数
while(0!=n)
n = in.nextInt();
m = in.nextInt();
BigInteger c = BigInteger.valueOf(1);
for(int i = 1;i<=m;i++)
c = c.multiply(BigInteger.valueOf(n-i+1)).pide(BigInteger.valueOf(i));
System.out.println(c);
BigInteger:
//BigInteger add(BigInteger it)// 求和
//BigInteger subtract(BigInteger it) //求差
//BigInteger multiply(BigInteger it) //求积
//BigInteger pide(BigInteger it) //求商
//BigInteger mod(BigInteger it) //求模
//int compareTo (BigInteger it) //用于判断两个大数的大小,该大数与另一个大数it相等,返回0,小于,返回负,大于返回正
//static BigInteger.valueOf(long x)
static BigInteger valueOf(long xx)//返回值 等于xx 的大整数
BigDecimal:
BigDecimal add(BigDecimal it)// 求和
BigDecimal subtract(BigDecimal it) //求差
BigDecimal multiply(BigDecimal it) //求积
BigDecimal mod(BigDecimal it) //求模
BigDecimal pide(BigDecimal it RoundingMode mode)5.0//四舍五入
想要计算必须要给出舍入方式,至于其他的舍入方式可以参考API文档
static BigDecimal valueOf(long x) //返回值等于x的大实数
static BigDecimal valueOf(long x,int k)//返回值为 x/(10的k次方)的大实数

我要回帖

更多关于 二次函数的最值问题 的文章

 

随机推荐