coreJava第一章

第一章 Java程序设计概述

 

Java的优越:赏心悦目的语法,易于理解的语义

                      庞大的库功能齐全的执行环境。

                      考虑到兼容现有环境,也有一些累赘保留下来

 

Java白皮书

 

简单性:Java剔除了c加加中的累赘语法(但同时具有大型的功能齐全的库)

               Java的目标之一是可运行于小型独立机器的程序。其解释器以及基本类仅为40kb,

                                                                                                   基本标准类库加上线程支持为175kb

                                                                                                   嵌入式的Java micro edition更小

 

面向对象:面向对象是一种成熟的技术,Java与c加加旗鼓相当。

                   但Java使用更为简单的接口概念实现多重继承

                   运行时,Java也有更为丰富的自省功能

 

分布式:Java有一个丰富的例程库,用于处理网络协议,使Java程序非常便捷地访问网络文件

 

健壮性:Java投入大量精力进行早期和后期(运行时)问题检测,Java编译器能检测出许多其他语                                     

             言运行时才能发现的问题

               Java的指针模型消除了重写内存损坏数据的可能性

 

安全性:Java为适用分布式,网络环境,在安全性上投入大量精力,防范:运行时堆栈溢出

                                                                                                                              破坏自己进程空间之外的内存

                                                                                                                              无授权读写文件

               任何Java代码都无法离开沙箱

               虽然没有想象得难么成功,但确实非常超前(在当时)

               Java程序开发现在更加谨慎,不再信任远程代码(除非数字签名和用户同意)

 

体系结构中立:编译器生成与特定计算机体系无关的字节码文件,在不同体系的Java系统解释执行,

                          也可动态地将部分代码翻译成本地系统语言,提高执行效率

                          虚拟机技术非Java首创

                          Java虚拟机还可以监测指令序列的行为,增强安全性

 

可移植性:Java规范不依赖具体实现

                   数据类型大小不变,解决了代码移植的主要问题

                   二进制数据传输格式固定,解决了字节顺序问题

                   字符串使用标准unicode格式存储

                   除了用户界面方面力有未逮,Java库在其他功能上不必担心不同系统的底层

                   且Java的api往往比原生api质量更高applicationprogramminginterface

 

解释型:虚拟机技术的特色,代码的使用是一种轻量级,增量式过程,使开发快捷可探索。

 

高效率:解释后的字节码性能已经令人满意

               但为了更高效率,字节码可在运行时动态地翻译成特定cpu机器码

               现在即时编译器已经具有很高性能,却比传统编译器提供更多信息,实现更多功能

               比如监控常用代码,进行速度优化。

               更为复杂的优化,消除函数调用,即时内联

 

多线程:Java是第一个支持多线程的主流语言,在当时很超前

                  但开始是因为网络响应慢,多线程以保证用户界面不会冻住

                现在则因为摩尔定律行将完结,我们不追求更快而是更多的处理器

                多线程带来更好的相应交互和实时行为,

                虽然多线程程序设计不易,但Java在这方面很重视且出色

 

动态性:Java更加具有动态性,能适应不断发展的环境

               Java可以向库中添加新方法,实例变量而不影响客户端

               Java很容易找出运行中的类型信息

               当需要将代码添加到正在运行的程序中时,动态性很重要

               为便于运行程序的演进,Java设计者将此特性引入主流程序设计语言

 

Java发布不久,微软发布了j加加,拥有与Java几乎相同的语法与虚拟机。

如今微软不再支持j加加,取而代之的是c#,与Java语法相似,但虚拟机完全不同

 

用户从网络上下载字节码并运行,在网页中运行的Java程序称为applet

在网页中插入一个applet就像插入一个图片

applet响应用户操作,在运行它和提供它的计算机之间传递信息

但当时因为老旧版本的浏览器使用老旧版本的Java,难于运行新版本下的applet,

所以为了得到网页上的动态效果,adobe的flash技术流行起来

且后来Java在安全方面遭遇挑战,实现applet有了一定的限制。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值