常识记忆

本文介绍了Java编程中需要注意的几个关键点,包括条件语句的正确书写方式以避免潜在的bug,数学运算中的四舍五入规则,以及值传递与引用传递的区别。通过具体的代码示例,帮助开发者理解这些概念,并提供了实际应用中的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. if(a > 0)

{

    b ++ ;

}else{

    c ++;

}

我们在编程时,对于单据的语体,我们要添加花括号;  因为这个细节可能产生的bug,可能获取我们一天的时间去调试; 而且就算省去这个花括号,也不能给系统带来什么优化的!

2.四舍五入(经典呀)

 Math.round(11.5) = 12; 

 Math.round(-11.5) =-11;

3. 值传递和引用传递

	public void toInteger(int i){
		i = 22;
	}
	public void ToStr(String a){ //再次声明了一个a引用,不影响外面的b;
		a = "hahah";
	} 
	public void toBuider(StringBuffer  buf){ //StringBuffer 是不可变的字符串
		buf.append("=>kevin");
	}	public static void main(String[] args) {
		Test t = new Test();
		String string = "hello";
		t.ToStr(string);
		System.out.println("string->"+string); //string->hello
		int b = 3;
		t.toInteger(b);
		System.out.println("int=>"+b); //返回int=>3
		StringBuffer str = new StringBuffer();
		str.append("name");
		t.toBuider(str);
		System.out.println(str.toString()); //name=>kevin  
	}

  

    那么来看上面的三个方法。 
     对于第一个方法,从上面可以知道,这里的i和原来的i已经不是同一个i了,所以这里操作的是完全不同的东东。 
     第二个方法和第一个相似,根据前面知道,这里的str持有的是指向"Hello"的引用。但是这里直接将这个引用改成了指向"Ivan"的,原来的str还是指向"Hello",对原来的str没有一点影响。 
     第三个方法是是直接操作了str所指向的那个"Hello",因为原来的str指向同样的"Hello",所以这就会改变原来str的值了。 

    三.总结 
    从上面可以知道,Java是将栈里的值拷贝了一份作为参数传到了方法里面。对于基本类型就是传的值了,而对于对象类型就是引用了。不管传的是值还是引用,都是栈里的拷贝。记住这一点应该就不会再有什么疑问了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值