起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > Java基本类型和引用类型的示例

Java基本类型和引用类型的示例

时间:2022-06-08 14:16:25来源:IT培训网 作者:Java学习网 已有: 名学员访问该课程

前言: 我们在Java中有两个不同的类别,它们是原始类型和Java引用类型。 原始类型是byte、char、int、long 、 double、short和bo

我们在Java中有两个不同的类别,它们是原始类型和Java引用类型。

原始类型是byte、char、int、long 、 double、short和boolean。指定对象类型的类是引用类型,例如Integer、Double、Long等。

当涉及到原始类型的初始化时,它们默认初始化,例如boolean 初始化为 false,其他初始化为 0。它们还可以存储其声明类型的一个值。

引用类型变量是对象,因此它们将对象的位置存储在内存中,并且默认初始化为空值。

内存中的原始类型

原始变量包含值。

在下面的内存视图中,“变量 i”的值为 23,其内存地址为 4567,而“变量 c”的值为“d”,其内存地址为 5234。

内存中的引用类型

在引用类型中,变量包含值的地址。

在下面的内存视图中,变量 str值指向该值,其地址为 2675。当我们查看地址 2675 时,该值是“sw test academy”。这样,我们可以说变量str指向的是“sw test academy”这个值。

在下面的示例中,我们将同时查看内存中的原始类型和引用类型,以更好地理解这个概念。

根据上面的代码,如下图所示的 num1 和 num2 具有不同的地址并保存值 22 但 String 变量指向相同的值,它们的值是值“sw test academy”的地址,即900。

让我们做一些例子,看看它们在代码中的表现。

Java 示例中的原始类型

原始类型在 Java 中是按值传递的,我们将在下面的示例中看到这一点。变量a的值在我们在 modify 方法中修改后没有改变,因为我们发送的是变量 a的副本,而不是它的引用。这样,在modify()方法中,我们更改的是“副本 a 的值”,而不是“真正的 a ”或“ a 的引用”。在编程中,我们称这种行为为“按值传递”。

公共类PrimitiveTypeExample {<字体>< /font > 
    @Test <字体>< /font >
    public void originalTypeExample () {<字体>< /font >   
        诠释a = 8 ; <字体>< /字体>
        系统。出来。println ( "修改前:" + a ) ; <字体>< /字体>
        修改(一);<字体>< /字体>
        系统。出来。println ( "修改后:" + a ) ; <字体>< /字体>
    }<字体>< /font >
<字体>< /字体>
    私有静态无效修改(int a ){<字体>< /font >    
       - 一种; //在这里,a的值不会改变,因为a来这里不是作为参考。<font></font>
        系统。出来。println ( "方法内部a的值:" + a ) ; <字体>< /字体>
    }<字体>< /font >
}

输出

Java 示例中的引用类型

在下面的示例中,modifyAndSum()方法不会更改原始数组,因为在此方法中,我们正在创建数组的副本并对这个Java复制数组进行操作。这就是为什么在我们测试中的modifyAndSum()方法之前和之后,数组元素的总和是相同的。但是,我们将数组的引用发送给sum()方法,这就是为什么在sum()方法中我们要更改原始数组。这在编程中称为“按引用传递” 。

公共类ReferenceTypeExample {<字体>< /font > 
    @Test <字体>< /font >
    public void referenceTypeExample () {<字体>< /font >   
        int [] myArr = new int [] { 4 , 5 } ; <字体>< /字体>    
<字体>< /字体>
        系统。出来。println ( "在 modifyAndSum 方法之前:" + ( myArr [ 0 ] + myArr [ 1 ])) ; //所有前数组中数字的总和。<font></font>
        modifyAndSum ( myArr ) ; <字体>< /字体>
        系统。出来。println ( "modifyAndSum方法后:" + ( myArr [ 0 ] +myArr [ 1 ])) ; //modifyAndSum 方法没有改变原始数组。<font></font>
        总和(myArr );<字体>< /字体>
        系统。出来。println ( "求和后的方法:" + ( myArr [ 0 ] + myArr [ 1 ])) ; //Sum 方法因为引用类型而改变了 myArr!<font></font>
    }<字体>< /font >
<字体>< /字体>
    private static void modifyAndSum ( int [] arr ) {< font >< /font >    
        arr = 数组。copyOf ( arr, arr.length ) ; //这里,我们正在创建一个新数组!修改不会影响原始数组。<font></font>
        arr [ 0 ] --; <字体>< /字体>
        系统。出来。println ( "内部 modifyAndSum 方法:" + ( arr [ 0 ] + arr [ 1 ])) ; <字体>< /字体>
    }<字体>< /font >
<字体>< /字体>
    private static void sum ( int [] arr ) {< font >< /font >    
        系统。出来。println ( "内部求和法:" + ( arr [ 0 ] + arr [ 1 ])) ; //这里我们添加原始数组的值。<font></font>
        arr [ 0 ] --; //这里,我们正在修改原始数组,因为我们作为参考发送。<font></font>
    }<字体>< /font >
}

输出

文章出自:http://qh.itpxw.cn/peixun/software/2022121504.html

文章标题:Java基本类型和引用类型的示例



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

你也许会喜欢如下的文章?
(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02
推荐内容