java基本语法——学习笔记

本文是关于Java基本语法的学习笔记,涵盖了JDK、JRE、JVM的概念,关键字与保留字的使用,标识符的规则,变量的声明与作用域,基本数据类型转换,运算符的详解,以及如何从键盘获取输入和生成随机数。此外,还详细讨论了程序流程控制,包括数组的创建、操作和常用算法,如复制、排序和查找。最后,文章提到了Java编程的一些注意事项,如大小写敏感和类型转换规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

目录

java基本语法

什么是JDK、JRM、JVM

关键字与保留字

标识符

变量

基本数据类型转换

运算符

如何从键盘获取变量

如何获取随机数

程序流程控制

数组

Arrays工具类的使用

数组中涉及的常见算法(复制、排序、查找)

注意事项


java基本语法

 

什么是JDK、JRM、JVM

  •  因为java语言有跨平台性,而该原理就是在需要运行java应用程序的操作系统上,先安装一个java虚拟机(JVM),由JVM来复杂java程序在该系统中的运行
  • JDK:是提供给java开发人员使用的,其中包含了java的开发工具,也包含了JRE
  • JRE:java运行环境

关键字与保留字

  • 关键字定义:被Java语言赋予了特殊含义,用于专门用途的字符串
  • 特点:关键字中所有字母都为小写

  • 保留字:现有java版本尚未使用,但以后版本可能会作为关键字使用(goto、const)

标识符

  • java对各种变量、方法和类等要素命名时使用的字符序列(凡是自己可以起名字的地方都叫标识符)
  • 定义合法标识符规则
    • 由26个英文字母大小写,0-9,_或$组成
    • 数字不能开头
    • 不可以使用关键字和保留字,但能包含
    • java中严格区分大小写
    • 标识符不能包含空格

变量

  • 使用变量的注意事项
    • 每个变量必须先声明,后使用
    • 使用变量名来访问这块区域的数据
    • 变量的作用域:其定义所在的一对{}内
    • 变量只有在其作用域内才有效
    • 同一个作用域内,不能定义重名的变量
  • java的浮点型常量默认为double型,声明float型常量,须后加 f 或 F
  • boolean类型数据只允许取值true和false,无null
    • 不可以使用0或非0的整数替代false和true

基本数据类型转换

  • 自动类型转换:容量小的类型自动转换为容量大的数据类型
  • 强制类型转换:将容量大的数据类型转换为容量小的数据类型,但可能造成进度降低或溢出
    • 字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现
    • Boolean类型不可以转换为其它的数据类型

  • 注意事项
    • byte、short、char之间不会相互转换
    • Boolean类型不能与其它数据类型运算
    • 当把任何基本数据类型的值和字符串进行连接运算时,基本数据类型的值将自动转化为字符串类型
  • 变量的的分类--按声明的位置的不同
    • 在方法体外,类体内声明的变量称为成员变量
    • 在方法体内部声明的变量称为局部变量
    • 二者在初始化值方面的异同
      • 同:都有声明周期
      • 异:局部变量除形参外,需显式初始化

运算符

  • &与&&的区别
    • &,左边无论真假,右边都进行运算
    • &&,如果左边为真,右边参与运算;如果左边为假,那么右边不参与运算
  • | 和 || 的区别
    • | ,左边无论真假,右边都进行计算
    • ||,如果左边为真,右边不参与运算;如果左边为假,右边参与运算
  • ^(异或):当左右不同时,结果为true

如何从键盘获取变量

import java.util.Scanner;

Scanner sc = new Scanner(System.in); //Scanner的实例化

int num = sc.nextInt(); //获取一个整数

String name = sc.next(); //获取一个字符串

double weight = sc.nextDouble(); //获取一个浮点型的数

boolean is = sc.nextBoolean(); //获取布尔型


//输入三个数
Scanner sc = new Scanner(System.in);

int num1 = scanner.nextInt();
int num2 = scanner.nextInt();
int num3 = scanner.nextInt();

如何获取随机数

//获取一个随机数:10-99 random生成的数默认为double型
int value = (int)(Math.random() * 90 + 10); //[0.0,1.0)--->[0.0,90.0)--->[10.0,100.0)--->[10,99]

// 公式:[a,b] : (int)(Math.random() * (b - a + 1) + a)
package Day_01.demo;

/*
假设你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票,提示用户输入
一个两位数,然后按照下面的规则判定用户是否能赢。
1)如果用户输入的数匹配彩票的实际顺序,奖金10 000美元。
2)如果用户输入的所有数字匹配彩票的所有数字,但顺序不一致,奖金 3 000美元。
3)如果用户输入的一个数字仅满足顺序情况下匹配彩票的一个数字,奖金1 000美元。
4)如果用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字,奖金500美元。
5)如果用户输入的数字没有匹配任何一个数字,则彩票作废。
*/
import java.util.Scanner;
import java.util.Random;

public class LiuChengKongZhi {
    public static void main(String[] args){
    //获取一个随机数:10-99 random生成的数默认为double型
        int value = (int)(Math.random() * 90 + 10); //[0.0,1.0)--->[0.0,90.0)--->[10.0,100.0)--->[10,99]
        // 公式:[a,b] : (int)(Math.random() * (b - a + 1) + a)
        System.out.println("请输入一个两位数:");
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        int valuege = value % 10;
        int valueshi = value / 10;
        int numge = num % 10;
        int numshi = num / 10;
        if(value == num){
            System.out.println("奖金10000美元");
        }else if((valuege == numshi)&&(valueshi == numge)){
            System.out.println("奖金3000美元");
        }else if((valuege == numge)||(valueshi == numshi)){
            System.out.println("奖金1000美元");
        }else if((valuege == numshi)||(valueshi == numge)){
            System.out.println("奖金500美元");
        }else {
            System.out.println("没中奖");
        }
        System.out.println("中奖号码是:"+value);
    }
}

程序流程控制

  • 一些注意事项

    • case子句中的值必须是常量,不能是变量名或不确定的表达式值

    • break语句用来执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到switch

    • default子句是可任选的,位置也是灵活的;当没有匹配的case时,执行default

    • break是终止本层循环,continue是终止本次循环

    • break、continue之后不能有其他语句,因为程序永远不会执行其后的语句

数组

  • 数组本身是引用数据类型,而数组中的元素可以是任何数据类型
  • 创建数组对象会在内存中开辟一整块连续空间,而数组名汇总引用的是这块连续空间的首地址
  • 数组的长度一旦确定下来,就不能修改
  • java语言中声明数组时不能指定其长度   eg:int a[5];
  • java中使用关键字new来创建数组,定义并用运算符new为之分配空间后,才可以引用数组中的每个元素
  • 每个数组都有一个属性length指明它的长度,eg:a.length
//创建基本数据类型的一维数组

public class ShuZhu {
    public static void main(String[] args){
        int s[];
        s = new int[10];
        for(int i=0;i<10;i++){
            s[i] = 2 * i + 1;
            System.out.println(s[i]);
        }
    }
}

Arrays工具类的使用

package Day_01.demo;

import java.lang.reflect.Array;
import java.util.Arrays;

public class ArrayTest_3 {
    public static void main(String[] args){

        //boolean equals(int[] a,int[] b) 判断两个数组是否相等
        int[] arr1 = new int[]{1,2,3,4};
        int[] arr2 = new int[]{1,3,2,4};
        boolean isEquals = Arrays.equals(arr1,arr2);
        System.out.println(isEquals);

        //String toString(int[] a) 输出数组信息
        System.out.println(Arrays.toString(arr1));

        //void fill(int[] a,int val) 将指定值填充到数组之中
        Arrays.fill(arr1,10);
        System.out.println(Arrays.toString(arr1));

        //void sort(int[] a) 对数组进行排序
        Arrays.sort(arr2);
        System.out.println(Arrays.toString(arr2));

        //int binarySearch(int[] a,int key) 对排序后的数组进行二分法检索指定的值
        int[] arr3 = new int[]{-10,20,27,39,55,89};
        int idex = Arrays.binarySearch(arr3,55);
        System.out.println(idex);
    }
}


false
[1, 2, 3, 4]
[10, 10, 10, 10]
[1, 2, 3, 4]
4

​​​​​数组中涉及的常见算法(复制、排序、查找)

注意事项

  •  java语言严格区分大小写

  • 一个源文件最多只能有一个public类,其它类的个数不限,如果源文件包含一个public类,则文件名必须按该类名命名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值