Java初学时常见的运行时bug(使用idea编写时在运行前不会报出的错)

一、数字运算相关

  1. 单纯的整数运算会舍去小数

  1. 十进制可以除得净的小数也可能出现精度损失(二进制不一定除得净)

  1. 自增自减在赋值时a++与++a不同

  1. 运算符存在不同优先级、不同结合性(从左到右或从右到左),我们以为的计算顺序可能和实际执行的不一样

二、循环、选择结构相关

  1. if( )后面不加{}的话,默认if( )的下一行语句(到分号截止)为if(true)的执行内容

  1. do...while会先执行一次

  1. switch语句的每个case或者default后面不加break的话,计算机匹配到case之后会一直执行下去,而不是跳出switch

  1. break是跳出整个循环,continue则是跳出当次循环。这两个词默认指离得最近的循环。

三、方法相关

  1. 主方法“public static void main(String[] args)“中的”String[] args”意味着以字符串数组的形式按照以空格为分隔符的形式传参进去,这是唯一可以用String[] args替代String... args(可变长参数列表)的地方

  1. 方法里的传入的形参是实参的副本(基本数据类型的复制值,引用类型的地址复制值),所以有时候看起来改变了的值其实没改

四、数组、list相关

  1. 多维数组的长度指的是最外层数组的长度,此长度必须在声明数组时初始化

  1. 数组的index从0开始,到数组长度-1结束,当心数组越界

  1. 冒泡排序时要注意有没有彻底排序成功,当心只排序了一部分(用sort方法更方便)

  1. 遍历Arraylist时,如果有多次遍历,第一次遍历后对其中的元素进行了增删,下一次遍历时每个元素所对应的序号就可能有所变化

PS:涉及到类与对象、接口、抽象类等的许多问题idea都会在编写程序时直接出现红色下划线,把鼠标移动到红线位置就可以看到相应提示,暂不一一列出其中的可能bug (如果有南方科技大学的同学在看的话,CS109的理论考试备考前强推看一看学长学姐在程序设计互助课堂里整理的复习资【感谢yhgg!!】~重点相当齐全并且和试卷上的考点高度重合,页数不多,讲的也很清楚~)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值