分类: 建站教程
发布: zhushican
浏览: 次
日期: 2014-08-15
很多关于Java的议论都是关于applet的,实际上Java也是一种通用的编程语言,其他语言能够解决的问题,Java一样可以解决——至少是理论上如此。而且正如我们先前所指出的,它在解决绝大多数的客户/服务器问题的时候,效能更好。如果你放弃使用applet(同时也解脱了诸如不能向磁盘写东西的束缚),编写通用程序的大门就向你完全敞开了,你可以编写跟普通程序一样能独立运行的,无需web浏览器的程序。在这个领域,Java的力量不仅体现在其可移植性,而且还在于其可编程性。正如你所看到的,相比以前的编程语言,Java有比更多的许多能让你在短时间内创建健壮程序的特性。
分类: 建站教程
发布: zhushican
浏览: 次
日期: 2014-08-15
如果不需要这种内部类对象和宿主类对象之间的联系,那么你可以把内部类定义成static的。这通常被称作嵌套类。要想理解static用于内部类时的意义,你就必须记住,普通的内部类对象都默认保存它的宿主类对象,也就是创建它的那个对象的reference。但是当你声明内部类是static的时候,情况就不是这样了。
嵌套类的意思是:1、无须宿主类的对象就能创建嵌套类的对象。2、不能在嵌套类的对象里面访问非static的宿主类对象。此外,嵌套类同普通的内部类还有一点不同。普通内部类的成员数据和方法只能到类的外围这一层,因此普通的内部类里不能有static数据,static数据成员或嵌套类。但是,这些东西嵌套类里都可以有。
分类: 建站教程
发布: zhushican
浏览: 次
日期: 2014-08-15
C语言的错误处理可以说是一个臭名昭著并且常被忽略的问题——与其用它还不如双手合十,请求上帝。如果你正在开发一个大型的,复杂的程序,那么最糟糕的莫过于程序里边藏着一个不为人知的错误。当它跳出来的时候,你什么线索也没有。Java的异常处理是一种保证让你注意到错误的机制,一旦发生了错误,它就会有所行动。
很多传统语言都有固有的程序长度和难度的限制。举例来说,如果要很快地凑出一个解决某些问题的方案的话,basic回事一个很好的选择。但是如果程序有好几页长,或者问题的难度超出了这个语言通常能解决的限度,这个任务就不那么愉快了。语言不会告诉你,是它让你陷入失败的境地,即使有你也不会理会的。你不会说,“我的basic程序太长了,我应该用C语言来重写一遍”。相反你会想方设法再塞几行代码进去,以期能增加一些功能。这样就招惹了更多的麻烦。
分类: 建站教程
发布: zhushican
浏览: 次
日期: 2014-08-15
Java看上去像C++,所以很自然有人会认为Java会取代C++。但是C++仍然有一些Java还不具备的特性,而且虽然有很多保证说有一天Java会和C++一样块,甚至更快,但时至今日,我们看到的都只是一些稳步的改进,而不是显著的突破。此外人们对C++的兴趣并为消退,所以我认为C++不会很快退出。
Java的优势的体现在一些与C++校友不同的领域。C++是一种没什么固定模式的语言。当然,为了解决某些特定的问题,人们已经用很多方法对它做了改造。有些C++工具将类库,组件模型,以及代码生成工具组合在一起,把它打造成专门用来开发供最终用户用的,窗口应用程序的工具。
分类: 建站教程
发布: zhushican
浏览: 次
日期: 2014-08-15
静态存储,静态在这里的意思就是在固定的位置(尽管它还是在RAM里面)。静态存储里面的数据在整个程序的运行期间都能访问到。你可以用static关键词来指明对象中的某个元素是静态的,但是Java对象本身是决不会放到静态存储中去的。
固定存储,常量值通常直接放在程序里,这样它们就不会被改动了,因而也更安全。有时常量还能为自己设置界限,这样在嵌入式系统中,你就能选择是不是把它们放到ROM里面去。
非内存的存储,如果数据完全独立于程序,那么即使程序不运行,它也应该也还在,即使程序失去了对数据的控制,它也仍然还在。两个最主要的例子是“流对象和对象”。大致上说,前者是一种会被送往另一台机器的,由对象转化而成的字节流;而后者是保存在磁盘上的,能在程序中止之后仍保存对象状态的文件。这类存储的奥妙就在于,对象被转化成了某种能保存在其它介质上的东西,但是要用的时候,又能在内存里重建。Java提供了轻量级的支持。未来Java可能会提供更为完整的persistence的支持。
分类: 建站教程
发布: zhushican
浏览: 次
日期: 2014-08-15
实际上所有编程语言都有数组,使用C和C++的数组是有风险的,因为在它们的眼里,数组只是一段内存。如果程序访问到数组之外的内存,或者还未初始化就使用了这些内存(很常见的编程错误),那么很有可能会发生一些无法预料的后果。
安全性是Java最看重的目标之一,因此许多困扰C和C++程序员的问题在Java里面已经不复存在了。数组肯定会被初始化,而要想访问数组以外的内存也已经不可能了。边间检查的代价就是,每个数组都会多占用一些内存,而且程序运行的时候也会有些开销。不过设计者们相信,与安全性的增强和编程效率的提升相比,这点代价值。
分类: 建站教程
发布: zhushican
浏览: 次
日期: 2014-08-14
无论是哪种容器,你都得有办法既能放东西进去,也能拿东西出来。毕竟,容器的主要任务就是存放对象。ArrayList的add()就是用来放东西的,而get()则是把对象拿出来的办法。ArrayList很灵活,你可以随时提取任何东西,并且换一个下标,马上就能选择另一个元素。
但是,如果你深入下去,就会发现这么做会有一个缺点:要这样用的话,你必须预先知道容器的确切类型。可能刚开始的时候,你会觉得并不是什么问题,但是假设,你用ArrayList做了个设计,然后发觉,在这种情况下,选set才对,那你该怎么办?或者,你想写一段泛型程序,为了让它能不经重写就能同各种容器一同工作,它应该既不知道也不关心它要处理的是哪种容器,那么你又该怎么办呢?