java_3

呵呵,说到java,就自然要联想到java的一大堆宣传的优点了,集中在一下三点:跨平台,网络移动,安全性。第一个想到的是跨平台,可惜,这个优点我觉得显得很俗气,真的没什么骄傲的。从辨证角度看,它也就是做了一个抽象嘛,从软件设计角度看,它也就是多做了一个层。哦,不是,它还没有抽象这么伟大,就是多做了一层。安全性呢,还可以吧,就是那个类装载器比较有意思外,其他就没什么了,和网络移动一结合起来,安全性的漏病就来了,要用数字签名,可是数字签名本身就不是发展的很好。说起来,网络移动性这个优点算是最好的了,虽然这方面发展的比较慢,但是这个优点算是最有前途的了。
丫丫,都是个人见解,个人见解,不负责正确性。

唉,没有心思画图了,否则会形象些。下面模拟的介绍一下一个简单的java程序是怎么run起来的。在介绍这个之前,得说说了你一开始学习java就必须遇到的个实际问题了。就是所谓的JDK和JVM、java文件和class文件和jar文件、等等等等,,,

你先把class文件当机器语言看吧,具体的class文件和机器语言之间的区别在后面的java如何实现跨平台和网络移动性再说吧。现在是在说run一个java程序,也就是,你写好java文件,然后编译成class文件,然后放到JVM上去run就ok了,而你需要做的就是写java文件。如果只在这个层面上的话,那就伤了心了,难道不想知道完完全全的过程么?写代码要有一个信念,就是你所写的都是机器语言。就是你写了一行很简单的代码,它可以run出一个结果,但是你的理解层面要深到机器语言的层面,就是你写的那一行代码是如何经过编译连接后最后成为机器语言,最后如何把指令放到寄存器上去一条一条计算。

JDK,java语言开发的工具包,所谓的工具包,至少要有两个功能,一个是提供一些基础的类库给你用,一个是提供编译功能。一般的工具包都是提供这两个方面的功能,当然后面的编译功能是有很多扩展的,这个你可以到bin目录下去看。这是单纯的JDK,如果你要装一些集成的开发工具的时候,你会发现它会要你为这个工具设置一个JVM,但不需要设置JDK,这是当然的,工具本身都会配带JDK。

JVM,java虚拟机,就这个了,这个算是核心了。也就是上面说过的模拟机器,它模拟了一台物理机器,有它自己的内存等。所以你几乎可以不关注实际的物理机器了。从上面看,这样JVM至少需要一个硬盘一个内存和一堆的寄存器,这样就ok了,硬盘当然是不能模拟的,是物理机器的硬盘,内存模拟是一个什么概念呢?其实没什么神秘的,实际内存当然是借物理机器的,然后提供自身的一个管理模式对这些内存进行管理,这样就是一个模拟内存了(自己想象的),其中的核心是JVM提供的内存管理。寄存器呢?JVM也不用了,用了一个java栈来完成这个工作。这个也告诉了我们,很多的硬件功能是可以用软件来设计完成的。然后JVM完成什么工作呢?和物理机器联系一下,它不就是把class文件当成它的机器语言来run么?具体的细节后面会谈。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值