博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中基础类型的初始值,以及一些平时不注意的小知识
阅读量:4607 次
发布时间:2019-06-09

本文共 1520 字,大约阅读时间需要 5 分钟。

有时候总是卡在一些类型的初始值上,今天闲下来就来自己给自己记录一下。

String   a; 

如果直接打印会提示未初始化。并且未初始化的a不能比较。

这时,我们定义个person类

person{

  String name;

  private Integer age;

  private int aa;

.......

}

我们来看看age会怎么样。

结果还是不能够打印,但是却可以用于比较

person p1= new person();                if("".equals(p1.getName())){    System.out.println("OK 空字符串");}else if(p1.getName()==null){    System.out.println("OK null");}

结果:OK null

2、int

int a;

System.out.println(a);

这里报错,不能够使用未实例化的。同时说明不能够用这个数运算。

同样放在类里面的  int  aa

person p1 = new person();

System.out.println(p1.getAa());

这时候的  aa  打印出来是0。而且这个值还可以运算。

(同时也说明了一点,包装类默认值)

 

3、 Integer

p1.getAge打印出来是null.

 4、说完上面的,来看一下我遇到的一些小实例。

     String a1="a";        String a2="a";        String a3=new String("a");        if(a1==a3){            System.out.println("Y");        }else{            System.out.println("N");        }                int a = 1;        Integer b = new Integer(1);        Integer c = new Integer(1);        if(b.equals(c) ){            System.out.println("是");        }else{            System.out.println("否");        }

大家先看一下上面的a、b、c两两比较,结果是会输出是,还是否。

我先来告诉大家答案吧,a、b、c两两比较都是“

为什么?我来大致的解释一下。这里int 为基本数据类型,他们有一个特点,就是存在栈中的数据可以共享。int a = 1;已经在堆中开辟了一块空间,之后integer在去实例化的时候不会重新去new 一个,因为他是包装类。如果还是不明白,自己运行一下,然后在上网查一下java基本数据类型在内存中的知识。

 

看完上面数字的,我们在来比较一下a1、a2、a3

a1和a2,结果Y。      a1和a3,结果N

这里我也来解释一下吧,在java的内存中还有一个字符串池,利用String a1 = "a";实例化的a字符串会放到字符串池中,并在堆中开辟一个空间存放“a”。

当String a2="a";时发现已经有a1="a";了所以直接让a2指向a即可。 

但是String a3=new String("a");并不能和Integer一样,它是一个类,要去堆中重新开辟一块空间。

转载于:https://www.cnblogs.com/wangxiangstudy/p/5166095.html

你可能感兴趣的文章
远程服务器git搭建
查看>>
牛人们的博客地址
查看>>
Zabbix是什么?
查看>>
源码:COCO微博
查看>>
面向对象预习随笔
查看>>
大数据概念炒作周期模型
查看>>
排序模型
查看>>
Dede推荐文章与热点文章不显示?
查看>>
React 3
查看>>
Topshelf 使用
查看>>
Linux --Apache服务搭建
查看>>
20145325张梓靖 实验三 "敏捷开发与XP实践"
查看>>
JavaScript面试题
查看>>
[转帖]架构师眼中的高并发架构
查看>>
ios的一些开源资源
查看>>
HTTP 错误 500.21 - Internal Server Error 解决方案
查看>>
Bucks sign Sanders to $44 million extension
查看>>
【PHP】Windows下配置用mail()发送邮件
查看>>
Nhibernate和EF的区别
查看>>
基于java spring框架开发部标1078视频监控平台精华文章索引
查看>>