ToB企服应用市场:ToB评测及商务社交产业平台

标题: Java基础语法(1) [打印本页]

作者: 美丽的神话    时间: 2023-9-29 05:35
标题: Java基础语法(1)
Java基础语法
JAVA--黑马程序员 笔记

一、Java入门

1、JAVA 是一种很火的计算机语言。
2、JAVA 代码编写分三步:
3、JAVA--配置环境变量
4、JAVA 代码中的类名一定要与文件名一致。
5、判断JAVA版本命令为:
java --version或者java -version(旧)
6、JAVA 的下载和安装
7、JDK 的安装目录介绍:
目录名称说明bin该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。conf该路径下存放了JDK的相关配置文件。include该路径下存放了一些平台特定的头文件。jmods该路径下存放了JDK的各种模块。legal该路径下存放了JDK各模块的授权文档。lib该路径下存放了JDK工具的一些补充JAR包。8、编译运行时常见问题:


9、Java 的三大平台:
JavaSE(基础)、JavaME(小型)、JavaEE(Web网站、服务器)
10、Java 用法:
桌面应用开发、企业级应用开发、移动应用开发、科学计算、大数据开发、游戏开发。
11、Java 的主要特性:
12、Java 语言跨平台的原理:
注:高级语言的编译运行方式——编译型、解释型、混合型(半编译,半解释)
13、JRE和JDK:
14、Java 开发工具:
二、Java基础概念

1、注释:是对代码的解释和说明文字。Java中的注释分为三种:
  1. // 这是单行注释文字
复制代码
  1. /*<br>这是多行注释文字<br>注意:多行注释不能嵌套使用。<br>*/
复制代码
  1. /**<br>这是多行文档注释文字<br>这是多行文档注释文字<br>*/
复制代码
2、关键字:被Java赋予了特定含义的英文单词,字母全部小写,共有51个+2个保留字=53个关键字。
3、字面量-作用:告诉程序员,数据在程序中的书写格式。
字面量类型说明程序中的写法整数不带小数的数字666,-88小数带小数的数字13.14,-5.21字符必须使用单引号,有且仅能一个字符‘A’,‘0’,‘我’字符串必须使用双引号,内容可有可无“HelloWorld”,“黑马程序员”布尔值布尔值,表示真假,只有两个值:true,falsetrue 、false空值一个特殊的值,空值值是:null
4、vscode中java错误 :编码GBK的不可映射字符。
5、变量:  在程序的执行过程中,其值有可能发生改变的量(数据)。 变量就是在程序中临时存储数据的容器。但是这个容器中只能存一个值。
变量的定义格式:
变量的注意事项:


6、计算机的存储规则
7、JAVA 数据类型分为:基本数据类型(int等)和引用数据类型(类、接口、数组、String等)。
  1. 注意基本数据类型和引用数据类型区别:<br>- 基本数据类型包括整数、浮点数、布尔和字符类型;而引用数据类型是除了基本数据类型外的其它所有类型。<br>- 基本数据类型在栈内存中存储的是真实的数据;而引用数据类型在栈内存中存储的是地址值,即引用是使用了其它空间中的数据。
复制代码
基本数据类型有四类八种:
数据类型关键字内存占用取值范围整数byte1负的2的7次方 ~ 2的7次方-1(-128~127) short2负的2的15次方 ~ 2的15次方-1(-32768~32767) int4负的2的31次方 ~ 2的31次方-1 long8负的2的63次方 ~ 2的63次方-1浮点数float41.401298e-45 ~ 3.402823e+38 double84.9000000e-324 ~ 1.797693e+308字符char20-65535布尔boolean1true,false基本数据类型注意事项:


8、标识符:给类、方法、变量等起的名字。
标识符命名规则————硬性要求
标识符命名规则————软性要求
9、键盘录入:  关于接收键盘输入的内容,使用JAVA写好的类Scanner。步骤:导包、创建对象、接收数据。
三、运算符

1、运算符和表达式
2、运算符分类:算术运算符、自增自减运算符、赋值运算符、关系运算符、逻辑运算符、三元运算符、其它运算符
3、运算符的优先级:
4、类型转换:
隐式转换(自动类型提升):就是把一个取值范围小的数据或者变量,赋值给另一个取值范围大的变量。此时不需要我们额外写代码单独实现,是程序自动帮我们完成的。
两种提升规则:
强制转换:如果要把一个取值范围大的数据或者变量赋值给另一个取值范围小的变量。是不允许直接操作。如果一定要这么干,就需要加入强制转换。
5、原码、补码、反码

四、判断和循环

1、流程控制语句分类:顺序结构、分支结构(判断和选择结构,if、switch)、循环结构(for, while, do…while)。
  1. //其语句格式1:<br>if (关系表达式) {<br>    语句体;    <br>}<br>/* 注意:<br>1. 如果我们要对一个布尔类型的变量进行判断,不要写==,直接把变量写在小括号中即可。<br>2. 如果大括号中的语句体只有一条,那么大括号可以省略不写。<br>   如果大括号省略了,那么if只能控制距离他最近的那一条语句。<br>   建议自己不要去写,如果别人这么写了,你要能看懂即可。<br>   注意: int a = 1; 这行代码包含定义变量a和给其赋值两句语句。<br>3. 大括号的开头可以另起一行书写。<br>*/<br>​<br>//其语句格式2:<br>if (关系表达式) {<br>    语句体1;   <br>} else {<br>    语句体2;   <br>}<br>​<br>//其语句格式3:<br>if (关系表达式1) {<br>    语句体1;   <br>} else if (关系表达式2) {<br>    语句体2;   <br>} <br>…<br>else {<br>    语句体n+1;<br>}
复制代码
  1. //switch语句格式:<br>switch (表达式) {<br>    case 值1:<br>        语句体1;<br>        break;<br>    case 值2:<br>        语句体2;<br>        break;<br>    ...<br>    default:<br>        语句体n+1;<br>        break;<br>}<br>/* 注意:<br>1. 表达式:(将要匹配的值)取值为byte、short、int、char。JDK5以后可以是枚举,JDK7以后可以是String。<br>2. case:后面跟的是要和表达式进行比较的值(被匹配的值)。<br>3. break:表示中断,结束的意思,用来结束switch语句。<br>4. default: 表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。<br>5. case后面的值只能是字面量,不能是变量。<br>6. case给出的值不允许重复。<br>*/<br>​<br>//switch在JDK12中的新特性:<br>switch (表达式) {<br>    case 值1 -> { 语句体1; }<br>    case 值2 -> { 语句体2; }<br>    ...<br>    default -> { 语句体n+1; }<br>}
复制代码
注意switch中有:1)default可以放在任意位置,也可以省略。  2)语句中不写break会引发case穿透现象。使用场景:如果多个case的语句体重复了,考虑利用case穿透来简化代码。  3)如果switch中匹配成功的case生成结果,可以在switch前写上变量=来接收这个结果。
注意:1)switch和if第三种格式各自的使用场景:当我们需要对一个范围进行判断的时候,用if的第三种格式。当我们把有限个数据列举出来,选择其中一个执行的时候,用switch语句。
  1. //for循环格式:<br>for (初始化语句;条件判断语句;条件控制语句) {<br>    循环体语句;<br>}
复制代码
  1. //while循环格式:<br>初始化语句;<br>while(条件判断语句){<br>    循环体;<br>    条件控制语句;<br>}
复制代码
注意:1)循环是重复的做某事,具有明确的开始和停止标记。  2)for 和 while 的区别:for循环中,知道循环次数或者循环的范围。而while循环中,不知道循环的次数和范围,只知道循环的结束条件。
  1. //do...while循环格式:<br>初始化语句;<br>do{<br>    循环体;<br>    条件控制语句;<br>}while(条件判断语句);<br>//do...while循环特点:先执行,再判断。
复制代码
2、无限循环(死循环):循环一直停不下来。
  1. //for循环<br>for(;;){<br>    System.out.println("循环执行一直在打印内容");<br>}<br>//while循环(最常用)<br>while(true){<br>    System.out.println("循环执行一直在打印内容");<br>}<br>//do...while循环<br>do{<br>    System.out.println("循环执行一直在打印内容");<br>}while(true);<br><br>//注意:无限循环下面不能再写其他代码了,因为永远执行不到。
复制代码
3、跳转控制语句

——(条件控制语句):在循环的过程中,跳到其他语句上执行。

五、数组

1、数组:指的是一种容器,可以同来存储同种数据类型的多个值。但是数组容器在存储数据的时候,需要结合隐式转换考虑。
2、数组的定义:
3、数组的静态初始化:
4、数组的地址值:表示数组在内存中的位置。
5、数组元素访问的格式:数组名[索引];
6、数组的遍历:就是把数组里面所有的内容一个一个全部取出来。
7、数组的动态初始化:
注意:数组两种初始化方式的区别。静态初始化:手动指定数组的元素,系统会根据元素的个数,计算出数组的长度。动态初始化:手动指定数组长度,由系统给出默认初始化值。
8、数组常见问题

当访问了数组中不存在的索引,就会引发索引越界异常
9、如何在数组中添加数据?
10、数组的内存图:
注意:Java的内存分配
六、方法

1、方法(method):是程序中最小的执行单元
注意,方法定义和方法调用的比较:  方法必须先创建才可以使用,该过程成为方法定义。  方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用。
2、方法的定义格式:
  1. //下面参数为形参<br>public static 返回值类型 方法名(参数) {<br>    方法体;<br>    return 返回值;<br>}
复制代码
方法的定义格式可以分为 最简单的(无参数的)、带参数的 和带返回值 的方法定义。
注意:形参和实参:  形参:方法定义中的参数。等同于变量定义格式,例如:int number  实参:方法调用中的参数。等同于使用变量或常量,例如: 10 number
3、方法的注意事项:


4、方法的重载:
5、方法的内存:
七、综合练习

1、练习:双色球
代码示例:
[code]package com.itheima.test;

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

public class Test11 {
    public static void main(String[] args) {
        //1.生成中奖号码
        int[] arr = createNumber(); // 123456  7

        System.out.println("=======================");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr + " ");
        }

        System.out.println("=======================");



        //2.用户输入彩票号码(红球 + 蓝球)//654321
        int[] userInputArr = userInputNumber();

        //3.判断用户的中奖情况
        //红球 蓝球
        int redCount = 0;
        int blueCount = 0;

        //判断红球
        for (int i = 0; i < userInputArr.length - 1; i++) {
            int redNumber = userInputArr;
            for (int j = 0; j < arr.length - 1; j++) {
                if(redNumber == arr[j]){
                    redCount++;
                    //如果找到了,那么后面的数字就没有必要继续比较了
                    //跳出内循环,继续判断下一个红球号码是否中奖
                    break;
                }
            }
        }

        //判断蓝球
        int blueNumber = userInputArr[userInputArr.length-1];
        if(blueNumber == arr[arr.length - 1]){
            blueCount++;
        }

        //根据红球的个数以及蓝球的个数来判断中奖情况
        if(redCount == 6 && blueCount == 1){
            System.out.println("恭喜你,中奖1000万");
        }else if(redCount == 6 && blueCount == 0){
            System.out.println("恭喜你,中奖500万");
        }else if(redCount == 5 && blueCount == 1){
            System.out.println("恭喜你,中奖3000");
        }else if((redCount == 5 && blueCount == 0) ||  (redCount == 4 && blueCount == 1)){
            System.out.println("恭喜你,中奖200");
        }else if((redCount == 4 && blueCount == 0) ||  (redCount == 3 && blueCount == 1)){
            System.out.println("恭喜你,中奖10");
        }else if((redCount == 2 && blueCount == 1) ||  (redCount == 1 && blueCount == 1)|| (redCount == 0 && blueCount == 1)){
            System.out.println("恭喜你,中奖5");
        }else{
            System.out.println("谢谢参与,谢谢惠顾");
        }

    }

    public static int[] userInputNumber() {
        //1.创建数组用于添加用户购买的彩票号码
        //6个红球 1个蓝球 数组长度:7
        int[] arr = new int[7];

        //2.利用键盘录入让用输入
        Scanner sc = new Scanner(System.in);
        //让用户输入红球号码
        for (int i = 0; i < 6; ) {
            System.out.println("请输入第" + (i + 1) + "个红球号码");
            int redNumber = sc.nextInt();
            //redNumber  在1~33  唯一不重复
            if (redNumber >= 1 && redNumber = 1 && blueNumber




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4