- 浏览: 903643 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (466)
- iPhone, iOS , Objective-c (155)
- 数据库 (20)
- 设计模式 (5)
- 第三方包管理,cocoapod (2)
- 版本管理, SVN, Subversion, Git (1)
- Google, Android, Java (14)
- Wordpress (1)
- 职业素养 (3)
- 版本管理,git (3)
- 前端小技巧 (2)
- flash (1)
- javascript (5)
- Ruby (0)
- 编程语言 (1)
- 网络常识 (1)
- 找到生活好感觉 (5)
- 产品经理 (1)
- markdown (1)
- 云服务器 (1)
- iPhone (116)
- iOS (116)
- Objective-c (116)
- 学习技巧 (2)
- Google (5)
- Android (6)
- Java (21)
- python (1)
- sqlite (3)
- node.js (2)
- mongodb (2)
- 学习技巧,阅读 (2)
- 软件测试 (3)
- 架构设计 (2)
- 设计 (1)
- Spring framework (3)
- junit (1)
- Linux (2)
- 软件 (1)
- Struts2 (1)
- 版本管理 (3)
- SVN (3)
- Subversion (3)
- Git (3)
- mysql (5)
- quartz (1)
- 无关技术 (1)
- 前端 (1)
- Redis (1)
- 产品管理 (0)
- 计算机常识 (1)
- 计算机科学 (0)
- swift (1)
- 服务器 (2)
- 搜索 (1)
- Scala (1)
- J2EE (1)
- maven (1)
- 前端css (1)
- 英语 (1)
- 消息队列 (1)
- kafka (0)
- apache kafka (4)
- netbeans (1)
- IDE (2)
- 歌词 (1)
- 过滤器实现 (1)
- linux vim vi (1)
- jmeter (1)
- springcloud (1)
最新评论
-
hujingnemo:
不知道为什么打不开
CHM如何改编字体大小 -
weiboyuan:
求答案 weiboyuanios@163.com
iOS软件工程师面试题(高级) -
xueji5368:
这个现在已经广泛使用了嘛!
RoboGuice入门 -
Yao__Shun__Yu:
...
CHM如何改编字体大小 -
353144886:
非常之详细 美女求认识
sqlite数据类型 datetime处理
Java本身都是值传递式的调用,对于对象传递的是地址值。给地址值重新赋值等于重新指向,不会影响外层。
而且这里Integer对象也有特殊性。其实现上可能类似
class Integer{
final int value; //一旦赋值,就不能改变。
}
这就出现:调用时传的地址值不能改变外层+对象本身又不能改变。导致这个值没法改变
解决方案很多
1、java风格就是,单个值用返回值。return i; 外面再i=foo();赋值;多个值用数组或对象。
2、传递自己的封装类。class MutableInteger{ int value;}
3、传递专用AtomicInteger原子整型对象
public static void main(String[] 参数) {
AtomicInteger i=new AtomicInteger(40);
i.intValue();
System.out.println(i);
}
public static void change(AtomicInteger i) {
i.set(55);
}
而且这里Integer对象也有特殊性。其实现上可能类似
class Integer{
final int value; //一旦赋值,就不能改变。
}
这就出现:调用时传的地址值不能改变外层+对象本身又不能改变。导致这个值没法改变
解决方案很多
1、java风格就是,单个值用返回值。return i; 外面再i=foo();赋值;多个值用数组或对象。
2、传递自己的封装类。class MutableInteger{ int value;}
3、传递专用AtomicInteger原子整型对象
public static void main(String[] 参数) {
AtomicInteger i=new AtomicInteger(40);
i.intValue();
System.out.println(i);
}
public static void change(AtomicInteger i) {
i.set(55);
}
发表评论
-
Java的getResourceAsStream
2017-08-09 14:25 438原理是与类加载器相关 类加载器原理请参考:http://www ... -
java线程池分类及应用
2017-07-20 13:40 6251. 为什么使用线程池 诸如 Web 服务器、数据库服务器、文 ... -
Map遍历k,v
2017-06-14 12:01 338发现还Map接口中还有一个Entry<K,V>的接 ... -
使用entrySet遍历Map类集合KV,而不是keySet方式进行遍历
2017-02-08 11:04 911说明:keySet其实是遍历了2次,一次是转为Iterator ... -
并发下remove集合元素要注意的事情
2017-02-08 10:54 12271.不要在foreach循环里进行元素的remove/add操 ... -
Java原始类型转换
2016-08-15 16:25 476要获取获取对象示例 Int Integer i=myInt. ... -
Map转字符串最高效方法
2016-08-09 16:29 2570想做的事情是将一个Map类转成具体和字符串用&隔开,但 ... -
java昨天今天判断
2016-07-01 12:07 473Calendar toda ... -
按key排序
2016-03-04 16:50 494import java.util.Comparator; i ... -
Chrome浏览器查看HTTP header
2016-01-19 17:04 1747使用chrome浏览器自带的开发者工具查看http头的方法 1 ... -
部署多个项目到tomcat
2015-12-31 00:31 389If you want Tomcat to listen to ... -
JDBC步骤
2015-08-19 15:38 532JDBC连接数据库 •创建一个以JDBC连接数据库的程序 ... -
java与javascript排序回调的不同之处
2015-07-14 22:27 479Arrays.sort(values,new Comparat ... -
@Resource(type注入失败
2015-06-03 10:45 927不断的去找资料,换方法,最后发现是因为注入的service写了 ... -
eclipse常用快捷键
2015-06-01 17:12 592找出选中方法 使用 Ctrl + Shift + G -
java.util.ConcurrentModificationException 解决办法
2015-05-28 17:16 355在使用iterator.hasNext()操作迭代器的时候,如 ... -
macbook JAVA_HOME设置
2015-05-20 12:34 657搞了半个小时,相当蛋疼 因为在.bash_profile和pr ... -
Java企业设计模式
2014-10-23 20:20 0客户端表达层 为最终用户提供用户界面,例如Web浏览器。 ... -
eclipse 程序调试
2014-08-07 22:34 603http://www.56.com/u35/v_MTAyMj ... -
iBatis加锁
2014-07-10 17:48 871ibatis有事务处理,它有代理类SqlMapExecutor ...
相关推荐
Delphi,作为一款基于Pascal语法的面向对象的编程环境,提供了两种主要的参数传递机制:值传递(ByValue)和引用传递(ByReference)。这两者在处理函数或方法的参数时有着显著的区别,对程序性能和数据安全有直接...
Java的参数传递方式实际上是一种特殊的"值传递",通常被称为"按引用传递对象的引用",这与C++等语言中的引用传递有所不同。以下是对这个主题的详细解释。 在Java中,所有的参数传递都是基于值的,但这涉及到一个...
在Java中,String和Integer等内置对象也是按值传递的。例如,在上面的实验中,我们使用String类型的变量str,并将其传递给changeStr方法。在changeStr方法中,我们将str的值改为"改变的",但是输出结果仍然是str = ...
本文将深入探讨Java中的方法调用、值传递与引用传递,并通过字节码分析来进一步理解这些概念。 首先,我们来看方法调用。在Java中,方法是一组完成特定任务的代码块,可以通过方法名来调用执行。方法调用的基本语法...
总的来说,`int`适合于需要高性能计算和节省内存的情况,而`Integer`则在需要对象特性的场景下更有优势,例如集合操作、参数传递或序列化。在实际开发中,选择合适的数据类型取决于具体需求和上下文。了解并熟练掌握...
当调用过程时,实参与形参通过两种主要的传递方式匹配:按值传递和按地址传递。 1. **按值传递**:在这种方式下,实参的值被复制到形参中。形参得到的是实参的一个副本,因此在过程内部对形参的任何修改都不会影响...
在Java中,基本类型的传参是按值传递,对象的传参看似是引用传递,实际上是按共享对象的引用传递值。在上述例子中,虽然a和b看起来是Integer对象,但实际上它们是Integer对象的引用。在swap方法内部,即使改变了局部...
Java参数传递及值传递实现原理详解 Java语言中,参数传递是方法调用过程中的一种机制,讲述了Java参数传递及值传递实现原理详解。参数传递有两种方式:按值传递和按引用传递。 1. 按值传递(Call by Value) 按值...
Java中的参数传递方式一直以来都是一个讨论的热点,尤其是在学习编程初期,值传递和引用传递的概念可能会引起混淆。本文将深入探讨Java中参数传递的实质,以帮助理解和澄清这一问题。 首先,我们需要理解值传递和...
在Delphi中,函数参数的传递主要有两种方式:值传递(ByVal)和引用传递(ByRef)。值传递意味着函数接收到的是参数值的一个副本,对参数的修改不会影响到原始变量;而引用传递则使得函数可以直接操作原始变量,因此...
VB支持两种基本的参数传递方式:按值传递(ByVal)和按地址传递(ByRef)。理解这两种方式以及如何判别它们在实际编程中至关重要。 一、按值与按地址传递的内涵 1. 按值传递:当形参通过ByVal修饰时,实参的值被...
Mybatis Integer类型参数值为0时得到为空的解决方法 Mybatis 是一个流行的持久层框架,广泛应用于 Java 应用程序中。然而,在使用 Mybatis 进行数据库操作时,经常会遇到一些棘手的问题。其中之一就是当 Integer ...
总的来说,Java中的Integer参数传递涉及到值传递、对象的不可变性和如何在方法内部修改对象值的策略。在实际编程中,应该根据具体需求选择合适的解决办法。通常,如果只需要返回新的值,使用返回值是最简单的选择;...
3. **理解按值传递的概念**:Java中的所有参数传递都是按值传递的,即使是引用类型也不例外。这意味着在方法内部对参数的修改不会影响到外部的原始变量。 掌握这些核心概念对于理解Java中引用类型的行为至关重要,...
值传递是指基本数据类型的参数传递,值传递的体现是数值的传递。在值传递中,方法调用时传递的参数值是基本数据类型的副本,而不是原始变量的引用。例如,在上面的示例代码中,`swap`方法中传递的参数`num1`和`num2`...
// 创建结构体实例并设置值 lstr_declaredstr lstrparmtotrans lstrparmtotrans.id = 1 lstrparmtotrans.name = "panya" lstrparmtotrans.email = "panya@163.net" lstrparmtotrans.homepage = ...
- **分析**:在这个例子中,`x1` 的值虽然被传递给了 `triple` 方法中的 `x2`,但由于是按值传递,因此 `x2` 的修改不会影响到 `x1` 的原始值。 ##### 2. 引用传递 - **原理**:尽管被称为“引用传递”,但其实...
综上所述,`int`和`Integer`虽然都可以用来表示整数值,但在Java中它们有着本质的不同。`int`是基本数据类型,直接存储值;而`Integer`是`int`的包装类,存储的是指向该值的引用。在实际编程过程中,选择使用哪种...
在过程定义时,必须明确指定参数是按值传递的,在形参的前面加上关键字 ByVal。例如,Public Sub Swap( ByVal x As Integer, ByVal y As Integer)。 传址方式(ByRef) 传址方式也称引用方式,是 VB 默认的参数...
在编程中,方法的参数传递机制是一个至关重要的概念,它涉及到如何将实参(实际参数)的值传递给形参(形式参数)。这里我们将详细探讨两种主要的参数传递方式:值传递和引用传递,并重点关注Java中的特殊情况,如...