0
点赞
收藏
分享

微信扫一扫

Java数据类型和运算0224

引用数据类型

  • 接口
  • 数组
  • 枚举

运算符

int型相除,除数为0, 抛出算术异常

浮点数相除,除数为0, 结果无限大

**字符串的比较用equal方法不用== **

​ 那么int数据的地址是怎样的呢,String又是怎样的呢?

对于基本数据类型(byte,short,char,int,float,double,long,boolean)来说,他们是作为常量在方法区中的常量池里面以HashSet策略存储起来的,对于这样的字符串 “123” 也是相同的道理,在常量池中,一个常量只会对应一个地址,因此不管是再多的 123,“123” 这样的数据都只会存储一个地址,所以所有他们的引用都是指向的同一块地址,因此基本数据类型和String常量是可以直接通过==来直接比较的。

另外,对于基本数据的包装类型(Byte, Short, Character,Integer,Float, Double,Long, Boolean)除了Float和Double之外,其他的六种都是实现了常量池的,因此对于这些数据类型而言,一般我们也可以直接通过==来判断是否相等。那么再出一个问题考考大家

img

结果是 true,false。没想到吧!其实是因为 Integer 在常量池中的存储范围为[-128,127],127在这范围内,因此是直接存储于常量池的,而128不在这范围内,所以会在堆内存中创建一个新的对象来保存这个值,所以m,n分别指向了两个不同的对象地址,故而导致了不相等。

基本数据类型和包装类型

基本数据类型和包装类型的区别

  • 包装类是对象,拥有方法和字段,对象的调用都是通过引用对象的地址,基本类型不是。
  • 包装类型是引用的传递,基本数据类型是值的传递
  • 声明方法式不同,基本数据类型不需要new关键字,而包装类型需要new在堆内存中进行new来分配内存空间
  • 存储位置不同,基本数据类型直接将值保留在栈中,包装类型是把对象放在堆中,然后通过对象的引用来调它们
  • 初始值不同,基本数据类型初始值为0,包装类型初始值为null(Boolean初始值为false)
  • 使用方式不同,基本数据类型直接赋值使用就好,包装类型是在集合如collection 、Map时会使用

注意表达式中的数据类型转换

逻辑运算符

  • && 短路与,前面条件为假,不计算之后的表达式

  • & 位与,继续计算之后的表达式

位运算符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MoGnvz8I-1645696834039)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220224175841111.png)]

控制流语句

流程图:用图形表示程序执行的流程。

流程图的组成:

a.矩形 表示执行

b.菱形 表示判断

c.平行四边形 表示输入或输出

d.椭圆或圆角矩形 表示程序开始或结束

a.矩形 表示执行

b.菱形 表示判断

c.平行四边形 表示输入或输出

d.椭圆或圆角矩形 表示程序开始或结束

e.直线 表示流程线

举报

相关推荐

0 条评论