A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Mirwang

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© Mirwang 初级黑马   /  2018-1-29 14:44  /  691 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

【Random随机数】       

        导包       
import.java.util.Random;

        创建对象
Random r= new Random();

        获取随机数
int number=r.nextInt(10);



获取[5-10]
int i=r.nextInt(6)  +    5;
   产生随机数的长度    从几开始


                                【数组】

存储同一数据类型的多个元素的容器

定义格式:
        数据类型[]  数组名;

        定义一个-----数据类型的数组,数组名是----

        数据类型    数组名[];

        定义了一个-----类型的变量,变量名是-----数组

数组的初始化:(开辟内存空间,并为每个元素赋值)
        动态初始化
                给出长度,系统给出初始化值

                数据类型[]  数组名 = new 数据类型[数组长度];
                int[]   arr = new int[3];
               
                数组元素的获取
                        0---arr.lenght-1  是数组元素的索引
                        最大索引==数组长度-1;
                       
                        访问格式:
                                数组名[索引]

                栈(存储局部变量)
                        局部变量就是定义在方法里面的变量--使用完毕,立即回收
                堆(存储new出来的东西---对象)
                        每个对象都有地址值
                        每一个对象的数据都有默认值
                                整数类型 0
                                浮点型   0.0
                                char   ‘\u0000’
                                boolean  false
                                引用类型  null
                使用完毕后,会在垃圾回收器空闲的时候被回收

                给数组赋值:
                        arr[1]=100;
                        arr[2]=12;

        静态初始化
                给出初始化值,系统决定长度
       
        格式:数据类型[]  数组名 = new 数据类型[]{元素1,元素2,元素3,...};
                int[]  arr  =  new  int[]{1,2,3,...};
       
        【常用格式】
                (只能在声明数组的时候这么写)
                数据类型[] 数组名={元素1,元素2,元素3,...};
                int[]  arr  = {1,2,3,...};

                也可以重新创建对象的方法重新赋值

                        arr = new int[]{6,7,8,9};

        【数组的遍历】
        常见问题
数组索引越界异常:
Array Index out of Bounds Exception
        访问了不存在的索引
       
空指针异常:
Null Pointer Exception
        null可以赋值给引用类型(类、接口、数组)
        数组已经不再指向堆内存的数据了,就不能使用数组名访问元素
       
        arr = null; 说明数组地址已经改变
       
       

        【数组的遍历】
for循环遍历数组:
        for(int i=0;x<arr.length;i++){
                System.out.println(arr[i]);
        }

数组获取最值(最大值、最小值)
        先拿一个元素,
        遍历数组,将所有的元素与这个元素比较,留下较大值
       
                1.定义一个数组     
                        int[] arr={11,22,33,4,5,6,99};
                2.定义一个参照物
                        int max=arr[0]
                3.遍历数组,获取参照物以外的元素,比较大小
                        for(int i=1;arr.length;i++){
                                if(max<arr[i]){
                                        max=arr[i];
                                }
                        System.out.println(max);
                        }


【二维数组】
        元素为数组的数组
        格式:
                数据类型[][]  数组名;
               
        初始化:
                动态   数据类型[][]  数组名=new 数据类型[m][n];
                        m表示数组的个数   n表示元素的个数
                静态        数据类型[][]  数组名= new 数组类型[][]{{},{},...};
                        数据类型[][]  数组名={{},{},{},...};

                【注意】
                二维数组名配合索引可以获得每一个一维数组----------arr[]       
                每一个一维数组配合索引可以获取数组中的元素--------arr[][]
               
【遍历二维数组】
        //定义二维数组
        //获取二维数组的元素
        syso  arr[0][0]
       
        for(int){}
       
······arr.length             二维数组的长度
······arr[].length                一维数组的长度

【方法】
        代码块
       
        格式:
       
        修饰符        返回值类型  方法名(参数类型 参数名1,参数类型 参数2,...){
                方法体;
                return 返回值;
       
        }

        参数名-----用于接收调用方法是传入的数据的变量

两个明确:
        【A】返回值类型                明确功能结果的数据类型
        【B】参数列表                明确有何种数据类型、几个参数

【有明确返回值的方法的调用】
        【1】单独调用,无意义        sum(10,20);
        【2】输出调用,不能操作        System.out.println(sum(10,20));
        【3】赋值调用,可以操作                int result=sum(10,20);

<返回值给调用者看的,方便调用者明确接收数据的数据类型>
<方法声明上的变量叫形参,也是局部变量,被调用----才赋值>
<可以有多个return,但是只能返回一个返回值(return)>

【void----无返回值类型------用于没有参数列表的方法】
        void修饰的方法的调用--【只能单独调用】
                       
【方法重载】
        再同一个类中,出现了方法名相同的情况

        特点:
                <1>方法名相同

                <2>参数列表不同   (参数个数不同 || 参数的数据类型不同)
               
                <3>与返回值无关

【注意】
        在调用方法的时候,虚拟机会根据参数列表区分同名方法!


【方法形式参数传递问题】
        方法参数为基本数据类型:
                形式参数的改变不会影响实际参数
        方法参数为引用数据类型:
                形式参数的改变直接影响实际参数
                【形式参数的值改变了,所以实际参数改变了】


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马