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重要特点

  1. Java语言是面向对象的(oop)

  2. Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证

  3. Java语言是跨平台性的。 (即:一个编译好的.class文件可以在多个系统下运行,这种特性称为跨平台)

  4. Java语言是解释型的[了解]

    解释性语言: javascript,PHP, java 编译性语言:C/ C++

    区别是:解释性语言,编译后的代码,不能直接被机器执行,需要解释器来执行,编译性语言,编译后的代码,可以直接被机器执行, c/c++

Java开发工具

  • editplus 、notepad++、notepad3(前期学习时使用)

  • Sublime Text(前期学习时使用)

    下载地址: https://www.sublimetext.com/

  • IDEA(实际开发中使用)

  • eclipse(实际开发中使用)

java运行机制

什么是JDK、JRE

  • JDK基本介绍

    1. JDK的全称(Java Development Kit Java开发工具包)

      JDK = JRE + java的开发工具[java, javac.javadoc,javap等]

    2. JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。

  • JRE基本介绍

    1. JRE(Java Runtime Environment Java运行环境)

      JRE = JVM + Java的核心类库[类]

    2. 包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

JDK安装与配置

略(网上有很多,学习建议安装Java8)

Java快速入们

  • 需求说明

    要求开发一个Hello.java程序,可以输出“hello,world!"

  • 开发步骤

    1. 将Java代码编写到扩展名为Hello.java的文件中。[代码说明]
    2. 通过javac命令对该java文件进行编译,生成.class文件。
    3. 通过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开发注意事项和细节说明

  1. Java源文件以.java为扩展名。源文件的基本组成部分是类(class),如本类中的Hello

    类。

  2. Java应用程序的执行入口是main()方法。它有固定的书写格式:public static void main(Stringl]args){...}

  3. Java语言严格区分大小写。

  4. Java方法由一条条语句构成,每个语句以“;”结束。

  5. 大括号都是成对出现的,缺一不可。[习惯,先写争再写代码]

  6. 一个源文件中最多只能有一个public类。其它类的个数不限。[演示]

//一个源文件中最多只能有一个public类。其它类的个数不限。[演示]//Dog是一个类
//编译后,每一个类,都对于一个.class。(此文件编译后会生成三个.class文件)
public class Hello{
public static void main(String[] args){
System.out.println("Hello world");
}
}
class Dog{
}
class Tiger{
}
  1. 如果源文件包含一个public类,则文件名必须按该类名命名!

  2. 一个源文件中最多只能有一个public类。其它类的个数不限,也可以将main方法写在非public类中,然后指定运行非public类,这样入口方法就是非public的main方法

Java常用的转义字符

  1. \t :一个制表位,实现对齐的功能
  2. \n:换行符
  3. \:一个\
  4. \”:一个"
  5. \':一个'
  6. \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易犯错误

  1. 找不到文件

    解决方法:源文件名不存在或者写错,或者当前路径错误

  2. 主类名和文件名不一致

    解决方法:声明为public的主类应与文件名一致,否知编译失败

  3. 缺少分号

    解决方法:编译失败,注意错误出现的行数,再到源代码中指定位置改错。

注释(comment)

  • 单行注释:

    基本棓式

    格式: //注释文字

  • 多行注释:

    基本格式

    格式: /*注释文字*/

  • 使用细节

    1. 被注释的文字,不会被JVM (java虚拟机)解释执行

    2. 多行注释里面不允许有多行注释嵌套

  • 文档注释:

    注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档,一般写在类

    1. 基本格式

      /**
      *author 韩顺平
      *@version 1.0
      *.....
      */
    2. 如何生成对应的文档注释

      javadoc -d 文件夹名 -xx -yy Demo3.java

    3. 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代码规范(基础内容)

  1. 类、方法的注释,要以javadoc的方式来写。
  2. 非Java Doc的注释,往往是给代码的维护者看的,着重告述读者为什么这样写,如何修改,注意什么问题等
  3. 使用tab操作,实现缩进,默认整体向右边移动,时候用shift+tab整体向左移
  4. 运算符和=两边习惯性各加一个空格。比如:2+4*5+ 345 - 89
  5. 源文件使用utf-8编码
  6. 行宽度不要超过80字符
  7. 代码编写次行风格和行尾风格

DOS命令(了解,不需要记)

  • DOS介绍

    Dos: Disk Operating System磁盘操作系统,简单说一下windows的目录结构。[原理图]

  • 相关的知识补充:相对路径,绝对路径

  • 常用的dos命令

    1. 查看当前目录是有什么

      dir dir d:\abc2\test200

    2. 切换到其他盘下:盘符号cd

      案例演示:切换到c盘cd /D c:

    3. 切换到当前盘的其他目录下(使用相对路径和绝对路径演示)

      案例演示:cd d:\abc2\test200 cd ..l..\abc2\ test200

    4. 切换到上一级:

      案例演示:cd ..

    5. 切换到根目录:cd

      案例演示:cd \

    6. 查看指定的目录下所有的子级目录tree E:\xxx\xxx

    7. 清屏cls[苍老师]

    8. 退出DOS exit

    9. 说明:因为小伙伴后面使用dos非常少,所以对下面的几个指令,了解即可(md[创建目录],rd[删除目录],copy[拷贝文件],del[删除文件],echo[输入内容到文件],type,move[剪切])

本章习题

  1. 编写hello, world程序
  2. 将个人的基本信息((姓名、性别、籍贯、住址)打印到控制台上输出。各条信息分别占一行。
  3. JDK,JRE,JVM的关系
  4. 环境变量path配置及其作用
  5. Java编写步骤
  1. Java编写7个规范

  2. 初学者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概述的更多相关文章

  1. 20145330《Java学习笔记》第一章课后练习8知识总结以及IDEA初次尝试

    20145330<Java学习笔记>第一章课后练习8知识总结以及IDEA初次尝试 题目: 如果C:\workspace\Hello\src中有Main.java如下: package cc ...

  2. 最新java学习路线:含阶段性java视频教程完整版

    最新java学习路线:带阶段性java视频教程版本 第一阶段:Java基础 学习目标: 掌握基本语法.面向对象.常用类.正则.集合.Io流.多线程.Nio.网络编程.JDK新特性.函数式编程 知识点细 ...

  3. Java 学习(7):java 日期时间 & 正则表达式

    目录 --- 日期时间 --- 正则表达式 日期时间:java.util 包提供了 Date 类来封装当前的日期和时间. Date 类提供两个构造函数来实例化 Date 对象. 构造函数:用于初始化对 ...

  4. Java 学习(9):java Stream & File & IO

    Java 流(Stream).文件(File)和IO Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持很多种格式,比如:基本类 ...

  5. Java 学习(20):Java Applet 基础 & Java 文档注释

    -- Java Applet 基础 -- Java 文档注释 Java Applet 基础 Applet 是一种 Java 程序.它一般运行在支持 Java 的 Web 浏览器内.因为它有完整的 Ja ...

  6. Java 学习(21):Java 实例

    Java 实例 本章节我们将为大家介绍 Java 常用的实例,通过实例学习我们可以更快的掌握 Java 的应用. Java 环境设置实例 //HelloWorld.java 文件 public cla ...

  7. Java 学习(1): windows java 运行& 环境配置

    Java 文件的运行 如下,创建了一个 名为"HelloWorld.java" 的 Java 文件: public class HelloWorld { public static ...

  8. Java 学习(2):java 基础概念

    Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 基础语法: 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.以 ...

  9. Java 学习(3):java 对象和类

    目录: --- 对象 --- 类 --- 源文件的声明规则 --- Java 包 对象: 对象是类的一个实例(对象不是找个女朋友),有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种: ...

  10. Java 学习(8):java 方法

    Java方法是语句的集合,它们在一起执行一个功能. 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 命名规则: 1. 必须以 字母.'_'或'$'开头. ...

随机推荐

  1. 99-oracle-asmdevices.rules(udev方式创建asm磁盘)

    一.创建asm磁盘的几种方式 创建asm方式很多主要有以下几种 1.Faking方式 2.裸设备方式 3.udev方式(它下面有两种方式) 3.1 uuid方式. 3.2 raw方式(裸设备方式) 4 ...

  2. 导出带标签的tar包(docker)-解决导出不带标签的麻烦

    需求:在docker的本地镜像库中导出tar包给其他节点使用. 如果使用:docker save -o package.tar e82656a6fc 这样形式导出的tar包,安装之后标签会消失解决办法 ...

  3. 正则表达式小技巧,sql中in的字符串处理

    工作中我经常写sql,当写带in的语句时,需要敲好多单引号,逗号,敲写起来容易易出错.因此,我写了一个小工具,处理这种繁琐工作.原理简单,利用正则表达式匹配.替换. 先看界面,一个html页面,包含三 ...

  4. JavaScript基础第03天笔记

    JavaScript基础第03天笔记 1 - 循环 1.1 for循环 语法结构 for(初始化变量; 条件表达式; 操作表达式 ){ //循环体 } 名称 作用 初始化变量 通常被用于初始化一个计数 ...

  5. Blazor使用区域(Area)

    在MVC中,我们经常使用区域(Area)来区分各个模块,比如后台我们可以写一个Admin的Area. 到了Blazor时代,已经不推荐这么做了,现在推荐的做法是通过Url来区分,比如Admin可以配置 ...

  6. 《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)

    1.简介 上一篇宏哥用PageFactory实现了POM,宏哥再介绍一下如果不用PageFactory如何实现POM. 2.项目实战 在这里宏哥以百度首页登录的例子,如果用POM实现,在测试脚本中实际 ...

  7. 深入了解 TiDB SQL 优化器

    分享嘉宾:张建 PingCAP TiDB优化器与执行引擎技术负责人 编辑整理:Druid中国用户组第6次大数据MeetUp 出品平台:DataFunTalk 导读: 本次报告张老师主要从原理上带大家深 ...

  8. 命令工具 -(1)Vim 文本编辑器学习

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 前言 提起 Linux,大家都听说过这句话:Linux 一切皆文件. 配置一个服务就是在修改它 ...

  9. Apache Struts 2 漏洞汇总

    Apache Struts2 是一个基于MVC设计模式的Web应用框架,会对某些标签属性(比如 id)的属性值进行二次表达式解析,因此在某些场景下将可能导致远程代码执行. Struts2特征: 通过页 ...

  10. mybatis各阶段的详解

    1 本阶段的需要注意的几个点 1,首先是在核心配置文件里面的内容: 配置的顺序,不配则不用管,配则必须按顺序来!!!! properties?, settings?, typeAliases?, ty ...