new关键字的理解

//输出的结果是?????????
//The answer is good and gbc

public class Example {
String str=new String("good");//new 一下分配一次内存空间,在new就又的分配一次内存空间
char []ch={‘a‘,‘b‘,‘c‘};
public static void main(String [] args){
Example ex=new Example();//
ex.change(ex.str,ex.ch);//在这个过程中只调用了全局变量str
System.out.print(ex.str+" and ");
System.out.print(ex.ch);
}

public void change(String str ,char ch[]){
str=new String("test ok");//这个str相当于局部变量,在运行完之后,这个内存空间就要被释放
ch[0]=‘g‘;//而这个仍然为全局变量,因为没有new
}
}

//输出的结果是?????????
//The answer is good and gbc

时间: 2024-10-15 16:48:20

new关键字的理解的相关文章

对final关键字的理解

http://www.cnblogs.com/xrq730/p/4820296.html 一直想写写这个话题.代表公司也面试过一些求职者,每次面试我必问的两个问题之一 就是“请你谈一谈对于final关键字的理解”.这是一个简单的小问题,但是不要小看它,通过对这个问题的回答以及一些简单的扩展就能看出一个求职者的基 础是否扎实以及是否有钻研精神.OK,开始进入主题. 相信对于final的用法,大多数人都可以随口说出三句话: 1.被final修饰的类不可以被继承 2.被final修饰的方法不可以被重写

C++(extern关键字的理解和作用深入)

extern关键字的理解和作用深入 extern是一个关键字,它告诉编译器存在着一个变量或者一个函数,如果在当前编译语句的前面中没有找到相应的变量或者函数, 也会在当前文件的后面或者其它文件中定义 引文一.(主要是实战中的各种情况)http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html 1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找

C++中关键字的理解--Static

C++中关键字的理解---Static 目录:1.static缘起             2.static自我理解             3.static举例使用             4.总结 -------------------------------------------------------------------------------------------------- 1.static缘起         C语言是面向过程构架,多文件为单位的编码的优异之处在于保持不同

各位大神对Java关键字的理解

关键字final: final变量的定义本身并不复杂,就是变量一经初始化就不能再指向其它对象(并不是不可以改变值).(原文链接) 关键字static: 被static修饰的成员变量和成员方法独立于该类的任何对象.也就是说,它不依赖类特定的实例,被类的所有实例共享. 实际上你需要搞明白,private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了.(原文链接) Java权限: private  本类 friendly 本包 proteced 本包.子类 public  

说说我对java中volatile关键字的理解

首先引用两篇其他作者的文章:1.http://www.infoq.com/cn/articles/ftf-java-volatile    2.http://blog.csdn.net/hupitao/article/details/45227891 “volatile关键字能保证每个线程能读到最新的变量值”,要理解这句话首先明确cpu,寄存器,内存之间的关系.引用文中的一段话: 有volatile变量修饰的共享变量进行写操作的时候会多第二行汇编代码,通过查IA-32架构软件开发者手册可知,lo

java中static关键字的理解(转载)

static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题.以下是本文的目录大纲: 一.static关键字的用途 二.static关键字的误区 三.常见的笔试面试题 若有不正之处,希望谅解并欢迎批评指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin05

【Java编程】volatile和transient关键字的理解

理解volatile ??volatile是java提供的一种轻量级的同步机制,所谓轻量级,是相对于synchronized(重量级锁,开销比较大)而言的. ??根据java虚拟机的内存模型,我们知道其中规定了:共享变量存储在主内存(Main Memory)中,每个线程都有一个私有的本地内存(Local Memory),本地内存保存了被该线程使用到的主内存的副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的变量. ??所谓同步,可以用如下这段同步格言来理解:如果向一个

java 对 final 关键字 深度理解

基础理解 : 1.修饰类 当用final去修饰一个类的时候,表示这个类不能被继承.处于安全,在JDK中,被设计为final类的有String.System等,这些类不能被继承 .注意:被修饰的类的成员可以是final修饰,可可以不是 . 2.修饰方法 : 方法不能被子类重写.常用在类设计时不希望被子类重写而修饰. 3.修饰方法参数 : 被修饰 的参数变量,不能在方法体内再次被赋值.这个好像是站在调用者的角度考虑的哈,就好像有个大佬拿了把菜刀给我,叫我去看人 ,大佬说,你一定要用这把菜刀去砍,不要

java中static关键字的理解

static关键字 解决两种问题 1.   只想为某特定域分配单一的存储空间,而不去考虑究竟要创建多少对象,甚至根本不创建任何对象 2.   希望某种方法不与包含它的任何对象关联在一起,也就是说,即使没有创建对象也能调用这个方法 当static作用于某个字段时,肯定会改变数据创建的方式,因为一个static字段对每个类时只有一份存储空间,而非static字段则是对每一个对象都有一个存储空间 和其他方法一样,static方法可以创建或使用其类型相同的被命名的对象,因此static方法常常被拿来做牧

java volatile关键字的理解

转载:http://shmilyaw-hotmail-com.iteye.com/blog/1672779 一个多线程的示例引发的问题 在讨论这个关键字之前先看一个多线程的示例代码: Java代码   public class RaceCondition { private static boolean done; public static void main(final String[] args) throws InterruptedException{ new Thread( new R