黑马程序员技术交流社区

标题: javaSE技术贴 [打印本页]

作者: zcy50314399    时间: 2018-8-12 18:25
标题: javaSE技术贴
1.Random随机数
        A.作用:用于产生一个随机数
        B.使用步骤:
                a.导包,import java.util.Random;
                b.创建对象,Random r = new Random();
                c.获取随机数,int number = r.nextInt(n);
        C.获取的随机数的范围为[0,n-1];若想要得到[m,n]的随机数,则int number = r.nextInt(n-m+1)+m;
2.导包快捷键:Ctrl+Shift+O
        直接创建对象后按Ctrl+Shift+可以自动导包,例如可以不需要自己输入import java.util.Random;/import java.util.Scanner;
3.方法:
        A.简单的说:方法就是完成特定功能的代码块
                在很多语言里面将其称之为函数;
                函数在Java中被称为方法;
        B.格式:
                修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
                        函数体;
                        return 返回值;
        }
        C.方法格式的调用解释说明:
                a.修饰符:目前就用 public static。后面课程还有很多
                b.返回值类型:就是功能结果的数据类型。
                c.方法名:符合命名规则即可。方便我们的调用
                d.参数:
                        实际参数:就是实际参与运算的。
                        形式参数;就是方法定义上的,用于接收实际参数的。
                e.参数类型:就是参数的数据类型
                f.参数名:就是变量名
                g.方法体语句:就是完成功能的代码。
                h.return:结束方法的。
                i.返回值:就是功能的结果,由return带给调用者。
        D.要想写好一个方法,就必须明确两个东西:
                A:返回值类型
                        结果的数据类型
                B:参数列表
                        你要传递几个参数,以及每个参数的数据类型
        E.方法的注意事项:
                a:方法不调用不执行
                b:方法与方法是平级关系,不能嵌套定义
                c:方法定义的时候参数之间用逗号隔开
                d:方法调用的时候不用再传递数据类型
                e:如果方法有明确的返回值,一定要有return带回一个值,每个节点都必须有明确的返回值(注意switch与if语句)
        F.方法重载:
                a.方法重载概述:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
                b.方法重载特点:
                        1.与返回值类型无关,只看方法名和参数列表
                        2.在调用时,虚拟机通过参数列表的不同来区分同名方法

4.数组
        A.数组的概念:数组是存储同一种数据类型多个元素的容器。数组既可以存储基本数据类型,也可以存储引用数据类型。
        B.数组的定义格式:
                a.数据类型[] 数组名;
                b.数据类型 数组名[];(禁用!)
        C.数组初始化:
                a.概述:Java中的数组必须先初始化,然后才能使用。
                                所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
                b.动态初始化:初始化时只指定数组长度,由系统为数组分配初始值
                        格式:
                                数据类型[] 数组名 = new 数组名[数组长度];
                c.静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。
                        格式:
                                a.数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
                                b.数据类型[] 数组名 = {元素1,元素2,…};
                        举例:
                                int[] arr = new int[]{1,2,3};
                        解释:
                                定义了一个int类型的数组,这个数组中可以存放3个int类型的值,并且值分别是1,2,3。
                                其实这种写法还有一个简化的写法
                                int[] arr = {1,2,3};
5.JVM内存划分:Java 程序在运行时,需要在内存中的分配空间。
                           为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
       
                        1.栈 存储局部变量
                        2.堆 存储new出来的东西(实体、对象)
                                2.1 每个对象都有地址值
                                2.2 每个对象的数据都有默认值
                                        byte short int long          默认值是0;
                                        float double                 默认值是0.0;
                                        char                         默认值是 “\u0000”
                                        boolean                      默认值是 false
                                        引用数据类型                 默认值是 null
                        3.方法区 (面向对象进阶讲)
                        4.本地方法区 (和系统相关)
                        5.寄存器 (给CPU使用)
6.数组操作的两个常见小问题:
        A.Array Index Out Of Bounds Exception(数组索引越界异常)
                原因:我们访问了不存在的索引。
        B.Null Pointer Exception(空指针异常)
                原因:null是指不再指向堆内存的数据,而我们还在访问堆内存的数据
7.排序方法:
        A.选择排序法
                for (int i = 0; i < array.length-1; i++) {
                        for (int j = i+1; j < array.length ; j++) {                               
                                if(array[i] < array[j]){
                                        int tm = array[j];
                                        array[j] = array[i];
                                        array[i] = tm;
                                }
                               
                        }
                }
        B.冒泡排序法
                        for (int i = 0; i < array.length-1; i++) {
                                for (int j = 0; j < array.length-1-j ; j++) {                               
                                        if(array[j] < array[j+1]){
                                                int tm = array[j];
                                                array[j] = array[j+1];
                                                array[j+1] = tm;
                                }
                               
                        }
                }
        规律:
        1.相邻两两之间进行比较
        2.每循环一次从尾部确定一个数(最大或者最小值)
        3.每次比较都只需比较a.length-1-i(第i次)
        4.n个数只需比较n-1轮;
8.输出数组值的方法:System.out.println(Arrays.toString(数组名));例如:array[] = {1,2,3,4,5};则用该方法输出的结果为{1,2,3,4,5}

9.被private修饰的方法,只能在本类中访问,在其它类中不能被访问。
10.被public修饰的方法,在所有类中都可以被访问。
11.如果方法有返回值,那么在每个节点都必须有明确的返回值。       
               
               
               
               
               
               






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2