Java学习-第一部分
1.1.1 JAVA概述
Java版本
原网址(https://www.oracle.com/java/technologies/java-se-support-roadmap.html)
Oracle 将仅将某些版本指定为长期支持 (LTS) 版本。Java SE 7、8、11 和 17 是 LTS 版本。Oracle 打算每两年发布一次未来的 LTS 版本,这意味着下一个计划的 LTS 版本是 2023 年 9 月的 Java 21。
目前实际开发中用的最多的是Java8。
Oracle Java SE 产品支持规划*† | ||||
---|---|---|---|---|
发布版本 | 发布日期 | 首先支持直到 | 延长支持直到 | 持续支持 |
7 (长期) | 2011 年 7 月 | 2019 年 7 月 | 2022 年 7 月**** | 不定 |
8 (LTS)** | 2014 年 3 月 | 2022 年 3 月 | 2030 年 12 月* | 不定 |
9(非 LTS) | 2017 年 9 月 | 2018 年 3 月 | 无法使用 | 不定 |
10(非 LTS) | 2018 年 3 月 | 2018 年 9 月 | 无法使用 | 不定 |
11 (LTS) | 2018 年 9 月 | 2023 年 9 月 | 2026 年 9 月 | 不定 |
12(非 LTS) | 2019 年 3 月 | 2019 年 9 月 | 无法使用 | 不定 |
13(非 LTS) | 2019 年 9 月 | 2020 年 3 月 | 无法使用 | 不定 |
14(非 LTS) | 2020 年 3 月 | 2020 年 9 月 | 无法使用 | 不定 |
15(非 LTS) | 2020 年 9 月 | 2021 年 3 月 | 无法使用 | 不定 |
16(非 LTS) | 2021 年 3 月 | 2021 年 9 月 | 无法使用 | 不定 |
17 (LTS) | 2021 年 9 月 | 2026 年 9 月**** | 2029 年 9 月**** | 不定 |
18(非 LTS) | 2022 年 3 月 | 2022 年 9 月 | 无法使用 | 不定 |
19(非 LTS)*** | 2022 年 9 月 | 2023 年 3 月 | 无法使用 | 不定 |
20(非 LTS)*** | 2023 年 3 月 | 2023 年 9 月 | 无法使用 | 不定 |
21 (LTS)*** | 2023 年 9 月 | 2028 年 9 月 | 2031 年 9 月 | 不定 |
Java技术体系平台
Java SE(Java Standard Edition)标准版
支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核心API,此版本以前称为J2SE
Java EE(Java Enterprise Edition)企业版
是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如:Servlet、Jsp等,主要针对于Web应用程序开发。版本以前称为J2EE
Java ME(Java Micro Edition)小型版(仅供了解,已经很少用到)
支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加入了针对移动终端的支持,此版本以前称为J2ME
Java重要特点
-
Java语言是面向对象的(oop)
-
Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证
-
Java语言是跨平台性的。 (即:一个编译好的.class文件可以在多个系统下运行,这种特性称为跨平台)
-
Java语言是解释型的[了解]
解释性语言: javascript,PHP, java 编译性语言:C/ C++
区别是:解释性语言,编译后的代码,不能直接被机器执行,需要解释器来执行,编译性语言,编译后的代码,可以直接被机器执行, c/c++
Java开发工具
-
editplus 、notepad++、notepad3(前期学习时使用)
-
Sublime Text(前期学习时使用)
下载地址: https://www.sublimetext.com/
-
IDEA(实际开发中使用)
-
eclipse(实际开发中使用)
java运行机制
什么是JDK、JRE
-
JDK基本介绍
-
JDK的全称(Java Development Kit Java开发工具包)
JDK = JRE + java的开发工具[java, javac.javadoc,javap等]
-
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。
-
-
JRE基本介绍
-
JRE(Java Runtime Environment Java运行环境)
JRE = JVM + Java的核心类库[类]
-
包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
-
JDK安装与配置
略(网上有很多,学习建议安装Java8)
Java快速入们
-
需求说明
要求开发一个Hello.java程序,可以输出“hello,world!”
-
开发步骤
- 将Java代码编写到扩展名为Hello.java的文件中。[代码说明]
- 通过javac命令对该java文件进行编译,生成.class文件。
- 通过java命令对生成的class文件进行运行。
-
运行流程示意图
第一个Java程序
创建Hello.java文件
写入如下内容:
//java快速入门
//对代码的相关说明
//1. public class Hello表示Hello是一个类,是一个public公有的类
//2.Hello{}表示一个类的开始和结束
//3. public static void main(String[] args)表示一个主方法,即我们程序的入口
//4. main(){0}表示方法的开始和结束
//5. System.out.println( "hello, world~");表示输出"hello, world~"到屏幕
//6.;表示语句结束
public class Hello{
//编写一个main方法
public static void main(String[] args){
System.out.println("Hello world");
}
}
在cmd中使用javac Hello.java命令生成Hello.class文件(注意:cmd中使用的是GBK编码,所以此处Hello.java保存时也应用此编码格式,否则会报错)
在cmd中使用java Hello命令运行Hello.class文件(其中”Hello”为类名,而非“Hello.class”文件名,如果使用“java Hello.class”指令会报错)
Java开发注意事项和细节说明
-
Java源文件以.java为扩展名。源文件的基本组成部分是类(class),如本类中的Hello
类。 -
Java应用程序的执行入口是main()方法。它有固定的书写格式:public static void main(Stringl]args){…}
-
Java语言严格区分大小写。
-
Java方法由一条条语句构成,每个语句以“;”结束。
-
大括号都是成对出现的,缺一不可。[习惯,先写争再写代码]
-
一个源文件中最多只能有一个public类。其它类的个数不限。[演示]
//一个源文件中最多只能有一个public类。其它类的个数不限。[演示]//Dog是一个类
//编译后,每一个类,都对于一个.class。(此文件编译后会生成三个.class文件)
public class Hello{
public static void main(String[] args){
System.out.println("Hello world");
}
}
class Dog{
}
class Tiger{
}
-
如果源文件包含一个public类,则文件名必须按该类名命名!
-
一个源文件中最多只能有一个public类。其它类的个数不限,也可以将main方法写在非public类中,然后指定运行非public类,这样入口方法就是非public的main方法
Java常用的转义字符
- :一个制表位,实现对齐的功能
- :换行符
- :一个
- ”:一个”
- “:一个”
- :一个回车 System.out.println(“顺平教育北京”);
public class Changechar{
//编写一个main方法
public static void main(String[] args){
// :一个制表位,实现对齐的功能
System.out.println("北京 天津 上海");
//
:换行符
System.out.println( "jack
smith
mary" );
//\:一个 \
System.out.println( "C:\windows\lSystem32\cmd. exe");
// " :一个"
System.out.println("老韩说:"要好好学习java,有前途"");
//" :一个"
System.out.println("老韩说:"要好好学习java,有前途"");
// :一个回车 System. out.println("韩顺平教育北京");
//解读
//1.输出韩顺平教育
//2.表示回车(不换行,会把光标移动到行首)
System.out.println("韩顺平教育北京");// 北京平教育
System.out.println("韩顺平教育
北京");// 韩顺平教育
北京(不同系统会有差异)
}
}
初学java易犯错误
-
找不到文件
解决方法:源文件名不存在或者写错,或者当前路径错误
-
主类名和文件名不一致
解决方法:声明为public的主类应与文件名一致,否知编译失败
-
缺少分号
解决方法:编译失败,注意错误出现的行数,再到源代码中指定位置改错。
注释(comment)
-
单行注释:
基本棓式
格式: //注释文字
-
多行注释:
基本格式
格式: /*注释文字*/
-
使用细节
-
被注释的文字,不会被JVM (java虚拟机)解释执行
-
多行注释里面不允许有多行注释嵌套
-
-
文档注释:
注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档,一般写在类-
基本格式
/** *author 韩顺平 *@version 1.0 *..... */
-
如何生成对应的文档注释
javadoc -d 文件夹名 -xx -yy Demo3.java -
javadoc标签
javadoc 工具软件识别以下标签(参考网站:https://www.runoob.com/java/java-documentation.html):标签 描述 示例 @author 标识一个类的作者 @author description @deprecated 指名一个过期的类或成员 @deprecated description {@docRoot} 指明当前文档根目录的路径 Directory Path @exception 标志一个类抛出的异常 @exception exception-name explanation {@inheritDoc} 从直接父类继承的注释 Inherits a comment from the immediate surperclass. {@link} 插入一个到另一个主题的链接 {@link name text} {@linkplain} 插入一个到另一个主题的链接,但是该链接显示纯文本字体 Inserts an in-line link to another topic. @param 说明一个方法的参数 @param parameter-name explanation @return 说明返回值类型 @return explanation @see 指定一个到另一个主题的链接 @see anchor @serial 说明一个序列化属性 @serial description @serialData 说明通过writeObject( ) 和 writeExternal( )方法写的数据 @serialData description @serialField 说明一个ObjectStreamField组件 @serialField name type description @since 标记当引入一个特定的变化时 @since release @throws 和 @exception标签一样. The @throws tag has the same meaning as the @exception tag. {@value} 显示常量的值,该常量必须是static属性。 Displays the value of a constant, which must be a static field. @version 指定类的版本 @version info
-
Java代码规范(基础内容)
- 类、方法的注释,要以javadoc的方式来写。
- 非Java Doc的注释,往往是给代码的维护者看的,着重告述读者为什么这样写,如何修改,注意什么问题等
- 使用tab操作,实现缩进,默认整体向右边移动,时候用shift+tab整体向左移
- 运算符和=两边习惯性各加一个空格。比如:2+4*5+ 345 – 89
- 源文件使用utf-8编码
- 行宽度不要超过80字符
- 代码编写次行风格和行尾风格
DOS命令(了解,不需要记)
-
DOS介绍
Dos: Disk Operating System磁盘操作系统,简单说一下windows的目录结构。[原理图] -
相关的知识补充:相对路径,绝对路径
-
常用的dos命令
-
查看当前目录是有什么
dir dir d:abc2 est200 -
切换到其他盘下:盘符号cd
案例演示:切换到c盘cd /D c: -
切换到当前盘的其他目录下(使用相对路径和绝对路径演示)
案例演示:cd d:abc2 est200 cd ..l..abc2 test200 -
切换到上一级:
案例演示:cd .. -
切换到根目录:cd
案例演示:cd -
查看指定的目录下所有的子级目录tree E:xxxxxx
-
清屏cls[苍老师]
-
退出DOS exit
-
说明:因为小伙伴后面使用dos非常少,所以对下面的几个指令,了解即可(md[创建目录],rd[删除目录],copy[拷贝文件],del[删除文件],echo[输入内容到文件],type,move[剪切])
-
本章习题
- 编写hello, world程序
- 将个人的基本信息((姓名、性别、籍贯、住址)打印到控制台上输出。各条信息分别占一行。
- JDK,JRE,JVM的关系
- 环境变量path配置及其作用
- Java编写步骤
-
Java编写7个规范
-
初学者java易犯错误
答案
//1
public class Hello{
public static void main(String[] args){
System.out.println("Hello,world");
}
}
//2
public class Hello{
public static void main(String[] args){
System.out.println("姓名 性别 籍贯 住址");
}
}
//3
/*
JDK=JRE+JAVA开发工具
JRE=JVM+核心类库
*/
//4-7 略