1.Java保存的文件名必须与类名一致;
2.如果文件中只有一个类,文件名必须与类名一致;
3.一个Java文件中只能有一个public类;
4.如果文件中不止一个类,文件名必须与public类名一致;
5.如果文件中不止一个类,而且没有public类,文件名可与任一类名一致。
第一天学习java,按照书中打下了第一个Java的Helloword:
文件名为 Helloword.java
public class Helloword
{
public static void main(String args[])
{
System.out.println("Welcome to Java!");
}
}
编译javac一下出现错误
出现了错误:需要class, interface或enum
之后百度了一下,是因为在写txt文件的时候,出现了所谓的BOM(byte-order mark),然后使用Windows自带的记事本将文件保存为UTF-8编码的时候,记事本会自动在文件开头插入BOM(代码生成txt文件并且将编码格式设置为utf-8他会自动在第一个字符前面产生一个被称作bom的标识。 用来标记这个txt文档是utf-8语言。)
其实就是,原本默认的txt编码格式应该是ANSI,然而在创建Helloword.java的编码格式成为了UTF-8,导致文本中存在BOM,java源代码中不可以有BOM,javac无法识别,会出现乱码 。
(txt文本的另存为中右下角可以选择编码格式)
之后删除原来的Helloword.java后,重新新建一个,就没有出现了这种问题,由此写下这篇博客记录下这个学习问题。
//
BOM(byte-order mark),即字节顺序标记,它是插入到以UTF-8、UTF16或UTF-32编码Unicode文件开头的特殊标记,用来识别Unicode文件的编码类型。对于UTF-8来说,BOM并不是必须的,因为BOM用来标记多字节编码文件的编码类型和字节顺序(big-endian或little-endian)。在绝大多数编辑器中都看不到BOM字符,因为它们能理解Unicode,去掉了读取器看不到的题头信息。若要查看某个Unicode文件是否以BOM开头,可以使用十六进制编辑器。下表列出了不同编码所对应的BOM。
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码,由Ken Thompson于1992年创建。UTF-8用1到6个字节编码Unicode字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
参考资料查询来源:https://zhidao.baidu.com/question/812758169879129972.html
https://zhidao.baidu.com/question/1514344679698482740.html
https://blog.csdn.net/white_idiot/article/details/54670243
https://bbs.csdn.net/topics/390110799
https://blog.csdn.net/a66731167/article/details/81286537