AI智能应用开发从起点-终点 2.Java的基础语法(第一弹)

13 阅读9分钟

整体思维导图理清接下来的学习思路:

Java基本语法.png

一、注释

1.注释的意义

注释:见名知意在程序的指定位置添加的说明性信息,注释不会被识别到,就是说不会被编译运行,就相当于代码的解释说明一样,向我们工作之中如果完成一段代码的需求,就要写上注释,不仅是为了理清自己的思路,也是为了后续自己或者后来者对于这段代码理解或者修改时提供便利。

2.注释的种类

一共有三种注释

第一种:单行注释// 快捷键 Ctrl+/

第二种:多行注释 Ctrl+Shift+/

第三种:文档注释以/*开始, 以/结束,只不过初学阶段一般用不到

二 关键字和字面量

1.关键字

关键字就是被Java赋予了特殊意义的词 比如说:

class 定义类 ,public 表示作用域为公共的

注意:关键字已经被 Java 赋予了特殊的含义,我们无法使用 (不能当作类名,变量名,方法名...),我们来看一下日常用的一些关键字,不需要背诵,以后如果不小心写了关键字,idea会自动提示,改一下就行

image.png

三、字面量

字面量就是把日常用的哪些文字数字数据,在代码中展现出来

image.png

public class ConstantDemo {
    /*
        字面量: 生活中的数据, 在程序中的书写格式

        需求: 请将自己的个人信息展示在控制台
                姓名(字符串), 年龄(整数), 性别(字符), 身高(小数), 婚姻状况(布尔)
     */
    public static void main(String[] args) {
        System.out.println("张三");
        System.out.println(23);
        System.out.println(185.1);
        System.out.println('男');
        System.out.println(false);

        // System.out.println(null);       TODO: null不允许直接打印, 具体的含义在后面讲解
    }
}

四、变量的介绍和定义

1.变量的介绍

变量就相当于,你在代码的存储空间中开辟一块空间来存储自己想用的数据,以后如果需要重复使用,就不需要再次定义数据,直接引用变量就可以了

2.变量的定义和注意事项

我直接用代码形式来给大家展现会更加明了,接下来的知识点也是一样,尽量用代码形式给大家展现,同时在关键点我会加上注释,或者加文字说明来辅助理解

public class Demo3 {
    public static void main(String[] args) {
        /*        *//*3. 变量定义
       
        定义格式:数据类型 变量名 = 数据值;*/
        int num = 10;
        int age = 18;
        System.out.println(age);//打印
        age = 20;//赋值
        System.out.println(age + 10);//计算/
//    变量的注意事项
//        1.变量要先声明才能使用
        int sum = 50;
        System.out.println(sum);//可以运行,正确
//        System.out.println(name);//错误,没有这个变量


//        2.变量是什么类型,就必须装什么类型的数据
        int ages = 50;//正确,int类型存储整数
//        int nums = 12.3;//错误,int类型无法存储小数

//        3.变量只在自己所归属的{}范围内生效
        int agess = 18;
        System.out.println(age);//正确,在范围内
        {
            int a = 10;
            System.out.println(a);//正确,在范围内

        }
//        System.out.println(a);  // 错误, 访问不到a变量
        System.out.println(agess); // 正确, 在范围中

//        4.同一个范围内,变量的名称不能一样
        int ae = 18;                   // 正确定义变量
        {
            int a = 10;                 // 正确定义变量
        }
        {
            int a = 10;                 // 正确定义变量
        }
//        int ae = 20;                   // 错误!!!  main方法中已经有age变量了


//        6. 一条语句可以定义多个同类型变量,中间使用逗号分隔
        int a = 10, b = 20, c = 30;
    }

    //        5.变量定义的时候可以不赋初始值,但是使用时,必须要赋值
    public class VariableTest {
        public static void main(String[] args) {
            int age;                        // 不会报错, 因为并没有使用
            age = 10;
            System.out.println(age);        // 不会报错, 因为age里面已经有数据了
        }
    }
}

五、标识符

介绍:就是给类,方法,变量等起名字的符号 (自己起的名字)

1.标识符的定义规则

由数字、字母、下划线(_)和美元符($)组成

不能以数字开头

不能是关键字

区分大小写

2.标识符的命名规范

见名知义,驼峰命名

六、数据类型

Java 的数据类型主要有两大类 :基本数据类型 和 引用数据类型

我们今天主讲 基本数据类型

我们用一个面试题来打开: 比如面试官问:基本数据类型有哪些?

那么我们可以回答:基本数据类型一共有八种 可以分为四大块,分别是

整数型的byte、short、int、long

浮点数型: float 、double

字符型:char

布尔型:boolean

image.png

让我们以代码形式展现一下:

public class Demo4 {
    public static void main(String[] args) {
//        基本数据类型 8种 分为四大块
//        整数 byte,short,int,long
        byte a = 2; //内存占用1

        short b = 24622;//内存占用2

        int c = 325536426;//内存占用4

        long d = 564333649;//内存占用8

//        浮点数 float double
        float e = 52.55f;//内存占用4

        double f = 9998.442;//内存占用8

//        字符 char
        char g= 's';//内存占用2
        char h =4512;

//        布尔
        boolean i = true;//内存占用1
        boolean j =false;


    }
}

细节补充:

所有整数默认int类型

所有小数默认是 double 类型

七 类型转换

类型转换分为 隐式转换和强制转换

隐式转换

image.png

简单记:小的给大的赋值可以直接赋值

数据从 10 变化为了 10.0 数据发生了转换,转换的过程是内部隐藏的,所以称为隐式转换

运算过程中发生的隐式转换

char 转换为 int 的方式是查找编码表中的数字

例如 : 'a' 对应的是 97

int result = 'a' + 1;

System.out.println(result); 结果为98

  1. 强制转换

简单记 : 大的给小的赋值,不能直接赋值,需要强制类型转换

强转过程中有可能出现精度损失问题,使用的时候需要注意。

  1. 面试题

阅读代码, 分析是否存在错误, 如果有请说明原因并改正.

byte b1 = 3;

byte b2 = 4;

byte b3 = b1 + b2;

八.引用数据类型中的String

引用数据类型这个概念虽然是后面才学到的,但是由于日常使用字符串(String) 会很多,所以我们来提前讲解这个引用数据类型

1.字符串的概念

首先字符串是开发中经常使用到的一种数据类型,使用它可以处理文本、URL、文件路径等多种类型的数据。 同时在Java中,String是一个引用数据类型,表示一个字符串对象。每个String类型的变量实际上是指向一个字符串对象的引用。这意味着我们可以创建多个变量,它们都指向同一个字符串对象。例如:

String s1 = "Hello";
String s2 = "Hello";

在上面的代码中,s1和s2都指向一个存储"Hello"字符串。实际上,这里的"Hello"是一个字符串字面量,字符串中有一个常量池来存储你写的字符串,它会在字符串常量池中创建一个对象(如果池中还没有的话)。s1和s2都指向常量池中的同一个对象

字符串的拼接

我们来学习字符串的一个重要应用字符串的拼接

当 + 操作中,遇到了字符串,这时 + 就是字符串连接符,而不是算术运算。

我们来用一个小案例来讲解:

public class Demo2 {
    public static void main(String[] args) {
//        小需求:分别打印123 个位 十位 百位
        int num =123;
        int ge = 123%10;
        System.out.println(num+"的个位:"+ge);


        int shi = 123/10%10;
        System.out.println(num+"的十位:"+shi);

        int bai = 123/100;
        System.out.println(num+"的百位:"+bai);



    }
}

九、运算符

1.算术运算符

算术运算符就是我们小学就开始学习的那些运算符号

image.png

话不多说,这个直接代码展示

public class Demo1 {
    public static void main(String[] args) {
//        算术运算符 + 、-、*、\、%
        System.out.println(1+1);//2
        System.out.println(1-1);//0
        System.out.println(1*1);//1
        System.out.println(1/1);//1
        System.out.println(10%1);//0

    }
}

2. 自增自减的运算符

image.png

然后直接上代码解释

public class Demo3 {
    public static void main(String[] args) {
//        自增自减运算符
//        如果是单独的++和--在前在后都没有区别
        int a= 5;
        a =++a;//a=6
        a=a++;//a=7
        a= a--;//a=6
        a=--a;//a=5

但是如果不是单独使用就要注意了
++或者-- 在前 就是先赋值再进行操作
++或者-- 在后 就是先操作再进行赋值
        int b = ++a; //b=8
        int c =a++;//c = 8 ,a=9
        int d= --a;//a=8,d=8

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

        int x = 3;
        //    x=4   x=4    x=5
        int y = (++x) + (x++) + (x * 10);
        System.out.println(x);      //x=5
        System.out.println(y);     //y=58


    }
}

3.赋值运算符

  1. 基本赋值运算符

  1. 扩展赋值运算符

public class Demo4 {
    public static void main(String[] args) {
//赋值运算符 = += -= *= /= %=
//        注意 :  扩展赋值运算符自带强转效果


        int a = 10;
        double b = 12.3;
        a += b;
        System.out.println(a);

//        输出结果为22,因为相加之和的22.3赋值给 a ,a 变量为 int 类型,强转后砍掉小数点,结果为22




    }
}

4.关系运算符

  小名:比较运算符,让数据之间做比较的符号,返回 true 或者 false

public class Demo5 {
    public static void main(String[] args) {
         /*
        关系运算符

            >
            >=
            <
            <=
            ==
            !=

     */
        System.out.println(10 > 20);            // false
        System.out.println(10 >= 20);           // false
        System.out.println(10 < 20);            // true
        System.out.println(10 <= 20);           // true
        System.out.println(10 == 20);           // false
        System.out.println(10 != 20);           // true

    }
}

5.逻辑运算符

普通的逻辑运算符

介绍 : 把多个条件放在一起运算,最终返回布尔类型的值:true、false

需求 : 在程序中,判断一个学生成绩是否在 90~100 之间,是的话程序输出优秀.

然后是上代码

//        逻辑运算符
//        逻辑与& 遇到false 都为false
//        逻辑或 | 遇到true 都为true
//        逻辑非 ! 取反
//        逻辑异或 ^ 相同为false 不同为true
        System.out.println(true & false);        // false
        System.out.println(false & true);        // false
        System.out.println(false & false);       // false
        System.out.println(true & true);         // true
        System.out.println("---------------------");
        System.out.println(true | false);        // true
        System.out.println(false | true);        // true
        System.out.println(false | false);       // false
        System.out.println(true | true);         // true
        System.out.println("---------------------");
        System.out.println(!false);              // true
        System.out.println(!true);               // false
        System.out.println("---------------------");
        System.out.println(true ^ false);        // true
        System.out.println(false ^ true);        // true
        System.out.println(false ^ false);       // false
        System.out.println(true ^ true);         // false

短路逻辑运算符(重要)

image.png

上代码

//  带有短路效果的逻辑运算符
        int x = 3;
        int y = 4;

        boolean result = ++x>5&&y--<4;
        System.out.println(result);//false
        System.out.println(x);//4
        System.out.println(y);//4

        int a = 4;
        int b = 6;
        boolean results = ++a<6|| b-->6;
        System.out.println(results);//true
        System.out.println(a);//5
        System.out.println(b);//6

今天讲解到此为止,过两天发布第二弹