没有特殊说明,个人全部这个系列的Java13的笔记都是从廖老师那里摘抄、总结过来的,侵删java
兜兜转转到了大四,学过了C,C++,C#,Java,Python,学一门丢一门,到了最后仍是要把Java捡起来。虽然Python好写舒服,可是毕竟不能彻底面向对象,也没有那么多的应用场景,因此,奉劝看到本文的各位,仍是提早学好C#或者Java,话很少说,这个系列,干就完了!数组
println
是print line的缩写,表示输出并换行。所以,若是输出后不想换行,能够用print()
System.out.printf()
,经过使用占位符%?
,printf()
能够把后面的参数格式化成指定格式%%
表示一个%
字符自己。占位符 | 说明 |
---|---|
%d | 格式化输出整数 |
%x | 格式化输出十六进制整数 |
%f | 格式化输出浮点数 |
%e | 格式化输出科学计数法表示的浮点数 |
%s | 格式化字符串 |
java.util.Scanner
,建立Scanner
对象并传入System.in
,Scanner
会自动转换数据类型,所以没必要手动转换if
语句块只有一行语句时,能够省略花括号{},可是尽可能不要省略花括号,这样在版本控制系统的时候会出现问题。if
时正确的方式是按照判断范围从大到小依次判断,或者从小到大判断,不要从中间范围判断。if
时,还要特别注意边界条件,>
和>=
是不一样的。注意判断浮点数相等用==
判断不靠谱,正确的方法是利用差值小于某一个临界值来判断。app
判断引用类型相等ui
值类型的变量
是否相等,能够使用==
运算符。可是,判断引用类型的变量
是否相等,==
表示是否指向同一个对象,却不表示对象的值是否相同。equals()
方法
equals()
时其中一个变量是null
那么会报错NullPointerException
null
的变量放到前面"hello".equals(s)
使用switch
时,注意case
语句并无花括号{}
3d
若是有几个case
语句执行的是同一组语句块,能够在执行语句前多放几个case
版本控制
使用switch
语句时,只要保证有break
,case
的顺序不影响程序逻辑code
使用IDE时,能够自动检查是否漏写了break
语句和default
语句,方法是打开IDE的编译检查。对象
switch表达式blog
->
,若是有多条语句,须要用{}
括起来,不要写break
语句public class Main { public static void main(String[] args) { String fruit = "apple"; switch (fruit) { case "apple" -> System.out.println("Selected apple"); case "pear" -> System.out.println("Selected pear"); case "mango" -> { System.out.println("Selected mango"); System.out.println("Good choice!"); } default -> System.out.println("No fruit selected"); } } }
switch
语法,不但不须要break
,还能够直接返回值。public class Main { public static void main(String[] args) { String fruit = "apple"; int opt = switch (fruit) { case "apple" -> 1; case "pear", "mango" -> 2; default -> 0; }; // 注意赋值语句要以;结束 System.out.println("opt = " + opt); } }
{...}
里,而后,用yield
返回一个值做为switch
语句的返回值。while
循环是一个死循环,可是,Java的int
类型有最大值,达到最大值后,再加1会变成负数,结果,意外退出了while
循环。for (初始条件; 循环检测条件; 循环后更新计数器) { // 执行语句 }
使用for
循环时,千万不要在循环体内修改计数器!字符串
为了保证变量应该把访问范围缩到最小的原则,对于for循环中使用的i
最好在循环体内定义。
for
循环还能够缺乏初始化语句、循环条件和每次循环更新语句
for each循环
public class Main { public static void main(String[] args) { int[] ns = { 1, 4, 9, 16, 25 }; for (int n : ns) {//注意形式,先定义数组元素n,注意这里再也不是计数器n,它对应着数组的每个元素,在循环的主语句中能够直接调用。 System.out.println(n); } } }
for each
循环可以遍历全部“可迭代”的数据类型,包括后面会介绍的List
、Map
等while
循环仍是for
循环,有两个特别的语句能够使用,就是break
语句和continue
语句。break
语句老是跳出最近的一层循环。