首页 > 编程语言 >Java的引用传替

Java的引用传替

时间:2023-10-20 11:04:35浏览次数:33  
标签:objectA Java String System public aaaa add 引用 传替


public class Sample {

	public static void main(String[] args) {
		A objectA = new A();
		System.out.println(objectA.a);
		add(objectA);
		System.out.println(objectA.a);
	}

	private static void add(A objectA) {
		objectA.a = 1;
	}

}

class A {
	int a = 0;
}

 结果为:


0 1


 字符串有点儿意思:

public class Sample {

	public static void main(String[] args) {
		String a = "aaaa";
		String b = "bbbb";
		System.out.println(a);
		add(a,b);
		System.out.println(a);
	}

	public static void add(String a, String b){
		a=a+b;
	}
}

 结果为:


aaaa aaaa


这是因为:

 "aaaa"和"bbbb"会在堆存放,变量a和b,存的是这个的引用(就可以理解为地址),
调用add(a,b)后生成局部变量a和b。
外面的变量和局部变量都指向“aaaa”。
执行a=a+b;后,生成字符串“aaaabbbb”,
这时局部变量指向“aaaabbbb”,
外面的变量还指向“aaaa”。
调用执行完局部变量释放。
外面的变量还指向“aaaa”。

 

其实这里的关键是:是否生成新的对象。

标签:objectA,Java,String,System,public,aaaa,add,引用,传替
From: https://blog.51cto.com/u_16298170/7947889

相关文章

  • Java中运行音频文件
    publicclassMp3Player{publicstaticvoidmain(Stringargs[]){try{ FileInputStreamfileau=newFileInputStream(newFile("f:/tmp/ss.wav")); AudioStreamas=newAudioStream(fileau); ......
  • Java 多线程例子2 前台线程(用户线程) 后台线程(守护线程 ) setDaemon
    1,setDaemon(true)后就是后台线程(守护线程),反之就是前台线程(用户线程)2,后台线程和前台线程的区别:在java程序中如果所以的前台线程都已经退出,所有的后台线程自动退出。TestThread为后台线程:publicclassThreadDemo{ publicstaticvoidmain(String[]args){ Threadt=newTes......
  • java集合框架及其特点
    常见的集合以及他们的特点有哪些呢java集合类主要由Collection和Map两个根接口派生出来的。Collection派生了List,Set,Queue这三个子接口。1、List代表有序可重复集合,可直接根据元素的索引来访问。ArrayList:排列有序,可重复底层使用数组速度快,增删慢线程不安全容量不够......
  • Java生态系统的进化:从JDK 1.0到今天
    文章目录JDK1.0:开启Java时代JDK1.1:Swing和内部类JDK1.2:Collections框架和JIT编译器JDK1.5:引入泛型和枚举JDK1.8:Lambda表达式和流JDK11以后:模块化和新特性未来展望1.云原生和容器化2.更好的性能和效率3.更强大的库和框架4.语言改进结论......
  • 【Java 进阶篇】使用 JDBC 更新数据详解
    在关系型数据库中,更新数据是一项常见的任务。通过JavaJDBC(JavaDatabaseConnectivity),我们可以使用Java编程语言来执行更新操作,例如修改、删除或插入数据。本文将详细介绍如何使用JDBC来进行数据更新操作,包括示例代码和必要的概念。JDBC更新操作概述在JDBC中,更新操作通常分为以下......
  • JS加密:JavaScript代码加密混淆
    JS加密,即JavaScript代码加密混淆,是指对js代码进行数据加密、逻辑混淆。使js代码不能被分析、复制、盗用,以达到保护js代码、保护js产品、保护js知识产权的目的。JS加密定义JS加密,即:JavaScript代码加密混淆、JavaScript代码混淆加密。JavaScript,简称JS,加密指对JS代码进行密文化处理......
  • Java基础的变量与常量
    1.编写第一个Java程序使用IDEA进行编写java程序1publicclassHello{2publicstaticvoidmain(String[]args){3System.out.print("HelloWorld");4}5}第一行:public class是定义类的关键字固定写法,Hello表示类名要与文件中的名字相同第......
  • android 升级到java11,升级到androidx的操作方法
    androidstudioAndroid9(28)升级到Android10(29)Androidx小计_sdk29对应依赖androidx.appcompat:appcompat-resources是-CSDN博客java.lang.NoClassDefFoundError:Failedresolutionof:Landroidx/appcompat/R$drawable;-简书(jianshu.com)......
  • java课后动手动脑
    动手动脑Ⅰpackageorg.example;importjava.util.Scanner;importjavax.swing.*;publicclassMain{publicstaticvoidmain(Stringargs[]){inti=1,j=0,k;k=i/j;try{k=i/j;//Causesdivision-......
  • JAVA项目中的常用的异常处理情况
    https://www.cnblogs.com/gothic-death/p/9946415.html在说java异常处理情况之前简单说下:java中异常的定义。java程序在运行时出现的不正常情况称之为异常。为了防止此类情况发生后及时处理该异常,java将所有可能发生异常的情况用类的形式进行描述和封装。描述不正常情况的类称为......