java开发入门教程_java开发自学

Java (33) 2023-03-24 20:36

大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第1张

1. Java开发工具介绍

虽然JDK提供了开发Java程序时所用到的一些工具,例如javac,java,javap,jconsole等等

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第2张

但是JDK并没有提供编写Java程序(代码)的工具,因此想要在编写Java程序之前,还需要了解Java开发工具
我这里把Java开发工具分成两类,分别是文本编辑器和IDE

  • 文本编辑器
  • 记事本
  • Visual Studio Code[1]
  • Sublime Text[2]

  • IDE(Integrated Development Environment)
  • IntelliJ IDEA[3]
  • Eclipse

Visual Studio Code和Sublime Text都是高级的文本编辑器,而且是跨平台的(Windows,macOS,Linux),建议初学Java的朋友可以使用它们来开发Java程序,因为相比IDE而言更加轻量级,对初学者更加友好

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第3张

IntelliJ IDEA和Eclipse都是IDE,目前公司开发Java项目基本普遍都会使用IntelliJ IDEA,因此建议有经验的开发员使用,因为可以大大提高开发效率。如果你还在上大学而且刚好学的计算机专业,那么大概率你的老师教你使用的Eclipse

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第4张

2. Java入门程序开发

在学习任何一门编程语言编写的第一个程序通常都称为HelloWorld,HelloWorld通常是用来了解某种编程语言的程序开发步骤,如果你能够编写并且运行HelloWorld,那么意味着已经迈入编程的大门。

本次我们使用比较原始的开发方式:也就是基于记事本+Windows终端+JDK提供的开发工具(javac和java)来开发人生第一个Java程序,这种方式虽然开发效率比较低,但是能够让初学者了解Java程序的开发和运行流程。

  1. 新建源文件
    需要注意的是源文件的扩展名必须是.java,例如HelloWorld.java

首先在硬盘的任意路径下(例如D:\code)新建文本文档

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第5张

然后将文件名改成HelloWorld,此时的文件名后缀是.txt,因为文本文档的后缀就是.txt

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第6张

但是Windows11 默认是隐藏了已知文件扩展名,因此需要勾选文件扩展名

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第7张

勾选文件扩展名后,HelloWorld显示为HelloWorld.txt

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第8张

此时需要将HelloWorld.txt改成HelloWorld.java

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第9张

重命名时系统会提示如果改变文件扩展名,可能导致文件不可以,确实要更改吗?点击是即可

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第10张

HelloWorld.java源文件创建成功

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第11张

2.编辑源文件
首先使用记事本打开HelloWorld.java

然后在源文件中输入以下内容

public class HelloWorld{
    public static void main(String[]args){
    System.out.println("Hello World ");
    }
}

在输入的过程中如果觉得字体太小,可以按住Ctrl键,然后向上滚动鼠标放大字体
在编写代码时需要进行适当的缩进
在编写代码时遇到了符号,比如说圆括号(()),方括号([]),大括号({})都需要成对编写,然后再往里面编写内容,而且这些符号都是英文的,因为Java是美国人发明的,不支持中文。

默认字体大小

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第12张

调整后的字体大小

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第13张

输入完成后按Ctrl+s保存源文件

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第14张

3.编译源文件
首先使用Windows+r打开运行窗口

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第15张

运行窗口

然后输入cmd后回车打开终端

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第16张

此时终端的路径默认是C:\Users\liuguanglei
liuguanglei是用户名,不同计算机的用户名是不同的

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第17张

然后依次输入D:和cd code切换到HelloWorld.java所在的目录D:\code
cd 命令就是用于切换目录,不过只能在当前目录切换,使用方式就是cd+空格+目录即可

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第18张

然后使用javac HelloWorld.java 编译源文件,如果没有语法错误编译成功之后会生成HelloWorld.class文件

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第19张

4.解释执行字节码文件
在终端上使用java HelloWorld 解释执行HelloWorld.class字节码文件

3. Java入门程序详解

public class HelloWorld{
    public static void main(String[]args){
    System.out.println("Hello World ");
    }
} 
  1. public是权限最大的访问权限修饰符,称为公共的,后期在学习面向对象的时候还会学习private,默认的,protected,这里只需要记住如果类名使用public 修饰,那么public修饰的类名必须和文件名保持一致,在一个源文件中只能有一个类被public修饰
  2. 在一个源文件中可以定义多个class,编译器在编译后会生成和class数量一致的字节码文件
  3. class用于定义类,例如class Welcome{} 表示定义一个类,类名是Welcome,{}表示类的开始范围和结束范围,Java是面向对象的编程语言,类是Java程序的基本单元
  4. public static void main(String[]args){} 格式是固定的,表示main方法,main方法是Java程序的入口,Java程序是从main方法的第一行开始执行的,该方法被JVM调用,如果你的程序想要独立运行,那么必须要包有main方法
  5. System.out.println("HelloWorld "); 的作用就是在终端上打印输出字符串HelloWorld 然后并换行,如果想输出其他内容只需要替换HelloWorld即可,;表示语句的结束,Java中的每条语句都需要使用;结束,否则编译错误

4. Java入门程序常见错误

4.1 编译错误和运行时错误

错误分为编译错误和运行时错误两类

因为Java程序是先编译,再解释运行的,因此先出现编译错误,然后再出现解释错误。

即使程序编译通过(语法没有问题),也不一定表示你的程序完全没有问题,因为可能还有运行时错误。

编译时错误就是使用javac编译Java源文件遇到的语法错误

运行时错误就是使用java解释执行字节码文件遇到的错误

如果你修改了源文件的代码,那么一定要重新编译,否则你修改的内容不会生效。

4.2 Java入门程序常见错误和解决方案

4.2.1 编译时错误:找不到符号的问题

错误代码

public class HelloWorld{
    public static void main(string[]args){
    System.out.println("Hello World ");
    }
} 
java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第20张

错误现象

解决方案:将string改成String,因为Java是严格区分大小写

4.2.2 编译时错误:编码GBK的不可映射字符

错误代码

public class HelloWorld{
    public static void main(String[]args){
    System.out.println("Hello World ");
    }
} 
java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第21张

错误现象

解决方案:将中文的分号;替换成英文的分号;即可,因为Java不认识中文符号

大家需要注意的是Java代码中各种符号必须是英文,例如{},(),[],;都是英文的

4.2.3 运行时错误:乱码问题

示例代码

public class HelloWorld{
    public static void main(String[]args){
    System.out.println("哈哈哈");
    }
} 
java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第22张

错误现象

乱码的原因就是编码和解码的不是同一个编码

Java源文件的默认编码是UTF-8,而终端或者称为命令提示符的编码是GBK,这两个编码不一致导致的乱码

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第23张

乱码解决的第一种方式就是将文件另存为的时候设置编码为ANSI

先点击文件->另存为

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第24张

然后编码选择ANSI然后保存

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第25张

然后再确认替换

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第26张

HelloWorld.java源文件的编码修改成功

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第27张

最后再重新开启一个终端,然后编译和运行HelloWorld

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第28张

乱码解决的第二种方式在编译时指定文件编码

javac -encoding utf-8 HelloWorld.java
java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第29张

在编译时指定文件编码

4.2.4 运行时错误:找不到或者无法加载主类

主类表示有main方法的类,找不到或者无法加载主类的原因就是当前路径下没有指定的字节码文件

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第30张

解决办法:先编译生成字节码文件,再运行程序

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第31张

4.2.5 运行时错误:找不到main方法的问题

错误代码

public class HelloWorld{
    public static void mian(String[]args){
    System.out.println("哈哈哈");
    }
} 
java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第32张

错误现象

解决方案就是将mian改成main即可

Java程序想要独立运行必须要包含固定格式的main方法

5. Java跨平台的原理

Java跨平台的原理是Java程序不是直接运行在操作系统之上的,而是运行在JRE(Java Runtime Environment)之上,JRE屏蔽了底层操作系统的差异性,从而实现Java程序的跨平台,但是JRE不是跨平台的。

当我们在Oracle官网下载JDK时发现需要根据自己所使用操作系统选择对应的JDK版本

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第33张

Java8提供了公共的JRE下载

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第34张

由于JDK包含了JRE,Java11以后不在提供公共的JRE下载

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第35张

图解Java跨平台的原理

java开发入门教程_java开发自学_https://bianchenghao6.com/blog_Java_第36张


  1. Visual Studio Code: https://code.visualstudio.com/
  2. Sublime Text: http://www.sublimetext.com/
  3. IntelliJ IDEA: https://www.jetbrains.com/idea/

发表回复