Topic: Integer n=new Integer(16)什么意思

  Print this page

1.Integer n=new Integer(16)什么意思 Copy to clipboard
Posted by: Jakie
Posted on: 2004-06-30 16:01

Integer n=new Integer(16)什么意思

2.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: jcompass
Posted on: 2004-06-30 16:18

给n赋初值而矣!

3.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: dodoflying
Posted on: 2004-06-30 17:12

定义了一个Integer类型的对象
使用构造函数
public Integer(int value)
Constructs a newly allocated Integer object that represents the specified int value.

Parameters:
value - the value to be represented by the Integer object.

4.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: 心处理器
Posted on: 2004-07-01 17:10

将基本数据类型转换Wrapper类
这样16就是对象了

5.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: kjjx
Posted on: 2004-07-03 17:38

16是对象吗?那么n算什么?

6.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: zerol
Posted on: 2004-07-03 17:49



(缩略图,点击图片链接看原图)

7.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: windwalk
Posted on: 2004-07-06 14:30

n是对象引用,16是对象

8.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: liuhaohrb
Posted on: 2004-07-09 19:24


整型数
穿一个马甲变成
一个对象

9.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: railgunman
Posted on: 2004-08-01 12:12

Integer n=new Integer(16)
16成了一个对象?
那么String str1=new String("JAVA")
其中的JAVA也成一个对象了?
这个也就是程序:
public class StringTest{
public static void main(String[] args)
{
String str1="JAVA";
String str2=new String("JAVA");
if (str1==str2)
System.out.println("相等")
else
System.out.println("不等");
}
}
的执行结果是:不等 的原因吗?
迷惑!

10.Re:Integer n=new Integer(16)什么意思 [Re: railgunman] Copy to clipboard
Posted by: skip
Posted on: 2004-08-02 13:08

String str2=new String("JAVA");
新创建了一个内容为"JAVA"的String

所以str1,str2实指向两个不同的对象
引用值当然不等拉。

railgunman wrote:
Integer n=new Integer(16)
16成了一个对象?
那么String str1=new String("JAVA")
其中的JAVA也成一个对象了?
这个也就是程序:
public class StringTest{
public static void main(String[] args)
{
String str1="JAVA";
String str2=new String("JAVA");
if (str1==str2)
System.out.println("相等")
else
System.out.println("不等");
}
}
的执行结果是:不等 的原因吗?
迷惑!

11.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: skip
Posted on: 2004-08-02 13:09

还有一点,看你的问题,我想你应该还没知道如果
要比较String的内容应该使用equals方法,而不是直接==

12.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: railgunman
Posted on: 2004-08-04 18:25

但是如果程序改为:
public class StringTest{
public static void main(String[] args)
{
String str1="JAVA";
String str2="JAVA";
if (str1==str2)
System.out.println("相等")
else
System.out.println("不等");
}
}
为什么结果是“相等”呢?
难道是str1和str2都指向对象"JAVA"吗?

13.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: Jakie
Posted on: 2004-08-11 00:54

一塌糊涂!

14.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: dyy11
Posted on: 2004-08-11 17:08

这样改一下 就正确了
public class StringTest{
public static void main(String[] args)
{
String str1="JAVA";
String str2=new String("JAVA");
if (str1.compareTo(str2)==0)
System.out.println("相等")
else
System.out.println("不等");
}
}
感觉原因出现在STR1==STR2 的==上 比较的是否是两边的值 还是其他什么

15.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: 519632
Posted on: 2004-08-11 17:14

新建一个Integer的对象,它的值是16

16.Re:Integer n=new Integer(16)什么意思 [Re: railgunman] Copy to clipboard
Posted by: 519632
Posted on: 2004-08-11 17:18

railgunman wrote:
但是如果程序改为:
public class StringTest{
public static void main(String[] args)
{
String str1="JAVA";
String str2="JAVA";
if (str1==str2)
System.out.println("相等")
else
System.out.println("不等");
}
}
为什么结果是“相等”呢?
难道是str1和str2都指向对象"JAVA"吗?

这样声明str1和str2就不是对象了
对象的比较应该使用equals

17.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: xiaopa
Posted on: 2004-08-12 16:24

"JAVA"当然是对象!它是String类的一个实例,但它是常量实例,在编译过程中就被分配地址。而变量的地址分配是在执行过程完成的。同时+算符如果是常量间的运算话在编译过程中就被解析完成运算了,有变量的情况下则根据变量的类型不同解析成不同的算法,在执行过程中完成运算的。

请运行下面的程序,看看结果和你想的是否相同:

public class BasicTest {
public static void main(String[] args) {
String str1 = "JA";
String str2 = "VA";
String str3 = "JA"+"VA";
String str4 = "JA" + str2;
String str5 = str1 + "VA";
String str6 = str1 + str2;
String str7 = str1 + str2;
String str8 = new String("JAVA");
String str9 = new String("JAVA");

System.out.println("JAVA".getClass());
System.out.println(str1=="JA");
System.out.println(str2=="VA");
System.out.println(str3=="JAVA");
System.out.println(str4=="JAVA");
System.out.println(str5=="JAVA");
System.out.println(str6=="JAVA");
System.out.println(str4==str5);
System.out.println(str5==str6);
System.out.println(str6==str7);
System.out.println(str8==str9);
}
}

18.Re:Integer n=new Integer(16)什么意思 [Re: 519632] Copy to clipboard
Posted by: kjjx
Posted on: 2004-08-12 17:01

519632 wrote:
这样声明str1和str2就不是对象了
对象的比较应该使用equals

调用str1.equals(str2)试试!

19.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: 云火
Posted on: 2004-08-12 21:07

str2是“JAVA”的引用对象,用来指向“JAVA”这个字符串。而str1是一个字符串型的实例(变量),它有一个初值是“JAVA”。如果用“==”只是比较str1和str2的值,而str2只相当于一个指针并没有值,所以不等。但两个“JAVA”都是字符串,当用方法equals()就是比较的两个字符串,str2会自动指向“JAVA”,所以相等。

public class StringTest{
public static void main(String[] args)
{
String str1="JAVA";
String str2=new String("JAVA");
if (str1.equals(str2))
System.out.println("相等");
else
System.out.println("不等");
}
}

20.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: shadow
Posted on: 2004-08-30 21:08

我学JAVA才几天,但是我觉得楼上的说的最明白~~也最对!

21.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: booolee
Posted on: 2004-08-31 10:32

Integer(对象)是int(简单类型)的简单封装器

Integer n=new Integer(16)
Integer:int简单封装器对象
n:Integer的引用变量名
=:赋值语句
new:创建Integer对象
Integer():Integer对象的构造函数(也许这么说你比较容易理解)
16:int型的常数而已

最终的结果是n成为了16的Ineger封装器对象的引用变量

22.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: april518
Posted on: 2004-09-11 21:44

简单的问题
延伸出这么多东西
有收获!

23.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: babyone
Posted on: 2004-09-12 11:25

在java中,有两种生成生成String类对象方法,
一种是 String str1=new String("java")
另一种是:String str2="java"

这两种生成的都是字符串对象,不过他们存放的位置不同而已,第一种是存放在内存中,而,第二种,是存放在字符串缓冲池中(String pool);

而且,还有一点要说明的是,比较运算符“==” 在java机制中,比较的是两个对象的内存地址,而,equal方法,则是比较两个对象的内容。

24.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: Jawen
Posted on: 2004-09-21 10:26

好大的收获阿!

25.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: alpacino
Posted on: 2004-09-21 15:52

请注意

26.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: alpacino
Posted on: 2004-09-21 16:19

String str1="JAVA";//这个赋植形式是将str1指向内存静态空间的“java”,
String str2=new String("JAVA");//这个赋植形式是将str2指向内存动态空间的“java”

所以str1和str2实际上是指向2个不同的内存地址(java语言中虽然没有地址的操作,但实际上这些操作是由虚拟机代劳的,所以JAVA在执行程序时仍然存在地址这一说),这2个地址虽然都存放着“JAVA”,但“==”在做比较时,对基本数据类型是做“值”的比较,而str1和str2是2个对象,所以“str1==str2”是比较2个对象的“引用”(可以理解为地址)而不是“值”,要比较2个对象的“值”,就应该使用上面那位仁兄所说的“equals”方法。
“equals”方法属于“object”类,这个类是最高级的类(系统内置),可以理解为所有类的父类,所有的类都继承它的方法,在这个类里面,它已经定义了“equals”方法的含义,就是比较对象的值。在“string ”类里面,没有重置“equals”方法,所以“equals”可以比较对象的"值";而在”stringbufter“类里面,因为重置了“equals”方法,所以,对于”stringbufter“类的对象作比较而使用“equals”方法,实际还是比较的”引用“,这一点希望大家能注意。

27.Re:Integer n=new Integer(16)什么意思 [Re: alpacino] Copy to clipboard
Posted by: nothing
Posted on: 2004-09-21 16:54

alpacino wrote:
String str1="JAVA";//这个赋植形式是将str1指向内存静态空间的“java”,
String str2=new String("JAVA");//这个赋植形式是将str2指向内存动态空间的“java”

所以str1和str2实际上是指向2个不同的内存地址(java语言中虽然没有地址的操作,但实际上这些操作是由虚拟机代劳的,所以JAVA在执行程序时仍然存在地址这一说),这2个地址虽然都存放着“JAVA”,但“==”在做比较时,对基本数据类型是做“值”的比较,而str1和str2是2个对象,所以“str1==str2”是比较2个对象的“引用”(可以理解为地址)而不是“值”,要比较2个对象的“值”,就应该使用上面那位仁兄所说的“equals”方法。
“equals”方法属于“object”类,这个类是最高级的类(系统内置),可以理解为所有类的父类,所有的类都继承它的方法,在这个类里面,它已经定义了“equals”方法的含义,就是比较对象的值。在“string ”类里面,没有重置“equals”方法,所以“equals”可以比较对象的"值";而在”stringbufter“类里面,因为重置了“equals”方法,所以,对于”stringbufter“类的对象作比较而使用“equals”方法,实际还是比较的”引用“,这一点希望大家能注意。


java弄得过度复杂了....

28.Re:Integer n=new Integer(16)什么意思 [Re: Jakie] Copy to clipboard
Posted by: april518
Posted on: 2004-09-23 15:44

babyone 讲德非常明白
3q!


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923