zoukankan      html  css  js  c++  java
  • 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. 希望某个方法不与包含他的类的某个对象绑定在一起,没有对象也能使用这个方法。

    编码规范


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

  • 相关阅读:
    独立使用 ecj
    公司没有 DBA,Mysql 运维自己来
    mysql安装
    常用模块
    基本数据类型
    Incorrect column name 问题解决
    mysql中date和datetime的区别
    python yield用法详解(未完成)
    mysql报错--initialize specified but the data directory has files in it. Aborting.
    python 列表解析式
  • 原文地址:https://www.cnblogs.com/joeCqupt/p/6899041.html
Copyright © 2011-2022 走看看