一、计算机语言的发展史
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. 编程思想转换-Lambda表达式

    编程思想转换 做什么,而不是怎么做 我们真的希望创建一个匿名内部类对象吗?不.我们只是为了做这件事情而不得不创建一个对象.我们真正希望做的事情是︰将run方法体内的代码传递给 Thread类知晓. 传 ...

  2. LinkedList集合-Vector集合

    LinkedList集合 java.util.LinkedList集合数据存储的结构是链表结构.方便元素添加.删除的集合.LinkedList是一个双向链表,那么双向链表是什么样子的呢,我们用个图了解 ...

  3. IDEA本地运行无法找到scope为provided的包

    异常描述 java.lang.ClassNotFoundExcetion 解决方案 Run->Edit Configrations 弹出如下窗口 1.选中你的应用,2.点击Modify opti ...

  4. Flink程序打包

    在基于 Flink DataStreamAPI 进行流式数据处理应用时,我们可能希望将依赖和应用程序分别打包,如此便于发布和问题定位.在较新版本的 Flink版本中推出了application模式,这 ...

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

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

  6. 《Terraform 101 从入门到实践》 第二章 Providers插件管理

    <Terraform 101 从入门到实践>这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看. 不怕出身低,行行出状元. 插 ...

  7. 重学SpringBoot. step4 Redis的应用

    Redis的应用 Redis支持的七种数据类型:字符串.散列.列表(链表).集合.有序集合.基数和地理位置,具体用Java怎么操作其实可以直接看redisTemplate的源代码. Redis引出来的 ...

  8. Vue19 常用指令及自定义指令

    部分转自:https://blog.csdn.net/weixin_58032613/article/details/122759818 1 常用指令 1) v-bind 单向数据绑定 https:/ ...

  9. idea debug---启动超级慢,提示”Method breakpoints may dramatically slow down debugging“的解决办法

    https://blog.csdn.net/hanqing456/article/details/111878982 1.问题项目正常启动的时候没问题,debug模式就卡住了,很久不动.我推测是哪个断 ...

  10. Linux 用户组管理

    用户组 群组是大家都熟悉的东西,群组有群主,也就是创建者.群管理员有一定的管理权限,比如上传群文件.管理成员等权限:群成员也有一定的权限,比如下载群文件. 私有组 一般来说,每一个用户都有自己的一个初 ...