Java基础问题(1)(jdk/jre/equals)

17 篇文章 0 订阅
16 篇文章 0 订阅

1.JDK和JRE
1.1 JDK(Java development kit)Java开发工具包,面向开发人员使用的SDK(software development kit)包括库函数,编译程序等,JDK包含JRE,JRE包含JVM。
1.1 JRE(Java runtime environment)Java运行环境,在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre
jvm:Java虚拟机,Java语言实现跨平台的核心,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行

2.“==”和equals的区别
前者是对于基本数据类型作比较:byte,short,char,int,long,float,double,boolean,直接比较他们的值是否相同,如果是比较对象的话就回去比较他们的内存中的地址,对于引用的数据类型来说,除非是同一个new 出来的对象,否则结果都为false;
equals:Object超类当中定义的equals方法默认比较对象的内存地址,但在其他类方法中equals方法被重写了。比如说String ,Integer等,比较成员变量的值是否相等而不是比较内存地址。

public static void  main(String[] args){
    //基本数据类型比较
    int a = 111;
    int b = 222;
    int c = 111;
    System.out.println("a == b:  "+ Boolean.valueOf(a == b));
    System.out.println("a == c:  "+ Boolean.valueOf(a == c));
    //对象类型比较
    TestOne testOne = new TestOne();
    System.out.println("testOne.equals(testOne):  "+ Boolean.valueOf(testOne==testOne));
    System.out.println("testOne.equals(testOne):  "+ Boolean.valueOf(testOne.equals(testOne)));
    String h = new String("hello");
    String w = new String("world");
    String m = new String("hello");
    System.out.println("h == w:  "+ Boolean.valueOf(h==w));
    System.out.println("h.equals(w):  "+ Boolean.valueOf(h.equals(w)));
    System.out.println("h == m:  "+ Boolean.valueOf(h==m));//地址比较,
    System.out.println("h.equals(m):  "+ Boolean.valueOf(h.equals(m)));//值比较
}

输出:

a == b:  false
a == c:  true
testOne.equals(testOne):  true
testOne.equals(testOne):  true
h == w:  false
h.equals(w):  false
h == m:  false
h.equals(m):  true

3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值