加载中
哥们淡定,喷子的本质是没法改变的,从cnbeta到osc都一样。
@oschina
很多 iOS 用户都希望系统主屏能支持动态实时组件功能,就像是 Windows Phone 系统和 Android...
lkfoff 2014/05/18 00:01 评论了博客:JAVA CLONE详解
写的不错,从引用分析到clone,思路清晰,例子也很好。
@laigous
java“指针” Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区...
lkfoff 2014/05/09 17:07 回答了问题: String做参数传递的问题

讨论问题而已,措辞不严谨大家别那么认真嘛。

下班下班,祝大家周末愉快!

@Shercode
import java.util.*; public class ChangeObject{ public sta...
lkfoff 2014/05/09 13:17 回答了问题: String做参数传递的问题
回复 @Shercode : 不谢。图上就是这个意思,name没有指向新的引用,也就是没有指向临时对象,所以图上的黑箭头没有起了作用。
@Shercode
import java.util.*; public class ChangeObject{ public sta...
lkfoff 2014/05/09 13:02 回答了问题: String做参数传递的问题
测试一下再来帖吧:)
@Shercode
import java.util.*; public class ChangeObject{ public sta...
lkfoff 2014/05/09 12:58 回答了问题: String做参数传递的问题

先拿String类型的参数来举例子:
public class ChnageObject {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		String name = new String("Oliver");
		System.out.println("oldName = " + name);
		changeName(name,name);
		System.out.println("newName = " + name);
	}

	private static String changeName(String oldName,String name) {
		System.out.println("tmpOldName = " + oldName);
		String newName = new String("Oliver Queen");
		System.out.println(oldName == name); //== 检测引用地址是否相同,结果为true
		oldName = newName;
		System.out.println(oldName == name); // 结果为false
		System.out.println("tmpNewName = " + oldName);
		return oldName;
	}
}

运行结果:

oldName = Oliver
tmpOldName = Oliver
true
false
tmpNewName = Oliver Queen
newName = Oliver



看打印结果明白了吗?oldName引用地址变了,但是没有影响到name,引用的变化还是看图(说明,2和3颜色颠倒了,自己脑补:)):

再拿Integer类型的参数举例子:

public class ChnageObject {
  public static void main(String[] args) {

	Integer num = new Integer("1");
	System.out.println("oldNum = " + num);
	changeName(num,num);
	System.out.println("newName = " + num);
	}
  private static Integer changeName(Integer oldNum,Integer num){
System.out.println("tmpOldNum = " + oldNum.toString());
	Integer newNum = new Integer("2");
	System.out.println(oldNum == num); // == 检测引用地址是否相同,结果为true
	oldNum = newNum;
	System.out.println(oldNum == num); // 结果为false
	System.out.println("tmpNewNum = " + oldNum);
	return oldNum;
	}
}



运行结果:

oldNum = 1
tmpOldNum = 1
true
false
tmpNewNum = 2
newName = 1



是不是很相似?跟是不是Stirng关系不大吧?如果说有关系,那么String的父类的Object,而Object是引用传递,只有基本类型才是值传递。



@Shercode
import java.util.*; public class ChangeObject{ public sta...
lkfoff 2014/05/09 10:08 回答了问题: String做参数传递的问题
回复 @Shercode : 不好意思,2和3颜色颠倒了。oldName是一个局部变量,或者你可以理解为中间变量,他在changeName方法里,替代了name,那么方法执行完后,要把中间变量交还给name,才能改变name的值。不然的话,中间变量做出的修改,只在changeName方法里生效,并且不会影响原先的引用。
@Shercode
import java.util.*; public class ChangeObject{ public sta...
lkfoff 2014/05/09 09:53 回答了问题: 关于立体停车场车位调度的程序代码

啥是立体停车场?

@我是华子
立体停车场车位调度软件的开发设计 关于体现立体方面的车位调度!主要是体现立体!Java语言,求大神指教!
lkfoff 2014/05/09 09:50 回答了问题: String做参数传递的问题

第4步丢失了,换句话说,没有给name指向oldName的引用。

想要输出Oliver Queen的话,需要修改4:

name = changeName(name);



@Shercode
import java.util.*; public class ChangeObject{ public sta...
lkfoff 2014/05/08 00:05 回答了问题: 完全没必要买开源技术的书

很多网站的文案惨不忍睹,例子也不够丰富,还是需要 in action 带一带新手

@RayChiong
去官网直接看文档,从介绍到demo,讲述的很清楚。英文版的用词,比翻译成中文的用词还到位。 我觉得,买技术的书,就...
解决了问题烦请标记一下最佳答案吧。
@文心雕码
我在MyEclipse里建了一个Maven项目,项目上总有一个小红叉,但是其他地方没有小红叉,这是为什么? 我从网...
lkfoff 2014/05/03 11:18 回答了问题: 邮件内容有误
@红薯 是这样啊,加班幸苦啦56
@lkfoff
@红薯 : 今早收到的h2更新邮件中,内容有错误,具体见图。 之前的几封更新邮件没有这样的问题,点连接到原网页也没...
lkfoff 2014/05/03 11:15 回答了问题: 邮件内容有误
哦,我以为是自动抓取来的呢。
@lkfoff
@红薯 : 今早收到的h2更新邮件中,内容有错误,具体见图。 之前的几封更新邮件没有这样的问题,点连接到原网页也没...
lkfoff 2014/05/03 11:12 发布了问题:

${}是EL表达式的写法,要换的话,估计要换另一套taglab吧。

@陌伤城
请教个问题 velocity模版里面的 ${ } 这个$能不能配置成其他值的?
lkfoff 2014/04/27 13:37 回答了问题: Spring配置問題

 Invalid property 'userDao_msi' of bean class [com.msi.service.impl.UserServiceImpl]: Bean property 'userDao_msi' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?


Service类里dao对象有正确的get sert方法吗?

@十月的星空
1. <bean id="userDao_msi" class="com.msi.dao.impl.UserDao...
lkfoff 2014/04/25 17:19 回答了问题: jdbc的连接问题,代码有些长

路过,osc上的热心人很多哈哈

@045
有好心人愿意为我看看代码么,我发QQ或者邮件好了,急!!!
lkfoff 2014/04/25 15:26 回答了问题: 字符串判断为空问题 求大神解释
回复 @瓣挚锅 : 使用.equals() 方法的前提,必须是对象不为 null。如果对象本身都没有初始化,那么在判断的时候,就只有==和!=了。
@帅狗
为什么我在第一次访问action的时候 String username request.getparameter(...
lkfoff 2014/04/25 15:14 回答了问题: 字符串判断为空问题 求大神解释

首先,判断空不用.equals(null) 而用 == null

其次,if(username == null || username.equals("")) 这样的写法中,隐含着运算顺序,先计算第一个等式,就是说必须要满足usename不为空,才会执行username.equals(""),这样就确保了不会出现空指针引用。

使用.equals()方法的前提,必须是对象不为null。如果对象本身都没有初始化,哪里来的方法和属性呢?

@帅狗
为什么我在第一次访问action的时候 String username request.getparameter(...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部