看netty的零拷贝资料时发现代码片段中有assert关键字,于是查了一下
在运行程序时加上 -ea 关键字才会生效
Random r = new Random();
int rr = r.nextInt(2);
boolean flag = rr < 1;
System.out.println(flag);assert flag:"失败";//在有-ea参数的情况下flag为false时 会抛出java.lang.AssertionError: 失败
Exception in thread "main" java.lang.AssertionError: 失败
at com.tool.test.main(test.java:115)
所以assert仅仅是调试程序时作为断言使用(如果运行时没有加-ea参数则该关键字无效),不能用来做逻辑流程控制