JAVA中,% == && || Math.sqrt(x) Math.pow Math.floor(x) Math.round(x)各是什么意思?非常急?
%是取余,比如13 % 5 结果是 3
== 是判断两个对象是否相等
&& 表示且,通常用作if语句中,表示同时满足&&两边的条件
Math.sqrt(x)表示对x进行开方
Math.pow(x,0.5)表示x的0.5次方
Math.floor(x)表示向下取整计算,返回的是小于或等于函数参数,并且与之最接近的整数
Math.round(x)表示把一个数字舍入为最接近的整数,也就是基本的四舍五入
希望我的回答对你有所帮助
为什么军工行业不用java,而是选择继续用c++?
某语言天天喊着人多势众就觉得要一统天下了。其实某语言只在单位的审批流,电商这些这些请求延迟应用需求是几秒级别的应用场景。对于实时性要求高,可靠性要求高的环境。某语言基本绝迹。这表现在车床控制,武器控制,医疗设备,甚至绝大多数3D游戏。某语言基本是绝迹的。
首先是安全问题。
Java是一个庞大的生态。在jvm(java的运行虚拟机)这个大基础之上还有无数框架、中间件。比如springboot、kafka等等。这里面99%的代码贡献者都是老外。庞大的代码量和复杂的设计体系使得即使开源的项目,要隐藏一些后门都是极为容易的事情。与之相反,想要找出这些后门难如登天(做过软件开发的人就知道,自己亲手写的代码,项目一旦变得庞大,想要找出特定场景才出现的BUG有多难)。开源的项目的风险都不可控,不开源的部分就更不用讲了。因此,Java生态体系无法达到军工要求的安全级别,项目中每一个第三方都可能成为风险源。Jvm能不能保证安全都还是一个巨大的问题。
其次是稳定性问题。
得益于Java生态的完善,有大量的框架的组件可以使用,就使得在Java上做任何项目,程序员第一件事就是想找有无可用的现成框架或者组件,自己动手写一些复杂的算法必要性越来越低,底层能力越来越差,至少90%的java程序员是胶水程序员,负责组合各种第三方,然后做一些简单的业务逻辑。第三方的框架和组件的代码质量和可靠性无法评估。大量使用框架带来的问题就是臃肿,框架为了追求更广泛的适用性,会做很多兼容和妥协。极端情况下C++的程序只要几KB大小就能实现的功能,java得带上Jvm不说,打包个就可能几十MB。套用一句真理:代码量越大,稳定性越差。
再次是C++的优点。
C++可以开发最低层的应用,例如直接和硬件打交道的驱动,几乎没有不可以实现的功能。用C++做开发最大的问题是,可以用的现成东西比较少,凡是想要做啥功能都要自己动手。开发界有一句古话“不要重复造轮子”,但是C++就是造轮子的工具,所以用C++开发就得自己造轮子。相当于工业母机床,想造什么都根据需要来实现。从国家安全的角度考虑,军工信息化应该有自己的一套生态。这一套生态环境应该是封闭的,由军工人一代一代累积下来的。
综上,个人认为,军工不可能淘汰C++,随着军工信息化生态的完善,被淘汰的更有可能是Java。当然,这个过程最难的就是人材的培养,越封闭的系统,人材越难得。