首页编程java编程java reference是什么,在Java中什么是 Primitive 和 Reference 类型

java reference是什么,在Java中什么是 Primitive 和 Reference 类型

编程之家2023-10-1285次浏览

大家好,今天来为大家分享java reference是什么的一些知识点,和在Java中什么是 Primitive 和 Reference 类型的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

java reference是什么,在Java中什么是 Primitive 和 Reference 类型

Java里什么是引用类型

最简答来说除了8中基本类型以外剩下的都是引用类型

Java提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。

原始类型封装类

java reference是什么,在Java中什么是 Primitive 和 Reference 类型

boolean-->Boolean

char--->Character

byte-->Byte

java reference是什么,在Java中什么是 Primitive 和 Reference 类型

short-->Short

int-->Integer

long-->Long

float-->Float

double-->Double

引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。同时为了面向对象操作的一致性,这些基本类型都有相应的封装类型:Integer、Short、Long、Byte、Float、Double、Character等。

因为封装类型是对象,所以可以进行相应的很多对象能力函数操作,这样就可以提供很多基本类型难以完成的工作的完成和实现。

你可以通过以下方式来声明该类型。

int a,a为int类型的变量

char a,a为char类型的

String对象

1.首先String不属于8种基本数据类型,String是一个对象。

因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。

2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;

3. String str=”punkll”;

String str=new String(“punkll”);的区别:

在这里,我们不谈堆,也不谈栈,只先简单引入常量池这个简单的概念。

常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包括了关于类、方法、接口等中的常量,也包括字符串常量。

看例1:

String s0=”punkll”;

String s1=”punkll”;

String s2=”punk”+“ll”;

System.out.println( s0==s1);

System.out.println( s0==s2);

结果为:

true

true

首先,我们要知结果为道Java会确保一个字符串常量只有一个拷贝。

因为例子中的s0和s1中的”punkll”都是字符串常量,它们在编译期就被确定了,所以s0==s1为true;而”punk”和”ll”也都是字符串常量,当一个字符串由多个字符串常量连接而成时,它自己肯定也是字符串常量,所以s2也同样在编译期就被解析为一个字符串常量,所以s2也是常量池中”punkll”的一个引用。

所以我们得出s0==s1==s2;

用new String()创建的字符串不是常量,不能在编译期就确定,所以new String()创建的字符串不放入常量池中,它们有自己的地址空间。

看例2:

String s0=”punkll”;

String s1=new String(”punkll”);

String s2=”punk”+ new String(“ll”);

System.out.println( s0==s1);

System.out.println( s0==s2);

System.out.println( s1==s2);

结果为:

false

false

false

例2中s0还是常量池中”punkll”的应用,s1因为无法在编译期确定,所以是运行时创建的新对象”punkll”的引用,s2因为有后半部分new String(“ll”)所以也无法在编译期确定,所以也是一个新创建对象”punkll”的应用;明白了这些也就知道为何得出此结果了。

java 中的 "this" reference 是干什么的呢 为什么要用它呢

根据你这条语句如果只是单独出来一个赋值语句那就没什么用this的必要,this准确点说应该是指向自身的一个引用

class A(){

private int a;

}

A(int a){

this.a=a

}

看到了吧!你构造了一个方法,但是参数名都是a!赋值的时候会造成混淆,这个时候用this.a=a就避免了这个问题,表示把a赋值给当前对象的成员变量a!

在Java中什么是 Primitive 和 Reference 类型

Java的数据类型分为两类:primitive和reference类型

Java虽然是个面向对象的语言,也声称“Everything is object”-一切都是对象。但是,我觉得还不够纯粹和彻底,和ruby或者python比较一下就知道了。在Java中,数字和布尔类型就不被看做对象,而是被称为primitive类型。不过也不见的就不好,本文也不是想对此评论和分析。本文是想阐述Java的数据类型。

Java的数据类型

Java的数据类型分为两类:primitive和reference类型。我们可以从hold数据这个角度来说。primitive类型可以hold数字和布尔数据;reference类型可以hold对象,接口和数组类型的数据的指针。可以想象后一种数据比较复杂,往往是一段数据,不像primitive的数据是比较单纯的数据单元,比如int,float和boolean。

java中传参数是by value还是by reference

int

doulbe这些

是直接数值赋值过去了Object这些传的是这些对象的内存地址[也是值]

传过去的内存地址和传入的一样的此时指向的是同一个对象。而传入的int

这些

在函数内被改变了是不影响

传入函数的

object这些因为传入的是内存地址

函数内卫都是对同一个对象修改

所以在方法中传入修改的object会影响到方法外的object

OK,关于java reference是什么和在Java中什么是 Primitive 和 Reference 类型的内容到此结束了,希望对大家有所帮助。

什么专业要学java?学Java应该选什么专业什么是java的对象,什么是Java中的对象