java 运算

参数传递

Java 的参数是以值传递的形式传入方法中,而不是引用传递。

以下代码中 Cat cat的 cat是一个指针,存储的是对象的地址。在将一个参数传入一个方法时,本质上是将对象的地址以值的方式传递到形参中。因此在方法中使指针引用其它对象,那么这两个指针此时指向的是完全不同的对象,在一方改变其所指向对象的内容时对另一方没有影响。

如果在方法中改变对象的字段值会改变原对象该字段值,因为改变的是同一个地址指向的内容。

float 与 double

Java 不能隐式执行向下转型,因为这会使得精度降低。

1.5 字面量属于 double 类型,不能直接将 1.5 直接赋值给 float 变量,因为这是向下转型。

1.5f 字面量才是 float 类型。

隐式类型转换

因为字面量 1 是 int 类型,它比 short 类型精度要高,因此不能隐式地将 int 类型下转型为 short 类型。

但是使用 += 或者 ++ 运算符可以执行隐式类型转换。

上面的语句相当于将 s1 + 1 的计算结果进行了向下转型:

switch

  • switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
  • switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
  • case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
  • 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
  • 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
  • switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。

switch 不支持 long,是因为 switch 的设计初衷是对那些只有少数的几个值进行等值判断,如果值过于复杂,那么还是用 if 比较合适。

原文地址:https://www.cnblogs.com/woxbwo/p/11477248.html

时间: 2024-11-06 09:30:44

java 运算的相关文章

java运算中的优先级

java运算中的优先级1增量和减量运算2算数运算3比较运算4逻辑运算5赋值运算 java运算中的优先级,布布扣,bubuko.com

java 运算顺序

java 运算顺序,布布扣,bubuko.com

Java运算基础

计算机对负数的运算 =  先取绝对值的原码----> 然后取反,----->+1   这是负数的补码表示 例如  -5       5的原码= 0000,0101  取反   1111,1010, +1  =   1111,1011 补码求原码   补码在求一次补码 就是补码的原码 例如 -5     补码  1111,1011    先求反码 在+1     1000,0100 , +1  = 1000,0101 位移 是针对补码的位移 求原码的值 >>右移    最高位是0 最

关于Java运算中类型自动提升的问题

1.表达式中的自动类型提升: 表达式求值时,Java自动的隐含的将每个byte.short或char操作数提升为int类型,这些类型的包装类型也是可以的. 例如:short s1 = 1; s1 = s1 + 1; s1+1运算中的操作数s1会被自动提升为int类型,s1+1运算结果会成为int类型,再赋值给short类型的s1时,编译器会报告需要强制转换类型的错误.需要改为short s1=1; s1=(short)(s1+1);结果就是short类型. 例如:short s1 = 1; s1

学习日记(五)java运算

java在运算的时候,会存在数据类型的转换,其中一种是自动类型转换,也称为隐式类型转换,这种转换需要满足一定的条件: 1.这两种类型是兼容的,例如同时都是整数类型或者都是数字类型 2.目的类型数的范围要大于来源数据的范围 运算时数据类型转换还有一种是强制类型转换,也称为显示类型转换,这种转换有的时候会发生截断和缩小,例如将一个小数强制转换成整数,则会丢弃小数部分. 所有byte型和short型在运算时会自动转换为int型,两个byte型运算的结果是int型而不是byte型:如果表达式中有操作数是

java运算注意事项

/* 对于byte.short.char.插入三种类型来说,如果右侧固执的数值没有超过范围,那么java编译器就会自动隐含地位我们 补上一个(byte) ,(short),(char) 1.如果没有超过左侧的范围,编译器补上强转 2.如果超过了左侧范围,那么直接编译报错 */ public class Demo02Notice{ public static void main(String[] args){ //右侧确实是一个int数字,但是没有超过左侧的范围,就是正确的 // int————>

java运算

(一) 截图: 程序: import javax.swing.JOptionPane; public class Addition { public static void main (String args[]){ String firstNumber,secondNumber; int number1,number2,sum,cha,ji,chu; //read in first number from user as a string firstNumber= JOptionPane.sh

关于Java中用Double型运算时精度丢失的问题

注:转自 https://blog.csdn.net/bleach_kids/article/details/49129943 在使用Java,double 进行运算时,经常出现精度丢失的问题,总是在一个正确的结果左右偏0.0000**1. 特别在实际项目中,通过一个公式校验该值是否大于0,如果大于0我们会做一件事情,小于0我们又处理其他事情. 这样的情况通过double计算出来的结果去和0比较大小,尤其是有小数点的时候,经常会因为精度丢失而导致程序处理流程出错. BigDecimal在<Eff

Java位运算基础知识

在学习Java运算时,补充学习Java位运算. Java位运算 位运算都是针对整数的补码进行位运算. & 按位与运算 先将整数转换为补码 ,然后执行按位与运算,最后将结果返回为十进制,它有如下几个规律: (1)正数&其他数=正数 考虑最高位为0,按位与都为0 (2)偶数&其他数=偶数 考虑最低位为0,按位与都为0 (3)0&其他数=0 按位与后位数全是0 (4)1&奇数=1,1&偶数=0 通过它可以快速判断一个数是奇数还是偶数 | 按位或运算 先将整数转换为