编程之巅:第一站
前言
一名优秀的程序员要学会使用便捷的开发工具,古话说了:“工欲善其事,必先利其器”,今天就和大家一起从了解开发工具的历史,然后进入JAVA语言的历史,了解JDK的作用和组成,再到各种环境配置以及应用安装,最后再到入门第一句HelloWorld。
🏠个人主页:小清华童鞋
🧑个人简介:大家好,我是东哥,一个想要与大家共同进步的男人😉😉
目前状况🎉:开学即将大三,目标就是练习半年内找到一份实习工作👏👏
💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,我亲爱的大佬😘
正文开始 ----------
开发工具的介绍
eclipse历史
使用别人的软件,总得认识一下开发工具的发展历史,不然别人问你,答不上来多尴尬,注:我觉得了解一下诞生日期,和最新版本号即可
Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。
2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。
2007年6月,稳定版3.3发布;
2008年6月发布代号为Ganymede的3.4版;
2009年6月发布代号为Galileo的3.5版;
2010年6月发布代号为Helios的3.6版;
2011年6月发布代号为Indigo的3.7版;
2012年6月发布代号为Juno的4.2版;
2013年6月发布代号为Kepler的4.3版;
2014年6月发布代号为Luna的4.4版;
2015年6月项目发布代号为Mars的4.5版。
IntelliJ IDEA历史
2001年1月发布IntelliJ IDEA 1.0版本,同年七月发布2.0,接下来基本每年发布一个版本(2003除外),当然每年对各个版本都是一些升级。3.0版本之后,IDEA屡获大奖,其中又以2003年的赢得的“Jolt Productivity Award”,“JavaWorld Editors’s Choice Award”为标志,从而奠定了IDEA在IDE中的地位。
版本为2018.2.2,2018年8月发布,更新版本为18.2.2。IDEA的宗旨:“Develop with pleasure”。
目前最新版本IntelliJ IDEA 2022.1.2 在调试器中添加了交互式提示和内联监视,改进了对 Java 17 的支持,并引入了对 Git 暂存的支持以及各种其他功能。 [2]
IntelliJ IDEA分为Ultimate Edition 旗舰版和Community Edition 社区版本,旗舰版可以免费试用30天,社区版本免费使用,但是功能上对比旗舰版有所缩减。
java语言发展历史
既然选择吃这碗饭,了解一下诞生日期不过分吧。
-
1995年Sun公司推出Java语言
-
1996年发布Java 1.0版本
-
1997年发布Java 1.1版本
-
1998年发布Java 1.2版本
-
2000年发布Java 1.3版本
-
2002年发布Java 1.4版本
-
2004年发布Java 5.0版本
2004年9月30日,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE 1.5更名为Java SE 5.0(内部版本号1.5.0)。
-
2005年发布Java 6.0版本
2005年6月,在Java One大会上,Sun公司发布了Java SE 6。此时,Java的各种版本已经更名,已取消其中的数字2,如J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。
-
2009年Oracle甲骨文公司收购Sun公司
-
2011年发布Java 7.0版本
-
2014年发布Java 8.0版本
-
2017年9月发布Java 9.0版本
-
2018年3月发布Java 10.0版本
-
2018年9月发布Java 11.0版本
-
2019年3月发布Java 12.0版本
-
2019年9月发布Java 13.0版本
-
2020年3月发布Java 14.0版本
-
。。。
Java广告(没恰饭)
-
Java语言是简单的:
Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
-
Java语言是面向对象的:
Java语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
-
Java语言是分布式的:
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
-
Java语言是健壮的:
Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
-
Java语言是安全的:
Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
-
Java语言是体系结构中立的:
Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
-
Java语言是可移植的:
这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
-
Java语言是解释型的:
如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
-
Java是高性能的:
与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
-
Java语言是多线程的:
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)的构造子类将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
-
Java语言是动态的:
Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
总结:java语言就是牛
java语言跨平台的原理
官方参考文档地址:https://docs.oracle.com/javase/8/
Java虚拟机
-
JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在
JVM
之上。 -
跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系统上,这个特性称为Java语言的跨平台特性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM运行在操作系统上。
如图所示,Java的虚拟机本身不具备跨平台功能的,每个操作系统下都有不同版本的虚拟机。
JRE 和 JDK
- JRE (Java Runtime Environment) :是Java程序的运行时环境,包含
JVM
和运行时所需要的核心类库
。 - JDK (Java Development Kit):是Java程序开发工具包,包含
JRE
和开发人员使用的工具。
我们想要运行一个已有的Java程序,那么只需安装JRE
即可。
我们想要开发一个全新的Java程序,那么必须安装JDK
。
整个JDK、JRE、JVM的关系可以参照官方图解:
说明:
三者关系: JDK > JRE > JVM
补充:
java程序流程示意声明
Java开发环境安装配置
JDK安装(必须)
再安装JDK之前,必须介绍一下为什么Java开发环境必须安装这个JDK,上面提到了Java开发离不开JDK、JRE和JVM,因此我们要正式开发、使用Java,就必须提前准备好这些工具。而上面介绍了,JDK中包括JRE和JVM以及一些依赖的核心类库,因此,我们只需要安装配置好JDK即可。注:如果认真看了上面一大串理论,请当作没看见这句话
这里学习使用的话,我比较推荐JDK1.8版本
JDK安装步骤说明
提供下载的JDK安装包通常是一个以.exe结尾的可执行指令安装包,我们需要双击文件进行安装。
友情提示:
安装路径中,不要包含中文、空格以及其他特殊字符。
JDK安装目录介绍
打开刚才安装JDK的目录。
目录说明如下:
目录名称 | 说明 |
---|---|
bin | 该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。 |
include | 该路径下存放了一些平台特定的头文件。 |
jre | JDK包含的Jre运行环境文件。 |
lib | 该路径下存放了JDK工具的一些补充JAR包。 |
javafx-src.zip | java提供的一个图形化界面工具javafx源码包。 |
src.zip | jdk相关的源码包。 |
配置JDK环境变量(必须)
1、右键【我的电脑】,选择【属性】
2、选择【高级系统设置】
3、选择【环境变量(N)】
4、选择【系统变量(S)】下的新建
5、新建系统环境变量
6、配置系统Path路径
其中,%JAVA_HOME%读取的就是刚才配置的系统环境变量中JAVA_HOME的路径,后面紧跟着\bin,就是定位到了对应的JDK安装的bin目录下,因此,我们在任意位置都能找到bin目录下的相关java指令了。
6、效果验证
安装完JDK,并完JDK环境变量的配置后,我们可以在任意路径下进行测试,验证是否正确。
Eclipse安装(可选)
🔔Eclipse安装使用
下载
下载地址: https://www.eclipse.org/downloads/
官方提供了.exe和.zip两种下载安装方式。.exe的安装包下载后,需要通过安装器进一步安装;.zip的压缩包下载后解压配置即可。
压缩包选择:
压缩包平台选择:
安装
这里,我们选择以压缩包方式进行eclipse的安装配置,这种方式安装比较简单,直接解压压缩包指定位置即可。
进入到解压目录:
其中的eclipse.exe就是eclipse工具启动指令,双击即可使用,当然为了方便后续使用,可以右键【发送到桌面快捷方式】。
基本使用
直接双击eclipse.exe指令,打开eclipse开发工具。
JDK配置
(1)找到上面菜单选项“Window”,选择下面的“Preferences”,然后鼠标左键点击进入设置界面。
(2)进入设置界面之后,找到“Java”选项,然后展开,选择“Installed JRES”,可以看到右侧已有的JDK配置。
(3)需要配置大家本地的JDK版本,然后在右侧点击“Add”进行添加,然后点击“Next”下一步。
(4)勾选刚配置的本地版本,然后再点击“Apply”按钮进行配置应用
(5)点击应用之后,需要大家选择编译版本,找到“Java”下面的“Compiler”选项,进行编辑版本配置。然后点击“Apply and Close”按钮,配置完成。
编码设置
(1)修改工作空间默认编码
(2)修改文件编码
接着,我们就可以在当前页面创建项目、创类、方法、编写代码,进行开发测试了。
IDEA安装(可选)
🔔IDEA的下载和安装
下载
下载地址为:https://www.jetbrains.com/idea
安装
- 到下载的资料文件夹中,双击安装包。
- 点击next,准备安装
-
点击Browse修改安装路径。
修改完毕点击next
-
勾选64-bit launcher。表示在桌面新建一个64位的快捷方式。
其他的不要勾选。
点击next。
- 点击Install,准备安装。
-
等进度条读取完毕之后,会有最终界面提示。
点击finish即可。
-
第一次启动会询问,是否导入一些设置。
选择第二个不导入,保持默认设置,再点击OK。
-
选择背景主题
左边是黑色背景。右边是白色背景。
这个可以根据自己的喜好来选择。
选择完毕点击右下角的next
-
在本界面让我们购买idea。
因为我们是学习阶段,所以可以使用免费使用30天。
点击第一排第二个。Evaluate for free
- 点击蓝色的Evaluate,就可以开始免费试用30天了。
-
当看到这个界面,就表示idea已经成功安装完毕
可以点击右上角关闭。
我目前学习使用的版本
目前我使用的开发工具版本为,JDK1.8,DEA2019.3.3 x64,eclipse2020 neo,我推荐开发工具还是选择IDEA较好,口说无凭,拿事实说话
这几个常用集成开发工具市场占比大概如下:
针对于Java语言开发来说,国内目前使用较多的集成开发工具就是Eclipse和IntelliJ IDEA。其中,在一些早期项目和中小型公司还保留使用Eclipse较多;对于大型公司,新项目来说,使用IntelliJ IDEA的越来越多。
注:当然小孩子才做选择,成年人都要。
从入门到入土
1.3.1 HelloWorld案例
程序开发步骤说明
JDK安装完毕,可以开发我们第一个Java程序了。
Java程序开发三步骤:编写、编译、运行。
编写Java源程序
-
在
D:\atguigu\day01_code
目录下新建文本文件,完整的文件名修改为HelloWorld.java
,其中文件名为HelloWorld
,后缀名必须为.java
。 -
用记事本或notepad++等文本编辑器打开
-
在文件中键入文本并保存,代码如下:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
友情提示:
每个字母和符号必须与示例代码一模一样。
第一个HelloWord
源程序就编写完成了,但是这个文件是程序员编写的,JVM是看不懂的,也就不能运行,因此我们必须将编写好的Java源文件
编译成JVM可以看懂的字节码文件
,也就是.class
文件。
编译Java源文件
在DOS命令行中,进入D:\atguigu\javaee\JavaSE20190624\code\day01_code
目录,使用javac
命令进行编译。
命令:
javac Java源文件名.后缀名
举例:
javac HelloWorld.java
编译成功后,命令行没有任何提示。打开D:\atguigu\javaee\JavaSE20190624\code\day01_code
目录,发现产生了一个新的文件 HelloWorld.class
,该文件就是编译后的文件,是Java的可运行文件,称为字节码文件,有了字节码文件,就可以运行程序了。
Java源文件的编译工具
javac.exe
运行Java程序
在DOS命令行中,进入Java源文件的目录,使用java
命令进行运行。
命令:
java 类名字
举例:
java HelloWorld
友情提示:
java HelloWord 不要写 不要写 不要写 .class
Java字节码文件的运行工具:java.exe
1.8.2 HelloWorld案例常见错误
- 单词拼写问题
- 正确:class 错误:Class
- 正确:String 错误:string
- 正确:System 错误:system
- 正确:main 错误:mian
- Java语言是一门严格区分大小写的语言
- 标点符号使用问题
- 不能用中文符号,英文半角的标点符号(正确)
- 括号问题,成对出现
1.8.3 Java程序的结构与格式
结构:
类{
方法{
语句;
}
}
格式:
(1)每一级缩进一个Tab键
(2){}的左半部分在行尾,右半部分单独一行,与和它成对的"{"的行首对齐
1.8.4 Java程序的入口
Java程序的入口是main方法
public static void main(String[] args){
}
1.8.5 编写Java程序时应该注意的问题
1、字符编码问题
当cmd命令行窗口的字符编码与.java源文件的字符编码不一致,如何解决?
解决方案一:
在Notepad++等编辑器中,修改源文件的字符编码
解决方案二:
在使用javac命令式,可以指定源文件的字符编码
javac -encoding utf-8 Review01.java
2、大小写问题
(1)源文件名:
不区分大小写,我们建议大家还是区分
(2)字节码文件名与类名
区分大小写
(3)代码中
区分大小写
3、源文件名与类名一致问题?
(1)源文件名是否必须与类名一致?public呢?
如果这个类不是public,那么源文件名可以和类名不一致。
如果这个类是public,那么要求源文件名必须与类名一致。
我们建议大家,不管是否是public,都与源文件名保持一致,而且一个源文件尽量只写一个类,目的是为了好维护。
(2)一个源文件中是否可以有多个类?public呢?
一个源文件中可以有多个类,编译后会生成多个.class字节码文件。
但是一个源文件只能有一个public的类。
(3)main必须在public的类中吗?
不是。
但是后面写代码时,基本上main习惯上都在public类中。