java 运算

Posted woxbwo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 比较合适。

 

以上是关于java 运算的主要内容,如果未能解决你的问题,请参考以下文章

什么是Java运算?Java运算好学吗?

Java Review (运算符)

Java Review (运算符)

java学习第三章4.运算

Java 基础之java运算符

java位移运算符有啥意义