今日学习内容
今天专注 Java 运算符学习。深入理解算术运算符,像 + 可做数值加法,也能拼接字符串(若有字符串参与); - 用于减法运算, * 是乘法、 / 是除法(整数相除会舍弃小数部分,如 5 / 2 结果为 2 ), % 取余(计算两数相除余数,正负号随被除数 )。
关系运算符方面, > 、 >= 、 < 、 <= 用于比较数值大小, == 判断基本数据类型值是否相等(比较引用数据类型时,比较的是对象地址,要区分 equals 方法 ), != 则是判断不等,这些运算符返回布尔值,支撑条件判断 。
逻辑运算符里, && (短路与,左边为 false 时右边不执行 )、 || (短路或,左边为 true 时右边不执行 )、 ! (逻辑非,取反 ),掌握它们在条件判断、循环控制里的应用,比如结合 if 语句构建复杂逻辑 。还有位运算符等,不过今天主要围绕基础常用运算符实操,写了几个小 Demo,用算术运算符做数值计算,搭配关系、逻辑运算符实现简单的成绩判断、数值比较逻辑 。
明日学习计划
计划用 Java 运算符开展稍复杂的程序练习,比如模拟一个简易计算器,支持加减乘除运算,还要处理除数为 0 的异常情况(结合后续异常知识预习,先用简单逻辑判断规避 )。同时,深入研究运算符优先级,整理不同运算符混合运算时的执行顺序表,通过编写包含多种运算符的表达式,验证优先级规则,避免因优先级不清导致代码逻辑错误 。另外,尝试将运算符和流程控制语句(如 for 、 while 循环 )结合,实现像遍历数组并根据元素值进行运算、判断等功能,强化知识融合运用 。
遇到的问题及解决
在使用 == 比较字符串时,发现结果和预期不符,比如 String s1 = "abc"; String s2 = new String("abc"); , s1 == s2 返回 false 。查阅资料了解到,字符串字面量存储在字符串常量池, new String 会在堆内存新建对象, == 比较引用数据类型是比地址,所以不等,而 equals 方法才是比较字符串内容。之后遇到字符串比较,就用 equals 方法替代 == ,解决了这类判断问题,也加深了对 Java 中字符串存储和比较的理解 。