【Java】_ 基础概念篇(快速入门)

学习资料来源:斯坦福大学公开课编程方法cs106aJAVA(下载中心有资源)

相关学习资料已上传至下载中心:学习过程中使用的代码、笔记初稿以及课程讲义(有兴趣者可自行下载)

学习过程中的大部分程序需要导入acm.jar包(已上传至下载中心,也可自行进入http://jtf.acm.org/ 进行下载),


基本概念:

    类:类就是对一些程序行为的封装

    建类:
        public class name (extends Superclass){……};//()内是继承类,可有可无
        name=Classname.java
        
    参数:
        方法中传递的参数是一个副本   
        对象作为参数传递时传递的就是对象本身(引用)

        参数遮蔽现象:public MyCounter(int counter){
            counter = counter;//参数遮蔽(两边都是counter)
        }
            解决方法:
            1、this
                public MyCounter(int counter){
                    counter = counter;//出现参数遮蔽现象
                    this.counter = counter;//第一个指向调用对象的counter(实例变量),第二个是参数
                }
            2、起不同的名字 ―― 建议使用
                public MyCounter(int startValue){
                    counter = startValue;
                }    

    方法:方法就像面包机,由众多的零部件组成,人们看不到面包机的内部构造,但可以使用它制作面包
    (信息隐藏)

        在java中创建一个方法:
            Visibility type name(parameters){
                …body…
            }
            
            可视性(visibility) :private or public
            方法的隐式返回值的类型(type):void  return value; return expression;
            方法名(name)
            参数(parameter) :
            组成方法的方法体(body)

    变量:
       1、实例变量(instance variable――ivar)――在类里声明,整个对象可见――用于方法调用期间需要保存的变量
            private double a;
       2、本地变量(local variable)――在方法里声明――作用域只在方法里
            double a;
       3、类变量(class variable)――被类的所有对象所共享的变量 ―― 静态变量(static)
            private final static double a = 50;

    注释:(程序运行过程中忽略注释内容)
        1、//contain(注释内容)
        2、 /**
            contain
            */

    内存    RAM
    存储单位:
        bit(二进制的缩写)  0 or 1
        byte(字节) 8 bits
        word(字)   在特定语言中一个整数所占空间大小――4 bytes(java)
        K    2^10byte
        M    2^20byte | 2^10K
        G    2^30byte | 2^10M
        Tera
        Pera
        Exa
        Zetta
        Yotta
        ...

    基本数据类型(primitive type):int; double;  char;  boolean;
        方法中传递基本数据类型数据是传递副本 ―― move(3,4)
        传递对象是传递对象的地址(引用)―― p1 = new Point();zero(p1);

        基本数据类型对应的类:
        int                Integer
        double            Double
        boolean            Boolean
        char            Character
        
    存储空间(用于存储所有静态变量和常量的空间)的划分:
        动态变量(new)――堆(Heap)――向下增大
        本地变量(local variable)――栈( Static)――向上减小――自动删除不用的数据
        
        例如:
            Point p1 = new Point(2, 3); ―― P1为本地变量,2、3为动态变量(new)
            Point p2 = new Point(4, 5);
            P1.move(10, 11);
            存储方式:(栈是向上添加新元素的)

wKiom1XzhDyx8IEjAADLgQY_pMU974.jpg

            Point p1 = new Point(1,1);
            Point p2 = p2;
            存储方式:

wKioL1Xzhq3gEX1_AABt-EOG5J4930.jpg

标准JAVA:使用main()函数(程序执行入口)


jar包:java存档的缩写 Java Archive(包含很多类(经过编译的类))

    导出一个jar包需要在清单里将用到的jar包补充完整。

    例如:Class-Path:acm.jar NameSufer.jar  (该程序执行过程中使用到的jar包)



你可能感兴趣的:(存储空间的划分(堆栈))