java基础语法入门

java背景

sun公司1995年高级编程语言
早期为oak 后改名
java之父詹姆斯 高斯林
2009年sun公司被oracle公司收购

javajdk安装

orcale官网
验证jdk版本
在这里插入图片描述
cls 清屏
dir 查看文件(ls linux)
cd进入文件
盘符

第一个java程序

在这里插入图片描述
1 javac编译
2 java运行
注意
1文件名后缀必须是java
2文件名称必须与代码类名一致
3必须使用英文符号
jdk11后java直接编译跳过javac

JDK的组成

1 JVM虚拟机运行java的地方
2 核心类库java自己写好的程序给程序员调用
3 JRE java的运行环境
4 JDK java开发工具包
在这里插入图片描述

java跨平台

一次编译 处处可用

环境变量配置

1 path java高版本自动配置可以在cmd中任意位置启动
2 JAVA_HOME 手动配置
小技巧 path %JAVA_HOMR%\bin
在这里插入图片描述

注释

单行注释(ctrl+/)
多行注释(ctrl+shift+s/)
在这里插入图片描述

字面量

1 整数
2 小数
3 字符 ’ A’单引号 只能放一个
4 字符串 “sdadad” 双引号
5 布尔值 true false
6 空值 null

java运算

能算则算不能算就连一起
int i =1
int j = i++ j=1 i=2
int j =++i j=2 i=2
运算符
在这里插入图片描述

键盘录入案例

使用java.util.Scanner;包

调用Scanner sc= new Scanner(system.in);
方法一int age=sc.nextInt() 接受int类型
方法二String name= sc.next()接受字符串类型

if条件

在这里插入图片描述

swtich语句

在这里插入图片描述
注意事项
1不支持参数为long float double
2 不允许重复case值 且不能为变量
3不要忘记加break
穿透性去掉break简化代码冗余
在这里插入图片描述

循环结构

1 for循环 控制代码反复运行很多次
在这里插入图片描述
2 while循环
在这里插入图片描述
知道循环几次用for 不知道用whlie
3 do-while
在这里插入图片描述

死循环

淘宝用
在这里插入图片描述
经典
在这里插入图片描述

Break和continue

在这里插入图片描述

Random随机数案例

1导入Random包
2创建Random对象
3使用nextint(bound)方法调用随机选择0-x的数不包含x

   public static void main(String[] args) {
//        1导包
//        2创建随机数对象
        Random r=new Random();
        for (int i=0;i<20;i++) {
//            不包含边界值10
            int data = r.nextInt(10);
            System.out.println(data);
        }

遇到1-10先减到0后加回去
在这里插入图片描述

猜数字游戏案例

在这里插入图片描述

    public static void main(String[] args) {
        Random r=new Random();
        Scanner sc=new Scanner(System.in);
//        1-100转化成(0-99)+1
        int data=r.nextInt(100)+1;
//        提示用户输入数据
        System.out.println("请输入你猜的数字");
//        创建死循环
        while(true) {
//            接受用户数据
           int Gdata=sc.nextInt();
//           判断数据范围
           if(Gdata>data) {
               System.out.println("猜大了");
           }else if (Gdata<data)
           {
               System.out.println("猜小了");
           }else {
               System.out.println("恭喜你猜对了");
               break;
           }
           }
        }

数组

用来存储同一批相同类型数据的内存空间
例子
20,10,5,4,6,7;
int[] arr={20,10,5,4,6,7};
牛尾,设,梯子;
String[] names={牛尾,设,梯子};
1数组的定义
(1)静态(定义直接给数据)

        double[] score=new double[]{99.5,55.6,77.4,66.4};
        int[] age=new int[]{5,6,7,8,8};
//        简化写法
        int[] ages={5,6,7,8,8};
        String[] names={"牛尾","设","梯子"};
    }
![在这里插入图片描述](https://img-blog.csdnimg.cn/10b88b1a11a9401b9ceab60979719b40.png)

在这里插入图片描述
数组访问

 int[] age=new int[]{5,6,7,8,8};
        System.out.println(age[2]);
        age[3]=100;
        System.out.println(age[3]);
        System.out.println(age.length);长度

最大索引[ ]等于length-1

(2)动态
int [] age=new int[3] 默认值[0,0,0,0]

       double[] score=new double[6];
//        赋值
        score[1]=5.5;
        System.out.println(score[1]);
        System.out.println(score[3]);

数组遍历

 int arr[]=new int[]{1,2,3,4,5,6,7,8,9};
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
           

随机排序
在这里插入图片描述

import java.util.Random;
import java.util.Scanner;

public class RandonSortDemo {
    public static void main(String[] args) {
        定义动态数组
        int[] codes=new int[5];
        定义用户输入
        Scanner sc=new Scanner(System.in);
        循环写入数据
        for (int i = 0; i < codes.length; i++) {
            System.out.println("请输入第" + (i + 1) + "员工的工号");
            int code=sc.nextInt();
            codes[i]=code;
        }
        定义随机数,在数组中交换随机数索引
        Random r=new Random();
        for (int i = 0; i < codes.length; i++) {
//            设置随机数范围为数组长度
            int s=r.nextInt(codes.length);
            int temp;
           temp=codes[s];
           codes[s]=codes[i];
           codes[i]=temp;
        }
        for (int i = 0; i < codes.length; i++) {
            System.out.println(codes[i]);
        }
        

    }
}
int s = r.nextInt(10);定义一次函数会生成一个随机数放在循环多次调用可以实现生成循环次数随机数

数组排序

冒泡排序
每次找到最大值放到数组后面
确定排序几轮:数组长度-1
次数:数组长度-i

   public static void main(String[] args) {
        int[] arr=new int[]{4,3,2,1};
//        一共进行长度减一轮
        for (int i = 1; i <=arr.length-1; i++) {
//            每次比较轮数-i
            for (int j = 0; j < arr.length-i; j++) {
                if(arr[j]>arr[j+1]){
                    int temp;
                    temp=arr[j+1];
                    arr[j+1]=arr[j];
                    arr[j]=temp;
                }
            }
        }
        for (int i = 0; i <arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

java内存分配

栈 地址指向堆
堆 数据
方法区 main

方法

多次重复使用一段代码
提高代码复用率
逻辑更清晰
方法定义
在这里插入图片描述
方法定义与调用
public static void main(String[] args) {
int s=add(5,8);
System.out.println(s);

}
public static int add(int a,int b){
int sum;
sum=a+b;
return sum;
}
案例
在这里插入图片描述

  public static void main(String[] args) {
        int result=add(10);
        System.out.println(result);

    }

    public static int  add(int n) {
        int sum=0;
        for (int i = 1; i <=n; i++) {
            sum+=i;
        }
        return sum;
    }

在这里插入图片描述
输出结果不需要返回参数直接输出调用即可

public static void main(String[] args) {
    judgment(6);
    judgment(5);
}

public static void judgment(int a) {
    if(a%2==0){
        System.out.println(a + "是偶数");
    }
    else{
        System.out.println(a + "是奇数");
    }
}

返回数组最大值方法

public static void main(String[] args) {
        int[] facescore=new int[]{15,900,10000,20000,9500,-5};
        int s=max(facescore);
        System.out.println(s);

    }

    public static int max(int[] a) {
        int max1=a[0];
        for (int i = 0; i < a.length; i++) {
            if(a[i]>max1)
            {
               max1=a[i];
            }
        }
        return max1;
    }

方法调用内存图

在这里插入图片描述
基本参数传递在方法中调用修改参数值不影响外面的参数值
在这里插入图片描述

引用类型参数传递在方法调用中修改地址所在参数调用时会影响外面参数值
在这里插入图片描述
方法案例
打印任意整型数组内容

public static void main(String[] args) {
        int[] arr={1,2,3,4,5,6};
        int[] arr1=null;
        printArray(arr);
        printArray(arr1);
    }

    public static void printArray(int[] a) {
        System.out.print("[");
        if(a!=null&&a.length>0){
            for (int i = 0; i < a.length; i++) {
                System.out.print(i == a.length - 1 ? a[i] : a[i] + ",");
            }
        }
            System.out.print("]");
    }

查找数组索引方法

public static void main(String[] args) {
        int[] arr={1,2,3,4,5,6};
        int[] arr1=null;
        printArray(arr);
        printArray(arr1);
    }

    public static void printArray(int[] a) {
        System.out.print("[");
        if(a!=null&&a.length>0){
            for (int i = 0; i < a.length; i++) {
                System.out.print(i == a.length - 1 ? a[i] : a[i] + ",");
            }
        }
            System.out.print("]");
    }

比较数组是否相同方法

 public static void main(String[] args) {
        int[] a={1,2,3,4};
        int[] b={1,2,3};
        Boolean result=searchSame(a,b);
        System.out.println(result);

    }

    public static Boolean searchSame(int [] a,int[] b) {
        if(a.length==b.length){
            for (int i = 0; i < a.length; i++) {
                if(a[i]!=b[i]){
                    return false;
                }
            }
            return true;
        }
        return false;
    }

方法重载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

专题课

1 买机票
在这里插入图片描述

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    System.out.println("请输入您购买机票的价格");
    Double price = sc.nextDouble();

    System.out.println("请输入您购买机票的月份");
    int month = sc.nextInt();

    System.out.println("请输入您购买机舱的类型");
    String type = sc.next();
    System.out.println("您机票的最终价格为" + DiscountPrice(price, month, type));
}

public static Double DiscountPrice(Double Price, int Month, String Type) {
    Double money;
    if (Month >= 5 & Month <= 10) {
        switch (Type) {
            case "头等舱":
                money = Price * 0.9;
                break;
            case "经济舱":
                money = Price * 0.85;
            default:
                System.out.println("您输入的舱型有误");
                money = -1.0;
        }
    } else if (Month == 11 || Month == 12 || Month >= 1 & Month <= 4) {
        switch (Type) {
            case "头等舱":
                money = Price * 0.7;
                break;
            case "经济舱":
                money = Price * 0.65;
            default:
                System.out.println("您输入的舱型有误");
                money = -1.0;
        }
    } else {
        System.out.println("您输入的月份有误");
        money = -1.0;
    }
    return money;
}

2 找素数
在这里插入图片描述

 public static void main(String[] args) {
        int temp=0;
        for (int i = 101; i <201; i++) {

            boolean flag=true;

            for (int j = 2; j <i/2 ; j++) {
                if(i%j==0){
                    flag=false;
                    break;
                }
            }
            if(flag){
                temp++;
                System.out.print(i+"\t");
            }
        }
        System.out.println();
        System.out.println("一共有" + temp + "个素数");
    }

3开发验证码
在这里插入图片描述

 public static void main(String[] args) {
        String result=randomcode(5);
        System.out.println(result);
    }

    public static String randomcode(int n)
    {
        String code="";
        Random r=new Random();
        for (int i = 0; i <n; i++) {
            int type=r.nextInt(3);
//            1:小写字母,2:大写字母,3:数字
            switch (type){
                case 0:
//                    小写字母的ascll码范围97-122
                    char ch=(char) (r.nextInt(26)+97);
                    code+=ch;
                    break;
                case 1:
//                    大写字母65-90
                    char ch1=(char) (r.nextInt(26)+65);
                    code+=ch1;
                    break;
                case 2:
                    code+=r.nextInt(10);
                    break;
            }
        }
        return code;
    }

4
在这里插入图片描述

 public static void main(String[] args) {
        int[] arr1={1,2,3,4};
        int[] arr2=new int[arr1.length];
        copy(arr1,arr2);
//        arr2=arr1;
//        不是数组复制只是单纯指向同一个地址
    }

    public static void printAarry(int[] a) {
        System.out.print("[");
        if(a!=null&&a.length>0) {
            for (int i = 0; i < a.length; i++) {
                System.out.print(i == a.length - 1 ? a[i] : a[i] + ",");
            }
        }
        System.out.println("]");
    }

    public static void copy(int[] a,int[] b) {
        for (int i = 0; i < a.length; i++) {
            b[i]=a[i];
        }
        printAarry(a);
        printAarry(b);
    }

在这里插入图片描述

public static void main(String[] args) {
        int[] score=new int[6];
        Scanner sc=new Scanner(System.in);
        for (int i = 0; i < score.length; i++) {
            System.out.println("请第"+(i+1)+"个评委输入打分(0-100)");
            score[i]=sc.nextInt();
        }
        System.out.println("选手最终得分");
        System.out.println(avscore(score));
    }
    public static double avscore(int[] a) {
        int max=a[1];
        int min=a[1];
        int sum=0;
        for (int i = 0; i < a.length; i++) {
            if(max<a[i]){
                max=a[i];
            }
            if(min>a[i]) {
                min = a[i];
            }
            sum+=a[i];
            }
        return (double) (sum-max-min)/(a.length-2);
        }

6数字加密
在这里插入图片描述
6双色球案例
在这里插入图片描述

    public static void main(String[] args) {
        int[] luckynumber=creatluckyNumber();
        printAarry(luckynumber);
        int[] usernumber=userNumber();
        printAarry(usernumber);
        judge(luckynumber,usernumber);

    }
//    生成数据
    public static int[] creatluckyNumber() {
        int[] numbers=new int[7];
        Random r=new Random();
        for (int i = 0; i < numbers.length-1; i++) {
            while (true)
            {
                int data=r.nextInt(33)+1;
//                标记数据正确
                boolean flag=true;
                for (int j = 0; j < i; j++) {
//                    当数字重复跳出比较重新来随机值
                    if(numbers[j]==data){
                        flag=false;
                        break;
                    }
                }
                if(flag){
                    numbers[i]=data;
                    break;
                }
            }
        }
        numbers [6]=r.nextInt(16)+1;
        return numbers;
    }
//    用户选择号码
    public static int[] userNumber() {
        int[] number=new int[7];
        Scanner sc=new Scanner(System.in);
        for (int i = 0; i < number.length-1; i++) {
            System.out.println("请选择红色球第" + (i +1)+ "个号码(1-33,要求不重复");
            number[i]=sc.nextInt();

        }
        System.out.println("请选择蓝色球号码(1-16)要求不重复");
        number[6]=sc.nextInt();
        return number;
    }
    public static void printAarry(int[] a) {
        System.out.print("[");
        if(a!=null&&a.length>0) {
            for (int i = 0; i < a.length; i++) {
                System.out.print(i == a.length - 1 ? a[i] : a[i] + ",");
            }
        }
        System.out.println("]");
    }
//    比较数组
    public static void judge(int[] luckynumber,int[] usernumber) {
        int redHit=0;
        int blueHit=0;
        for (int i = 0; i < luckynumber.length; i++) {
            if(luckynumber[i]==usernumber[i]){
                redHit++;
            }
        }
        if(luckynumber[6]==usernumber[6]){
            blueHit++;
        }
        switch (redHit){
            case 0:
                if(blueHit==1){
                    System.out.println("恭喜您中了六等奖");
                }else{
                    System.out.println("不好意思未中奖");
                }
                break;
            case 1:
                if(blueHit==1){
                    System.out.println("恭喜您中了六等奖");
                }else{
                    System.out.println("不好意思未中奖");
                }
                break;
            case 2:
                if(blueHit==1){
                    System.out.println("恭喜您中了五等奖");
                }else{
                    System.out.println("不好意思未中奖");
                }
                break;
            case 3:
                if(blueHit==1){
                    System.out.println("恭喜您中了五等奖");
                }else{
                    System.out.println("不好意思未中奖");
                }
                break;
            case 4:
                if(blueHit==1){
                    System.out.println("恭喜您中了四等奖");
                }else{
                    System.out.println("恭喜您中了五等奖");
                }
                break;
            case 5:
                System.out.println("恭喜您中了三等奖");
                break;
            case 6:
                if(blueHit==1){
                    System.out.println("恭喜您中了一等奖");
                }else{
                    System.out.println("恭喜您中了二等奖");
                }
                break;
        }
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值