面试中碰到一个题

public class Example
{String str = new String("good");char[] ch  = { 'a', 'b', 'c' };public static void main(String[] args) {Example ex = new Example();ex.change(ex.str, ex.ch);System.out.print(ex.str + "and");System.out.print(ex.ch);}public void change(String str, char ch[]) {str = "test ok";ch[0] = 'g';}
}

根据映像 回来上网查到 然后运行    结果输入good and gbc 和我预想的不同

觉得原因是  string源码里写的   Multiple strings can share the same char[] because strings are immutable

String是不可变的

请教了大神得知   change()方法里面 str 的引用只是指向了  "test ok" 这个字符串

并没有改变"good"这个字符串

就是说   :

字符串 "good"是一个不变的字符串 ;

change()里面的str是另一个复制的字符串

当执行change(String str )方法的时候 在change内部重新创建了"text ok字符串"

然后改变了   str的指向  并且只能在change方法内可用       并没有改变原有的"good"字符串

所以输出了  good and gbc

如果我总结的不对 希望大神指出一下

祝大家编程每日精进

java面试题good and gbc相关推荐

  1. 精选30道Java笔试题解答

    精选30道Java笔试题解答       都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进 ...

  2. java面试题:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

    java面试题:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递.Java编程语言只有值传递参数. 当一个对象实 ...

  3. Java笔试题解答和部分面试题

    面试类  银行类的问题 问题一:在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? HashMap本身没有什么问题,有没有问题取决于你是如何使用它的.比如,你 ...

  4. 收集非常经典的Java面试题

    15道非常经典的Java面试题 (一)选择题(每题5分) (1)下面程序的运行结果是:() String str1 = "hello";String str2 = "he ...

  5. java 实体类包含list 怎么取值_2019 最新 500 道 Java 面试题

    2015 年,因为工作岗位的变动,开始负责给集团招聘一些技术人员,出于对公司的负责,也为了更好的胜任技术经理的职位,在面试的这件事上,我做了大量的"功课",首先我研究了几乎所有大厂 ...

  6. Java面试题总结-Day4

    <?xml version="1.0" encoding="utf-8"?> Java面试题总结-Day4 Java面试题总结-Day4 Table ...

  7. 用友公司Java面试题(含答案)

    为什么80%的码农都做不了架构师?>>>    用友公司Java面试题(含答案) 1.Hashtable和HashMap有什么区别?   a.Hashtable是继承自陈旧的Dict ...

  8. java面试题2019 答案

    Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别(String 类型和 StringBuffer 类型的主要性能区别其实在于 Stri ...

  9. Java类加载机制详解【java面试题】

    Java类加载机制详解[java面试题] (1)问题分析: Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数 ...

最新文章

  1. php 删除硬链接,RHCE系列之文件管理----硬链接和软链接
  2. 系列笔记 | 深度学习连载(2):梯度下降
  3. 使用Java客户端操作elasticsearch--设置mappings、添加文档、查询数据
  4. synchronized 异常_由浅入深,Java 并发编程中的 Synchronized
  5. springcloud 使用git作为配置中心
  6. 软件项目确立的几个步骤
  7. Chrome 无法正常打开站点
  8. 初中三年级数学可以用计算机吗,不到3分钟,这份初中数学攻略被家长和学生疯狂转发!太实用了!...
  9. 5G手机占比逼近四成,华为和小米将加速5G普及
  10. (Python)五子棋
  11. 联想微型计算机怎么进入bios,联想怎么进入bios图文教程
  12. STM8电源模式管理及功耗控制
  13. Day1—图片动态过渡
  14. 盗取QQ密码的顽固的IEXPLORE.EXE病毒
  15. HTTP各版本号的区别
  16. 实施微前端的六种方式
  17. android 9华为p20,华为P20PRO升级EMUI9.0(安卓9.0)的一些感受
  18. 【推荐】ubuntu中经常使用的几款不错的小工具
  19. 联盟新消息对淘客带来哪些影响
  20. 防饿了么java源码_饿了么点餐源码、今日头条源码 等

热门文章

  1. 小学生编程软件python_Python编程工具pycharm的使用
  2. VLC Buffering机制介绍
  3. C- 打印表格,每行打印整数及其平方立方
  4. 小米的澎湃CPU看来已经放弃了?
  5. python typing.Literal 与sqlalchemy中的Literal
  6. java expected_「expected」JAVA常见错误之 expected - seo实验室
  7. 使用R语言获得16S物种丰度
  8. 文字界面与图形化界面
  9. 数据虫巢原创文集/2019年9月编
  10. Keycloak 初步 学习了解