`

由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进行更改 得到了自己想要的窗口 本窗口是用来做局域聊天窗口特别设计的 详细 内容 代码都有详细注释谢谢下载

    java JFrame最大化问题

    ### Java JFrame 最大化问题详解 #### 一、概述 在Java Swing中,`JFrame` 是用于创建图形用户界面的主要容器类之一。有时我们希望应用程序启动时窗口能够自动最大化,以便用户能够充分利用屏幕空间。然而,在实际...

    JFrame窗口学习.doc

    - `setTitle(String title)`方法用于设置窗口的标题,如`jframe.setTitle("我的窗口");`。 - `setSize(Dimension size)`或`setBounds(int x, int y, int width, int height)`用来设定窗口的大小,`Dimension`对象...

    java JFrame框架的应用

    Java JFrame框架是Java Swing库中的一个核心组件,用于创建窗口应用程序。它提供了基本的窗口功能,包括窗口的大小调整、关闭、最小化和最大化等。在Java GUI编程中,JFrame是一个不可或缺的部分,用于构建图形用户...

    JFrame框架的jar

    在Java编程环境中,`JFrame` 是Swing库中的一个核心组件,用于构建图形用户界面(GUI)的应用程序。它代表了窗口或者框架,是许多Java桌面应用的基础。`JFrame` 提供了添加其他组件、菜单、工具栏以及设置窗口属性的...

    JFrame 应用软件开发平台介绍

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

    JFrame简单设置窗口,菜单,和菜单项

    - `setTitle(String title)`:设置窗口标题。 - `setSize(Dimension size)` 或 `setSize(int width, int height)`:设置窗口大小。 - `setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)`:关闭窗口时终止整个程序。 ...

    JFrame 常用方法.doc

    在Java的Swing图形用户界面库中,`JFrame`是构建桌面应用程序的基本组件之一,它代表了应用程序的主窗口。通过使用`JFrame`及其提供的各种方法,开发者可以定制和控制窗口的外观与行为,从而创建出符合需求的用户...

    Jframe添加背景图片

    ### JFrame 添加背景图片详解 在Java Swing中,我们经常需要为`JFrame`窗口设置背景图片来提升用户体验或实现特定的设计需求。本文将详细介绍如何在`JFrame`中添加背景图片,并通过一个示例程序来具体说明实现过程...

    JFrame边框阴影效果,窗口透明,组件不透明

    在Java GUI编程中,`JFrame` 是一个重要的类,用于创建窗口应用程序的基本框架。`JFrame` 提供了默认的窗口布局、标题栏、关闭按钮等基本功能。然而,有时候我们希望为`JFrame`添加更丰富的视觉效果,比如阴影边框和...

    JFrame 代码自动生成工具

    ### JFrame 代码自动生成工具详解 #### 一、概述 JFrame应用软件开发平台是一款基于JavaEE技术栈的高效开发框架及其配套的自动化代码生成工具。该平台旨在通过自动化手段大幅减少开发工作量,帮助软件开发团队降低...

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

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

    java JFrame,java se,javase

    1. 设置窗口标题:`setTitle(String title)`,例如`frame.setTitle("我的Java应用")`。 2. 设置窗口大小:`setSize(int width, int height)`或`setPreferredSize(Dimension dim)`。 3. 设置窗口位置:`setLocation...

    JFrame最小化到托盘

    在Java GUI编程中,`JFrame`是最常用的窗口组件,用于创建用户界面。"JFrame最小化到托盘"指的是当用户点击窗口的最小化按钮时,不是将窗口缩小到任务栏,而是将其隐藏到系统托盘区域。这种方式通常用于需要长时间...

    java中JFrame布局

    在Java编程语言中,`JFrame` 是一个重要的类,它是大部分图形用户界面(GUI)应用程序的基础。`JFrame` 提供了一个窗口,可以在这个窗口上添加组件来创建丰富的交互式应用。`JFrame` 的布局管理是决定这些组件如何在...

    java JFrame

    Java JFrame 是Java Swing库中的一个核心组件,它是Java图形用户界面(GUI)应用程序的基础。它提供了窗口的基本结构,包括标题栏、菜单栏、边框以及内容面板,是创建交互式桌面应用的重要工具。在深入理解JFrame...

    java jframe基础2

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

    如何去掉JFrame上的最大化最小化和关闭按钮.doc

    如何去掉JFrame上的最大化最小化和关闭按钮 在Java中,JFrame是一个基本的GUI组件,用于创建窗口式应用程序。然而,在某些情况下,我们可能需要去掉JFrame上的最大化、最小化和关闭按钮,以实现自定义的窗体样式。...

    JFrame 控制层使用说明

    - **80%的重复工作自动化**:大部分通用的业务逻辑和代码可以通过JFrame自动化完成,只留下20%的特定业务逻辑代码由开发者完成。 - **降低开发门槛**:开发者只需要掌握基本的Java与JavaScript知识就能进行高效的...

    JFrame文件上传Java_swing应用

    在Java编程领域,Swing库是...通过这个项目,开发者不仅可以掌握Swing的基本用法,还能深入理解文件操作、用户交互和数据验证等实际开发中常见的问题。对于想要提升Java GUI编程技能的人来说,这是一个很好的实践平台。

Global site tag (gtag.js) - Google Analytics