学习Java过程中遇到的错误
学习Java过程中遇到的错误
-
HelloWorld.java:1: 错误: 编码GBK的不可映射字符
解决方法一:在编译源程序的时候,添加命令:-encoding utf-8
如:javac -encoding utf-8 HelloWorld.java
解决方法2: 用记事本打开,字符集另存为ANSI格式
ANSI:美国国家标准协会,系统预设的标准文字储存格式。简体中文编码GB2312,实际上它是ANSI的一个代码页936 UTF-8:通用字集转换格式,这是为传输而设计的编码,2进制,以8位为单元对Unicode进行编码,如果使用只能在同类位元组内支持8个位元的重要资料一类的旧式传输媒体,可选择UTF-8格式
-
需要class,interface或enum
通常都是class单词错误
-
找不到符号
通常都是单词错误或没有这个单词(没声明)
-
在第n行需要”;”
加上英文分号
-
非法字符:’\ufflb’
标点符号需要改成英文版
-
找不到main方法
main错写成了mian
-
可能尚未初始化xxx
声明变量时没有给值
-
不兼容的类型:从int转换到byte可能会有损失
在Java程序中直接写出的整数数值叫直接量/字面值/常量,该数据默认为int类型,超过127不能用byte声明
-
过大的整数
直接量过大超过了int的范围,若希望表达更大的直接量则需要在直接量的后面加上l或者L表示long类型的直接量,并把数据类型改为long类型
-
编译OK,运行发生ArithmeticException算数异常
0和0.0不能做除数
-
编译OK,运行产生ArrayIndexOutOfBoundsException数组下标越界异常
数组没有那个下标
-
推博客时不报错,GitHub有小红叉
小红叉右键可以查看错误原因,如二维数组时不能连写两个大括号
-
编译OK,运行发生NullPointerException空指针异常
当某个引用类型变量为null时无法对对象实施访问(因为它没有指向任何对象),此时,如果通过引用访问成员变量或调用方法,会产生NullPointerException空指针异常,如: Point p = null; p.point();
-
编译OK,运行发生ClassCastException类型转换异常
若目标类型不是引用变量指向的对象类型,则编译通过运行发生类型转换异常。
-
编译OK,运行发生NumberFormatException数字格式异常
Interger it2 = new Interger(“20a”);
-
编译OK,运行时发生StringIndexOutOfBoundsException字符串下标越界异常
字符串没那么长,charAt()获取不到
-
Collection c1 = new Collection();
标红报错接口不能创建对象: 接口不能new接口的对象,但是可以new实现类的对象 -
ConcurrentModificationException并发修改异常
集合中删除元素