JAVA基础语法~炼丹必备保姆级攻略!快收藏!

大佬们好呀~
无人扶我青云志,我自踏雪自山巅!欢迎来到爱因斯晨栏目!
更多文章见:个人主页
文章专栏请看:JAVA专栏
互三必回哦~

在这里插入图片描述

一、Java 语言概述

Java 是一门面向对象的编程语言,具有跨平台、安全、健壮等特性。它由 Sun Microsystems 公司开发,后被 Oracle 收购。Java 的应用场景广泛,涵盖 Web 开发、移动应用开发、企业级应用开发、大数据处理等领域 。

二、开发环境搭建

安装 JDK:JDK(Java Development Kit)是 Java 开发的核心工具包,包含 Java 运行时环境(JRE)、Java 编译器(javac)和 Java 工具等。你可以从 Oracle 官方网站下载对应操作系统的 JDK 安装包,然后按照安装向导进行安装。

配置环境变量:安装完成后,需要配置系统环境变量。在 Windows 系统中,需设置JAVA_HOME、PATH和CLASSPATH。JAVA_HOME指向 JDK 的安装目录,PATH中添加 JDK 的bin目录路径,CLASSPATH指定类文件的搜索路径 。在 Linux 和 macOS 系统中,同样需要进行类似的环境变量配置。

**推荐:**我们一般使用IDEA作为编译器。下载网址

三、数据类型

3.1 基本数据类型

整数类型

  • byte:占用 1 个字节,取值范围是 - 128 到 127 。常用于存储小整数,如网络通信中的字节数据。

  • short:占用 2 个字节,取值范围是 - 32768 到 32767 。适用于节省内存且数值范围不大的场景。

  • int:占用 4 个字节,是最常用的整数类型,取值范围大,一般整数运算都可使用。

  • long:占用 8 个字节,用于存储非常大的整数,如时间戳(从 1970 年 1 月 1 日 00:00:00 到现在的毫秒数)。定义long类型变量时,在数字后加L或l,如long num = 1234567890123L; 。

浮点类型

  • float:占用 4 个字节,单精度浮点数,用于表示小数,但精度有限。定义时需在数字后加f或F,如float pi = 3.14f; 。

  • double:占用 8 个字节,双精度浮点数,精度比float更高,是常用的小数类型,如double e = 2.71828; 。

字符类型:char占用 2 个字节,用于表示单个字符,用单引号括起来,如char ch = ‘A’; 。它本质是一个 16 位的无符号整数,对应 Unicode 码表中的一个字符。

布尔类型:boolean只有true和false两个值,用于逻辑判断,如boolean isDone = false; 。

   
  public class test1 {
    public static void main(String[] args) {
        String name = "爱因斯晨";
        int age = 18;
        String gender = "女";
        double height = 165.0;
        boolean flag = true;
        System.out.println(name);
        Sys tem.out.println(age);
        System.out.println(gender);
        System.out.println(height);
        System.out.println(flag);
}

爱因斯晨
18165.0
true

注:拼接字符串与变量时应加上加号:

System.out.println("姓名:"+name);

如果应让打印更好看可以加上’/t’:

System.out.println("姓名:"+'/t'+name);

3.2 引用数据类型

:是对对象的抽象描述,包含属性和方法。例如String类用于处理字符串,String str = “Hello Java”; 。

接口:定义了一组方法签名,但没有方法体,类实现接口后需实现接口中的方法,常用于实现多继承和定义规范。

数组:是相同类型数据的有序集合,可以是基本数据类型数组,也可以是引用数据类型数组。

  • 数组的声明与初始化

  • 静态初始化:声明数组的同时直接指定元素值,如int[] numbers = {1, 2, 3, 4, 5}; 。

  • 动态初始化:先声明数组,再使用new关键字分配内存空间并指定长度,之后为元素赋值。如int[] ages = new int[5]; ages[0] = 20; 。

  • 访问数组元素:通过索引访问,索引从 0 开始。如int first = numbers[0]; 。

  • 多维数组:以二维数组为例,可看作数组的数组。如int[][] matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; ,访问元素时用两个索引,如int element = matrix[1][2]; 。

  • 数组的常用操作

  • 获取长度:通过length属性获取,如int len = numbers.length; 。

  • 遍历数组:通常用for循环,Java 5.0 引入的增强型for循环(foreach 循环)更方便。例如:

// 普通for循环遍历
int[] numbers = {1, 2, 3, 4, 5};
for (int i = 0; i < numbers.length; i++) {
    System.out.println(numbers[i]);
}
// foreach循环遍历
for (int num : numbers) {
    System.out.println(num);
}
  • 数组复制:可使用System.arraycopy()方法或Arrays.copyOf()方法。例如:
int[] source = {1, 2, 3, 4, 5};
int[] target = new int[5];
System.arraycopy(source, 0, target, 0, source.length);
int[] newArray = Arrays.copyOf(source, source.length);
  • 数组排序:使用Arrays.sort()方法。对于基本数据类型数组,如int[] numbers = {5, 3, 1, 4, 2}; Arrays.sort(numbers); ;对于引用数据类型数组,数组元素的类需实现Comparable接口 。

四、变量和常量

4.1 变量

变量是用于存储数据的容器,使用前需先声明。声明变量要指定类型和名称,如int age; 。声明后可赋值,如age = 25; ,也可声明时直接赋值int age = 25; 。变量有作用域概念,方法内声明的是局部变量,作用域限于该方法;类中方法外声明的是成员变量,作用域是整个类 。

4.2 常量

常量是在程序运行中值不能改变的量,使用final关键字声明。例如final double PI = 3.14159; ,常量名一般用大写字母,多个单词用下划线连接,声明时必须赋值,且后续不能修改其值 。

五、运算符

5.1 算术运算符

+:加法运算,如int sum = 3 + 5; 。

-:减法运算,int diff = 8 - 3; 。

*:乘法运算,int product = 4 * 6; 。

/:除法运算,整数相除结果为整数,小数部分舍去,如int quotient = 10 / 3; // 结果为3 ;若有浮点数参与运算,结果为浮点数,如double result = 10.0 / 3; // 结果为3.3333333333333335 。

%:取模运算,取余数,如int remainder = 10 % 3; // 结果为1 。

++:自增运算符,有前置和后置形式。前置++i先加 1 再返回值,后置i++先返回值再加 1 。如int i = 5; int j = ++i; // i和j都为6 ,int i = 5; int j = i++; // j为5,i为6 。

--:自减运算符,与自增运算符类似,有前置和后置形式 。

5.2 比较运算符

==:判断两个值是否相等,int a = 5; int b = 5; boolean isEqual = a == b; // 结果为true 。

!=:判断两个值是否不相等,int a = 5; int b = 3; boolean isNotEqual = a!= b; // 结果为true 。

>:大于,int a = 5; int b = 3; boolean isGreater = a > b; // 结果为true 。

<:小于,int a = 3; int b = 5; boolean isLess = a < b; // 结果为true 。

>=:大于等于,int a = 5; int b = 5; boolean isGreaterOrEqual = a >= b; // 结果为true 。

<=:小于等于,int a = 3; int b = 5; boolean isLessOrEqual = a <= b; // 结果为true 。

5.3 逻辑运算符

&&:逻辑与,两个条件都为true时结果才为true,具有短路特性,即第一个条件为false时不判断第二个条件。如boolean result = (3 > 2) && (5 > 4); // 结果为true 。

||:逻辑或,只要有一个条件为true结果就为true,也有短路特性。如boolean result = (3 > 2) || (5 < 4); // 结果为true

!:逻辑非,将true变为false,false变为true。如boolean result =!(3 > 2); // 结果为false 。

5.4 赋值运算符

=:基本赋值运算符,将右边的值赋给左边变量,如int a = 5; 。

+=:加等于,int a = 3; a += 2; // 相当于a = a + 2,a的值为5 。

-=:减等于,int a = 5; a -= 2; // 相当于a = a - 2,a的值为3 。

*=:乘等于,int a = 3; a *= 2; // 相当于a = a * 2,a的值为6 。

/=:除等于,int a = 6; a /= 2; // 相当于a = a / 2,a的值为3 。

%=:取模等于,int a = 7; a %= 3; // 相当于a = a % 3,a的值为1 。

六、流程控制语句

6.1 条件语句

if-else:根据条件判断执行不同代码块。可以有多个else if分支,例如:

int score = 85;
if (score >= 90) {
    System.out.println("优秀");
} else if (score >= 80) {
    System.out.println("良好");
} else if (score >= 60) {
    System.out.println("及格");
} else {
    System.out.println("不及格");
}

switch:根据表达式的值选择执行多个分支中的一个。表达式可以是byte、short、char、int、String(Java 7 及以上)、枚举类型。每个case分支后需用break语句跳出,否则会继续执行下一个case,default分支处理其他未匹配情况,例如:

int day = 3;
switch (day) {
    case 1:
        System.out.println("星期一");
        break;
    case 2:
        System.out.println("星期二");
        break;
    case 3:
        System.out.println("星期三");
        break;
    default:
        System.out.println("其他");
        break;
}

进阶写法:

case 1 ->{
    System.out.println("一");
}
case 2 ->{
    System.out.println("二");
}
case 3 ->{
    System.out.println("三");
}
case 4 ->{
    System.out.println("四");
}

max版:

case 1 -> System.out.println("一");
case 2 -> System.out.println("二");
case 3 -> System.out.println("三");
case 4 -> System.out.println("四");

注:如果大括号中只有一行代码的话,大括号可以省略。

这个新特性只可以JDK12及以上版本使用!

6.2 循环语句

for:常用于已知循环次数的场景。语法结构为for(初始化表达式; 循环条件; 更新表达式) { 循环体 } 。例如:

for (int i = 1; i <= 5; i++) {
    System.out.println(i);
}

使用for循环时,要正确设置初始化表达式、循环条件和更新表达式,否则可能导致死循环或循环次数错误。

while:先判断条件,条件为true时执行循环体。例如:

int i = 1;
while (i <= 5) {
    System.out.println(i);
    i++;
}

使用while循环时,务必在循环体中改变循环条件,否则会陷入死循环。

do-while:先执行一次循环体,再判断条件,条件为true时继续执行循环体。例如:

int i = 1;
do {
    System.out.println(i);
    i++;
} while (i <= 5);

do-while循环的特点是循环体至少执行一次,适用于先执行操作再判断条件的场景。

6.3 跳转语句

break:用于跳出当前循环或switch语句。在循环中使用可提前结束循环,例如:

for (int i = 1; i <= 10; i++) {
    if (i == 5) {
        break;
    }
    System.out.println(i);
}

在多层循环中,可通过标签指定跳出的循环。例如:

outer:
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        if (i == 1 && j == 1) {
            break outer;
        }
        System.out.println("i: " + i + ", j: " + j);
    }
}

continue:用于跳过本次循环的剩余代码,直接开始下一次循环。例如:

for (int i = 1; i <= 5; i++) {
    if (i == 3) {
        continue;
    }
    System.out.println(i);
}

在多层循环中,continue也可与标签配合使用,跳过指定循环的某次迭代。

return:用于从方法中返回值,并结束方法执行。如果方法返回类型为void,return可省略;若有返回值,必须用return返回相应类型的值。例如:

public int add(int a, int b) {
    return a + b;
}

七、总结

次循环。例如:

for (int i = 1; i <= 5; i++) {
    if (i == 3) {
        continue;
    }
    System.out.println(i);
}

在多层循环中,continue也可与标签配合使用,跳过指定循环的某次迭代。

return:用于从方法中返回值,并结束方法执行。如果方法返回类型为void,return可省略;若有返回值,必须用return返回相应类型的值。例如:

public int add(int a, int b) {
    return a + b;
}

七、总结

通过本教程,你对 Java 基础语法有了全面了解,包括数据类型、变量与常量、运算符、流程控制语句等。这些知识是进一步学习 Java 编程的基石,后续你可以深入学习 Java 的面向对象编程、异常处理、I/O 操作、多线程等高级特性,不断提升编程能力。
在这里插入图片描述

评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值