标签:解决方案 otl 负数 符号位 内部类 浮点数 ash bit clone
依托于Java虚拟机的语言
- Java - Ckojure - Kisp的方言 - Jython - 将python运行在JVM上 - Groovy - JVM上的脚本语言 - Scala - 专注于高并发解决方案 - Kotlin - 安卓开发首选
Java发展史
- 跨平台系统,Oak - Sun发布Java和HotJava产品 - JDK1.0,运行环境和开发环境,核心api,用户界面api,发布技术,jvm,使用Classic虚拟机解释执行 - JDK1.1 AWT,内部类,JDBC,RMI,反射,sun获得hotspot虚拟机 - Jython创造,目前已经可以运行Django了 - JDK1.2 兼容智能卡和小型消费设备,大型服务器系统,发布JSP/Servlet规范,Java分裂为J2EE,J2SE,J2ME,解释和编译混合执行 - JDK1.3 Hotspot成为Java默认虚拟机 - JDK1.4 Classic虚拟机淘汰 - JDK1.5 改名5.0,范型,注解,自动装箱拆箱,枚举,可变长参数,增强foreach - JDK1.6 开源OpenJDK,Hotspot是它的默认虚拟机 - 新语言Clojure出现 - Oracle收购BEA,得到JRockit虚拟机 - Scala:Twitter迁移大部分Ruby服务到Scala - Oracle收购Sun,准备规划整合Hotspot和JRockit虚拟机 - JDK1.7发布,新垃圾回收器G1,64位压缩指针,NIO2.0,增加invokedynamic指令 - JDK1.8 Lambda表达式 - JDK1.9 Java模块化
|
数据类型
原始
数字型:(byte 8bit ,short 16bit ,int 32bit,long 64bit)有符号,char 16bit 无符号,float 32bit,double 64bit
布尔型:boolean :true,false
引用
特性
跨平台
优秀的垃圾回收器
可靠的即时编译器
内容
虚拟机内部结构
虚拟机执行的字节码类型和功能
Class文件结构
类的装载,连接,初始化
整数在虚拟机中的表示
在计算机中整数用补码表示,虚拟机也是
概念:原码,反码,补码
原码:1符号位 + 其余二进制数
反码:符号位不变,其余取反
补码:负数补码= 反码+1 ,正数补码= 原码
补码好处:
统一数字0的表示,原码很难确定无符号数字0
简化整数的加减计算,正负数计算统一成加法。
|
浮点型在虚拟机的表示
IEEE754定义的浮点数格式
三部分:符号位 + 指数位 + 尾数位
float 32bit :1符号位 + 8指数位 + 23尾数位 s eeeeeeee mmmmmmmmmmmmmmmmmmmmmmm
浮点数-5 1 10000001 0100000000000000000000
符号为 1 ,负数
指数位 129
尾数位(实际上是24位) : e不全位0,前面加1=10100000000000000000000 ,全为0,则附加0
- 表示特殊数字 - 正无穷 - 负无穷 - NaN - 最大浮点数 - 最小规范化正浮点数 - 最小正浮点数 - 0
编译和调试虚拟机
作用
得到一个debug版本,支持更多虚拟机参数
用于虚拟机代码单步调试
安装jdk版本控制系统mercurial变幻莫测,download; centos :yum install mercurial
OSX安装:brew install mercurial
拉取源码:
|
标签:解决方案 otl 负数 符号位 内部类 浮点数 ash bit clone
原文地址:https://www.cnblogs.com/fubinhnust/p/11956031.html