void函数可以printf吗和int的区别

  • Integer是int的封装类,而int是Java的一个基本数据类型,也不难想到其他7个基本数据类型也有对应的封装类
  • Integer变量必须实例化才能使用,而int变量是可以不用实例化,这里说的实例化就是赋值,否则使用该变量的时候会报错
  • Integer是一个对象(引用类型),所以Inetger变量的默认值为null(虽然感觉这个知识点有点用不到),int是基本数据类型,int变量的默认值为0

  • Integer变量与int变量作比较时,只要内容相等,结果就是true。在把Integer变量与int变量比较时,会把Integer拆封为int类型在进行比较,所以只要内容相等就会返回true
  • new出来的Integer变量和非new出来的变量比较一定是false,有两种情况:
    • 当比较非new变量的值在-128~127闭区间内,也就是从Integer创建的一个数组中取出这些对象,而new出来的变量指向在堆中创建的对象,所以内存地址不同,结果为false
    • 当比较的非new变量的值不在闭区间内,此时非new变量是怎么操作的呢,这个时候Integer变量自动装箱,起始是在堆中创建了对象,所以还是不同,结果仍然为false
  • 两个非new生成的Integer对象进行比较时,如果这两个变量的值在-128到127这个闭区间之间,则比较结果为true,如果两个变量的值不在此区间,则比较结果为false,当然如果两个变量数值不相等一定为false
    • 总结了网上的解释,出现分区间的原因:java会对-128到127闭区间的Integer数值进行缓存也就是已经在字符串常量池中了,用的时候直接拿,而在这个区间外的非new出来的Integer变量在内部仍是new出来的,所以内存地址值不同

若有错误地方,请指出,谢谢大家


· 知道合伙人餐饮行家

勤奋如春起之苗,不见其增,日有所长;辍学如磨刀之石,不见其损,日有所亏


void和int都是函数的返回类型; void就是无返回类型,函数不返回任何值; int返回整数,函数必须返回整数结果。

你对这个回答的评价是?

int在这里就是返回值,有返回值的方法要使用return语句返回方法声明时对应的类型。比如这个方法你要反悔return int。也可以不返回那么int的位置就是void,也就不需要return语句。

你对这个回答的评价是?

void没有返回值,int要返回int型的值

你对这个回答的评价是?

下载百度知道APP,抢鲜体验

使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。

我要回帖

更多关于 char变成int要强制转换吗 的文章

 

随机推荐