一、计算机语言的发展史
1、第一代语言(只有机器能读懂,人根本读不懂)
纯机器语言
2、第二代语言(机器能读懂,人可以读懂,但是很难懂)
汇编语言(符号语言)
3、第三代语言(机器能读懂,也非常便于人类阅读)
C面向过程的语言C++面向过程/对象的语言Java跨平台的纯面向对象的语言
二、Java的发展史及Java体系
2.1、Java的发展史
Java之父:James Gosling(詹姆斯·高斯林)
1995年,SUN公司发布了JDK1.01998年,发布了JDK1.2,正式更名为Java2后续JDK1.3、1.4、1.5、1.6、1.7目前最细版本的是JDK1.8,最稳定版本JDK1.7,覆盖面最广的版本JDK1.6
Java发展历史中的几个重要版本:
Java 1.2 从该版本开始,把Java分成JavaSE、Java ME、JavaEE三部分。
Java 5 2004年9月30日18:00PM,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0。
Java 6 Java的各种版本更名,以取消其中的数字"2":J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。
2009年04月20日,甲骨文74亿美元收购Sun。取得java的版权。
 
1.2 Java技术体系
Java技术分为三个体系:
Java SE(J2SE)(java平台标准版)开发桌面应用程序
Java EE(J2EE)(java平台企业版)开发面向Internet的应用程序
Java ME(J2ME)(java平台微型版)开发运行于智能设备的程序。
1.3 Java语言的特点
面向对象的语言
跨平台的语言
安全健壮
没有指针操作
垃圾自动回收机制
多线程
分布式
1.4 Java程序的运行机制
Java虚拟机(Java Virtual Machine)
内存回收机制(Garbage Collection)
4.2、Java是如何实现跨平台运行的?(一次编译,处处运行)
4.2.1、Java程序运行需要经历的两个时期
编译期(Java编译器):把.java源文件编译成.class字节码文件
 
运行期(Java虚拟机):将.class字节码文件解释成计算机可以读懂的计算机语言
 
4.2.2、实现跨平台,完全得益于Java虚拟机
 
Java虚拟机可以理解成一个可以解释字节码文件的中央处理器
对于不同的操作系统,Java提供了不同的虚拟机
Java虚拟机屏蔽了底层运行平台的差异,真正实现了“一次编译,处处运行”
4.3、Java的内存机制和垃圾回收机制
4.3.1、Java的内存机制
电脑的内存机制
 
Java的内存机制
 
4.3.2、Java的垃圾回收机制
对Coder(程序员)来说,java是友好的,java不需要考虑内存未及时回收,造成资源浪费。从而导致应用程序出现泄露的情况,导致引发系统崩溃。
 
Java程序中,自动进行的
 
关于内存释放时机:
栈:只要解除使用,及时回收 (小而快)
堆:当java为空闲状态时,会便利堆内存释放,解除使用的内存空间(大而慢)
五、JDK和JRE
5.1、JDK ( 就是Java SDK ) Java Development Kit
是 java提供给开发者用于开发java软件的开发工具包
Java Runtime Development Kit
5.2、JRE
Java提供给客户用于运行java软件的环境
5.3、总结
Jdk是给开发者用的;
jre是给用户用的。
Jdk包含jre

原文:https://blog.csdn.net/s402340355/article/details/77688575

JAVA诞生历史【转载】的更多相关文章

  1. Java的诞生历史

    Java帝国的诞生 1.1972年C诞生 贴近硬件,运行极快,效率极高 操作系统,编译器,数据库,网络系统等都采用C语言 但是,它的指针和内存管理给程序员安上了"枷锁".它的指针没 ...

  2. Java的历史和大事记

    Java的历史 在上世纪90 年代初,sun 公司有一个叫做Green 的项目,目的是为家用消费电子产品开发一个分布式代码系统,这样就可以对家用电器进行控制,和它们进行信息交流.詹姆斯·高斯林(Jam ...

  3. java笔试面试(转载)

    Java面试笔试题大汇总(最全+详细答案) 2016-02-01 15:23 13480人阅读 评论(8) 收藏 举报  分类: Java面试题(1)  声明:有人说, 有些面试题很变态,个人认为其实 ...

  4. Java多线程学习(转载)

    Java多线程学习(转载) 时间:2015-03-14 13:53:14      阅读:137413      评论:4      收藏:3      [点我收藏+] 转载 :http://blog ...

  5. java各历史版本官网下载

    java各历史版本官网下载: http://www.oracle.com/technetwork/java/javase/archive-139210.html

  6. Java 诞生的趣事

    ​ Java 命名的由来 Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名.Java语言中的许多库类名称,多与咖啡有关:如JavaBeans(咖啡豆).NetBeans(网络豆)以及Object ...

  7. JavaScript 的诞生历史

    看到一篇介绍JS诞生历史的文章,很有意思,文章里描述了很多的历史细节 https://webdevelopmenthistory.com/1995-the-birth-of-javascript/

  8. 对“Java”的诞生历史、特点、定义等HR常问的简单题

    本人是一个学习Java的新手,在学习了Java以后,对Java的一些总结. 这里共有12点对Java的简单的阐述,如果解释的不怎么样请大家谅解哈. 1.首先我们来看一看,在Java之前的有那些打牌语言 ...

  9. Java基础笔记(1) 语言 JAVA的历史 Java的搭建环境

    本文除了搭建是重点,其他的都当阅读小说一样去看就好了,不想看可以直接抓住重点,我会改变颜色勾出重点! 英语是人与人交流沟通的重要方式之一.JAVA:是人与计算机沟通交流重要方式之一.我们除了用java ...

  10. Java 发展历史

    Java自1995诞生,至今已经20多年的历史. Java的名字的来源:Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名.Java语言中的许多库类名称,多与咖啡有关,如JavaBeans(咖啡豆 ...

随机推荐

  1. 详解 Gulp4 和 Gulp3 的区别

    最近在开发几个网站,为了优化一下前端代码,就复习一下gulpjs,之前工作gulp用的版本比较老,但是今天看了新的版本,新的语法出了一下,但是为了时间,我决定使用之前gulp3的旧版本,后面发现自己环 ...

  2. 基于Docker安装的Stable Diffusion使用CPU进行AI绘画

    基于Docker安装的Stable Diffusion使用CPU进行AI绘画 由于博主的电脑是为了敲代码考虑买的,所以专门买的高U低显,i9配核显,用Stable Diffusion进行AI绘画的话倒 ...

  3. 反射_Class对象功能概述-反射_Class对象功能_获取Field

    反射_Class对象功能概述 * Class对象功能: * 获取功能: 1. 获取成员变量们 * Field[] getFields() :获取所有public修饰的成员变量 * Field getF ...

  4. 文盘Rust -- 给程序加个日志

    作者:贾世闻 日志是应用程序的重要组成部分.无论是服务端程序还是客户端程序都需要日志做为错误输出或者业务记录.在这篇文章中,我们结合[log4rs](https://github.com/estk/l ...

  5. Jenkins搭建与数据迁移实践

    概述 本文主要介绍内容如下: 1.使用Docker搭建Jenkins 2.迁移原Jenkins数据到新搭建的Jenkins中 3.在Jenkins容器内部配置Maven的私服配置 4.在Jenkins ...

  6. 【CTO变形记】驱动力的选择

    前言:每个人做事,都有着各种动机在里面,有时候看似不可理解的行为或者选择,初一看,可能是'认知',其实深层次实际是内在驱动力使然.例如,当一个人找我们问各种问题的时候,我们往往会先问'你的意图'是什么 ...

  7. JavaScript所有内部属性列表 [[Configurable]] 等

    简介 据MDN文档所说内部属性是由 [[···]] 包裹的内容,于是我们去复制 ECMA-262 标准的所有文字部分,然后用正则统计 [[···]] 的出现并打印 效果 代码 经老大提醒,这里的正则并 ...

  8. 【转载】JAVA - 解决:Java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

    抄:https://www.cnblogs.com/sunylat/p/13339507.html 问题原因: 高版本的JDK中不包含javax.xml.bind包了! 解决方法: 1,如果是mave ...

  9. 【unity萌新第一步】Unity的Hello World(适合小白)

    Unity萌新的第一步:使用unity写第一个Hello World IT界有个笑话:"我擅长用各种语言写Hello World".我讲这个笑话的目的是,指出:写一个HelloWo ...

  10. Vue29 自定义事件及消息总线

    1 简介 组件自定义事件是一种组件间的通信方式,方向是 子组件====>父组件. 使用场景:A是父组件,B是子组件,如果要把B的数据传给A,可以使用props加回调函数实现或者自定义事件实现. ...