文档章节

java技术体系

qingfeng哥
 qingfeng哥
发布于 2014/06/04 12:02
字数 928
阅读 344
收藏 2
点赞 0
评论 0

深入理解java虚拟机之java技术体系,有些个人理解,不当之处错误之处请放肆批评。

计算机中最终能执行的是 机器码,相关概念:复杂指令集、精简指令集,汇编

有限的指令集的反复组合,(三生万物)便可操控复杂逻辑应用,但编写的难度非常之大,我们需要近似人类说话办事的方式来操控....

一个不太恰当的类比:人类语言,全世界的语言种类纷繁复杂,各个国家有各个国家的主语言,除了主语言还有各种听不懂的方言,但最终本质都是要 沟通表达,而且我们知道语种之间可以互相翻译。

if  有一位来自米国的pp小姐找我给她整电脑,小姐会english、德语,法语,。。。。。唯独不懂汉语,我这么爱国,只会汉语。咋办?这时就得找个翻译了,灯泡似得翻译将pp小姐的需求翻译成汉语告诉我,我才知道怎么动作才能满足她噻。

then 在计算机世界,计算机只理解机器码,我们些苦逼的程序猿会各种高级程序语言,但几乎不懂机器码,咋办?对了就是那个翻译了,各种高级语言都有各自的翻译-编译器,将我们写的高级语言程序,编译成计算机能理解的机器码。这个编译器老重要了。于是有门课叫 编译原理,虽然我没学过,但大概是讲编译器怎么将写好的程序翻译得信达雅,高速精简吧,如果你能自己写个编译器出来,然后性能速度还可以,OK,你发达了。

于是出现了各种程序员能很好地理解和编写的 高级语言,

但是还有问题:物理机器千差万别,虽然已被操作系统进行了一层抽象,但有些编译器最终翻译出来的机器码并不能兼容这么多的物理机差异,来一种机型就得针对这种机器重新编译。这时 java语言和java虚拟机救世主般的出现了,java系的理想是

一次编写,到处运行

通过java虚拟机的抽象封装屏蔽

Java虚拟机可以看作是一台抽象的计算机。如同真实的计算机那样,它有自己的指令集以及各种运行时内存区域


  sun定义的java技术体系包括:
java 虚拟机
java class文件 - 字节码文件格式
java 程序设计语言
java API类库(自带的、开源的、商业的)
以上组合为 JDK,支持Java开发的最小环境


JRE=虚拟机+JavaSE API类库=支持Java程序运行的标准环境

根据java服务的重点领域分为:JavaCard  JavaME   JavaSE    JavaEE

Java的前身是1991年gosling发起的试图可以在各种电子产品上运行的语言oak

java诞生于1995年5月23日,当时哥已经10岁了

96年jdk1.0 -到 97年jdk1.1采用的是纯解释执行的Java虚拟机sun classic vm ,是跟php的zend虚拟机一样吧?

98年jdk1.2之后的开始默认使用HotSpot虚拟机,内置了即时JIT编译器,中国却特大洪涝

2000年的jdk1.3 2002年的1.4渐渐成熟稳定

04年jdk1.5,大量语法易用性、jvm内存模型、并发包改进

06年jdk1.6

09年被Oracle收购

11年jdk1.7

14年jdk1.8


© 著作权归作者所有

共有 人打赏支持
qingfeng哥

qingfeng哥

粉丝 44
博文 122
码字总数 63706
作品 0
湛江
技术主管
用大白话告诉你啥是Java开发

Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此...

远方Java ⋅ 06/14 ⋅ 0

Java开发学习之三版本简介 java编程

  Java编程语言,在更迭迅速的互联网领域多年屹立不倒,足以得见Java这门语言旺盛的生命力,因此,会有很多想要进入互联网领域的朋友,想要学Java来转行开发。但是,所谓“隔行如隔山”,j...

老男孩Linux培训 ⋅ 06/05 ⋅ 0

书单丨5本Java后端技术书指引你快速进阶

一名Java开发工程师 不仅要对Java语言及特性有深层次的理解 而且需要掌握与Java相关的 框架、生态及后端开发知识 本文涉及多种后端开发需要掌握的技能 对于帮助提高开发能力非常有帮助 NO.1...

Java高级架构 ⋅ 05/30 ⋅ 0

Java编程基础知识点和技术点归纳

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互...

Java小辰 ⋅ 05/23 ⋅ 0

作为一名java程序员你的薪资为什么上不去?

不管是开发、测试、运维,每个技术人员心里多多少少都有一个成为技术大牛的梦,毕竟“梦想总是要有的,万一实现了呢”!正是对技术梦的追求,促使我们不断地努力和提升自己。 很多人在问我,...

java高级架构牛人 ⋅ 05/07 ⋅ 0

我们在谈高并发、分布式,其实都在谈什么?

2018年,互联网行业风起云涌,IT工程师如果仅凭传统开发思维,无法突破固有知识体系,终将会被社会所淘汰。既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的领导型人物—...

技术琐话 ⋅ 06/20 ⋅ 0

Java学习---Java简单认识

前言 小编在学习Java方面的基础知识,发现里面有很多是结合之前的语言的特点发展过来的,不同的地方是,Java有它自己的发展和特点。下面小编先简单地做一下总结,结合看过的1-2章的J2SE视频,...

m18633778874 ⋅ 04/01 ⋅ 0

Java程序员必读书单,家族又添新成员

点击关注异步图书,置顶公众号 每天与你分享IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书。 ——异步小编 有些革命出其不意地吸引了全世界的眼球。Twitter、Linux操作系统和...

异步社区 ⋅ 05/09 ⋅ 0

RMI:Java中的分布式计算框架

RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体现在它强大的开发分布式网络应用的能力上,是纯Java的网络分布式应用系统的核心解决方案之一。其实...

qq_39521554 ⋅ 05/15 ⋅ 0

有一到五年开发经验的JAVA程序员需要掌握的知识与技能!

JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用。有编程高手认为,JAVA也好C也好没什么分别,拿来就用。为什么他们能达到如此...

java高级架构牛人 ⋅ 06/02 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部