作为Java学习的第一步,环境搭建是敲开编程大门的钥匙,而变量、数据类型与表达式则是Java语法的基石。本文结合基础学习要点,从环境搭建实操到变量数据类型的核心用法,搭配实例讲解,帮助新手快速掌握这部分核心内容,夯实JavaSE基础。

一、Java环境搭建:从安装到第一个HelloWorld

     Java的跨平台性依赖于JDK的安装与环境变量配置,这是运行Java程序的前提,步骤清晰且有明确的校验标准。

 

1. 核心概念区分

 

首先要明确三个核心概念的关系,避免混淆:

 

- JVM:Java虚拟机,屏蔽操作系统差异,是跨平台的核心。

- JRE:Java运行环境, JRE = JVM + 解释器 ,仅能运行已编译的字节码文件。

- JDK:Java开发工具包, JDK = 编译器 + JRE + 类库 + 工具 ,开发Java程序必须安装JDK。

 

2. 环境变量配置(Windows)

 

配置3个核心环境变量,路径需对应自己的JDK安装目录:

 

1. JAVA_HOME:JDK根目录,例: C:\Program Files\Java\jdk1.7.0_75 

2. Path:添加JDK的bin目录,例: %JAVA_HOME%\bin (通过%引用JAVA_HOME,方便后续修改)

3. classPath:配置类路径,值为 . ,代表在当前路径查找类文件。

 

校验方式:按下 Win+R 打开cmd,输入 javac 和 java ,若出现指令帮助信息,说明配置成功。

 

3. 第一个Java程序:HelloWorld

 

编写步骤

 

1. 新建文本文件,修改后缀为 .java ,文件名与公开类名一致(例: HelloWorld.java )。

2. 编写代码,遵循Java编码规范(层级缩进、一行一句代码):

 

java

// 单行注释:第一个Java程序

public class HelloWorld {

    // 主函数:程序入口,一个类中只能有一个

    public static void main(String[] args) {

        // 控制台打印并换行

        System.out.println("HelloWorld! This is my first Java program.");

        // 控制台打印不换行

        System.out.print("Java SE start!");

    }

}

 

 

编译与运行

 

1. 编译:在cmd中进入文件所在目录,输入 javac HelloWorld.java ,生成 HelloWorld.class 字节码文件。

2. 运行:输入 java HelloWorld ,无需加后缀,控制台输出对应内容。

 

运行结果

 

plaintext

HelloWorld! This is my first Java program.

Java SE start!

 

 

核心结论

 

- Java是先编译后解释的语言, .java 源文件经编译生成跨平台的 .class 字节码文件,实现“一次编译,多次运行”。

- 一个源文件中最多有一个公开类(public修饰),且公开类名必须与源文件名一致;可定义多个普通类,编译后每个类生成独立的 .class 文件。

 

二、变量与数据类型:Java的基础存储单元

 

Java是强类型语言,每个变量必须指定数据类型,数据仅能存储在对应类型的变量中,变量由数据类型、变量名、数据三部分组成。

 

1. 变量的定义方式

 

变量有3种定义形式,实际开发中推荐“声明同时赋值”,简化代码:

 

java

public class VariableDefine {

    public static void main(String[] args) {

        // 方式1:先声明,后赋值

        int a;

        a = 10;

        // 方式2:声明同时赋值(推荐)

        String str = "Java基础";

        // 方式3:同时定义多个同类型变量

        byte b1, b2 = 5, b3;

        System.out.println(a); // 输出:10

        System.out.println(str); // 输出:Java基础

        System.out.println(b2); // 输出:5

    }

}

 

 

命名规范:变量名遵循驼峰命名法(首字母小写,后续单词首字母大写),如 studentScore ;仅能由数字、字母、_、$组成,不能以数字开头,不能使用Java关键字。

 

2. 8种基本数据类型(重点)

 

Java的基本数据类型分为4类,共8种,包含整数、浮点、字符、布尔,各自有固定的字节数和取值范围,是面试高频考点。

 

类型分类 关键字 字节数 核心说明 

整数类型 byte 1B 取值-128~127 

整数类型 short 2B 取值-32768~32767 

整数类型 int 4B 默认整数类型,取值-2147483648~2147483647 

整数类型 long 8B 字面值后必须加L/l,例: long num = 100L  

浮点类型 float 4B 字面值后必须加F/f,例: float f = 3.14F  

浮点类型 double 8B 默认浮点类型,可加D/d或不加,支持科学计数法 

字符类型 char 2B 单引号包裹单个字符,支持Unicode,例: char c = '\u0041' (等价于'A') 

布尔类型 boolean 1B 仅能取true/false,与0/1无关(区别于C语言) 

 

经典面试题:int和float都是4B,哪个存储范围大?

答案:float更大,因为float支持科学计数法存储近似值,可表示更大的数值范围。

 

实例:基本数据类型使用

 

java

public class BasicType {

    public static void main(String[] args) {

        // 整数类型

        byte b = 127;

        long l = 9999999999L;

        // 浮点类型

        float f = 2.14E3F; // 科学计数法,等价于2140.0

        double d = 3.1415926;

        // 字符类型

        char c1 = '中'; // Java中一个汉字是一个字符

        char c2 = 65; // 以ASCII码存储,65对应'A'

        // 布尔类型

        boolean flag = true;

        System.out.println(f); // 输出:2140.0

        System.out.println(c2); // 输出:A

        System.out.println(flag); // 输出:true

    }

}

 

 

3. 引用数据类型(入门常用)

 

除基本数据类型外,其余均为引用数据类型,入门阶段最常用的是String(字符串),用双引号包裹一个或多个字符,与char类型(单引号)区分。

 

java

public class ReferenceType {

    public static void main(String[] args) {

        String name = "Java学习者";

        String info = "环境搭建+变量基础";

        // 字符串拼接:+号连接

        System.out.println(name + ":" + info); // 输出:Java学习者:环境搭建+变量基础

    }

}

 

 

三、类型转换与表达式:数据运算的核心规则

 

Java中不同数据类型的变量运算时,会遵循自动类型提升规则;若需将大类型转为小类型,需使用强制类型转换,这是编写运算代码的关键,稍不注意就会出现编译报错或数据丢失。

 

1. 自动类型提升

 

小数据类型可直接赋值给大数据类型,提升方向为:

 byte -> short -> int -> long -> float -> double 

 char -> int -> long -> float -> double 

注意:boolean类型不参与任何类型转换。

 

java

public class AutoCast {

    public static void main(String[] args) {

        int a = 100;

        long b = a; // int自动提升为long,编译通过

        float f = b; // long自动提升为float,编译通过

        System.out.println(f); // 输出:100.0

    }

}

 

 

2. 强制类型转换

 

场景:大数据类型赋值给小数据类型,需显式声明转换类型,语法: 目标类型 变量名 = (目标类型) 源变量; 

注意:强制转换可能导致数据截断,需谨慎使用。

 

实例:强制类型转换的三种结果

 

java

public class ForceCast {

    public static void main(String[] args) {

        // 结果1:浮点转整数,截断小数部分

        double d1 = 12.9;

        int i1 = (int) d1;

        System.out.println(i1); // 输出:12(仅保留整数部分)

        

        // 结果2:整数在小类型取值范围内,转换完整

        int i2 = 15;

        byte b1 = (byte) i2;

        System.out.println(b1); // 输出:15

        

        // 结果3:整数超出小类型取值范围,数据截断

        int i3 = 257;

        byte b2 = (byte) i3;

        System.out.println(b2); // 输出:1(byte仅8位,超出部分截断)

    }

}

 

 

3. 表达式运算规则

 

由变量、运算符、字面值组成的表达式,运算结果的类型遵循固定规则(优先级:double > float > long > int):

 

1. 有double参与,结果为double;

2. 无double有float,结果为float;

3. 无浮点型有long,结果为long;

4. 其余情况,结果均为int(即使是byte/short/char运算)。

 

经典错误实例与解决

 

java

public class Expression {

    public static void main(String[] args) {

        byte b = 1;

        // b = b + 1; // 编译报错:b+1结果为int,不能直接赋值给byte

        b += 1; // 编译通过:+=等复合赋值运算符无自动类型提升

        System.out.println(b); // 输出:2

    }

}

 

 

四、常用运算符:Java运算的基础工具

 

运算符是表达式的核心,入门阶段需掌握算数、赋值、自增自减、逻辑、三元运算符,其中自增自减和短路逻辑运算符是重点和难点。

 

1. 算数运算符:+的双重含义

 

 + - * / % 为基础算数运算符,其中 + 若有一侧为String类型,代表字符串拼接,而非加法运算。

 

java

public class ArithmeticOp {

    public static void main(String[] args) {

        int a = 10, b = 3;

        System.out.println(a + b); // 加法,输出:13

        System.out.println(a + "拼接" + b); // 字符串拼接,输出:10拼接3

        System.out.println(a % b); // 取余,输出:1

    }

}

 

 

2. 自增自减运算符:++/--的前后区别

 

 a++ (后自增)和 ++a (前自增)均实现变量自增1,但表达式结果不同:

 

-  a++ :先使用变量原始值,再自增;

-  ++a :先自增,再使用新值。

 

java

public class SelfOp {

    public static void main(String[] args) {

        int a = 1;

        int c1 = a++;

        System.out.println(c1 + "," + a); // 输出:1,2(先使用后自增)

        

        int a2 = 1;

        int c2 = ++a2;

        System.out.println(c2 + "," + a2); // 输出:2,2(先自增后使用)

    }

}

 

 

3. 逻辑运算符:短路与&& vs 非短路与&

 

 &&(逻辑与) 和 &(与) 的相同点:两边都为true,结果才为true;

不同点: && 是短路运算符,若左侧为false,右侧表达式直接跳过,不执行; & 是非短路运算符,无论左侧结果如何,右侧都执行。

 

java

public class LogicOp {

    public static void main(String[] args) {

        int a = 10;

        // &&短路:左侧false,右侧a++不执行,a仍为10

        if (false && (a++) > 0) {}

        System.out.println(a); // 输出:10

        

        // &非短路:左侧false,右侧a++仍执行,a变为11

        if (false & (a++) > 0) {}

        System.out.println(a); // 输出:11

    }

}

 

 

4. 三元运算符:简化简单的if-else

 

语法: 布尔表达式 ? 表达式1 : 表达式2 

规则:布尔表达式为true,执行表达式1;为false,执行表达式2,可简化简单的条件判断。

 

java

public class TernaryOp {

    public static void main(String[] args) {

        int score = 85;

        // 判断成绩是否及格

        String result = score >= 60 ? "及格" : "不及格";

        System.out.println(result); // 输出:及格

        

        // 求两个数的最大值

        int num1 = 20, num2 = 30;

        int max = num1 > num2 ? num1 : num2;

        System.out.println(max); // 输出:30

    }

}

 

 

五、Scanner输入:实现程序与用户的交互

 

入门阶段,使用 java.util.Scanner 类可实现控制台输入,获取用户的整数、小数、字符串、字符等数据,是编写交互式程序的基础,使用分两步:创建扫描仪对象 → 调用输入方法。

 

实例:Scanner获取各类输入

 

java

import java.util.Scanner; // 导入Scanner类

public class ScannerTest {

    public static void main(String[] args) {

        // 步骤1:创建扫描仪对象

        Scanner sc = new Scanner(System.in);

        

        // 步骤2:调用方法获取输入

        System.out.print("请输入一个整数:");

        int num = sc.nextInt();

        

        System.out.print("请输入一个小数:");

        double d = sc.nextDouble();

        

        System.out.print("请输入一个字符串:");

        String str = sc.next();

        

        System.out.print("请输入一个字符:");

        char c = sc.next().charAt(0); // 获取字符串的第一个字符

        

        // 输出输入的内容

        System.out.println("整数:" + num + ",小数:" + d + ",字符串:" + str + ",字符:" + c);

    }

}

 

 

运行过程与结果

 

plaintext

请输入一个整数:10

请输入一个小数:3.14

请输入一个字符串:Java

请输入一个字符:J

整数:10,小数:3.14,字符串:Java,字符:J

 

 

六、学习总结与核心结论

 

1. Java环境搭建的核心是JDK安装与环境变量配置, javac 和 java 指令是校验配置的关键,Java的跨平台性由字节码文件(.class) 和JVM实现。

2. Java是强类型语言,变量必须指定类型,8种基本数据类型是基础,long和float的字面值必须加后缀,boolean仅能取true/false。

3. 类型转换分自动和强制,自动提升遵循“小转大”,强制转换可能导致数据截断,boolean不参与任何转换。

4. 表达式运算结果的类型由“最高优先级类型”决定,byte/short/char运算结果默认是int,复合赋值运算符(+=/-=等)无自动类型提升。

5. 常用运算符中, + 的字符串拼接、 ++/-- 的前后区别、 && 的短路特性、三元运算符的条件判断,是入门阶段必须掌握的重点。

6. Scanner类是实现控制台交互的基础,使用前需导入类,调用对应方法获取不同类型的输入。         Java基础的学习核心是理解概念 + 多敲代码,本文的所有实例建议手动敲写并运行,在实践中掌握语法规则,为后续的分支、循环、面向对象等内容打下坚实基础。

        本文为JavaSE基础入门篇,后续将继续讲解分支结构、循环结构等核心知识点,关注不迷路,一起从0到1学Java!

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐