相较于之前学习过的Python而言,Java属于一种强类型的编程语言。也就是说,对于定义每个变量时,都要明确相应的类型,才可能使用。
如果是从弱类型语言转换过来,可能刚开始会不太适应,但这种强类型的定义,初期显得非常麻烦和不必要,但在后期使用上就会非常方便。
由于每个变量的类型是明确的,所以在方法之间传递数据时,能够一目了然看到数据类型的变化,以及自己期待的效果。后期调试代码时,也能更快的定位出现错误的位置。
除此之外,Java还有很多“坑”,对于初学者来说踩过之后,及时总结归纳,是一种很好的学习方式。
1. 字符 vs 字符串
Python当中对于这两者的区分并不大,单引号或者双引号都可以使用。
但在Java当中,这部分有严格的区分。单引号来表示字符,双引号来表示字符串。且单引号当中必须有且只有一个字符。
public class Play {
public static void main(String[] args) {
System.out.println(""); // 字符串可以没有字符
System.out.println(''); // 会报错,因为没有字符
System.out.println(' ');// 空格也是一个字符
}
}
2.关键字vs核心类
Java语言中存在已经定义好的关键字,通常为小写,在IDEA等专业的编程软件中,会以特殊颜色标记出来。
而平时在输出语句中使用的System,或者记录用户录入信息的Scanner则是核心类库当中的类。
这两者不要混淆。
3.变量定义
变量要先定义后使用。
变量定义后通常会直接给一个初始值,但这个步骤也可以分开进行。
public class Play {
public static void main(String[] args) {
int a;
a = 1;
}
}
同一类型的变量,可以在开头声明类型一次,然后用逗号分割,一次全都定义出来。定义之后,可以直接初始化值,也可以后面初始化。
public class Play {
public static void main(String[] args) {
int a, b = 2; // a只是定义,b定义后初始化
a = 1;// a初始化
}
}
4.do while 遗漏
循环语句中,除了for, while 之外,还有一类do while类型。
不论while条件判断如何,do当中的内容都会执行一次。并且在while条件后要加上分号。
循环过程中计算变量变化时,一定要足够耐仔细,每次循环更新一次,然后看清楚判断条件是否成立。
public class Play {
public static void main(String[] args) {
int result = 10;
int i = 5;
do {
result *= result; // 注意:每次循环都会变化
i--;
} while (i > 3);// 判断条件决定循环次数
System.out.println(result);
}
}
5.死循环格式
上面说了循环,这里再补充一个死循环的格式,最常用的格式就是while(true)类型
public class Play {
public static void main(String[] args) {
for (; ; ){ // for类型死循环
System.out.println(1);
}
while(true){ // while类型死循环
System.out.println(1);
}
while(){ // while类型错误死循环
System.out.println(1);
}
}
}
总结
以上是第一周学习过程中,总结一部分常见错误。
Java学习的过程中,会有很多之前没碰到的问题,但学习的过程越困难,使用的过程就会相对简单和方便。
只要保证对每个错误背后的原理理解透彻,就不用担心不会取得进步。