java学习一

JAVA基础



首先第一点对象的引用是存在堆栈之中的,何为对象的引用呢?
Person p=new Person("张三");
这里的p其实只是一个对象的引用指向真正的对象的 Person张三 ;p就存在堆栈之中
引用可以改变的 它可以指向别的引用

这里可以引出java传参数问题的思考,很多面试题也会提到:
java中只有一种参数传递方式:那就是按值传递 即 java中传递任何东西都是传值。如果传入方法的是基本类型的东西,那么就得到此基本类型的一份拷贝。如果传入方法的是引用,那么得到的就是 引用的拷贝。
举例说明:

package char02;

/**
 * 参数传递测试  (JAVA参数传递方式:值传递 传入方法的是参数的副本)
 * 
 * @author joe
 *
 */
public class ArgumentPassTest {
	static void testBasicType(int i){
		System.out.println("i:"+i);
		i=50;
	}
	static void testReference(StringBuilder sb){
		System.out.println(sb.toString());
		sb=new StringBuilder("test");
	}
	static void testReference2(StringBuilder sb){
		System.out.println(sb.toString());
		sb.append(" test");
	}
	public static void main(String[] args) {
		int i=100;
		testBasicType(i);
		System.out.println("i:"+i);//100
		StringBuilder sb=new StringBuilder("TestArgumentPass");
		testReference(sb);
		System.out.println(sb.toString());//TestArgumentPass
		testReference2(sb);
		System.out.println(sb.toString());//TestArgumentPass test
	}
}

这个图大概可以看出值传递的原理,可以想到基本类型参数副本如何改变都不会影响函数外的值,而引用类型由于 由于参数副本 和 参数 都指向同一个对象,那么函数内的参数副本改变指针不影响原值,参数副本其他改变指针中的值的操作都会影响原值。


可以看出基本类型放在堆栈中。
JAVA 还提供了两个用于高精度计算的类:BigInteger和BigDecimal

作用域

成员变量的默认值

Static关键字



可以看出static

  1. 用于解决为某一变量分配单一空间无论创建多少个对象。甚至可以不用创建对象。
  2. 希望某个方法不与包含他的类的某个对象绑定在一起,没有对象也能使用这个方法。

编码规范


编码规范一定要有:类名要首字母大写 变量名要使用驼峰命名法。

posted @ 2017-05-24 15:10  风中小蘑菇  阅读(150)  评论(0编辑  收藏  举报