Java中基本数据类型的函数原型是怎么定义的,我们用的时候为啥不用构造函数?

Java中基本数据类型的原型是怎么定义的,它与引用数据类型有什么区别?我们用得时候为啥不用构造函数?比如:inta=11;Integera=newInteger(11);... Java中基本数据类型的原型是怎么定义的,它与引用数据类型有什么区别?我们用得时候为啥不用构造函数?
比如:int a=11;
Integer a=new Integer(11);
展开
 我来答
zsx923
2010-03-27 · 超过15用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:118万
展开全部
7中基本数据类型都有原型,首字母大写即原型 (char-->Character)

1.基本数据类型:
int a=2;
int b=2;
a==b 这个是成立的

2.引用数据类型
Integer a = new Integer(2);
Integer b = new Integer(2);
引用类型的话就涉及到对象了,涉及到对象,就不可避免的我们必须知道对象放在哪(即对象的地址),对象里的内容
如果a==b,这里是比较对象a和对象b的地址,即我们用变量a记住了这个对象的地址,同理b
只要我们new了一个对象,就会在堆内存中开辟一块空间,记住只要是new了
即使数据都是一样的,既然new了2个对象,就开辟了2块空间,地址当然不一样了
如果比较对象的内容就必须用到equals方法,但这个方法有时候也不是万能的
我们知道equals方法都是继承于Object类中的equals方法的,其实如果你打开API中Object类的equals方法的源码就会发现还是用==来比较的
比如我们经常写的代码:
String aa= new String("abc");
String bb = new String("abc");
当然a==b肯定是false了
a.equals(b) 这个是true 是因为String类中它重写了父类的equals方法
我们如果查看Integer类的话会发现同样重写了equals方法
所以上面定义的a和b, a.equals(b)同样是true

当然上面说到过equals方法不是万能的,下面就说说:
Person类有name,age属性
现在new了2个对象p1和p2
p1的name和p2的name一样
p1的age和p2的age一样
p1.equals(p2)是true吗? 如果你看懂了上面的分析,这个地方应该是false的
因为此处调用的equals方法是父类Object的方法,所以这里我们必须重写equals方法了,至于如何重写,可以网上看看,这里就不多说了

下面提点额外的知识
如果我们这样定义
Integer a = 2;
Integer b = 2;
首先我们可以肯定a.equals(b) 这个是true的
那么a==b呢? 其实也是true
这个就涉及到一个缓存池的概念了,这个东西知道就好了,可以自己做做实验
比如:
String a = "abc";
String b = "abc";
a==b 也是true
还有Byte,Short也是类似

要说的东西还真多啊...
下面就涉及到JAVA SE 5.0的新特性了-->自动装箱和拆箱
比如一个方法传入的参数是int类型
public void doXXX(int i){}
我们可以传进一个Integer类型的参数,java虚拟机会自动将Integer类型的数据自动拆箱为int类型,同理,如果本来需要传入Integer类型,结果我们传入的是int型,则JVM自动将int类型自动装箱成Integer类型
这个是很好理解的
但是最近做了几个实验,自动装箱和拆箱在泛型中要慎重使用

补充一点:Person p = new Person();
上面这句代码做了如下事情:
1. Person : 加载Person.class字节码
2. new : ---> 创建对象
3. () : 调用构造函数

如果还有不懂的,可以给我留言,实在写不动了....
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
wnnpnn48
2010-03-12 · TA获得超过420个赞
知道答主
回答量:57
采纳率:0%
帮助的人:47.7万
展开全部
这是Java这么规定的啊,没什么好说的,基本数据类型不是对象,所以自然不会有构造函数,Integer是int的封装类,是对像,所以有构造函数。是对像才会有构造函数。

基本数据类型存储的是其对应的类型的值,引用数据类型存的是他所引用的对象的地址。在内存里,引用变量存在栈上,对像存在堆上,引用变量的值是他所引用的对象在堆中的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式