初识java

  • 1.java的发展史
    • 1.1、起源
    • 1.2、演变
  • 2.Java体系与特点
    • 2.1java的体系
    • 2.2java的应用
    • 2.3java的特性
  • 3.JVM,JDK,JRE与GC
    • 3.1java的两种核心机制
      • 3.1.1jvm虚拟机(JavaVirtualMachine)
      • 3.1.2 垃圾回收器(GC)
    • 3.2Java SE 组成的概念图
    • 3.3JDK与JRE
      • 3.3.1JDK(JavaDevelopmentKits)--Java开发工具集
      • 3.3.2 JRE的三项主要功能
  • 4.Java程序的类型
    • 4.1程序的概念
    • 4.2java程序的类型
  • 5.java程序开发的三个步骤
  • 6、java中的基本语法规则
    • 6.1注释
    • 6.2java代码的位置
      • 6.3语法规则
    • 6.2java代码的位置
      • 6.3语法规则

1.java的发展史

1.1、起源

20 世纪 90 年代,单片式计算机系统诞生,单片式计算机系统不仅廉价,而且功能强大,使用它 可以大幅度提升消费性电子产品的智能化程度。
SUN 公司为了抢占市场先机,在 1991 年成立了一个由詹姆斯·高斯林(James Gosling)领导, 名为“Green”项目小组,目的是开发一种能够在各种消费性电子产品上运行的程序架构。
那么使用何种编程语言来设计,是项目小组头疼的事。当时 C++较为有优势的,项目小组首先考 虑的是采用它来编写程序,但 C++过于复杂和庞大,再加上由于消费电子产品所采用的嵌入式处理 器芯片的种类繁杂,需要让编写的程序跨平台运行,假如用 C++编写的话对程序的跨平台运行不友 好。
最后项目小组决定:既不用 C++编写,也不开发全新的编程语言,而是对 C++进行改造:去除了 C++复杂的指针和内存管理,并结合嵌入式系统的实时性要求,最终在 1992 年,他们开发了一种名 为“Oak”的面向对象语言。
科当他们在向硬件生产商进行演示的时候,硬件生产商对此并不感冒,OaK 语言因为缺乏硬件的 支持而无法进入市场,从而被搁置一旁。
1994 年,项目小组看到了浏览器在未来的发展前景,于是决定将 OaK 应用于万维网。1995 年, 他们用 OaK 语言研发了一种能将小程序嵌入到网页中执行的技术——Applet,由于 Applet 不仅能嵌 入网页,还可随同网页在网络上进行传输,这让无数的程序员看到了 OaK 这门语言,与此同时,OaK 正式更名为 Java。从此,Java 在互联网的推动下火了。

1.2、演变

1996 年 1 月,SUN 公司推出了 JDK1.0。在 JDK1.0 发布后,有很多程序员学习并运用 Java 来制作 网页,JDK 包括两大部分:开发工具和运行环境。
运行环境包括核心 API、集成 API、用户界面 API、发布技术、Java 虚拟机(JVM)。JDK1.0 的发布, 标志着 Java 成为一种独立的开发工具。在同年 9 月,约有 8.3 万个网页应用了 Java 技术来制作。
JDK1.0 的代表性技术有:Java 虚拟机、Applet、AWT 等。
1997 年 2 月,SUN 公司紧接着推出了 JDK1.1,在推出后 3 周时间里,达到了近 22 万次的下载量。 4 月 2 日,首届 JavaOne 大会在美国旧金山召开,参加会议的人超过一万人,创造了当时全球同类 会议规模最高的纪录。9 月,Java Developer Connection 社区成员超过 10 万,同年还有 10 个最主 要的操作系统供应商正式声明将在他们的产品中使用 Java。
JDK1.1 的代表性技术有:JDBC、JavaBeans、RMI、JAR 文件格式、Java 语法中的内部类和反射。
1998 年 12 月 8 日,JDK1.2——第二代 Java 平台的企业版 J2EE 发布。
1999 年 6 月,Sun 公司把 Java 体系分为三个方向:
J2ME(Java2 Micro Edition,Java2 平台的微型版),应用于移动、无线及有限资源的环境;
J2SE(Java 2 Standard Edition,Java 2 平台的标准版),应用于桌面环境;
J2EE(Java 2Enterprise Edition,Java 2 平台的企业版),应用于基于 Java 的应用服务器。
随着供应商的不同,Java 的 API 也分为三大类:
Java Core API:Java 核心类库;
Java Optional API:对之前 API 的扩充;
特殊 API:由特殊厂商或组织提供的 API。
Java 2 平台的发布,是 Java 发展过程中最重要的一个里程碑,标志着 Java 的应用开始普及。
JKD1.2 的代表性技术有:Swing、JavaIDL、EJB、JavaPlug-in 等,在 API 文档中,添加了 strictfp 关键字和 Collections 集合类。
1999 年 4 月 27 日,HotSpot 虚拟机发布。HotSpot 是由一家叫“LongviewTechnologies”的小公司开 发的,后来被 SUN 公司收购。HotSpot 虚拟机发布时是作为 JDK 1.2 的附加程序提供的,后来它成 为了 JDK 1.3 及之后所有版本的 Sun JDK 的默认虚拟机 。
2000 年 5 月,JDK1.3、JDK1.4 和 J2SE1.3 相继发布,J2SE1.3 是对 J2SE1.2 的补充和扩展,从应 用领域的角度分析,JavaSE1.3 已经涵盖了数据库、WEB、网络、图形、多媒体、电话、影像等大 部分的信息技术领域。
2002 年 2 月 26 日,J2SE1.4 发布。与 J2SE1.3 相比,多了近 62%的类和接口。在这些新特性当中, 还提供了广泛的 XML 支持、安全套接字(Socket)支持(通过 SSL 与 TLS 协议)、全新的 I/OAPI、 正则表达式、日志与断言。
2004 年 9 月 30 日,J2SE1.5 发布,成为 Java 语言发展史上的又一里程碑。为了表示该版本的重要 性,J2SE1.5 更名为 Java SE5.0(内部版本号 1.5.0)。Java SE5.0 包含了从 1996 年发布 1.0 版 本以来的最重大的更新,其中包括泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化 I/O 及可变参数。
2005 年 6 月,在 JavaOne 大会上,Sun 公司发布了 JavaSE6。此时,Java 的各种版本已经更名, 已取消其中的数字 2,如 J2EE 更名为 JavaEE,J2SE 更名为 JavaSE,J2ME 更名为 JavaME。
2011 年 7 月 28 日,收购 Sun 公司的 Oracle 发布了 JavaSE7,引入了二进制整数、支持字符串的 switch 语句、棱形语法、多异常捕抓、自动关闭资源的 try 语言等新特性。
2014 年 3 月 18 日,Oracle 公司发布 Java SE8,这次版本升级为 Java 带来了全新的 Lambda 表达 式、流式编程等大量新特性,这些新特性使得 Java 变得更加强大。
2017 年 9 月 22 日,Oracle 公司发布 JavaSE9,这次版本升级强化了 Java 的模块化系统,让 Java 语言更轻量化,且采用了更高效、更智能的 GI 垃圾回收器,并在核心类库上进行大量更新,可进一 步简化编程。
2018 年 3 月 21 日,JavaSE10 发布,Java10 版本带来了很多新特性,其中最备受广大开发者 关注的莫过于局部变量类型推断。此外,还包垃圾收集器改善、GC 改进、性能提升、线程管控等新 特性。
2018 年 9 月 26 日,JavaSE11 发布。这是 Java 大版本周期变化后的第一个长期支持版本(LTS 版本持续支持到2026 年9月)。 Java11 带来了 ZGC、 HttpClient 等重要特性,一共包含 17 个 JEP (JDK Enhancement Proposals,JDK 增强提案)。
2019年3月20日, JavaSE12 发布。 Java12是短期支持版本,可在下一个版本发布之前获得Oracle 的商业支持。
2019 年 9 月 23 日,Java SE 13 发布,此版本中添加了“文本块”,文本块是一个多行字符串文字, 避免对大多数转义序列的需要,以可预测的方式自动格式化字符串,并在需要时让开发人员控制格式。

2.Java体系与特点

2.1java的体系

JavaSE:JavaPlatform,StandardEdition
标准版:各应用平台的基础,桌面开发和低端商务应用的解决方案。
JavaEE:JavaPlatform,EnterpriseEdition

企业版:以企业为环境而开发应用程序的解决方案
JavaME:JavaPlatform,MicroEdition 微

型版:致力于消费产品和嵌入式设备的最佳解决方案

2.2java的应用

开发桌面应用程序

银行软件、商场结算软件

开发面向Internet的web应用程序

​ 门户网站(工商银行)、网上商城、阿里巴巴、电子商务网站

提供各行业的解决方案

​ 金融、电信、电力…

嵌入式开发

​ 移动电话、可视电话、数字机顶盒和汽车导航系统

2.3java的特性

​ 一种纯面向对象的编程语言。

​ 一种与平台无关(跨平台)的语言。

​ (它提供了在不同平台下运行的解释环境)

​ 一种健壮的语言,吸收了C/C++语言的优点。

有较高的安全性。(自动回收垃圾,强制类型检查,取消指针)

3、java跨平台原理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hiFrJocB-1600591528459)(D:\文档\Tencent Files\962253741\Image\C2C\UNOPY77G@CO9E6YP}79M76X.png)]

3.JVM,JDK,JRE与GC

3.1java的两种核心机制

3.1.1jvm虚拟机(JavaVirtualMachine)

JVM可以理解成一个可运行Java字节码的虚拟计算机系统

它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信 ,对于不同的运行平台,有不同的JVM。
JVM屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。

3.1.2 垃圾回收器(GC)

不再使用的内存空间应当进行回收-垃圾回收。

在C/C++等语言中,由程序员负责回收无用内存。

Java语言消除了程序员回收无用内存空间的责任: JVM提供了一种系统线程跟踪存储空间的分配情况。

并在JVM的空闲时,检查并释放那些可以被释放的存储空间。

垃圾回收器在Java程序运行过程中自动启用,程序员无法精确控制和干预。

3.2Java SE 组成的概念图

3.3JDK与JRE

3.3.1JDK(JavaDevelopmentKits)–Java开发工具集

包含:

  1. JRE(JavaRuntimeEnvironment)Java运行时环境
  2. JVM
  3. JavaAPI(应用程序编程接口)
  4. Java编译器(javac.exe)、Java运行时解释器(java.exe)、Java文档化化工具(javadoc.exe)及其它工具及资源

3.3.2 JRE的三项主要功能

  1. 加载代码:由类加载器(classloader)完成;
  2. 校验代码:由字节码校验器(bytecodeverifier)完成;
  3. 执行代码:由运行时解释器(runtimeinterpreter)完成。

4.Java程序的类型

4.1程序的概念

程序一词来自生活,通常指完成某些事务的一种既定方式和过程 在日常生活中,可以将程序看成对一系列动作的执行过程的描述

4.2java程序的类型

  1. 命今行程序
  2. GUI程序
  3. Applet程序
  4. J2EEweb应用程序

5.java程序开发的三个步骤

6、java中的基本语法规则

6.1注释

​ java程序有三种注释方式

​ 1.单行注释://注释

​ 2.多行注释:/* 注释 */

​ 3.文档注释:/** 注释 */

​ 文档注释可以用来自动地生成文档。在JDK中有个javadoc的工具,可以由源文件生成一个HTML文档。使用这种方式注释源文件的内容,显得很专业,并且可以随着源文件的保存而保存起来。也就是说,当修改源文件时,也可能对这个源代码的需求等一些注释性的文字进行修改,那么,这时候可以将源代码和文档一同保存,而不用再另外创建一个文档。文档注释可以用来实现自己代码的API

​ 命令行命令:Javadoc -d apidoc *.Java (注意这个命令在你存放.Java文件下执行)

​ 文档注释常用的标记

@author:指定java程序的作者
@version:指定源文件的版本
@deprecated:不推荐使用的方法
@param:方法参数说明信息
@return:方法返回值说明信息
@see:“参见,用于指定交叉参考的内容
@exception:抛出异常的类型
@throws :抛出的异常,和exception同义

6.2java代码的位置

​ class必须编写在.java文件中,且一个.Java文件中只能有一个public权限修饰的类。

关于权限在后期博客中提及

6.3语法规则

  1. java是严格区分大小写的
  2. java是一种自 由格式的语言
  3. 代码分为结构定义语句和功能执行语句
    常,和exception同义

6.2java代码的位置

​ class必须编写在.java文件中,且一个.Java文件中只能有一个public权限修饰的类。

关于权限在后期博客中提及

6.3语法规则

  1. java是严格区分大小写的
  2. java是一种自 由格式的语言
  3. 代码分为结构定义语句和功能执行语句
  4. 功能执行语句的最后必须用分号结束

1.第一章 Java基础语法 第一节(一)初识java相关推荐

  1. Java基础语法(一)——初识Java

    文章目录 一.Java语言概述 1.Java是什么 2.Java 的流行性 3.Java 的特性 (1) 简单性 (2)面向对象 (3) 分布式(微服务) (4) 健壮性 (5) 安全性 (6) 可移 ...

  2. 第一章计算机基础知识第一节,第一章 计算机基础知识 第一节

    第一章计算机基础知识 第一节.了解计算机 尊敬的各位评委老师: 大家好!我今天说课的题目是<了解计算机>.我将从以下五方面来谈谈对这节课的设计:即说教材.学情分析.说教法和学法.说教学过程 ...

  3. Java基础语法(二)——数据类型

    文章目录 Java基础语法(二)--数据类型 一.int 整型类型 1.基本语法格式 2.数值范围 3.未定义时变量的默认初始值 4.注意事项 二. long 长整型类型 1.基本语法格式 2.数值范 ...

  4. 【python第一章 基础捋顺,第二章 python基础语法】

    第一章 基础捋顺,第二章 python基础语法 第一章 基础捋顺 第二章 python基础语法 2.1输入输出 2.2代码注释 2.3代码缩进 2.4命名规范 2.5变量 2.6基本数据类型 2.7数 ...

  5. 是介于小型机和微型计算机,第一章计算机基础解析.ppt

    第一章计算机基础解析 一.计算机的基本组成 1.外形组成: 主机.显示器.键盘.鼠标.音箱. 2.根据规模大小分类: 微型计算机.小型计算机.中型计算 机.大型计算机.巨型计算机. 区别巨型.大型.中 ...

  6. pc都是微型计算机判断,(计算机应用基础统考)第一章 计算机基础知识

    1.第一章计算机基础知识第一章计算机基础知识考试内容 l 计算机的发展过程.分类.应用范 围及特点:信息的基本概念 l 计算机系统的基本组成及各部件的 主要功能,数据存储的概念 l 数据在计算机中的表 ...

  7. 微型计算机基础 教案,第一章微型计算机基础知识新080902电子教案(153页)-原创力文档...

    第一章 微型计算机基础知识;第一章? 微型计算机基础知识;§1.1 计算机中数的表示方法;1.1.1 进位计数制及各计数制间的转换;二进制数的特点; 十进制--符合人们的习惯二进制--便于物理实现十六 ...

  8. Java基础语法(三)——运算符

    文章目录 Java基础语法(三)--运算符 一.算术运算符 1.基本四则运算符 (1)练习 (2)注意事项 2.复合运算符 3.自增自减操作符 二.关系运算符 三.逻辑操作符 1.逻辑与&&a ...

  9. 萌新向Python数据分析及数据挖掘 第一章 Python基础 第三节 列表简介 第四节 操作列表...

    第一章 Python基础 第三节 列表简介 列表是是处理一组有序项目的数据结构,即可以在一个列表中存储一个序列的项目.列表中的元素包括在方括号([])中,每个元素之间用逗号分割.列表是可变的数据类型, ...

最新文章

  1. #jvm内存及GC机制#
  2. 等价类划分方法的应用
  3. Edit Distance Python源码及支持包的实现
  4. iCloud1_Getting Started
  5. python 将布尔数组取反的方法 True False(b=(a==False))
  6. CUDA从入门到精通(四):加深对设备的认识
  7. vscode最好看的主题推荐_新学期,幼儿园环创主题墙及楼道,这样布置最好看!...
  8. QUIC实战(五) 使用nginx quic开发分支部署支持HTTP3 的NGINX
  9. python classmethod_对Python中的@classmethod用法详解
  10. Vue 快速集成ElementUI
  11. melogin.cn主页登录_melogin.cn登录官网
  12. 拒绝:请求的对资源的访问被拒绝:泊坞窗
  13. neo4j 查询同一节点的两个上级_链表的魅力:两个单向链表的第一个交点
  14. 支持java浏览器_如何为浏览器安装支持JAVA的插件
  15. 三菱FX5U,机床X轴Y轴工作台定位控制程序 使用三菱J4-A系列伺服驱动器绝对位置系统,程序大小27000多步
  16. ajax跨域支持post,支持post请求的js跨域方法汇总
  17. 解决浏览器Adobe Flash Player不是最新版本问题
  18. Python实现求中位数
  19. 用友U8供应链期初数据录入案例教程2
  20. [004]Python数据类型二_python_全栈基础

热门文章

  1. linux系统下安装教程_手机安装linux系统安装教程
  2. STC32G库函数(五)——ADC检测反推电源电压
  3. 社会群体及分层问题研究类毕业论文文献都有哪些?
  4. 初学者之路——————离散卷积
  5. Python 本地股票数据分析处理
  6. 应用软件的作用是扩大计算机的存储容量,计算机基础知识专项练习题~公共基础...
  7. 百度云 职称计算机cad,职称计算机考试AutoCAD辅导资料
  8. 数控计算机软件的确认表怎么做,数控仿真系统操作(广数GSK980T)
  9. XML介绍之XML的语法与元素
  10. 腾讯云服务器重庆地域和成都地域区别及哪个更好