HelloCoder HelloCoder
首页
《Java小白求职之路》
《小白学Java》
脚手架工具
  • 一些免费计算机资源
  • 毕设建议
  • 《从0到1学习Java多线程》
  • 《从0到1搭建服务器》
随笔
关于作者
首页
《Java小白求职之路》
《小白学Java》
脚手架工具
  • 一些免费计算机资源
  • 毕设建议
  • 《从0到1学习Java多线程》
  • 《从0到1搭建服务器》
随笔
关于作者
  • 《PureJavaCoderRoad》

    • 导读

    • Java基础

      • Java入门

        • Java介绍
        • 安装Java运行环境
        • 运行第一个Java程序
        • JavaIDE介绍
        • 使用IDEA编写第一个Java程序
        • IDEA快捷键
      • Java语法

      • Java流程控制

      • 面向对象

      • 异常处理

    • Java进阶

    • Java高阶

    • 开发辅助工具

    • 计算机网络

    • 数据库

    • JavaEE

    • 中间件

    • 架构

    • 建议

  • PureJavaCoderRoad
  • Java基础
  • Java入门
#Java #介绍
程序员阿雨
2022-05-26
目录

Java介绍

# Java的出现

Java是在上世纪90年代,由高斯林(Java之父)开发的一门编程语言。

Java之父以身作则证明:学Java的要掉头发的

Java最初的名字叫Oak,目标是在家用电器等小型系统进行控制和通信,比如说电视机、电话、烤面包机。

高斯林万万想不到智能化家电的市场没有发展的很快,而Sun公司只能砍掉Oak的研发项目了。但是过了没多久,互联网就发展起来了,于是Sun公司改造了Oak,于1995年5月以Java的名称正式发布。

随着互联网和千禧年的到来,Java也成了千万平台的首选开发语言。

为什么有了C、C++还要用Java呢?

最初,高斯林试图修改和扩展C++的功能,但是后来他放弃了。

他发现C++缺少垃圾回收系统,还有可移植的安全性、分布程序设计、和多线程功能。最后,他想要一种易于移植到各种设备上的平台。

# Java版本

目前Java提供以下三个版本:

  • Java Platform, Enterprise Edition(Java EE:Java平台企业版)
  • Java Platform, Standard Edition(Java SE:Java平台标准版)
  • Java Platform, Micro Edition(Java ME:Java平台微型版)

三者关系:

┌───────────────────────────┐
│Java EE                    │
│    ┌────────────────────┐ │
│    │Java SE             │ │
│    │    ┌─────────────┐ │ │
│    │    │   Java ME   │ │ │
│    │    └─────────────┘ │ │
│    └────────────────────┘ │
└───────────────────────────┘

Java ME的初衷轻量级的Java库,目的是针对小型的系统,但是现在都是Android的天下了。

Java SE就是标准版,也是我们学习的主要版本,可以开发一般的桌面程序(图形界面,如Swing、GUI、JFrame这些),部署在服务器、嵌入式环境,比如说eclipse就是SWT+JFace开发的,IDEA就是Swing开发的。主要的库是lang包、util包、io/nio包等14个包、包装类、collection、concurrent并发包、函数式接口、反射、注解等。

Java EE 就是企业版,是个大杂烩,包括Applet、EJB、JDBC、JNDI、Servlet、JSP等技术的标准,运行在一个完整的应用服务器上,可以理解为现在所说的JavaWeb。随着互联网的发展,衍生出spring、SpringBoot这些框架、中间件、JDBC、 Hibernate 等等,也是Java EE的一部分。特别是在找工作的时候,企业特别看重的能力。

# Java发展历程

  • 1995年5月23日,Java语言诞生
  • 1996年1月,第一个JDK (opens new window)-JDK1.0 (opens new window)诞生
  • 1996年4月,10个最主要的操作系统 (opens new window)供应商申明将在其产品中嵌入JAVA技术
  • 1996年9月,约8.3万个网页应用了JAVA技术来制作
  • 1998年2月,JDK1.1被下载超过2,000,000次
  • 1999年6月,SUN公司发布Java的三个版本:标准版(J2SE (opens new window))、企业版(J2EE (opens new window))和微型版(J2ME (opens new window))
  • 2000年5月8日,JDK1.3发布
  • 2000年5月29日,JDK1.4 (opens new window)发布
  • 2001年6月5日,NOKIA (opens new window)宣布,到2003年将出售1亿部支持Java的手机(以前玩的手机游戏基本都是Java开发的)
  • 2001年9月24日,J2EE1.3 (opens new window)发布
  • 2002年2月26日,J2SE1.4 (opens new window)发布,自此Java的计算能力有了大幅提升
  • 2004年9月30日18:00PM,J2SE1.5 (opens new window)发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5 (opens new window)更名为Java SE 5.0
  • 2005年6月,JavaOne大会 (opens new window)召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME
  • 2006年12月,SUN公司发布JRE6.0
  • 2009年12月,SUN公司发布Java EE 6
  • 2010年11月,由于Oracle公司对于Java社区的不友善,因此Apache扬言将退出JCP[14] (opens new window)
  • 2011年7月28日,Oracle公司发布Java SE 7
  • 2014年3月18日,Oracle公司发表Java SE 8
  • 2017年9月21日,Oracle公司发表Java SE 9
  • 2018年3月21日,Oracle公司发表Java SE 10
  • 2018年9月25日,Java SE 11发布
  • 2019年3月19日,JDK 12 发布
  • 2019年9月13日,JDK 13 发布
  • 2020年3月17日,JDK 14 发布

一门语言是否会衰退,可以用更新频率来判断。

# Java的特点

# 1、面向对象

Java的特点之一就是面向对象,这也是封装的说法,同一类事物的共性(包括属性和方法)归到同一类中,方便使用。对对象进行操作而不是直接操作变量。

# 2、跨平台性

跨平台使得用Java语言编写的程序可以在编译后不用经过任何更改,就能在任何硬件设备条件下运行。这个特性经常被称为“一次编译,到处运行”。

这主要是依赖Java 运行时环境(Java Runtime Environment,JRE)实现的,通过JVM才能在电脑系统执行Java应用程序(Java Application),这与 .Net Framework的情况一样,所以电脑上没有安装JVM,那么这些java程序将不能够执行。

简单的说就是你在本地开发打包,部署到服务器,只要服务器安装了JRE,你的代码就能在服务器运行了。成功地实现了“一次编译,到处运行”。

# 3、自动垃圾回收

C++语言被用户诟病的原因之一是大多数C++编译器不支持垃圾收集机制。通常使用C++编程的时候,程序员于程序中初始化对象时,会在主机存储器堆栈上分配一块存储器与地址,当不需要此对象时,进行析构或者删除的时候再释放分配的存储器地址。

Java语言则不同,上述的情况被自动垃圾收集功能自动处理。对象的创建和放置都是在存储器堆栈上面进行的。当一个对象没有任何引用的时候,Java的自动垃圾收集机制就发挥作用,自动删除这个对象所占用的空间,释放存储器以避免存储器泄漏。


总结Java特性就是:

面向对象(封装,继承,多态)
平台无关性(JVM运行.class文件)
语言(泛型,Lambda)
类库(集合,并发,网络,IO/NIO)
JRE(Java运行环境,JVM,类库)
JDK(Java开发工具,包括JRE,javac,诊断工具)
阅读全文
×

(为防止恶意爬虫)
扫码或搜索:HelloCoder
发送:290992
即可永久解锁本站全部文章

解锁
#Java#介绍
上次更新: 2023-02-26 15:30:12
最近更新
01
HTTP和TCP的keep-alive区别
02-16
02
Spring源码解读
02-16
03
4G的机器上申请8G的内存
02-16
更多文章>
Theme by Vdoing | Copyright © 2020-2023 程序员阿雨
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式