lzth.net
当前位置:首页 >> JAVA中IntEgEr直接赋值和重构方法赋值的区别是什么? >>

JAVA中IntEgEr直接赋值和重构方法赋值的区别是什么?

int是基本数据类型,直接存储值; integer是对象,也就是一个类,用一个引用指向这个对象 具体说明: 1、Java中的数据类型分为基本数据类型和复杂数据类型 int 是基本数据类型 integer是一个对象/类 2、初始化方式 int i = 1; Integer i = new

String:1是定义变量,但没有初始化,就是内存中还没开辟一段存放对象(字符串对象)a;第3中,初始对象为null空值,再赋值;而2和4在定义是就初始化了,其中2先初始化为“”空字符串,即使a里放的是指向“”的地址,同理4是指向“张三”的.2在初始化后又重新赋值,也指向“张三”,此时“”对象就不被引用,系统会根据垃圾回收机制确定何时回收该对象内存.并且“张三”是同一个对象,hashcode一样.对于int等8中基本数据类型,存放的是值不是地址;3种方式差别不大,它们的复制就是直接改的自己存放的值,只是第一个开始没初始化注意String是对象,不是基本数据类型

public class Instanceof { public static void main(String[] args) { Number [] na = new Integer [10] ; Object [] oa = new Number [10]; Object[] ooa = new Integer [10] ;//ok //Object[] ooa = new int [10] ;//这一行出错 //int不是一个类 也不是Object的子类 因此不能赋值. } }

new,会在java的堆内存中创建对象, 有几个new就有几个对象. 直接赋值, 是从字符串常量池中取值. 例如 String str1 = "a"; String str2 = "a"; System.out.println(str1==str2);结果为true,地址值 都是字符串长量池中的"a". String str3 = new

直接赋值会将该字符串一直储存在缓存中,后面如果用到相同的字符串,则直接取这个字符串对象.而new是每次都新建一个对象.可通过执行下面的代码来看出区别:String a = "abc"; String b = "abc"; System.out.println(a==b); //true String

变量的赋值可以理解为变量的初始化,变量的使用可以理解为参与了某些运算或者方法的调用,就是说既然涉及到使用,就应除了变量本身还有第三方变量或者算法参与,使用了某个变量必然对整个程序产生了一定影响,这才叫使用,比如变量String s,调用了s.split方法,这算使用,一个未曾使用过的变量String s 给它赋值 String s = "aa";这个操作对程序没啥影响,也没有第三方代码调用,虽然对这个变量进行了操作,这不能算是使用

int是原始数据类型,Integer是int的封装类,Integer是引用类型;int基本数据运算速度快,而在map、list等只能装Object的容器中,就只能使用Integer等外覆类.

你想了解的是这个过程吧,这两种写法没有区别,唯一的区别就是多了个变量t. java 基本数据类型是分配在栈内存里的,比如你上面的列子 int i,j;i=j:,在栈内存里有两个变量,i,j 这里你没有赋值,初始值为0.你写的第2种情况是,int i,j.t;t=j,i=t ,在栈内存里定义了三个变量,i,j,t,然后把j的值赋给t,这里是copy也就是把j的值复制给t,自己本身不变.然后再把t copy给i,所以只是过程中多了个t这个中间变量,没什么大的区别

重写:返回值,方法名,参数 必须一样 出现在继承类和实现接口重构(覆盖):返回值可以相同可以不相同,方法名必须一样,参数必须不一样 出现在同一个类里

赋值后就会分配存储空间,如果不赋值就不会分配空间 既 赋空值就会分配存储空间,但是存储空间内不会装任何内容 不赋值就没有咯

网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com