java基础

本文介绍了Java基础编程知识,包括:1)HelloWorld程序编写与运行方法;2)基本语法如关键字、数据类型、运算符等;3)流程控制如循环和随机数应用;4)数组的定义、初始化和常见操作;5)方法的定义、调用、重载和返回值使用;6)实践案例包括验证码生成、加密解密、抽奖系统和双色球模拟等。文中还涉及了开发工具使用技巧如快捷键、代码抽取等。

第一个hellowrold

java 复制代码
public class HelloWorld {
    public static void main(String[] args){
        System.out.println("HellWorld");
    }
}

javac编译

javac是JDK提供的编译工具,可以吧java文件编译成class文件

java运行

java 复制代码
java HelloWorld

java中的关键字

\t制表符,补空格

long类型要加L作为后缀;

标识符

键盘录入

项目结构

新建项目

新建文件夹

创建package目录 com.boyao.demo1

快捷语句

psvm快速生成,sout快速生成

java 复制代码
package com.boyao.demo1;

public class HelloWorld {
    //psvm 快捷语句
    public static void main(String[] args) {
        //sout 快捷语句
        System.out.println("HelloWorld");
    }
}

设置编辑器背景

修改文件名

算数运算符

强制转换

逻辑运算符
无限循环

不知道循环的范围,也不知道循环的次数 ,用while循环,无限循环一般用while

随机数
java 复制代码
import java.util.Scanner;
import java.util.Random;
public class LoopTest4 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int number = sc.nextInt();
        System.out.println(number);
        //获取一个随机数
        Random rd = new Random();
        int number2 = rd.nextInt(1000000);
        //number2 0~999999
        System.out.println(number2);
        if(number == number2){
            System.out.println("恭喜你,猜对了");
        }else{
            System.out.println("猜错了");
        }
    }
}
数组
java 复制代码
public class ArrayDemo{
    public static void main(String[] args){
        //定义一个数组
        //完整格式
        int[] arr = new int[5];
        //给数组赋值
        arr[0] = 1;
        arr[1] = 2;
        arr[2] = 3;
        arr[3] = 4;
        arr[4] = 5;
        //打印数组
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        System.out.println(arr[3]);
        System.out.println(arr[4]);
        int[] arr3 = new int[]{1,2,3,4,5};
        //简化格式
        //数据类型[] 数组名 = { 元素1,元素2...}
        int[] arr2 = {1,2,3,4,5};
    }
}
数组地址值
数组动态初始化
静态初始化
获取数组最大值

为了提供效率,减少一次循环次数,循环开始条件可以为1;

java 复制代码
public class ArrayDemo3{
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        for(int i=0,j=arr.length-1;i<j;i++,j--){
            if(i != j){
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
        for(int i=0;i<arr.length;i++){
            //排序 54321
            System.out.print(arr[i]+" ");
        }
    }
}
随机排序
java 复制代码
public class ArrayDemo4{
    public static void main(String[] args) {
        //随机排序
        int[] arr = {1,2,3,4,5};
        Random rd = new Random();
        for(int i=0;i<arr.length;i++){
            //生产随机索引
            int randomIndex = rd.nextInt(5);
            int temp = arr[i];
            arr[i]= arr[randomIndex];
            arr[randomIndex] = temp;
        }
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }
    }
}
内存分配

方法

定义方法
java 复制代码
publc static void 方法名(){
    方法体
}

//psvm  快捷键输出


示例:

public static void playGame(){
    方法语句
}
方法调用
java 复制代码
package com.boyao.demo1;

public class MethodsDemo1 {
    public static void main(String[] args) {
        //调用方法
        playGmae();
        method2();
    }
    //定义一个方法
    public static void playGmae(){
        System.out.println("方法1");
    }
    public static void method2(){
        System.out.println("方法2");
    }
}
带参数的方法定义和调用
java 复制代码
package com.boyao.demo1;

public class MethodsDemo2 {
    public static void main(String[] args) {
        //调用方法
        method2(10,20);
    }
    //定义一个方法
    public static void method2(int num1,int num2){
        System.out.println("方法2");
        int res = num1 + num2;
        System.out.println(res);
    }
}
带返回值的方法

//如果方法没有返回值的话,用void
//如果方法有返回值的话,用数据类型 (例如: int)
java 复制代码
package com.boyao.demo1;

public class MethodsDemo3 {
    public static void main(String[] args) {
        //调用方法
        method3(10,20);
        int res = method4(10,20);
        System.out.println(res);
    }
    //定义一个方法
    //如果方法没有返回值的话,用void
    public static void method3(int num1,int num2){
        System.out.println("方法3");
        int res = num1 + num2;
        System.out.println(res);
    }
    //如果方法有返回值的话,用数据类型 (例如: int)
    public static int method4(int num1,int num2){
        return num1 + num2;
    }
}
方法的重载

同一类名,方法相同,参数不同

基本数据类型

new 出来的都是引用数据类型

ctrl + p 查看括号里面的参数

ctrl + alt + M 自动抽取方法

验证码练习
java 复制代码
package com.boyao.demo1;

public class Test5 {
    //定义方法随机生成一个5位数验证码
    //前面4个字母是大写或小写。后面一个是数字
    public static void main(String[] args) {
        getCode();
    }

    //定义方法随机生成一个5位数验证码
    public static String getCode() {
        char[] chs = new char[52];
        for (int i = 0;i<chs.length;i++){
            if (i < 26) {
                chs[i] = (char) ('a' + i);
            } else {
                chs[i] = (char) ('A' + i - 26);
            }
        }
        //创建一个随机数对象
        Random rd = new Random();
        //随机生成一个0~9的数字
        int index = rd.nextInt(52);
        //随机生成一个0~9的数字
        int number = rd.nextInt(10);
        //将随机生成的数字和字母拼接
        return chs[index] + chs[rd.nextInt(52)] + chs[rd.nextInt(52)] + chs[rd.nextInt(52)] + number;
    }
}
加密练习

系统密码是1983,规则每位数加5,再对10取余,最后匠所有数字反转,得到一串新数。

解密

抽奖练习
java 复制代码
import java.util.Random;
import java.util.Scanner;
public class Test1 {
    public static void main(String[] args) {
        //定义一个抽奖奖池,一吃抽奖,且不重复
        int[] arr = {2,588,688,888,1000};
        int[] newArr = new int[arr.length];
        //调用抽奖方法
        getChoujiang(arr,newArr);
    }
    //抽奖方法
    public static void getChoujiang(int[] arr,int[] newArr) {
        //定义一个随机数对象
        Random rd = new Random();
        //随机生成一个0~4的数字
        for(int i=0;i<arr.length;i++){
            int index = rd.nextInt(arr.length);
            int pirze = arr[index];
            if(isSame(newArr,pirze)){
                i--;
                continue;
            }
            newArr[i] = pirze;
        }
        for(int i=0;i<newArr.length;i++){
            System.out.println("抽奖结果" + newArr[i]);
        }
    }
    //判断是否重复
    public static boolean isSame(int[] arr,int pirze) {
        for(int i=0;i<arr.length;i++){
            if(arr[i] == pirze){
                return true;
            }
        }
        return false;
    }
}
双色球
java 复制代码
import java.util.Random;
public class Test2{
    public static void main(String[] args) {
        //生成中奖号码
        int[] arr = creatNumber();
        System.out.println("中奖号码为:");
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i] + " ");
        }
    }
    //红球1-33
    //蓝色数字为1-16
    //创建方法
    public static int[] creatNumber(){
        //生成7个数字 6个号码+1蓝色号码
        int[] arr = new int[7];
        Random rd = new Random();
        for(int i=0; i< arr.length-1;){
            int redNumber = rd.nextInt(33) + 1;
            boolean flag = contains(arr,redNumber);
            if(!flag){
                arr[i] = redNumber;
                i++;
            }
        }
        //生成蓝色号码添加到数组中
        int blueNumber = rd.nextInt(16) + 1;
        arr[arr.length -1] = blueNumber;
        return  arr;
    }
    public static boolean contains(int[] arr,int number){
        for(int i=0;i<arr.length;i++){
            if(arr[i] == number){
                return true;
            }
        }
        return false;
    }
}
java 复制代码
public class ArrayDemo5 {
    public static void main(String[] args) {
        int[][] arr = {{1,2,3},{4,5,6}};
        int[][] arr2 = new int[2][3];
        int[][] arr3 = new int[][]{{1,2,3},{4,5,6}};

    }
}