Java开发从入门到精通(一):Java的基础语法进阶

Java大数据开发和安全开发

  • (一)Java注释符
    • [1.1 单行注释 //](#1.1 单行注释 //)
    • [1.2 多行注释 /* */](#1.2 多行注释 /* */)
    • [1.3 文档注释 /** */](#1.3 文档注释 /** */)
    • [1.4 各种注释区别](#1.4 各种注释区别)
    • [1.5 注释的特点](#1.5 注释的特点)
    • [1.5 注释的快捷键](#1.5 注释的快捷键)
  • (二)Java的字面量
  • (三)Java的变量
    • [3.1 认识变量](#3.1 认识变量)
    • [3.2 为什么要用变量?](#3.2 为什么要用变量?)
    • [3.3 变量在计算机中的执行原理](#3.3 变量在计算机中的执行原理)
    • [3.4 变量的特点](#3.4 变量的特点)
    • [3.5 变量的应用](#3.5 变量的应用)
    • [3.6 变量的总结](#3.6 变量的总结)
    • [3.7 变量的注意事项](#3.7 变量的注意事项)
  • (四)Java关键字和标识符
    • [4.1 关键字](#4.1 关键字)
    • [4.2 标识符](#4.2 标识符)
  • (五)变量的详解
    • [5.1 二进制](#5.1 二进制)
    • [5.2 十进制转二进制的算法](#5.2 十进制转二进制的算法)
    • [5.3 计算机中表示数据的最小单元](#5.3 计算机中表示数据的最小单元)
    • [5.4 其他数据形式是如何存储的](#5.4 其他数据形式是如何存储的)
      • [5.4.1 字符在计算机中是如何存储的](#5.4.1 字符在计算机中是如何存储的)
      • [5.4.2 图片在计算机中是如何存储的](#5.4.2 图片在计算机中是如何存储的)
    • [5.5 二进制转十进制](#5.5 二进制转十进制)
    • [5.6 八进制和十六进制](#5.6 八进制和十六进制)
    • [5.7 计算机的数据单位](#5.7 计算机的数据单位)
  • (六)Java的数据类型
    • [6.1 **`数据类型的分类`**](#6.1 数据类型的分类)
    • [6.2 基本数据类型](#6.2 基本数据类型)
    • [6.2 引用数据类型](#6.2 引用数据类型)
    • [6.3 类型转换](#6.3 类型转换)
      • [6.3.1 自动类型转换](#6.3.1 自动类型转换)
      • [6.3.2 表达式的自动类型转换](#6.3.2 表达式的自动类型转换)
      • [6.3.3 强制类型转换](#6.3.3 强制类型转换)
  • (七)运算符
    • [7.1 算数运算符](#7.1 算数运算符)
    • [7.2 自增自减运算符](#7.2 自增自减运算符)
    • [7.3 赋值运算符](#7.3 赋值运算符)
    • [7.4 关系运算符](#7.4 关系运算符)
    • [7.5 逻辑运算符](#7.5 逻辑运算符)
    • [7.6 三元运算符](#7.6 三元运算符)
    • [7.7 运算符的优先级](#7.7 运算符的优先级)
  • (八)键入数据

(一)Java注释符

注释是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便理解程序的。

1.1 单行注释 //

java 复制代码
public class NoteDemo {
    public static void main(String[] args) {
        // 以下是一个打印语句,是往控制台输出内容的
        System.out.println("hello world");
        
    }
}

1.2 多行注释 /* */

java 复制代码
public class NoteDemo {
    public static void main(String[] args) {
        System.out.println("hello world");
        /*
        System.out.println("hello world");
        System.out.println("hello world");
        System.out.println("hello world");
         */

    }
}

1.3 文档注释 /** */

java 复制代码
/**
 目标:学会使用注释
 这个程序就是讲解注释的
 */
public class NoteDemo {
    public static void main(String[] args) {
        System.out.println("hello world");
    }
}

1.4 各种注释区别

1.5 注释的特点

注释不影响程序的执行

1.5 注释的快捷键

(二)Java的字面量

计算机是用来处理数据的,字面量就是告诉程序员:数据在程序中的书写格式,也就是各种数据在java中怎么表达,比如数字,字符,字符串怎么表达

java 复制代码
public class LiteralDemo {
    public static void main(String[] args) {
        // 目标:需要同学们掌握常见数据在程序中的书写格式吧。
        // 1、整数
        System.out.println(666);

        // 2、小数
        System.out.println(99.5);

        //3、字符:必须要用单引号围起来,有且只能有一个字符
        System.out.println('a');
        System.out.println('0');
        System.out.println('中');
        // System.out.println('中国');  两个字符
        System.out.println(' ');  //空字符
        // System.out.println(''); 不能不写
        // 特殊的字符:\n 代表的是换行的意思  \t代表的是一个tab
        System.out.println('中');
        System.out.println('\n');
        System.out.println('国');
        System.out.println('\t');

        // 4、字符串:必须用双引号围起来,里面的内容其实可以随意
        System.out.println("我爱你中国abc");
        System.out.println(" ");
        System.out.println("");
        System.out.println("我");
        // 5、布尔值:只有2个值 truefalse
        System.out.println(true);
        System.out.println(false);
    }
}

(三)Java的变量

变量的学习路径

3.1 认识变量

什么是变量 ?

  • 变量是用来记住程序要处理的数据的。

变量的定义格式

java 复制代码
int age = 23;

3.2 为什么要用变量?

  • 使用变量记要处理的数据,编写的代码更灵活,管理代码更方便。
java 复制代码
public class VariableDemo {
    public static void main(String[] args) {
        // 目标:认识变量,掌握使用变量的好处,变量的特点,应用场景。
        // 1、定义一个整型变量记住一个整数
        // 数据类型 变量名= 数据;
        // 注意:=在Java中是赋值的意思,从右往左看
        int age = 23;
        System.out.println(age);
        // 2、记住一个人的成绩
        double score = 99.5;
        System.out.println(score);
        System.out.println("----");
        //3、使用变量的好处:便于扩展和维护。
        System.out.println(666);  //想把666改成888 需要每个都改
        System.out.println(666);
        System.out.println(666);
        int number = 888;
        System.out.println(number); //想把888改成666 只需要改变量即可,这就是便于维护
        System.out.println(number);
        System.out.println(number);
        System.out.println(number);
    }
}

3.3 变量在计算机中的执行原理

  • 变量就是内存中的一块区域,可以理解成一个盒子,用来装一个数据的!

3.4 变量的特点

变量中装的数据是可以被替换的

java 复制代码
		// 4、变量的特点:里面装的数据可以被替换
        int age2 = 18;
        System.out.println(age2);
        age2 = 19;//赋值:从右边往左边执行
        System.out.println(age2);
        age2= age2 + 1;// 赋值:从右边往左边执行
        System.out.println(age2);

3.5 变量的应用

写程序对数据进行处理就很方便

java 复制代码
		// 5、需求:钱包有9.5元,收到了10元红包,又发出去了5元红包,请输出各阶段钱包的情况
        double money=9.5;// 钱包
        System.out.println(money);

        // 收红包10元。
        money = money + 10;
        System.out.println(money);

        // 发出去5元。
        money = money - 5;
        System.out.println(money);

3.6 变量的总结

3.7 变量的注意事项

(四)Java关键字和标识符

4.1 关键字

  • Java语言自己用到的一些词,有特殊作用的,我们称之为关键字,如:public、class、int、double...

  • 注意:关键字是java用了的,我们就不能用来为做为:类名、变量名,否则会报错!

4.2 标识符

标志符就是名字,我们写程序时会起一些名字,如类名变量名等等都是标识符。

标识符的要求

  • 基本组成:由数字、字母、下划线()和美元符($)等组成
  • 强制要求:不能以数字开头、不能用关键字做为名字、且是区分大小写的。

标识符的建议规范

  • 变量名称:满足标识符规则,同时建议用英文、有意义、首字母小写,满足"驼峰模式"例如:int studyNumber = 59;
  • 类名称:满足标识符规则,建议全英文、有意义、首字母大写,满足"驼峰模式",例如: HelloWorld, Student

(五)变量的详解

数字是以二进制的形式存储的

5.1 二进制

  • 只有0、1,按照逢2进1的方式表示数据

5.2 十进制转二进制的算法

5.3 计算机中表示数据的最小单元

  • 计算机中表示数据的最小单元:一个字节(bvte,简称B,是使用8个二进制位组成的)
  • 字节中的每个二进制位就称为位(bit,简称b),1B=8b

5.4 其他数据形式是如何存储的

5.4.1 字符在计算机中是如何存储的

java 复制代码
public class ASCIIDemo {
    public static void main(String[] args) {
        // 目标:掌握ASCII编码表的编码特点。
        System.out.println('a'+10);//97 + 10 = 107   a的值对应的是编码表里的值97
        System.out.println('A'+10);//65 + 10 = 75
        System.out.println('0'+10);//48 + 10 = 58
    }
}

5.4.2 图片在计算机中是如何存储的

  • 图片就是无数个像素点组成的
  • 每个像素点的数据:用0~255255255表示其颜色

先存储每个像素点的数值 ,每个像素点由三位数 255 0 255 ,计算机挨个保存每个像素点的值就可以存储一张图片

5.5 二进制转十进制

5.6 八进制和十六进制

  • 为了便于观察和表示二进制,推出了八进制和十六进制。
  • 每3位二进制作为一个单元,最小数是0,最大数是7,共8个数字,这就是八进制。
  • 每4位二进制作为一个单元,最小数是0,最大数是15,共16个数字,依次用:0~9ABCDEF 代表就是十六进制。

java 复制代码
        //二进制 八进制 十六进制在程序中的写法。
        int a1 =0B01100001;
        System.out.println(a1);

        int a2 = 0141; // 0开头的数据当成八进制看待!
        System.out.println(a2);
        
        int a3= 0XFA; // 0X开头的数据是十六进制
        System.out.println(a3);

5.7 计算机的数据单位

  • 计算机表示数据的最小组成单元是:字节,1B=8b。
  • 在B的基础上,计算机发展出了KB、MB、GB、TB、...... 这些数据单位!

(六)Java的数据类型

6.1 数据类型的分类

6.2 基本数据类型

基本数据类型:4大类8种

java 复制代码
public class VariableDemo2 {
    public static void main(String[] args) {
        // 目标:掌握基本数据类型的使用。
        // 1、byte short int long
        byte a=127; // -128-127
        // byte a2=128;// 越界了

        short s= 13244;
        //short s1=93244;//越界了

        int i = 422424;// 默认

        //|注意:随便写一个整型字面量默认是int类型的,424242244444虽然没有超过long的范围,但是超过了本身int类型的范围
        // 如果希望随便写一个整型字面量默认是long类型的,需要在后面加上L/l
        long lg = 424242244444L;

        // 2、float double// 注意:随便写小数字面量,默认是double,如果希望小数是float,后面加上F/f
        float f = 3.14F;
        
        double d = 56.45;
        
        
        //3、char 字符型
        char ch='a';
        char ch2='中';
        
        
        // 4、boolean
        boolean flag =true;
        boolean flag2 = false;
        
        //5、String
        // 拓展一种引用数据类型,后面要用
        // String 称之为字符串类型,定义的变量可以用于记住一个字符串数据
        String name ="张三";
        System.out.println(name);
    }
}

6.2 引用数据类型

java 复制代码
		//5、String
        // 拓展一种引用数据类型,后面要用
        // String 称之为字符串类型,定义的变量可以用于记住一个字符串数据
        String name ="张三";
        System.out.println(name);

6.3 类型转换

  • 1、存在某种类型的变量赋值给另一种类型的变量
  • 2、存在不同类型的数据一起运算

6.3.1 自动类型转换

类型范围小的变量,可以直接赋值给类型范围大的变量

java 复制代码
public class TypeConversionDemo {
    public static void main(String[] args) {
        // 目标:理解自动类型转换机制。
        byte a= 12;
        int b = a;//发生自动类型转换
        System.out.println(a);
        System.out.println(b);
    }
}

自动类型转换原理:

复制代码
	byte   占1个字节
	int    占4个字节
	类型范围小的变量,可以直接赋值给类型范围大的变量

自动类型转换的其他形式

java 复制代码
public class TypeConversionDemo {
    public static void main(String[] args) {
        // 目标:理解自动类型转换机制。
        int c= 100;//4字节
        double d=c;//8字节 发生了自动类型转换了
        System.out.println(d);
        
        char ch='a';// 2字节 'a'97 =>00000000 01100001
        int i=ch;// 4字节 发生了自动类型转换了=> 00000000 00000000 00000000 01100001
        System.out.println(i);
    }
}

6.3.2 表达式的自动类型转换

  • 不同类型的变量或者数据一起远算,最终运算出的数据的类型是什么??

  • 在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算

注意事项:

  • 表达式的最终结果类型由表达式中的**最高类型决定**
  • 在表达式中,byte、short、char 是直接转换成int类型参与运算的。
java 复制代码
public class TypeConversionDemo2 {
    public static void main(String[] args) {
        // 目标:掌握表达式的自动类型转换机制。
        byte a = 10;   
        int  b = 20;
        long c = 30;
        long rs = a + b + c;   //表达式的最终结果类型由表达式中的**`最高类型决定`** 
        System.out.println(rs);

        double rs2 = a + b + 1.0;    //表达式的最终结果类型由表达式中的**`最高类型决定`** 
        System.out.println(rs2);

        byte i = 10;
        short j= 30;
        int rs3 = i + j;   //在表达式中,byte、short、char 是直接转换成int类型参与运算的
        System.out.println(rs3);

        // 面试笔试题:
        byte b1 = 110;   //byte的范围是-128-127 110+80=190 超过了byte的范围 为了防止运算错误程序自动转换成了int
        byte b2 = 80;
        int b3 = b1 + b2;  //在表达式中,byte、short、char 是直接转换成int类型参与运算的
        System.out.println(b3);
    }
}

6.3.3 强制类型转换

  • 类型范围大的数据或者变量,直接赋值给类型范围小的变量,会报错
  • 可以强行将类型范围大的变量、数据赋值给类型范围小的变量

    复制代码
     byte b =(byte)a;
java 复制代码
public class TypeConversionDemo3 {
    public static void main(String[] args) {
        // 目标:掌握强制类型转换。
        int a= 20;
        byte b =(byte)a; // ALT + ENTER 强制类型转换。
        System.out.println(a);
        System.out.println(b);
    }
}

强制类型转换在计算机中的执行原理

java 复制代码
public class TypeConversionDemo3 {
    public static void main(String[] args) {
        // 目标:掌握强制类型转换。
        int i = 1500;
        byte j=(byte) i;
        System.out.println(j);
    }
}
java 复制代码
		double d = 99.5;
        int m =(int)d;// 强制类型转换
        System.out.println(m);//丢掉小数部分,保留整数部分
        
  		>>>99

注意事项

  • 强制类型转换可能造成数据(丢失)溢出
  • 浮点型强转成整型,直接丢掉小数部分,保留整数部分返回

(七)运算符

7.1 算数运算符

java 复制代码
public class OperatorDemo {
    public static void main(String[] args) {
        // 目标:掌握基本的算术运算符的使用。
        int a = 10;
        int b = 2;
        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(a * b);//20
        System.out.println(a / b);//5
        System.out.println(5 / 2);//2.5 ==> 2
        System.out.println(5.0 / 2);//2.5 想要的到小数
        int i = 5;
        int j = 2;
        System.out.println(1.0 * i / j);// 2.5
        System.out.println(a % b);//0
        System.out.println(3 % 2);//1
    }
}

+符号可以做连接符的

  • +符号与字符串运算的时候是用作连接符的,其结果依然是一个字符

  • 怎么判断是连接符还是运算符

    独门秘籍
    能算则算,不能算就在一起。(计算机很聪明)

java 复制代码
public class OperatorDemo {
    public static void main(String[] args) {
        // 目标2:掌握使用+符号做连接符的情况。
        int a2 = 5;
        System.out.println("abc"+ a2);//"abc5"
        System.out.println(a2+5);//10
        System.out.println("itheima" + a2 +'a'); // "itheima5a"
        System.out.println(a2+'a'+ "itheima"); // 102itheima
    }
}

7.2 自增自减运算符

注意:

  • ++、-- 只能操作变量,不能操作字面量的
java 复制代码
public class OperatorDemo2 {
    public static void main(String[] args) {
        // 目标:掌握自增自减运算符的使用。
        int a= 10;
        a++; // a = a + 1
        ++a;
        System.out.println(a);
        
        a--;//a = a - 1
        --a;
        System.out.println(a);
        
        // System.out.println(2++);// 自增减只能操作变量不能操作字面量的,会报错!
    }
}
  • ++、-- 如果不是单独使用(如在表达式中、或者同时有其它操作),放在变量前后会存在明显区别
  • 如果单独使用放前放后是没有区别的,
  • 非单独使用:在变量前,先进行变量自增/自减,再使用变量。
  • 非单独使用:在变量后,先使用变量,再进行变量自增/自减。
java 复制代码
public class OperatorDemo2 {
    public static void main(String[] args) {
        // 目标:掌握自增自减运算符的使用。
        int i= 10;
        int rs=++i;// 先加后用
        System.out.println(rs);
        System.out.println(i);

        int j= 10;
        int rs2 =j++;// 先用后加
        System.out.println(rs2);
        System.out.println(j);
    }
}

自增、自减拓展案例

java 复制代码
        int m=5;
        int n = 3;
        //m 5 6 5 4
        //n 3 4 3
        //            6  -  5  + 5   - 4   + 4   + 
        int result = ++m - --m + m-- - ++n + n-- + 3;
        System.out.println(result);//9
        System.out.println(m);//4
        System.out.println(n);//3

7.3 赋值运算符

基本赋值运算符

  • 就是"=",从右边往左看

扩展赋值运算符

注意:扩展的赋值运算符隐含了强制类型转换

java 复制代码
public class OperatorDemo3 {
    public static void main(String[] args) {
        // 目标:掌握扩展赋值运算符的使用。
        // +=
        // 需求:收红包
        double a=9.5;
        double b=520;
        a += b;// a = (double)(a + b); //赋值运算符隐含了强制类型转换
        System.out.println(a);
        
        //-= 需求:发红包
        double i= 600;
        double j= 520;
        i-=j;//i = (double)(i-j);
        System.out.println(i);
        
        int m= 10;
        int n=5;
        m *= n;//等价形式:m = (int)(m * n)
        m /= n;//等价形式:m = (int)(m / n)
        m %= n;//等价形式:m = (int)(m % n)
        System.out.println(m);
    }
}

练习题:

java 复制代码
public class OperatorDemo3 {
    public static void main(String[] args) {
        // 目标:掌握扩展赋值运算符的使用。
        byte x=10;
        byte y= 30;
        // x = x + y;// 编译报错    byte = int + int 不成立了
        // x = (byte)(x + y);  //赋值运算符隐含了强制类型转换 byte = byte(int + int)
        // x += y; //等价形式:x = (byte)(x + y);
        System.out.println(x);
    }
}

7.4 关系运算符

  • 判断数据是否满足条件,最终会返回一个判断的结果,这个结果是布尔类型的值:true或者false。


java 复制代码
public class OperatorDemo4 {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;
        boolean rs = a > b;
        System.out.println(rs);
        System.out.println(a >= b);//要么a大于b,或者a等于b
        System.out.println(2 >= 2);// true
        System.out.println(a < b);
        System.out.println(a <= b);// false
        System.out.println(2 <= 2);// true
        System.out.println(a == b); // false
        System.out.println(5 ==5);// true
        //System.out.println(a = b);// 注意了:判断是否相等一定是用 == ,=是用来赋值的。
        System.out.println(a != b);//true
        System.out.println(10 != 10);// false
    }
}

7.5 逻辑运算符

  • 把多个条件放在一起运算,最终返回布尔类型的值:true、false
java 复制代码
public class OperatorDemo5 {
    public static void main(String[] args) {
        // 目标:掌握逻辑运算符的使用。
        // 需求:要求手机必须满足尺寸大于等于6.95,且内存必须大于等于8
        double size =6.8;
        int storage = 16;
        //1、&前后的条件的结果必须都是true,结果才是true.
        boolean rs = size >= 6.95 & storage >= 8;
        System.out.println(rs);

        // 需求2:要求手机要么满足尺寸大于等于6.95,要么内存必须大于等于8
        // 2、|只要多个条件中有一个是true,结果就是true.
        boolean rs2 = size >= 6.95 | storage >= 8;
        System.out.println(rs2);


        // 3、!取反的意思
        System.out.println(!true);// false
        System.out.println(!false);//true
        System.out.println(!(2 > 1));// false

        // 4、^前后条件的结果相同时返回false,不同时返回true.
        System.out.println(true ^ true);// false
        System.out.println(false ^ false);// false
        System.out.println(true ^ false);// true
        System.out.println(false ^ true);// true
    }
}

注意:

  • 在java中,"&","|" 无论左边是 false还是 true,右边都要执行
  • 由于&&、|| 运算效率更高、在开发中用的更多
java 复制代码
public class OperatorDemo5 {
    public static void main(String[] args) {
        //5、&& 左边为false,右边不执行。
        int i = 10;
        int j= 20;
        System.out.println(i>100 && ++j>99);
        System.out.println(i>100 & ++j > 99);
        System.out.println(j);

        //6、||左边是true ,右边就不执行。
        int m = 10;
        int n= 30;
        System.out.println(m > 3 || ++n > 40);
        System.out.println(m > 3 | ++n > 40);
        System.out.println(n);
    }
}

7.6 三元运算符

三元运算符介绍:

  • 执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2.
java 复制代码
public class OperatorDemo6 {
    public static void main(String[] args) {
        // 目标:掌握三元运算符的基本使用。
        double score = 58.5;
        String rs = score >= 60 ? "成绩及格" : "成绩不及格";
        System.out.println(rs);

        // 需求2:找出2个整数中的较大值,并输出。
        int a = 99;
        int b = 69;
        int max = a > b ? a : b;
        System.out.println(max);

        // 需求3:找3个整数中的较大值。
        int i = 10;
        int j = 45;
        int k = 34;

        // 找出2个整数中的较大值。
        int temp = i > j ? i :j;
        // 找出temp与k中的较大值
        int max2 = temp > k ? temp : k;
        System.out.println(max2);
    }
}

7.7 运算符的优先级

  • 在表达式中,哪个运算符先执行后执行是要看优先级的,例如"*、/"的优先级高于"+.

(八)键入数据

需求:

  • 请在程序中,提示用户通过键盘输入自己的姓名、年龄,并能在程序中收到这些数据,怎么解决?.
  • 需要自己研发技术来实现吗? 不需要!Java已经写好了实现程序,我们调用即可!

怎么调用程序

  • 翻看上一篇笔记JDK的组成,编写好的程序需要开发工具javac进行编译,开发工具java进行运行,输送到JVM执行代码
    JVM调用核心类库的程序System.out.println()才能使用打印输出程序输出hello world,

核心类库也叫API,APl(Application Programming Interface:应用程序编程接口)

  • Java写好的程序,咱们程序员可以直接拿来调用。

  • Java为自己写好的程序提供了相应的 程序使用说明书(API文档)。


java 复制代码
import java.util.Scanner;

public class ScannerDemo {
    public static void main(String[] args) {
        // 1、导包:一般不需要我们自己做,idea工具会自动帮助我们 导包的。
        // 2、抄写代码:得到一个键盘扫描器对象(东西)
        Scanner sc=new Scanner(System.in);
        //3、开始 调用sc的功能,来接收用户键盘输入的数据。
        System.out.println("请您输入您的年龄:");
        int age = sc.nextInt();// 执行到这儿,会开始等待用户输入一个整数,直到用户按了回车键,才会拿到数据。
        System.out.println("您的年龄是:" + age);
        System.out.println("请您输入您的名字:");
        String name = sc.next();// 执行到这儿,会开始等待用户输入一个字符串,直到用户按了回车键,才会拿到数据。
        System.out.println(name + "欢迎您进入系统~~");
    }
}
相关推荐
李慕婉学姐6 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·开发语言·数据库
奋进的芋圆7 小时前
Java 延时任务实现方案详解(适用于 Spring Boot 3)
java·spring boot·redis·rabbitmq
sxlishaobin8 小时前
设计模式之桥接模式
java·设计模式·桥接模式
model20058 小时前
alibaba linux3 系统盘网站迁移数据盘
java·服务器·前端
荒诞硬汉8 小时前
JavaBean相关补充
java·开发语言
提笔忘字的帝国8 小时前
【教程】macOS 如何完全卸载 Java 开发环境
java·开发语言·macos
2501_941882488 小时前
从灰度发布到流量切分的互联网工程语法控制与多语言实现实践思路随笔分享
java·开发语言
華勳全栈9 小时前
两天开发完成智能体平台
java·spring·go
alonewolf_999 小时前
Spring MVC重点功能底层源码深度解析
java·spring·mvc
沛沛老爹9 小时前
Java泛型擦除:原理、实践与应对策略
java·开发语言·人工智能·企业开发·发展趋势·技术原理