上海传智播客JAVASE_day04学习笔记

class NeiCun
            {

                

                public static void change(int[] arr){
                    arr[0]=arr[0]+10;
                }

                public static void change(int i){
                    i=i+10;
                }
                public static void main(String[] args)

                      /*
                    int[] arr={5};
                    change(arr);
                    System.out.println(arr[0]);//15

                int[] arr={5};
                    change(arr[0]);//change(int i)
                    System.out.println(arr[0]);//5


                    int i=5;
                    change(i);//change(int i)
                    System.out.println(i);//5

                    */
                }

            }


        

《第四天总结》    张伦琦
    《函数和数组》
1.    函数    
    1.1方法定义
         A.函数的来源
            给我打印5*5矩形
            再给我打印6*6矩形
            再给我打印7*7矩形
            存在大量的重复代码。怎么能让代码不重复呢?
            写一次,能够多次使用。代码重用(reuseable)
            为了解决代码重复的问题。
            我的代码为啥能执行?因为代码在main方法中。
            既然Java有一个方法叫main,那么我能有一个方法吗?
            
            public static  void        print(   )
                public static  修饰符 ;
                void   返回值类型 ;
                print 函数名


         B.函数的定义
            函数就是定义在类中的具有特定功能的一段独立小程序。
            函数也称为方法。
            
             public static  void         print( int row ,int col )
             修饰符         返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…)
            {
                    执行语句;
                    //return 返回值;
            }
            
            返回值类型:函数运行后的结果的数据类型。
            参数类型:是形式参数的数据类型。八种基本数据类型
            形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
            实际参数:传递给形式参数的具体数值。
            return:1.用于结束函数。把结果给调用者。如是void那么return可以省略.不是void return不能省略。
            返回值:该函数运算的结果,结果的数据类型。该结果会返回给调用者。


    1.2方法特点
        A.函数的特点(重点,理解其中的意思)
          
           a.定义函数可以将功能代码进行封装
           b.便于对该功能进行复用
           c.函数只有被调用才会被执行
           d.函数的出现提高了代码的复用性
           e.对于函数没有具体返回值的情况
           f.函数中只能调用函数,不可以在函数内部定义函数。
           g.定义函数时,函数的结果应该返回给调用者,交由调用者处理。


        B.return的作用:
            1.结束方法
            2.返回方法执行的结果
            3.如果是void可以省略不写
            4.如果写可以写一个也可以写多个
            5.后面不能直接跟语句
            
       
        C.返回值类型:
            告诉方法的使用者,放执行完成后结果的数据类型
            void:说明方法执行完成后没有结果


    1.3方法应用    
        A.明确返回值类型:输出
        B.明确参数列表:输入
        C.至于代码,可以写的很垃圾,也可以写的很高效
        D.一定要了解方法和方法的参数在栈中的存放特点!
            1.main()方法在栈的最底层。
            2.在方法调用完成的同时如果有返回值则返回给调用者并清除自身空间。
            
    1.4方法的重载    
        A.在同一个类中
        B.方法名称相同
        C.参数列表不同(参数的个数不同,参数的类型不同,参数类型的顺序不同,其中形参名称不考虑)
        D.返回值类型也不考虑
        说简单一点就是,重载的函数要能够通过调用被计算机明确的识别出来,
        识别不出来的就不行。


2.    数组    
    2.1数组定义(一、二两种格式)    
        A.数组的定义
          1.同一种类型数据的集合。其实数组就是一个容器。
          2.变量能存数据,但是变量太多,用起来不方便,我要搞一个东西能存一堆变量。
          3.数组是连续的有标号的一片内存空间
          4.标号从0开始,到length-1
          5.数组有长度,长度是几个空就几个长度

        B.创建数组的两种格式
            格式一:
                元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
               示例:int[]      arr    = new int[5];

            1.数组长度不能是负数
            2.数组使用以前不能是null
            3.数组使用时不要下标越界

            格式二:
                元素类型[] 数组名 = new 元素类型[]{元素,元素,……};
                int[] arr = new int[]{3,5,1,7};
                int[] arr = {3,5,1,7};
            
            注意:
            []arr 和 arr[] 都可以!
    
    2.2数组的内存
        A.数组在内存中的存放
            方法在内存中存放在“栈”中,
            数组在内存中存放在“堆”中,
            方法通过指针调用在堆中的数组。

        B.Java中的内存分配
            1.栈 :    方法在运行的时候会进栈,方法中定义的变量会随着进栈。
                随着方法的出栈而出栈。

            2.堆:    数组在内存中存放在“堆”中,
                方法通过指针调用在堆中的数组。

            3.方法区:方法没有运行的时候。暂时不需要管

            4.寄存器:是CPU相关,给我们关系不大。没法控制。不需要你管

            5.本地方法区:是和本地平台,本地操作系统相关的方法。不需要你管

        C.实例讲解:
            
            int[] arr是数组的引用在栈里,{12,13,14,15,18}是数组的实体在堆里
            Java的垃圾回收机制负责回收对内存中的垃圾。
            int[] arr={12,13,14,15,18};
            

           
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章