cmd 运行Java的 helloworld

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一下出现错误

cmd 运行Java的 helloworld_第1张图片

出现了错误:需要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 

你可能感兴趣的:(Java)