Java学习-第一阶段-第一节:Java概述
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(前期学习时使用)
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常用的转义字符
- \t :一个制表位,实现对齐的功能
- \n:换行符
- \:一个\
- \”:一个"
- \':一个'
- \r :一个回车 System.out.println("顺平教育\r北京");
public class Changechar{
//编写一个main方法
public static void main(String[] args){
//\t :一个制表位,实现对齐的功能
System.out.println("北京\t天津\t上海");
// \n:换行符
System.out.println( "jack\nsmith\nmary" );
//\\:一个\ \\
System.out.println( "C:\\windows\\lSystem32\\cmd. exe");
// \" :一个"
System.out.println("老韩说:\"要好好学习java,有前途\"");
//\' :一个'
System.out.println("老韩说:\'要好好学习java,有前途\'");
// \r :一个回车 System. out.println("韩顺平教育\r北京");
//解读
//1.输出韩顺平教育
//2.\r表示回车(不换行,会把光标移动到行首)
System.out.println("韩顺平教育\r北京");// 北京平教育
System.out.println("韩顺平教育\r\n北京");// 韩顺平教育\n北京(不同系统会有差异)
}
}
初学java易犯错误
找不到文件
解决方法:源文件名不存在或者写错,或者当前路径错误
主类名和文件名不一致
解决方法:声明为public的主类应与文件名一致,否知编译失败
缺少分号
解决方法:编译失败,注意错误出现的行数,再到源代码中指定位置改错。
注释(comment)
单行注释:
基本棓式
格式: //注释文字
多行注释:
基本格式
格式: /*注释文字*/
使用细节
被注释的文字,不会被JVM (java虚拟机)解释执行
多行注释里面不允许有多行注释嵌套
文档注释:
注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档,一般写在类基本格式
/**
*author 韩顺平
*@version 1.0
*.....
*/
如何生成对应的文档注释
javadoc -d 文件夹名 -xx -yy Demo3.javajavadoc标签
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\test200切换到其他盘下:盘符号cd
案例演示:切换到c盘cd /D c:切换到当前盘的其他目录下(使用相对路径和绝对路径演示)
案例演示:cd d:\abc2\test200 cd ..l..\abc2\ test200切换到上一级:
案例演示:cd ..切换到根目录:cd
案例演示:cd \查看指定的目录下所有的子级目录tree E:\xxx\xxx
清屏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("姓名\t性别\t籍贯\t住址");
}
}
//3
/*
JDK=JRE+JAVA开发工具
JRE=JVM+核心类库
*/
//4-7 略
Java学习-第一阶段-第一节:Java概述的更多相关文章
- 20145330《Java学习笔记》第一章课后练习8知识总结以及IDEA初次尝试
20145330<Java学习笔记>第一章课后练习8知识总结以及IDEA初次尝试 题目: 如果C:\workspace\Hello\src中有Main.java如下: package cc ...
- 最新java学习路线:含阶段性java视频教程完整版
最新java学习路线:带阶段性java视频教程版本 第一阶段:Java基础 学习目标: 掌握基本语法.面向对象.常用类.正则.集合.Io流.多线程.Nio.网络编程.JDK新特性.函数式编程 知识点细 ...
- Java 学习(7):java 日期时间 & 正则表达式
目录 --- 日期时间 --- 正则表达式 日期时间:java.util 包提供了 Date 类来封装当前的日期和时间. Date 类提供两个构造函数来实例化 Date 对象. 构造函数:用于初始化对 ...
- Java 学习(9):java Stream & File & IO
Java 流(Stream).文件(File)和IO Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持很多种格式,比如:基本类 ...
- Java 学习(20):Java Applet 基础 & Java 文档注释
-- Java Applet 基础 -- Java 文档注释 Java Applet 基础 Applet 是一种 Java 程序.它一般运行在支持 Java 的 Web 浏览器内.因为它有完整的 Ja ...
- Java 学习(21):Java 实例
Java 实例 本章节我们将为大家介绍 Java 常用的实例,通过实例学习我们可以更快的掌握 Java 的应用. Java 环境设置实例 //HelloWorld.java 文件 public cla ...
- Java 学习(1): windows java 运行& 环境配置
Java 文件的运行 如下,创建了一个 名为"HelloWorld.java" 的 Java 文件: public class HelloWorld { public static ...
- Java 学习(2):java 基础概念
Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 基础语法: 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.以 ...
- Java 学习(3):java 对象和类
目录: --- 对象 --- 类 --- 源文件的声明规则 --- Java 包 对象: 对象是类的一个实例(对象不是找个女朋友),有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种: ...
- Java 学习(8):java 方法
Java方法是语句的集合,它们在一起执行一个功能. 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 命名规则: 1. 必须以 字母.'_'或'$'开头. ...
随机推荐
- 99-oracle-asmdevices.rules(udev方式创建asm磁盘)
一.创建asm磁盘的几种方式 创建asm方式很多主要有以下几种 1.Faking方式 2.裸设备方式 3.udev方式(它下面有两种方式) 3.1 uuid方式. 3.2 raw方式(裸设备方式) 4 ...
- 导出带标签的tar包(docker)-解决导出不带标签的麻烦
需求:在docker的本地镜像库中导出tar包给其他节点使用. 如果使用:docker save -o package.tar e82656a6fc 这样形式导出的tar包,安装之后标签会消失解决办法 ...
- 正则表达式小技巧,sql中in的字符串处理
工作中我经常写sql,当写带in的语句时,需要敲好多单引号,逗号,敲写起来容易易出错.因此,我写了一个小工具,处理这种繁琐工作.原理简单,利用正则表达式匹配.替换. 先看界面,一个html页面,包含三 ...
- JavaScript基础第03天笔记
JavaScript基础第03天笔记 1 - 循环 1.1 for循环 语法结构 for(初始化变量; 条件表达式; 操作表达式 ){ //循环体 } 名称 作用 初始化变量 通常被用于初始化一个计数 ...
- Blazor使用区域(Area)
在MVC中,我们经常使用区域(Area)来区分各个模块,比如后台我们可以写一个Admin的Area. 到了Blazor时代,已经不推荐这么做了,现在推荐的做法是通过Url来区分,比如Admin可以配置 ...
- 《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
1.简介 上一篇宏哥用PageFactory实现了POM,宏哥再介绍一下如果不用PageFactory如何实现POM. 2.项目实战 在这里宏哥以百度首页登录的例子,如果用POM实现,在测试脚本中实际 ...
- 深入了解 TiDB SQL 优化器
分享嘉宾:张建 PingCAP TiDB优化器与执行引擎技术负责人 编辑整理:Druid中国用户组第6次大数据MeetUp 出品平台:DataFunTalk 导读: 本次报告张老师主要从原理上带大家深 ...
- 命令工具 -(1)Vim 文本编辑器学习
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 前言 提起 Linux,大家都听说过这句话:Linux 一切皆文件. 配置一个服务就是在修改它 ...
- Apache Struts 2 漏洞汇总
Apache Struts2 是一个基于MVC设计模式的Web应用框架,会对某些标签属性(比如 id)的属性值进行二次表达式解析,因此在某些场景下将可能导致远程代码执行. Struts2特征: 通过页 ...
- mybatis各阶段的详解
1 本阶段的需要注意的几个点 1,首先是在核心配置文件里面的内容: 配置的顺序,不配则不用管,配则必须按顺序来!!!! properties?, settings?, typeAliases?, ty ...