首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于java

有一个比较经典的例子,如果你能说出此题的结果,说明你是java内存解析能手: public class Test1 { public static class ParamTest { // 初始值为...void change(ParamTest t) { ParamTest tmp = new ParamTest(); tmp.num = 9; t = tmp; } // 改变方法参数的值...public void add(int i) { i += 10; } // 改变方法参数属性的值 public void add(ParamTest pt) {...我们可以很清楚地看到,t.num的值始终都是0,到最后执行add(ParamTest pt)之后其值才变成20,至于前面的三个方法执行的结果都是针对简单变量,或其他对象的num属性,要理解这个例子,我觉得理解参数变量的值机制很重要...因此,我们可以看到,在执行change(t.num)与add(t.num)之后,t所指向对象的num属性并未发生变化,因为这是值传递,t.num值赋给i,方法对i进行操作,这并不改变num属性。

1.8K70
您找到你想要的搜索结果了吗?
是的
没有找到

Java函数的机制

我就打算好好理一理java机制,整理一番 二 很多人一听Java,那一定会脱口而出,java都是值传递的。恭喜各位,答对了。 那么,的是什么值?...如果参数类型是原始类型,那么传过来的就是这个参数的一个副本,也就是这个原始参数的值,这个跟之前所谈的值是一样的。如果在函数中改变了副本的值不会改变原始的值....如果在函数中没有改变这个副本的地址,而是改变了地址中的 值,那么在函数内的改变会影响到传入的参数。...如果在函数中改变了副本的地址,如new一个,那么副本就指向了一个新的地址,此时传入的参数还是指向原来的 地址,所以不会改变参数的值。

1.6K20

Java项目如何优雅的

1.直接 不宜直接参数量不宜过多 @RestController @RequestMapping("/index") public class IndexController {...Map 2.使用Map @RestController @RequestMapping("/index") public class IndexController { // 获取App...此处省略 } 虽然解决了直接的问题,但是又引入新的缺陷。...程序中最好不要使用Map,尤其是Contorller层参数传递建议不要使用HashMap,推荐使用数据模型定义 因为参数不确定,需要根据后续代码去猜入,这就是一件很痛苦的事情了,如果文档和测试用例缺失...而且其中if 写了这么多,典型的代码中具有“坏味道”的特征 我们可以如何修改它呢 这里可以用到Java8的一个新特性Optional 类。

62930

vue3 路由_vue router

前言 vue 路由的使用场景一般都是应用在父路由跳转到子路由时,携带参数跳转。...方式可划分为 params 和 query ,而 params 又可分为在 url 中显示参数和不显示参数两种方式,这就是vue路由的三种方式。...方式一:params (显示参数) params (显示参数)又可分为 声明式 和 编程式 两种方式 1、声明式 router-link 该方式是通过 router-link 组件的 to...$route.params.id 方式二:params (不显示参数) params (不显示参数)也可分为 声明式 和 编程式 两种方式,与方式一不同的是,这里是通过路由的别名 name 进行值的...$route.params.id 注意:上述这种利用 params 不显示 url 的方式会导致在刷新页面的时候,传递的值会丢失 方式三:query (显示参数) query (显示参数)也可分为

5.5K20

String的按值传递,java都是

java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? String和int参数传递是按值传递还是引用传递?...Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。...指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。  java传递参数都是值,如果是对象的话,就是将引用的值复制一份给方法当参数。...如果跟着步骤一步步走的,肯定牢记住了: java所有的参数传递都是传递的副本,变量所代表的值的副本!java所有的参数传递都是传递的副本,变量所代表的值的副本!...java所有的参数传递都是传递的副本,变量所代表的值的副本! 这里必须记住的就是副本概念。

2.2K60

python中函数的序列传,列表拆解、字典拆解

---- 本节教程视频 一、函数的列表 列表举例 [“a”,”b”,”c”] 其实在使用列表的时候比较简单,只需要将实际的列表作为参数传入到调用的函数中的时候,在列表变量前加上一个星号*即可把某个列表拆分成多个参数传入到自定义函数中...二、函数的字典 类似于列表拆解,只不过在传入的参数前面加上两个*,也即使说使用双星号** 举例: dic1={"name":"老刘","work":"程序员","微信公众号":"编程创造城市"}...三、知识总结: 函数的序列传 1.列表的拆解,可以使用*,也可以省略,具体要看传入的参数的数量作为本质条件。...2.掌握字典的拆解,使用**,具体使用方法类似于列表 本节源代码 #对比可变参数与列表的区别 #可变参数的情况 # def P(*s1): # for v in s1: #...print("") # pass # # list1=["a","b","c"] # # P(list1,"123","ggg") #拆解列表的情况 # list2

10K21
领券