`
kaobian
  • 浏览: 209012 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

聊聊Java 方法中的参数

    博客分类:
  • java
阅读更多
昨天拜读了一下《Thinking In Java》翻译版,其中有一段话是这样的写,大概的意思是:java方法中的参数 为final类型的,则该参数所指的对象是不可以改变的,这个 翻译真是让人蛋疼的很。

那么我来聊聊这个话的意思:
1、 java 方法中的参数如果为基本数据类型或者String 时,相当于在参数前面自动加上了final,你在方法体内 对 参数的值进行修改,并不会影响方法调用出的变量。
2、 java 方法不能让对象参数引用一个新的对象。什么意思?代码举个例子
 pubic class Test{
   
    public void changeArguments(Bean bean){
       bean.name = "kaobian";
       bean = new Bean();
       bean.name="go out";
    }
    
    public void static main(String[] args){
       Bean bean = new Bean();
       bean.name="hello world";
       new Test().changeArguments(bean);
       System.err.println("modify bean " + bean.name);
       //返回的是kaobian而不是go out
    }


 }
 class Bean {
    public String name ;
    public Bean(){
    }
 }


这就是说 java方法中的参数不可能改变这个变量所指向的内存地址。
3、java 方法中的参数为final 类型的 非基本类型应用,那么,我们是不可以改变参数所指向的内存地址,但是我们可以改变参数所指向对象的状态,也就是他的属性


这是我一点点才疏学浅的总结,希望高手指点
分享到:
评论

相关推荐

    细聊java中的System.out.println()

    我们从System的源码中可以了解到System是java中的一个自定义的类,位于java.lang包下面。 Out是System里面的一个静态成员,他是java.io.PrintStream类的引用。他是个不可更改的类方法。并且是通过Static修饰的。...

    Java企业微信群机器人发送消息

    3.有含代理的构造方法和不含代理的构造方法,可根据需要选择调用; 4.参数使用的是JSONObject,防止在用字符串拼接参数时出现各种特殊字符转义问题; 5.发送图片大小不超过2M(企业微信的规定)。 具体使用步骤见...

    聊聊Java的泛型及实现

     泛型是对Java语言类型系统的一种扩展,有点类似于C++的模板,可以把类型参数看作是使用参数化类型时指定的类型的一个占位符。引入泛型,是对Java语言一个较大的功能增强,带来了很多的好处:  1、类型安全。...

    一个小例子聊聊 JAVA 泛型基础

    背景  周五本该是愉快的,可是花了一个早上查...但是当我们从容器中取出容器中的对象的时候我们必须小心翼翼,因为容器中的对象具有运行时的类型信息,这意味着你不能够将一个带有运行时类型信息的对象赋值给另一个类

    Java 实时社区论坛.zip

    初衷Sym 的诞生是有如下几点原因:大多数论坛用户体验不够现代化,想做一个和聊 QQ 一样体验的论坛已有的用 Java 写的论坛真的很少也很丑,并且大多已经不再维护我们想实现一种新的网络社区体验,独立博客 社区互动...

    Java NIO+多线程实现聊天室

    涉及到的技术点 线程池ThreadPoolExecutor 阻塞队列BlockingQueue,生产者消费者模式 ...imageSize=n] 可以添加请求参数 例1:task.file: https://img1.doubanio.com/view/movie_poster_cover/lpst/public/

    Java开发基于多线程和NIO实现聊天室源码+项目说明(含服务端+客户端).zip

    Java开发基于多线程和NIO实现聊天室源码+项目说明(含服务端+客户端).zip 涉及到的技术点 - 线程池ThreadPoolExecutor - 阻塞队列BlockingQueue,生产者消费者模式 - Selector - Channel - ByteBuffer - ...

    CrawlerFJP:带有 ForkJoinPool 类的爬虫(Java)

    履带式FJP 带有 ForkJoinPool 类的爬虫 Web 爬虫使用 ForkJoinPool 类来并行化爬取站点的过程。 关于域的数据是从一个文件中读取的,在每个域上,爬虫访问的页面不超过 100 页,在对一个站点的... 可能的启动参数: lo

    javaOA办公系统模块设计方案.pdf

    运⾏中流程:查看流程信息、当前任务节点、当前流程图、作废暂停流程、指派待办⼈ 4.历史的流程:查看流程信息、流程⽤时、流程状态、查看任务发起⼈信息 5.待办任务 :查看本⼈个⼈任务以及本⾓⾊下的任务、办理、...

    Java版水果管理系统源码-c-plus-Interview:c-plus-面试

    Java版水果管理系统源码 c++面试资料整理 腾讯c++岗面经汇总 牛客网 知乎 相关资料 学习路线 问题整理 语言基础(c++) C++ 11 了解多少? C++11新特性 C++用的是哪个版本的  答C++11 那你知道C++11和C++98有什么...

    基于java实现的图书馆管理系统项目源码

    (4)单击“系统设置”/“参数设置”命令,对办证费用及有效期限信息进行添加操作。 (5)单击“系统设置”/“书架设置”命令,对书架信息进行添加、修改及删除操作。 (6)单击“读者管理”/“读者类型管理”命令,...

    使用JSR 303和AOP简化你的接口开发

    无论是Web调用还是智能设备APP调用,只要约定好参数形式和规则就能够协同开发。...今天我们就来聊一聊JSR 303和AOP的结合。详细文章请参阅:http://blog.csdn.net/chaijunkun/article/details/44854071

    百度地图开发java源码-ExceptionSearch:纯前后端分离的搜索引擎项目实战

    百度地图开发java源码 ExceptionSearch 纯前后端分离的搜索引擎项目实战 纯前后端分离项目的搜索引擎实战 前言: ...ok咱们先聊一聊第一个问题,简而言之,就是搜索的效率和精准度。 搜索的效率和精准度

    typetools:处理泛型类型的工具

    特别是,Java的泛型没有提供解决或验证给定类的类型信息的方法。 TypeTools希望通过完全解决在任何类,接口,lambda表达式或方法上声明的通用类型信息来解决此问题。用法类提供以下一些方法: Type reify(Type type...

    scala从入门到精通技术教学视频

    04.方法参数 05.方法调用方式 06.函数入门 07.方法和函数的区别 08.案例_打印nn乘法表 第六章 面向对象入门 00.导学 01.类和对象的相关概念 02.创建类和对象 03.创建类和对象的简写形式 04.定义和访问成员...

    COMPSCI-355-CppReview:有关讨论点,请参见源文件中的文档。

    C++中的模板类与Java中的泛型之间的区别。 第10部分。STL容器和迭代器。 第11部分。运算符重载,友好函数和默认参数。 档案 第1部分。balls_into_bins.cpp 第2部分。swap1.cpp,swap2.cpp,swap3.cpp,exercise....

    solo-spring:solo-spring是基于开源的Solo二次开发的博客系统,出发点为将小众的组件替换为JAVA EE最常用的组件。主要改进如下:1、将依赖的lake框架替换为Spring MVC;2、将文件上传至七牛云替换为本地目录;3、增加编辑器UEditor

    是一款一个命令就能搭建好的 Java 开源博客系统,并内置了 15+ 套精心制作的皮肤。除此之外,Solo 还有着非常活跃的,文章分享到社区后可以让很多人看到,产生丰富的交流互动。 功能 Solo 沉淀至今的每一个功能你...

    ElasticSearch5.2全网最全技术视频

    (6)课程学完之后,学员可以掌握es所有核心知识点,理解es核心原理,而且能够熟练动手操作所有学到的知识和功能,并且能够掌握ES集群的基本部署,并且基于Java开发一个适用于中小型企业的搜索引擎以及数据分析系统...

Global site tag (gtag.js) - Google Analytics