`

由JFrame的title引起的String传递问题

阅读更多
import javax.swing.JFrame;

public class Main {

	public static void main(String[] args) throws Exception {
		String title = "abc";
		JFrame jframe = new JFrame(title);
		jframe.setVisible(true);
		title = "def";
	}
}

 

运行此程序,最终title不会变为def,为什么呢?如此这般title的再改变已经不能再影响JFrame的title了,为什么呢?String是对象,java传的是引用,怎么会无效了呢?原因在于title第二次赋值之后,已经是一个新对象了,再上程序:

 

public class Test {
	
	String string1 = "a";
	String string2 = "b";
	
	public static void main(String[] args) {
		new Test().go();
	}
	
	public void go() {
		change(string2);
		string2 = "c";
		System.out.println(string1);
	}
	
	public void change(String string2) {
		string1 = string2;
	}

}

 

这结果是b,说明没能改变

 

public class Test1 {
	
	StringBuffer string1 = new StringBuffer("a");
	StringBuffer string2 = new StringBuffer("b");
	
	public static void main(String[] args) {
		new Test1().go();
	}
	
	public void go() {
		change(string2);
		string2.replace(0, 1, "c");
		System.out.println(string1);
	}
	
	public void change(StringBuffer string2) {
		string1 = string2;
	}

}

 

这结果是c,说明同一引用内容的改变影响到了,上图:

 


这是方法传参示意图,实参、形参的引用容易是两个不同的,但是彼此所盛装的引用指向是一致的,String被第二次赋值后,它所改变的已经不仅是内容了,而是引用本身了,已经是另外一个引用了,已不是指向原来 的String Object,因此无效。

  • 大小: 1.6 KB
分享到:
评论

相关推荐

    更改标题栏背景并重写JFrame窗口

    对JFrame窗口进行了重写 最大最小化按钮可以改变(我用的是qq上的最大最小化按钮图标) 对JFrame进行更改 得到了自己想要的窗口 本窗口是用来做局域聊天窗口特别设计的 详细 内容 代码都有详细注释谢谢下载

    JFrame 代码自动生成工具

    应用软件开发过程中80%的重复工作将由JFrame来完成,20%的特殊业务逻辑代码由开发人员在生成的代码基础上补充完善。 JFrame应用软件开发平台就如“一套毛胚房”,提供了软件的基本框架和相关基础设施;软件开发团队...

    JFrame 应用软件开发平台介绍

    应用软件开发过程中80%的重复工作将由JFrame来完成,20%的特殊业务逻辑代码由开发人员在生成的代码基础上补充完善。 JFrame应用软件开发平台就如“一套毛胚房”,提供了软件的基本框架和相关基础设施;软件开发团队...

    JFrame 应用软件开发平台 概述

    应用软件开发过程中80%的重复工作将由JFrame来完成,20%的特殊业务逻辑代码由开发人员在生成的代码基础上补充完善。 JFrame应用软件开发平台就如“一套毛胚房”,提供了软件的基本框架和相关基础设施;软件开发团队...

    JFrame 控制层使用说明

    应用软件开发过程中80%的重复工作将由JFrame来完成,20%的特殊业务逻辑代码由开发人员在生成的代码基础上补充完善。 JFrame应用软件开发平台就如“一套毛胚房”,提供了软件的基本框架和相关基础设施;软件开发团队...

    jframe标题栏处理实例 jframe标题栏处理实例

    jframe标题栏处理实例jframe标题栏处理实例jframe标题栏处理实例jframe标题栏处理实例

    java JFrame最大化问题

    java JFrame最大化问题

    java jframe基础2

    java jframe基础教程2源码代码免费提供

    JFrame 常用方法.doc

    JFrame 常用方法.doc

    java JFrame框架的应用

    java JFrame框架的应用 java JFrame框架的应用 java JFrame框架的应用

    JFrame 应用软件开发平台 开发规范

    应用软件开发过程中80%的重复工作将由JFrame来完成,20%的特殊业务逻辑代码由开发人员在生成的代码基础上补充完善。 JFrame应用软件开发平台就如“一套毛胚房”,提供了软件的基本框架和相关基础设施;软件开发团队...

    JFrame界面源程序

    用JFrame实现图形化 主要用JLabel和label实现多行文本问题。

    JFrame源代码

    JFrame源代码经典

    JFrame窗口学习.doc

    JFrame窗口学习.docJFrame窗口学习.docJFrame窗口学习.doc

    java实现的画图JFrame

    这是用Java代码写的一个JFrame的画图工具,可以实现画直线,画圆,画举行的代码

    JFrame学生选课系统

    这是基于JFrame框架实现的一个学生成绩管理系统

    java中JFrame布局

    java中JFrame的几种布局,流布局,网格布局,卡片布局,边框布局

    java JFrame版的登陆界面

    最简单的java基于JFrame版的登陆界面

    Jframe添加背景图片

    Jframe添加背景图片,图片根据你的显示框显示,里面有注解

    java实现 JFrame界面实现 猜数游戏

    java实现 JFrame界面实现 猜数游戏,附带幻方演示程序。java实现 JFrame界面实现 猜数游戏,附带幻方演示程序。java实现 JFrame界面实现 猜数游戏,附带幻方演示程序。

Global site tag (gtag.js) - Google Analytics