大者在途

  • 我的gitee仓库
大者在途
高山仰止 景行行止
  1. 首页
  2. 后端开发
  3. 正文

关于java的关系操作符

2022年4月18日 219点热度 0人点赞 0条评论

今天写代码IDE出现了一个提示

Operator '==' cannot be applied to 'int', 'null'

看了一下是说基本数据类型不会为null, 所以不能同null比较

正好从这里为起点, 备注一点基础知识

一、数据存储到哪

  1. 寄存器(register):
    这是最快的存储区,因为它位于处理器内部,相当于操作系统中访问cache一样。

  2. 栈(stack):
    其实就是栈只是一个抽象的词语而已。创建程序时候,JAVA编译器必须知道存储在栈内所有数据的确切大小和生命周期,因为它必须生成相应的代码,就是说像int a=1,double b=2等八种基本数据类型为了追求速度就是存放于栈当中。

  3. 堆(heap)。
    一种通用性的内存池(也存在于RAM中),用于存放所有的JAVA对象。堆不同于栈的好处是:编译器不需要知道要从堆里分配多少存储区 域,也不必知道存储的数据在堆里存活多长时间。因此,在堆里分配存储有很大的灵活性。当你需要创建一个对象的时候,只需要new写一行简单的代码,当执行这行代码时,会自动在堆里进行存储分配。当然,为这种灵活性必须要付出相应的代码。用堆进行存储分配比用栈进行存储存储需要更多的时间。

  4. 静态存储(static storage)。
    常量通常用static修饰。静态存储里存放程序运行时一直存在的数据。

  5. 常量存储(constant storage)。
    常量通常用final修饰。常量值通常直接存放在程序代码内部,这样做是安全的,因为它们永远不会被改变。在嵌入式系统中,常量本身会和其他部分分割离开,所以在这种情况下,可以选择将其放在ROM中。

  6. 非RAM存储。
    如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也可以存在。

速度相比就是:寄存器(最快) > 堆栈 > 堆 > 其他

二、基本数据类型

  1. 整型
    byte 、short 、int 、long
  2. 浮点型
    float 、 double
  3. 字符型
    char
  4. 布尔型
    boolean

三、类型转换

  1. 基本类型之间的转换
    小类型到大类型 会进行自动(隐式)类型转换
    大类型到小类型 需要进行强制转换, 此时会丢失精度
  2. 基本类型和包装类之间的转换
    基本类型到包装类可以实现自动转换
    包装类到基本类型也是

四、java传参是值传递还是引用传递

java中只有值传递,基本类型传递的是值的副本,引用类型传递的是引用的副本。

标签: 暂无
最后更新:2022年4月18日

猫铃儿

一个成长中的程序员

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

COPYRIGHT © 2021 大者在途. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

冀ICP备18021118号-1