深入理解java虚拟机第一章:走近java

本章主要讲的是java语言的发展历程,1996年才有的java(我94),09年4月,在jdk1.7刚出来两个月sun公司到被orcal收购了。其中java开源后有个openJDK的组织管理这些源码,openJDK和jdk1.7除了注释不同,其它基本一样。虚拟机从1.3开始默认使用hotSpot虚拟机,是一个小公司开发的,被sun公司看中了,然后就收购了这个,高手在民间啊这是,其它的也都不重要了。

jdk和jre的区别
jdk包括:java程序设计语言(估计说的就是代码),api类库(估计是那些jar包,javase里提供了完整又核心的api),虚拟机;(开发用的)
jre包括: api类库,虚拟机;(运行用的)

java个版本的技术代表:
jdk1.0:虚拟机、applet、awt
jdk1.1:jar文件格式、JDBC、javaBeans、RMI,内部类、反射
jdk1.2:EJB、Java Plug-in、java IDL、swing,staticfp关键字、collections集合
jdk1.3:Timer API、JNDI、CORBA IIOP、java 2D、javaSound
jdk1.4:正则表达式、异常链、NIO、日志类、XML解析器、XLST解析器
jdk1.5:自动装箱、泛型、动态注解、枚举、可变长参数、foreach循环,内存模型、concurrent包
jdk1.6:动态语言支持、提供编译api、微型http服务器api,改进锁和同步、垃圾收集、类加载等算法
jdk1.7:新的GI收集器、加强对非java语言的调用、语言级模块儿化支持、升级类加载架构
未完成的项目:Lambda、jigSaw、coin

64位虚拟机
64位比32位运行要付出额外的代价,由于指针膨胀和数据类型对齐补白的原因,多消耗内存,性能下降。sun公司给出的应对是:普通对象指针压缩、解释器解释字节码时会植入压缩指令

最后是实战:自己编译JDK
我看了看步骤,然后心事重重地抽了支烟,仔细想想还是算了
把步骤记下来,没准以后可以吹牛:window编译jdk
1.下载Cygwin,安装,在windows环境模拟linux环境(什么鬼??)
2.安装c++编译器
3.下载FreeType,字体渲染库
4.DirectX 9.0
5.MSVCR100.dll 配置到环境变量里去

64位和32位是什么鬼?内存又是什么?地址总线数据总线?寻址?硬件如何存储?电位?磁?0和1?几个电灯泡?与和非?。。。。往下想真的太深了太深了

你可能感兴趣的:(面试宝典)