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

作者&投稿:佛彼 (若有异议请与网页底部的电邮联系)
Java的Integer属性赋值报错~

这应该是jdk版本设置问题,在项目上右键,properties-->java compiler,选择以那个jdk版本来运行,java的自动拆装箱应该要1.5以上的版本。

我个人的理解
String x="bv";这个是在栈中创建的,栈中的数据具有不可更改性,就是说你再创建一个String y="bv";它会先在栈中寻找字面值为bv的地址,如果存在这样的地址就指向它(否则就在栈中新开辟一个字面值为bv的内存地址) 因此这儿x==y 因为他们指向同一块内存地址 无论== equals结果都是true

String v=new String("bv"); 通过new的方式在堆创建一个对象,new是在堆中开辟一个新的处女地,因此即便你再String vvv=new String("bv");v和vvv也不可能相等。

当然你题目中的x v 分别处于栈、堆中 也不可能相等

  int是基本数据类型,直接存储值;
  integer是对象,也就是一个类,用一个引用指向这个对象
  具体说明:

  1、Java中的数据类型分为基本数据类型和复杂数据类型
  int 是基本数据类型
  integer是一个对象/类
  2、初始化方式
  int i = 1;
  Integer i = new Integer(1);(将Integer当做一个类来看)
  说明:int是基本数据类型,是面向过程保留下的痕迹,但是是对java的有益补充,Integer是一个类,是int的扩展,定义了很多转换的方法
  类似的还有:
  float Float;
  double Double;
  string String;
  等等,可以说Java为每一个基本数据类型都提供相应的对象(外覆类)

Integer 是int这个数据类型的封装类具备的面向对象的基本特征 而int没有
所以int = 后面必须写一个整形 而Integer是一个封装类需要调用自己的方法来获取值所以Integer n = new Integer(3);这么写
不推荐Integer n = 3;这么写 会把概念弄混淆的

初始化时>>int i =1; 
Integer i= new Integer(1);(要把integer 当做一个类看)  
int 是基本数据类型(面向过程留下的痕迹,不过是对java的有益补充) 
Integer 是一个类,是int的扩展,定义了很多的转换方法 
类似的还有:float Float;double Double;string String等 
举个例子:当需要往ArrayList,HashMap中放东西时,像int,double这种内建类型是放不进去的,因为容器都是装 object的,这是就需要这些内建类型的外覆类了。 
Java中每种内建类型都有相应的外覆类。
Java中int和Integer关系是比较微妙的。
关系如下1.int是基本的数据类型2.Integer是int的封装类3.int和Integer都可以表示某一个数值4.int和Integer不能够互用,因为他们两种不同的数据类型;举例说明 ArrayList al=new ArrayList();int n=40;Integer nI=new Integer(n);al.add(n);//不可以al.add(nI);//可以


闻喜县18274644583: JAVA中Integer直接赋值和重构方法赋值的区别是什么? -
能祝费安: int是基本数据类型,直接存储值;integer是对象,也就是一个类,用一个引用指向这个对象具体说明:1、Java中的数据类型分为基本数据类型和复杂数据类型int 是基本数据类型integer是一个对象/类2、初始化方式int i = 1;Integer i = new ...

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

闻喜县18274644583: Integer对象能直接赋值给int吗? -
能祝费安: 理论上说是不合理的,一个是对象一个是基本类型但1.5及其以后的版本有了自动拆箱和装箱 Integer i = 10;//装箱 int i = new Integer(10);//拆箱 这只是sun为了程序员的方便加入的,这样写能够通过编译 但只限于是1.5及其以后的版本 这要看JDK版本了

闻喜县18274644583: 请问java中怎样将Integer类型的对象赋值给int -
能祝费安: JDK 1.5 以后 有自动封包 和 自动解包 例子代码:package test; public class Test { public static void main(String args[]) { Integer i = new Integer(100); // 把 Integer型变量 赋给 基本类型 int int ii = i; int jj = 200; // 把基本类型 int 赋给 Integer型变量 ...

闻喜县18274644583: java中String new和直接赋值的区别 -
能祝费安: new,会在java的堆内存中创建对象, 有几个new就有几个对象. 直接赋值, 是从字符串常量池中取值. 例如 String str1 = "a"; String str2 = "a"; System.out.println(str1==str2);结果为true,地址值 都是字符串长量池中的"a". String str3 = new String("a");String str4 = new String("a");System.out.println(str3==str4); 结果为false. 应为new会在堆中创建两个字符串对象, 地址值不同

闻喜县18274644583: java Integer和int之间==的比较问题.求解释 -
能祝费安: java Integer和int之间==的比较问题.求解释 <pre>public static void main(String[] args) {<br> // TODO Auto-generated method stub<br> Integer a = new Integer(1);<br> Integer b = new Integer(1);<br> int c=1;<br> Integer e = 1;<br> System.out....

闻喜县18274644583: Java中如何输入一个整型值,并把它赋值给一个变量 -
能祝费安: JAVA用流来接收输入,也可以直接输入 public class T{public static void main(String[] args)//String[] args这是来接收参数的int a = 0 ;if(args.length() != 1){//这里是判断是否只输入一个参数如果不是自已打印提示,在退出系统}else {//为一个...

闻喜县18274644583: java中Integer.parseInt和Integer.valueOf的区别 -
能祝费安: 他们返回类型的不同是最大的原因.1. static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行分析.static Integer valueOf(int i) 返回一个表示指定的 int 值的 Integer 实例. static Integer valueOf(String s) 返回保持指定的 String 的...

闻喜县18274644583: 在JAVA里面,int 和Integer 有什么区别 -
能祝费安: int是基本数据类型. 定义时不赋值则默认为0; Interger是引用数据类型,是整形的包装类,定义时不赋值默认为null; 定义int不赋值不会报错;但定义Interger不赋值会报错.

闻喜县18274644583: java里String类型可以直接赋值,保存的是值还是引用的地址? -
能祝费安: 先给你一个在博客园看到的说明 问题1 我声明了什么! String s = "Hello world!"; 许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个String,内容是“Hello world!”.这样模糊的回答通常是概念不清的根源.如果要...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网