Java 入门两节课学习体会:从基础语法到运算符实战复盘

Java入门两节课学习体会:从基础语法到运算符实战复盘

这段时间上完了Java入门的前两节课,彻底告别了对编程一无所知的状态。从最基础的HelloWorld程序起步,一步步学习了变量定义、数据类型转换、代码块作用域、自增自减运算、逻辑运算、复合赋值、位运算与移位运算等核心知识点。

起初我以为Java基础语法简单、无需深究,但跟着老师敲完所有课堂案例、调试完每一段代码后,才发现入门语法里藏着超多易错点和细节坑。很多看似简单的代码,背后都有固定的运行规则,一旦概念模糊,就会出现编译报错、运行结果失真等问题。

本篇博客是我前两节课的完整学习复盘,整合了课堂全部实战案例,以初学者视角记录知识点、踩坑经历、运算规律和学习感悟,方便后续复习巩固,也给刚入门Java的小伙伴提供参考。

一、初识Java:最简单的代码,最核心的程序骨架

第一节课我们从Java入门经典的 HelloWorld 程序开始,这是我写的第一段完整Java代码。虽然只有短短几行,却让我记住了Java程序的固定结构:类 + main入口方法 + 输出语句

同时我也get到了Java的基础编码规范:严格区分大小写、所有符号必须是英文半角、语句末尾必须加分号、public类名必须和文件名一致。最开始我因为中英文符号混用、单词拼写错误(word写成world、args写成agrs)频频报错,也慢慢养成了严谨编码的习惯。

二、数据类型强制转换:弄懂大小转换与数值溢出

这是我入门后遇到的第一个重难点。Java的数据类型有严格的优先级和取值范围,int大范围类型转byte小范围类型,必须手动强制转换,这是编译器的硬性规则。

通过两个对比案例,我彻底理解了强制转换的两种情况:

1. 数值在范围内:无精度丢失

当int数值在byte的取值范围(-128~127)内时,强制转换不会出错,数值完全保留。

public class Example01 {
    public static void main(String[] args){
        int num = 4;
        byte b = (byte) num;
        System.out.println(b);
    }
}

运行结果:4,结果正常,无任何偏差。

2. 数值超出范围:出现数值溢出(重点踩坑)

这是我本节课最大的收获!原本以为强制转换只是简单截取数字,实际底层是二进制高位截断,只保留低8位,会直接导致数值失真、数据丢失。

public class Example02 {
    public static void main(String[] args){
        byte a;
        int b = 298;
        a=(byte) b;
        System.out.println("b="+b);
        System.out.println("a="+a);
    }
}

运行结果:
b=298、a=42

明明赋值298,最终输出42,彻底打破了我的固有认知。也让我记住:开发中严禁随意将大数值强制转为小类型,极易出现隐藏BUG

三、变量作用域:变量不是全局通用,出块即失效

之前我误以为定义的变量可以在代码任意位置使用,通过Example04案例,我彻底搞懂了Java局部变量的作用域规则,这也是新手高频易错点。

public class Example04 {
    public static void main(String[] args){
        int x =12;
        {
            int y = 96;
            System.out.println("x is "+x);
            System.out.println("y is "+y);
        }
        int y =x;
        System.out.println("x is "+x);
    }
}

学习总结:

  1. 变量仅在当前大括号{}代码块内有效,出块立即销毁;
  2. 内层代码块可以访问外层变量,外层无法访问内层变量;
  3. 不同作用域可以定义同名变量,相互独立、互不冲突。

这个知识点看似简单,却是后续循环、判断代码不报错的基础,非常关键。

四、自增运算与逻辑短路:吃透运算底层规则

第二节课的运算符知识点是重中之重,也是考试和面试的高频考点。尤其是自增自减、短路逻辑运算,语法简单但陷阱极多。

1. 前置、后置自增自减

核心口诀我已经牢牢记住:后置先运算后自增,前置先自增后运算,自减规则完全一致。

简单案例快速理解核心逻辑:

public class Example05 {
    public static void  main(String[] args){
        int a = 1;
        int b = 2;
        int x = a + b++;
        System.out.println("b = "+b);
        System.out.println("x = "+x);
    }
}

运行结果:b=3,x=3。

拆解:b++先取出原值2参与运算,运算结束后b再自增1,完美印证了后置自增的规则。

而进阶案例IncDecTest,整合了前置、后置自增自减的组合运算,让我彻底熟练了复杂场景下的运算逻辑,不再混淆。

2. 短路逻辑运算符&&的特性

这是本节课最惊艳的知识点,我第一次知道Java运算会有“短路”机制,能优化代码执行效率。

public class Example06 {
    public static void main (String[] args){
        int x = 0,y = 0,z = 0;
        boolean a,b;
        a = x > 0 && y++ > 1;
        System.out.println(a);
        System.out.println("y = "+y);
        b = x > 0 && z++ > 1;
        System.out.println(b);
        System.out.println("z = "+z);
    }
}

运行结果y和z始终为0,原因就是:&&短路与,前置条件为false时,后续代码直接不执行。同时我也区分开了 &非短路与&&短路与 的区别,开发中优先使用短路与,效率更高。

五、全套运算符实战:夯实Java运算基础

两节课的最后,我们集中学习了Java所有高频运算符,包含算术运算、浮点运算、布尔逻辑运算、复合赋值、位运算、移位运算,通过多组实战案例,我彻底打通了运算符的知识体系。

1. 整型与浮点算术运算

通过BasicMathOp1案例,我分清了整型和浮点运算的核心区别:int除法直接舍去小数,double浮点运算保留精度,解决了我之前运算结果偏差的疑惑。

public class BasicMathOp1 {
    public static void main (String[] args){
        System.out.println("Integer Arithmetic is:");
        int a = 1 + 3;
        int b = a * 4;
        int c = b / 5;
        int d = c - a;
        int e = -d;

        double da = 1 + 1;
        double db = da * 3;
        double dc = db / 4;
        double dd = dc - a;
        double de = -dd;

        System.out.println("a = " + a);
        System.out.println("b = " + b);
        System.out.println("c = " + c);
        System.out.println("d = " + d);
        System.out.println("e = " + e);

        System.out.println("Floating Point Arithmetic is : ");
        System.out.println("da = " + da);
        System.out.println("db = " + db);
        System.out.println("dc = " + dc);
        System.out.println("dd = " + dd);
        System.out.println("de = " + de);
    }
}

2. 完整布尔逻辑运算

BoolLogicTest案例整合了或、与、异或、非、组合逻辑运算,让我熟记规则:一真或为真、一假与为假、不同异或为真、取反真假互换。

public class BoolLogicTest {
    public static void main(String[] args){
        boolean la = true;
        boolean lb = false;
        boolean lc = la | lb;
        boolean ld = la & lb;
        boolean le = la ^ lb;
        boolean lf = (!la & lb) | (la & !lb);
        boolean lg = !la;

        System.out.println(" la = "+la);
        System.out.println(" lb = "+lb);
        System.out.println(" la | lb = "+lc);
        System.out.println(" la & lb = "+ld);
        System.out.println(" la ^ lb = "+le);
        System.out.println(" (!la & lb) | (la & !lb) = "+lf);
        System.out.println(" !la = "+lg);
    }
}

3. 进阶自增自减综合案例

public class IncDecTest {
    public static void main(String[] args){
        int a1 =1949;
        int b1 =2022;
        int c1;
        int d1;
        int e1;
        int e2;

        c1 = ++b1;
        d1 = a1++;
        c1++;
        e1 = b1--;
        e2 = --b1;

        System.out.println("a1 = "+a1);
        System.out.println("b1 = "+b1);
        System.out.println("c1 = "+c1);
        System.out.println("d1 = "+d1);
        System.out.println("e1 = "+e1);
        System.out.println("e2 = "+e2);
    }
}

4. 复合赋值运算案例

public class QpEqualsTest {
    public static void main(String[] args){
        int a1 = 2;
        int b1 = 4;
        int c1 = 5;

        a1 += 3;
        b1 *= 6;
        c1 += a1 * b1;
        c1 %= 7;

        System.out.println("a1 = "+a1);
        System.out.println("b1 = "+b1);
        System.out.println("c1 = "+c1);
    }
}

5. 位运算与移位运算综合案例

public class TestA  {
    public static void main (String[] args){
        int a = 121;
        int b = 2;
        int c = 0;

        c = a + b;
        System.out.println("c = a + b= "+c);
        c += a;
        System.out.println("c += a = "+c);
        c -= a;
        System.out.println("c -= a = "+c);

        a = 500;
        c = 3;
        c %= a;
        System.out.println("c %= a = "+c);
        c &= a;
        c |= a;
        System.out.println("c |= a = "+c);
        c ^= a;
        System.out.println("c ^= a = "+c);
        c >>= 1;
        System.out.println("c >>= 1 ="+c);
        c <<= 1;
        System.out.println("c <<= 1 ="+c);
    }
}

我了解到位运算底层效率极高,也是Java底层开发的核心运算方式,同时掌握了左移乘2、右移除2的高效数值计算技巧。

六、两节课学习总结与心得体会

从零基础入门到现在吃透基础语法与运算符,短短两节课的学习,让我对Java编程有了全新的认知,也总结出了属于自己的新手学习感悟:

1. Java基础无小事,细节决定成败:大小写、中英文符号、分号、变量作用域,每一个小细节出错都会导致程序报错,编程必须足够严谨细心。

2. 切忌死记硬背,实操才是王道:所有语法规则、运算规律,单纯看书听课看不懂,只有亲手敲代码、看运行结果、分析报错原因,才能真正理解底层逻辑。

3. 区分相似知识点,规避隐形坑点:前置/后置自增、短路/非短路运算、整型/浮点运算、强制类型转换溢出,这些相似知识点极易混淆,必须通过案例对比记忆。

4. 基础是进阶的基石:数据类型、变量、运算符是Java所有代码的基础,后续的分支、循环、数组、方法都是在这些知识点上延伸而来,学好基础才能走得更远。

七、后续学习规划

接下来我会继续深耕Java基础,反复复盘本次所有案例,熟练掌握所有运算符和语法规则,彻底杜绝新手基础报错。同时提前预习分支语句、循环结构,循序渐进、稳步进阶,一步步从编程小白成长为能够独立编写代码的开发者。

posted @ 2026-09-15 00:22  天使用户123  阅读(6)  评论(0)    收藏  举报