开发经验_2014/11/13

本文详细解析了Java编程中遇到的三个常见错误:UnsupportedClassVersionError、Non-terminating decimal expansion以及divide函数使用时的小数模式选择。通过实例代码演示了解决这些问题的方法,帮助开发者更好地理解和解决Java编程过程中的常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.java.lang.UnsupportedClassVersionError的错误

编译器编译版本


2.Non-terminating decimal expansion; no exact representable decimal result

其实devide的函数定义如下
BigDecimal.divide(BigDecimal divisor, int scale, RoundingMode roundingMode) ;
scale为小数位数;
roundingMode为小数模式;
ROUND_CEILING
如果 BigDecimal 是正的,则做 ROUND_UP 操作;如果为负,则做 ROUND_DOWN 操作。
ROUND_DOWN
从不在舍弃(即截断)的小数之前增加数字。
ROUND_FLOOR
如果 BigDecimal 为正,则作 ROUND_UP ;如果为负,则作 ROUND_DOWN 。
ROUND_HALF_DOWN
若舍弃部分> .5,则作 ROUND_UP;否则,作 ROUND_DOWN 。
ROUND_HALF_EVEN
如果舍弃部分左边的数字为奇数,则作 ROUND_HALF_UP ;如果它为偶数,则作 ROUND_HALF_DOWN 。
ROUND_HALF_UP
若舍弃部分>=.5,则作 ROUND_UP ;否则,作 ROUND_DOWN 。
ROUND_UNNECESSARY
该“伪舍入模式”实际是指明所要求的操作必须是精确的,,因此不需要舍入操作。
ROUND_UP
总是在非 0 舍弃小数(即截断)之前增加数字。

写成如下便可通过
BigDecimal num3 = num1.divide(num2,10,ROUND_HALF_DOWN);


3.


Modules linked in: halob_drv(OE) tls tcp_diag inet_diag xt_tcpudp xt_MASQUERADE nft_compat nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nf_tables nfnetlink sctp ip6_udp_tunnel udp_tunnel libcrc32c binfmt_misc nls_iso8859_1 kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul polyval_clmulni polyval_generic ghash_clmulni_intel sha512_ssse3 aesni_intel crypto_simd cryptd virtio_gpu virtio_dma_buf drm_shmem_helper joydev input_leds drm_kms_helper syscopyarea serio_raw sysfillrect sysimgblt sch_fq_codel ipmi_devintf ipmi_msghandler msr parport_pc ppdev lp parport drm efi_pstore ip_tables x_tables autofs4 hid_generic usbhid hid i40e psmouse virtio_net net_failover failover floppy [last unloaded: halob_drv(OE)] [3354475.147613] CPU: 7 PID: 2104999 Comm: kworker/7:0 Kdump: loaded Tainted: G W OE 6.2.0-36-generic #37~22.04.1-Ubuntu [3354475.147616] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014 [3354475.147619] Workqueue: i40e i40e_service_task [i40e] [3354475.147643] RIP: 0010:i40e_setup_tx_descriptors+0xa8/0xf0 [i40e] [3354475.147672] Code: c0 74 35 c7 43 50 00 00 00 00 31 c0 c7 83 a0 00 00 00 ff ff ff ff 5b 41 5c 5d 31 d2 31 c9 31 f6 31 ff 45 31 c0 c3 cc cc cc cc <0f> 0b e9 78 ff ff ff b8 f4 ff ff ff eb de 8b 93 a8 00 00 00 48 c7 [3354475.147675] RSP: 0018:ffff97da83bc7cc8 EFLAGS: 00010286 [3354475.147677] RAX: ffff89d4cdd92600 RBX: ffff89d4cba93400 RCX: 0000000000000000 [3354475.147682] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff89d4cba93400 [3354475.147684] RBP: ffff97da83bc7cd8 R08: 0000000000000000 R09: 0000000000000000 [3354475.147685] R10: 0000000000000000 R11: 0000000000000000 R12: ffff89d4c1cf50d0 [3354475.147687] R13: ffff89d4cba8a000 R14: ffff89d4cba8e000 R15: ffff89d4cba8e000 [3354475.147689] FS: 0000000000000000(0000) GS:ffff89ddd77c0000(0000) knlGS:0000000000000000 [3354475.147691] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [3354475.147693] CR2: 00007fc0d3e83000 CR3: 0000000218bd4004 CR4: 0000000000770ee0 [3354475.147698] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [3354475.147699] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [3354475.147701] PKRU: 55555554 [3354475.147702] Call Trace: [3354475.147708] <TASK> [3354475.147725] ? show_regs+0x72/0x90 [3354475.147761] ? i40e_setup_tx_descriptors+0xa8/0xf0 [i40e] [3354475.147786] ? __warn+0x8d/0x160 [3354475.147802] ? i40e_setup_tx_descriptors+0xa8/0xf0 [i40e] [3354475.147836] ? report_bug+0x1bb/0x1d0 [3354475.147863] ? handle_bug+0x46/0x90 [3354475.147882] ? exc_invalid_op+0x19/0x80 [3354475.147885] ? asm_exc_invalid_op+0x1b/0x20 [3354475.147903] ? i40e_setup_tx_descriptors+0xa8/0xf0 [i40e] [3354475.147928] i40e_vsi_open+0x5c/0x320 [i40e] [3354475.147951] i40e_open+0x62/0x130 [i40e] [3354475.147974] i40e_unquiesce_vsi+0x35/0x70 [i40e] [3354475.147995] i40e_rebuild+0x640/0x9c0 [i40e] [3354475.148017] ? i40e_pf_reset+0x10a/0x2a0 [i40e] [3354475.148042] i40e_reset_and_rebuild+0x5c/0x70 [i40e] [3354475.148063] i40e_do_reset+0x160/0x280 [i40e] [3354475.148085] i40e_reset_subtask+0x11d/0x120 [i40e] [3354475.148107] i40e_service_task+0xe0/0x190 [i40e] [3354475.148129] process_one_work+0x21c/0x440 [3354475.148139] worker_thread+0x50/0x3f0 [3354475.148143] ? __pfx_worker_thread+0x10/0x10 [3354475.148145] kthread+0xeb/0x120 [3354475.148155] ? __pfx_kthread+0x10/0x10 [3354475.148159] ret_from_fork+0x29/0x50 [3354475.148172] </TASK> [3354475.148173] ---[ end trace 0000000000000000 ]--- [3354475.148206] ------------[ cut here ]------------ 这是什么内核挂死信息?
最新发布
06-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值