【JAVA基础指南(一)】快速掌握基础语法

🎬 博主名称: 超级苦力怕

🔥 个人专栏: 《Java 成长录》 《AI 工具使用目录》

🚀 每一次思考都是突破的前奏,每一次复盘都是精进的开始!


前言

本文主要内容:从 0 认识"变量、数据类型、输入、运算符、类型转换"等 Java 基础语法。

适合人群:刚配置好 JDK、能运行 main 方法,但对语法还不熟的同学。

阅读收益:看完你能独立写出简单的输入输出与条件判断代码,并看懂常见表达式。

基本语法目录

    • 前言
    • [1. 注释](#1. 注释)
      • [1.1 概述](#1.1 概述)
      • [1.2 示例](#1.2 示例)
    • [2. 变量](#2. 变量)
      • [2.1 简介](#2.1 简介)
      • [2.2 定义格式](#2.2 定义格式)
      • [2.3 注意事项](#2.3 注意事项)
    • [3. 数据类型](#3. 数据类型)
      • [3.1 概述](#3.1 概述)
      • [3.2 基本数据类型](#3.2 基本数据类型)
      • [3.3 示例代码](#3.3 示例代码)
      • [3.4 扩充:新手先掌握哪些数据类型](#3.4 扩充:新手先掌握哪些数据类型)
    • [4. 标识符](#4. 标识符)
      • [4.1 硬性要求](#4.1 硬性要求)
      • [4.2 软件要求](#4.2 软件要求)
    • [5. 键盘录入](#5. 键盘录入)
      • [5.1 概述](#5.1 概述)
      • [5.2 实现步骤](#5.2 实现步骤)
      • [5.3 代码示例](#5.3 代码示例)
      • [5.4 运行示例(控制台)](#5.4 运行示例(控制台))
    • [6. 运算符(把常用的放在一起)](#6. 运算符(把常用的放在一起))
      • [6.1 算术运算符(+ - * / %)](#6.1 算术运算符(+ - * / %))
      • [6.2 自增自减(++ / --)](#6.2 自增自减(++ / --))
      • [6.3 赋值与复合赋值(=、+=、-=、*=、/=、%=)](#6.3 赋值与复合赋值(=、+=、-=、*=、/=、%=))
      • [6.4 关系运算符(比较运算符)](#6.4 关系运算符(比较运算符))
      • [6.5 逻辑运算符(& | ! && ||)](#6.5 逻辑运算符(& | ! && ||))
      • [6.6 三元运算符(条件 ? 值1 : 值2)](#6.6 三元运算符(条件 ? 值1 : 值2))
      • [6.7 `+` 的两种特殊用法(字符串拼接 / 字符运算)](#6.7 + 的两种特殊用法(字符串拼接 / 字符运算))
    • [7. 类型转换(自动 / 强制)](#7. 类型转换(自动 / 强制))
      • [7.1 自动类型提升(隐式转换)](#7.1 自动类型提升(隐式转换))
      • [7.2 强制类型转换](#7.2 强制类型转换)
    • 结语

1. 注释

1.1 概述

注释是对代码的解释和说明文字,用于代码的解释,实际并不运行。

1.2 示例

Java 中分为三种注释,具体如下

  • 单行注释 //
  • 多行注释 /* */
  • 文档注释 /** */

示例:

java 复制代码
public class PoemPrinter {
    
    /**
     * 
     * 这是文档注释
     */
    public static void main(String[] args) {
        // 这是单行注释:打印诗歌标题
        System.out.println("=== 《静夜思》 ===");
        
        /*
         * 这是多行注释:
         * 以下代码打印诗歌的正文内容
         * 每行一句,共四句
         */
        System.out.println("床前明月光,");      // 第一句
        System.out.println("疑是地上霜。");      // 第二句
        System.out.println("举头望明月,");      // 第三句
        System.out.println("低头思故乡。");      // 第四句
        
        // 打印结束分隔符
        System.out.println("==================");
    }
   
}

展示效果

shell 复制代码
=== 《静夜思》 ===
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
==================

2. 变量

2.1 简介

变量是在程序中临时存储数据的容器,这个容器中只含一个值。

2.2 定义格式

数据类型变量名 = 数据值。

java 复制代码
//赋值,这里以int类型为例,后续会讲解其他类型。
int a = 16;
System.out.println(a);//16

2.3 注意事项

  1. 变量名不能重复
  2. 在一条语句中,可以定义多个变量。(这种方式影响代码阅读,少用)
  3. 使用变量前需要赋值

3. 数据类型

3.1 概述

数据类型分为 基本数据类型引用数据类型,这里主要讲解基本数据类型

3.2 基本数据类型

数据类型 关键字 内存占用 取值范围
整数 byte 1 负的 2 的 7 次方 ~ 2 的 7 次方-1 (-128~127)
short 2 负的 2 的 15 次方 ~ 2 的 15 次方-1 (-32768~32767)
int 4 负的 2 的 31 次方 ~ 2 的 31 次方-1
long 8 负的 2 的 63 次方 ~ 2 的 63 次方-1
浮点数 float 4 1.401298 e-45 ~ 3.402823 e+38
double 8 4.9000000 e-324 ~ 1.797693 e+308
字符 char 2 0-65535
布尔 boolean 1 true, false

说明

  • e+38 表示是乘以 10 的 38 次方,同样,e-45 表示乘以 10 的负 45 次方

  • 在 Java 中整数默认是 int 类型,浮点数默认是 double 类型
    重点

  • byte 类型的取值范围: -128~127

  • 整数类型和小数类型的取值范围大小关系: double > float > long > int > short > byte

3.3 示例代码

java 复制代码
public class VariableDemo3{
    public static void main(String[] args){
        //1.定义byte类型的变量
        //数据类型 变量名 = 数据值;
        byte a = 10;
        System.out.println(a);

        //2.定义short类型的变量
        short b = 20;
        System.out.println(b);

        //3.定义int类型的变量
        int c = 30;
        System.out.println(c);

        //4.定义long类型的变量
        long d = 123456789123456789L;
        System.out.println(d);

        //5.定义float类型的变量
        float e = 10.1F;
        System.out.println(e);

        //6.定义double类型的变量
        double f = 20.3;
        System.out.println(f);

        //7.定义char类型的变量
        char g = 'a';
        System.out.println(g);

        //8.定义boolean类型的变量
        boolean h = true;
        System.out.println(h);

    }
}

注意

  • 如果要定义一个整数类型的变量,不知道选择哪种数据类型了,默认使用 int。
  • 如果要定义一个小数类型的变量,不知道选择哪种数据类型了,默认使用 double。
  • 如果要定义一个 long 类型的变量,在数据值的后面需要加上 L 后缀。(大小写都可以,建议大写)
  • 如果要定义一个 float 类型的变量,在数据值的后面需要加上 F 后缀。(大小写都可以)

3.4 扩充:新手先掌握哪些数据类型

如果先前并没有任何语言的基础,建议先把下面这些用熟:

  1. int:最常用的整数类型(计数、年龄、数量)
  2. double:最常用的小数类型(价格、分数)
  3. char:单个字符(了解即可,后面会在字符串里经常见到)
  4. boolean:条件判断的核心(true/false)

补充String 严格来说是引用类型,但入门阶段输出文本、拼接内容几乎都离不开它,可以当成"先会用"的重点。

4. 标识符

在写代码中,默认遵守驼峰命名法,这样会使得代码简单易懂、便于理解。

4.1 硬性要求

必须这么遵守以下原则,否则代码会报错

  • 必须由数字、字母、下划线_、美元符号$组成
  • 数字不能开头
  • 不能是关键字
  • 区分大小写的

4.2 软件要求

如果不这么做,代码不会报错,但回使得代码可读性较差。

小驼峰命名法

适用于变量名和方法名

  • 如果是一个单词,那么全部小写,比如:name
  • 如果是多个单词,那么从第二个单词开始,首字母大写,比如:firstName、maxAge

大驼峰命名法

适用于类名、接口名

  • 如果是一个单词,那么首字母大写,比如:Student
  • 如果是多个单词,那么每个单词首字母都大写,比如:StudentService、UserInfo

补充:阿里巴巴命名规范细节

  1. 尽量不要用拼音。但是一些国际通用的拼音可视为英文单词。
  2. 正确:alibaba、hangzhou、nanjing
  3. 错误:jiage、dazhe
  4. 平时在给变量名、方法名、类名起名字的时候,不要使用下划线或美元符号。
  5. 错误:_name
  6. 正确:name

5. 键盘录入

5.1 概述

键盘录入的功能在 JDK 中,不需要我们实现,只需要直接使用 Scanner 这个类就可以了。

5.2 实现步骤

  1. 创建对象:告诉计算机,开始使用 Scanner 这个类
  2. 接收数据:实际写代码

5.3 代码示例

java 复制代码
//导包,其实就是先找到Scanner这个类在哪
import java.util.Scanner;
public class ScannerDemo1{
  public static void main(String[] args){
    //2.创建对象,其实就是申明一下,我准备开始用Scanner这个类了。
    Scanner sc = new Scanner(System.in);
    //3.接收数据
    //当程序运行之后,我们在键盘输入的数据就会被变量i给接收了
    System.out.println("请输入一个数字");
    int i = sc.nextInt();
    System.out.println(i);
  }
}

5.4 运行示例(控制台)

当你运行程序后,控制台会等待输入:

shell 复制代码
请输入一个数字

此时你输入 12 并回车:

shell 复制代码
请输入一个数字
12
12

说明:第一行 12 是你在控制台输入的内容;第二行 12 是程序 System.out.println(i) 打印出来的。

6. 运算符(把常用的放在一起)

6.1 算术运算符(+ - * / %)

算术运算符就是加减乘除和取余。

  • /:整数相除只能得到整数(小数部分直接丢掉)
  • %:取余,得到"除完剩下多少"

补充:小数在计算机里用二进制存储,很多十进制小数转成二进制会"除不尽",所以会出现轻微误差。

java 复制代码
public class ArithmeticDemo {
    public static void main(String[] args) {
        int a = 10;
        int b = 3;

        System.out.println(a + b);  // 13
        System.out.println(a - b);  // 7
        System.out.println(a * b);  // 30
        System.out.println(a / b);  // 3
        System.out.println(a % b);  // 1

        System.out.println(10.0 / 3.0); // 3.3333333333333335
    }
}

6.2 自增自减(++ / --)

++:让变量值 +1。--:让变量值 -1。

快速记忆

++i:先加再用

i++:先用再加

java 复制代码
public class IncrementDecrementDemo {
    public static void main(String[] args) {
        int x = 5;
        int y = ++x; // x=6, y=6

        int m = 5;
        int n = m++; // m=6, n=5

        int count = 1;
        count = count++; // count 还是 1(新手常踩坑)
    }
}

6.3 赋值与复合赋值(=、+=、-=、*=、/=、%=)

复合赋值就是"先运算,再把结果赋回左边"。

java 复制代码
public class AssignmentOperatorsDemo {
    public static void main(String[] args) {
        int a = 10;
        a += 3; // 等价于 a = a + 3
        a *= 2; // 等价于 a = a * 2

        short s = 5;
        s += 2; // 可以:隐含了类型转换
    }
}

6.4 关系运算符(比较运算符)

关系运算符用来比较大小或是否相等,结果一定是 boolean(true/false)。

符号 含义
== 是否相等
!= 是否不相等
> 是否大于
>= 是否大于等于
< 是否小于
<= 是否小于等于

注意== 是比较,= 是赋值,新手最容易写错。

6.5 逻辑运算符(& | ! && ||)

  • &:两边都为 true 才是 true
  • |:只要有一边为 true 就是 true
  • !:取反

更常用的是短路运算符:

  • &&:左边为 false,右边就不算了
  • ||:左边为 true,右边就不算了
java 复制代码
public class LogicalOperatorDemo {
    public static void main(String[] args) {
        System.out.println(true && false); // false
        System.out.println(true || false); // true
        System.out.println(!true); // false
    }
}

6.6 三元运算符(条件 ? 值1 : 值2)

三元运算符就是"写在一行里的 if-else"。

注意:表达式会产生一个结果,通常要赋值给变量或直接打印。

java 复制代码
public class TernaryOperatorDemo {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int max = a > b ? a : b;
        System.out.println(max); // 20
    }
}

6.7 + 的两种特殊用法(字符串拼接 / 字符运算)

1) 字符串拼接 :只要有一边是字符串,+ 就是"拼接"。

java 复制代码
public class StringAddDemo {
    public static void main(String[] args) {
        System.out.println(10 + "年Java"); // 10年Java
        System.out.println(2 + 3 + 5 + "元"); // 10元(先算 2+3+5)
        System.out.println("总和:" + 2 + 3 + 5); // 总和:235(从左到右拼接)
        System.out.println("总分:" + (85 + 90)); // 总分:175(括号先算)
    }
}

2) 字符参与运算char 参与 + 时,会先当成数字(编码值)再计算。

java 复制代码
public class CharPlusDemo {
    public static void main(String[] args) {
        char c = 'a';
        System.out.println(c + 0); // 97
    }
}

7. 类型转换(自动 / 强制)

7.1 自动类型提升(隐式转换)

自动类型提升就是:把取值范围小的类型,自动提升为取值范围大的类型,再参与运算。

  • 如果出现 byte/short/char 参与运算,通常会先提升为 int
  • 不同类型一起算,会向"更大的类型"提升

取值范围从小到大:byte short int long float double

java 复制代码
public class ImplicitConversionDemo {
    public static void main(String[] args) {
        byte b1 = 5;
        byte b2 = 2;
        int sum = b1 + b2; // byte 运算结果会提升为 int
        System.out.println(sum); // 7

        int a = 10;
        double d = 3.5;
        System.out.println(a + d); // 13.5
    }
}

7.2 强制类型转换

当你要把"大范围类型"塞进"小范围类型"时,必须强制转换。

java 复制代码
public class CastDemo {
    public static void main(String[] args) {
        double a = 12.3;
        int b = (int) a;
        System.out.println(b); // 12
    }
}

注意:强转可能导致精度丢失(小数变整数)或溢出(数值超过范围)。

结语

回顾一下:本文先讲了变量与数据类型,再讲输入(Scanner),最后把常用运算符和类型转换集中整理,方便你写出第一批"能跑起来"的 Java 小程序。

  • 如果本文对你有帮助:欢迎点赞、收藏,让更多正在学 Java 的同学看到。
  • 遇到问题或有不同理解:可以在评论区留言,一起讨论、互相学习。
  • 想系统看更多内容:可以关注专栏《Java 成长录》,一起把基础打牢。
相关推荐
陈逸轩*^_^*7 小时前
微服务常见八股(分布式seat, 网关,服务注册与发现、负载均衡、断路器、API 网关、分布式配置中心)
java·微服务
爱笑的眼睛117 小时前
MLflow Tracking API:超越实验记录,构建可复现的机器学习工作流
java·人工智能·python·ai
好学且牛逼的马7 小时前
Apache Commons DbUtils
java·设计模式·apache
小白学大数据7 小时前
Python 爬虫如何分析并模拟 JS 动态请求
开发语言·javascript·爬虫·python
秦少游在淮海7 小时前
网络缓冲区 · 通过读写偏移量维护数据区间的高效“零拷贝” Buffer 设计
linux·开发语言·网络·tcp协议·muduo·网络缓冲区
qs70167 小时前
c直接调用FFmpeg命令无法执行问题
c语言·开发语言·ffmpeg
zoujiahui_20187 小时前
python中模型加速训练accelerate包的用法
开发语言·python
码界奇点7 小时前
基于Golang的分布式综合资产管理系统设计与实现
开发语言·分布式·golang·毕业设计·go语言·源代码管理
满天星83035777 小时前
【Linux】信号(下)
android·linux·运维·服务器·开发语言·性能优化