侧边栏壁纸
博主头像
咸鱼の博客博主等级

行动起来,活在当下

  • 累计撰写 10 篇文章
  • 累计创建 1 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Java基础

Taurus
2024-10-26 / 0 评论 / 0 点赞 / 101 阅读 / 10075 字

快捷键

  1. shift + alt + 上下键 //移动行

  2. ctrl + d //复制行

  3. alt + / //自动代码

变量与常量

  1. 变量可变,常量不可变

  2. 常量声明时候添加final 不可变

  3. 常量的命名法则:全部大写,如果有多个单词用_隔开 比如:MAX_VALUE

  4. 变量的命名规则:首字母必须是 字符 $ _ 后续必须是 字符 $ _ 0到9

  5. 命名不能为关键字

  6. 类名用大驼峰(手写字母大写) 变量名用小驼峰(先小写后大写) 循环因子用 i j k

运算符

  1. += 例:age += 2 等于age = age+ 2

  2. ++ 例:age ++ 等于age = age+ 1

Scanner用法

监听键盘输入Scanner

强转语法:(目标类型)表达式

Scanner scanner = new Scanner(System.in);

与 或 非

  1. && 与 只要有一个假,结果就是假

  2. || 或 只要有一个真,结果就是真

  3. !: 非 原来假结果真,原来真结果假

例子:

public class Demo1 {
    public static void main(String[] args){
        //只有两门都满足90就可以去动物园
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入语文成绩:");
        int yuWen = scanner.nextInt();
        System.out.println("请输入数学成绩:");
        int shuXue = scanner.nextInt();
        if (yuWen>=90 && shuXue>=90)System.out.println("可以去动物园");
        else System.out.println("回家休息");
    }
}

随机数与字符串比较

Math.random() 产生一个 [0.0 ~ 0.1) 之间的小数

== 适用于基本数据类型:byte short int long float double boolean 的比较

.equals()方法 可以比较字符串 要求完全相等 区分大小写

循环

  • while循环

public class Demo2 {
    public static void main(String[] args) {
        /*
        while(条件){
            循环的体(内容)
            更新条件;
        }
         */
        int i = 1,sum = 0 ; //任何变量在使用前都要赋值
        while (i<=100){ //千万不能有分号;
            sum += i;
            i++;
        }
        System.out.println(sum);//0加到100 5050
    }
}
  • do while循环

如果事先知道循环体肯定至少会走一次就用do while

 /*
        do {
            循环的体(内容)
            更新条件;
        }while(条件)
         */
        int i = 1,sum = 0 ; //任何变量在使用前都要赋值
        do {
            sum += i;
            i++;
        }while (i<=100); //这里不写分号会报警
        System.out.println(sum);
  • for循环

循环次数固定下来时建议采用for循环

        for(声明初始化循环变量;条件;修改循环变量){ //可写多个变量,使用逗号隔开
            循环体;
        }       
        for(;;){ //死循环 类似于while(true)
            System.out.println(sum);
        }
        //死循环,无法循环到后方代码

break 结束当前循环

public class Demo2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        for (int i = 1;i<= 5; i++){
            System.out.println("成绩:");
            int cj = scanner.nextInt();
            if (cj < 0 ) break;
        }
        System.out.println("输入错误 退出");
    }
}

continue 忽略本次不符合的循环数据

public class Demo2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int sum =0;
        for (int i = 1;i<= 5; i++){
            System.out.println("成绩:");
            int cj = scanner.nextInt();
            if (cj < 0 ) continue; //不会结束循环 返回 i++ 的位置 忽略当此数据
            sum += cj;
        }
        System.out.println("和:" + sum);
    }
}

断点调试

点击左侧可生成红点开启断点调试 红色点为开启初始点

请选择Debug开启调试

可以查看每次运行时的结果

数组

int[ ] 数组

        int[] arr = new int[3]; //声明分配空间非同一行 则需要 new int[]
        arr[0] = 11;
        arr[1] = 22;
        arr[2] = 33;
        int[] arr2 = {11,22,33}; //如果声明分配空间赋值在一行 可以省略 new int[]

数组.length 为数组的长度

数列输出与判断及三元操作

double money [] = new double[5];

public class Demo2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int[] arr = {8,4,2,1,23,344,12}; //如果声明分配空间赋值在一行 可以省略 new int[]
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        System.out.println(sum);
        System.out.println("请输入数字:");
        int num = scanner.nextInt();  
        boolean sumFind = false;
        for (int i = 0; i < arr.length; i++) {
            if (num == arr[i]){
                sumFind = true;
                break;
            }
        }
            System.out.println(sumFind ? "存在":"不存在"); //唯一的三元操作 布尔值 ? 真的反馈 : 假的反馈
    }
}

Arrays的各类方法

    /*
    boolean equals(array1,array2); 比较array1和array2两个数组是否相等
    sort(array) 对数组array的元素进行升序排列
    String toString() 把数组array转换成一个字符串
    void fill (array,val) 把数组array所有元素都赋值val
    copyOf() 把数组array复制成一个长度为length的新数组,返回类型与复制的数组一致
    int binarySearch(array,val) 查询元素值val再array中的下标(要求数组中的数据已经按升序排列)
     */

冒泡算法

import java.util.Scanner;
public class Demo2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入排序数字:");
        int shuZ [] = new int[5];
        for (int i = 0; i < shuZ.length; i++) {
            System.out.println("请输入第" + (i+1) + "个数字");
            int jinE = scanner.nextInt();
            if (jinE <= 0)continue;
            shuZ[i] = jinE;
        }
        //二重循环 冒泡算法
        //外层循环n-1
        for (int i=0;i<shuZ.length-1;i++){
            //内层循环n-1-i
            for (int j=0;j<shuZ.length-1-i;j++){
                if (shuZ[j] > shuZ[j+1]){
                    int temp = shuZ[j];
                    shuZ[j] = shuZ[j+1];
                    shuZ[j+1] = temp;
                }
            }
        }
        for (int i = 0; i < shuZ.length; i++) {
            System.out.println(shuZ[i]);
        }

    }
}

二维数组

public class Demo2 {
    public static void main(String[] args) {
        int[][] arr = { //声明 new int 分配空间赋值 此处已省略
                {1,2,3,4,5},
                {6,7,8,9,10},
                {11,12,13,14,15}
        };
        System.out.println(arr.length);
        //二重循环
        //外层循环 行数
        for (int i = 0; i < arr.length; i++) { //arr.length是行数 3
            for (int j = 0; j < arr[i].length; j++) { // arr[i]是第i行
                System.out.println(arr[i][j] + "\t");  //[i] 是行号数 [j] 是行号下标
            }
            System.out.println();//换行
        }
    }
}

函数

基础函数

public class Demo2 {
    /*
    方法 不调用不执行
    参数 必须给定
     */
    public static void main(String[] args) {
        fa01(); //没返回值的函数 不能接收
        fa02(); //有返回值的函数 可以接收
        int i = fa02();
        System.out.println(i);
        f03(18,"张三");
    }

    /*
    公共的访问修饰符 public 静态的 static 没有返回值 void 方法名(参数列表)
        方法体
     */
    public static void fa01() {
        System.out.println("f01被调用了");
    }

        /*
    公共的访问修饰符 public 静态的 static 有返回值 int 方法名(参数列表)
        方法体
        return 数字;
     */
    public static int fa02() {
        System.out.println("f01被调用了");
        return 100;
    }

    public static void f03(int age,String name){
        System.out.println("f03被调用,年龄" + age +",名字:" + name );
    }
}

函数重载

public class Demo2 {
    /*
    函数重载原则
        方法名相同
        参数列表不相同
     注意:
        与返回值无关
     */
    public static void main(String[] args) {
        fa01(1.5); //money
        fa01(1); //age
    }
    public static void fa01(double money) { //double
        System.out.println("f01(double money)被调用了");
    }
    public static int fa01(int age) { //int
        System.out.println("f01(int age)被调用了");
        return 100;
    }
}

传递可变个数参数和foreach循环输出

public class Demo2 {
    public static void main(String[] args) {
        fa01(new int[]{1,2,3,4,5});
        fa01();
        fa01(1);
        fa01(1,2);
        fa01(1,2,3);
    }
    public static void fa01(int... arr) {  //无论如何传参数 arr最终是int[]一维数组 ...兼容所有位数(数量)
        System.out.println("f01(double money)被调用了");
        //自动循环arr数组 程序知道何时结束 每次取出一个送到变量a上
        for (int a : arr){ //foreach输出(增强版) 没有下标了
            System.out.println(a);
        }
    }
}

递归

0

评论区