杂谈Java的成功
来源:互联网 发布:金融网络销售干什么的 编辑:程序博客网 时间:2024/04/27 16:09
最近很烦躁, 很久以前就想总结一些东西, 但是还是拖延到现在来完成, 原因有很多. 与其谈原因, 倒不如说我很懒惰. 但当空闲下来要写时, 却不知从那个突破口开始. 如此, 只好瞎谈了. 目的只有一个, 分享自己的了解, 与和我一样漂泊在异乡的同胞们探讨技术和生活. 偶尔, 也可以聊聊人生. 就此打住. 扯远了.
谈到Java, 大多数人想到的肯定是编程语言, 的确, java是一种面向对象的高级语言,它提供面向企业级的应用程序的解决方案, 所以, 近10年来, 它盖过了C,C++而一跃成为最火爆的编程语言. 编程语言最新排名Top1.
Java平台有两个版本, Java SE(标准版), EE(企业版)。 SE提供了基于Java编程的核心, 包含JDK和JRE(他们两者的关系就不描述了),JRE, java runtime environment, 运行时环境,提供运行java程序的必要环境, 包含JVM,核心类库,API, 工具库,其他集成环境类库以及用户接口工具包, JDK除包含JRE外, 还包含其他的开发工具和高级API, 例如: 编译器,RMI,jar, JPDA等. EE 提供了基于web编程的很多java组件, 用来为简化企业级应用程序开发的解决方案. 如: JSP ,Servlet, Portlet, JDBC, EJB等. Java成功的原因 ?
为什么是java, 这个问题已经很透明了. 上面提到的这些可重用组件是Java的成功的一部分. 它结合目前很多知名的OpenSource 软件, 使企业的开发已变得非常敏捷.
其次, Java的平台无关性也是很大一部分原因, "Once written, Running anywhere", 编译一次, 到处运行. 不依赖任何平台的Java应用程序. 这个决策为java的发展扫平了依赖操作系统的障碍, 聊到这里, 先给个结论. "Java是半编译半解释的语言" . 当我们写完Java源文件.java文件后,
1. 在java编译环境中, java 编译器会将.java文件编译成.class的字节码中间文件. 编译完成的class文件可以通过本地或者网络在jvm中执行.
2. 在JRE中, Class Loader决定了类的加载顺序. 在加载一个类时, classloader会verify这个类是否遵循java语言规范,这当中会导入java的基础类库进行process.
3. 校验失败, 抛出runtime exception。
4. 校验成功后, 接下来会传递到JVM中的Java解释器, java解释器的目的是将该class文件translate为目标平台处理器能设别的机器码。
这种编译方式是java跨平台运行, 平台无关性的原因。 还有一种Just in time compile 即时编译. 和C++一样, 将java 源代码编译成和本地平台一致的机器码. 不需要通过jvm解释器的翻译就能直接运行的机器码.
第三, java是面向对象的高级语言, 吸收了C, C++的很多高级特性, 又fix了很多在c++上让编程人员很头痛的问题(e.g. 内存管理, Java中用LocalThread实现的GC可以管理不再被使用和没有引用的对象,执行垃圾回收.释放资源,内存). 具有浅显易懂的语法, 符合面向对象的三大特征(封装, 继承, 多态)[也有人认为Java不是纯面向对象的语言, 在周爱民同志的《大道至简》这本书里面有描述, 不过多阐述]. 使用起来极其方便.
第四, Java有一个很庞大的社区组织, 也驱动了JSR对标准化技术的定义和修订. 使更多现实的原理和理念一直在注入,不断的更新.
最后一个, 也是Java做得很好的很重要的一个因素, Java API, Java有非常丰富的api, 个人觉得最重要的还是对集合的支持[以后将会单独用一篇文章来叙述集合]
- 杂谈Java的成功
- JAVA杂谈
- Java 杂谈
- java杂谈
- java杂谈
- Java杂谈....
- java杂谈
- java 杂谈
- 项目成功与失败杂谈
- 项目成功与失败杂谈
- Java的心路历程——杂谈向
- 关于java I/O的杂谈
- 工厂模式杂谈&java的迭代器
- 工厂模式杂谈&java的迭代器
- 创业杂谈——一位开发眼中创业成功的条件
- 杂谈:Egret 只需要一个成功机会
- JAVA 杂谈(1)
- JAVA 杂谈(2)
- JAVA中String对象的比较
- runtime error 的情况
- linux中的信号量详解
- My first written in Blog
- 女票贩被发明后脱衣撕咬民警(图)
- 杂谈Java的成功
- 终于
- Cocoa.Programming.for.Mac 翻译
- param name标签
- 2011.09.28 ADO.Net基础
- SMart Tv ----最流行电台
- 外食孕妈咪的营养计划
- 彩民中2500万大奖不敢告知家人
- 学习geoserver的网址