分享
 
 
 

The Java Programming Language Notes

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

1,static member

可使用该类对象的空引用来引用该类static member

SomeClass obj = null;

obj.staticMethod();

obj.staticData = 1;

用对象引用静态成员是不被推荐的,但为什么不像C#那样禁止掉呢?

2,多重继承

面对从多个接口继承而来的签名相同的方法,子类似乎只能提供一份实现,这样语义的正确性是如何保证的呢?C#可以在子类中为从多个接口继承而来的签名相同的方法各提供一份实现

3,局部类、匿名类、接口内部类

语言在设计方面提供的创新的语法设施,唯一的问题是不要滥用

4,混乱的数组

似乎违反了那句“装苹果的篮子不是装水果的篮子”,在需要基类数组的地方可以传递子类数组,丧失了编译期类型安全性,通过运行时异常来避免错误

5,求值顺序

明确规定了从左至右,善莫大焉

6,作用域

局部变量、参数能够屏蔽成员变量

局部变量不能与参数同名

更加局部的变量不能与外围局部变量同名

善莫大焉

7,逗号表达式

没有逗号表达式,for里面那个不算

8,break label

功能强大,代替flag,goto

9,异常

相对于返回错误代码来说,异常就是那个层次的AOP

10,异常声明与返回值的不同待遇

相同的是都不能做为overload的依据,不同的是override时,异常声明可以被放宽为子类,返回值却不能基于同样的理由放宽为子类

11,类锁与实例锁

互不相干

12,服务端同步与客户端同步

前者主要保护自己的内部数据,后者主要保证调用序列

13,main

Everything has a begin, has an end-------Matrix Revolution

我猜中了开头,却猜不到这结局----仙履奇缘

Java程序以main始,却未必以main终,直到最后一个user线程退出;?假若main启动了一个user线程,该线程又启动了一个,又启动了一个,则虽我之死,有子存焉;子又生孙,孙又生子;子又有子,子又有孙。子子孙孙,无穷匮也

先有鸡还是先有蛋?人的起源,生命的起源到底如何?或许有一天人们追溯到极点,却发现不过是JVM启动了main,世界毁灭时,不过是JVM崩溃了

扯远了

14,J2SE 1.5的倒退

静态引入 Static Import

格式化的输出 Formatted Output

格式化的输入 Formatted Input

不定参数 Varargs

简直不敢相信,宁肯学C也不学C++

15,Proxy

当年C++中引入template,只是为了Generic Programming,却无意中发现了其Generative Programming的强大功能;不知道Java中的Proxy最初的意图是什么,却引起了Generative Programming另外一种形式--AOP的风潮

16,ClassLoader

在程序中开个后门,某个类的字节码从我的个人网站上下载,别被客户发现,以后想起来就改改,呵呵

17,语言、库、平台,模糊的边界

字符串连接操作符“+”,是语言的一部分还是库的一部分?

序列化/反序列化时那个可被虚拟机调用的私有的方法,是语言的一部分还是库的一部分?

SoftRefrence、WeakRefrence等被虚拟机用来处理对象引用这样的核心语言特性的类,是语言的一部分还是库的一部分?

Java不是平台无关的,它本身就是个平台;不是说它不好,只是和传统的语言有这样一些区别

18,@deprecated

比起XDoclet等工具,.Net的属性等特性,它更早的触动了Java的神经:注释居然影响了编译器的行为!总算发展出了带有标注的Java

19,override的不同理念

Java:只要访问权限允许,就可以调用重写的方法,不管子类对象构造出来没有

C++:只要子类对象构造出来了,就可以调用重写的方法,不管访问权限

造成的后果就是:

Java:在基类构造函数里调用方法,只要子类有权限覆写,就会调到子类的实现

C++:在基类构造函数/析构函数里调用的方法永远都是基类的实现,不会调到子类;在其它方法里面永远都是调到子类的覆写实现,不管是不是private

20,IO

字节是没语义的,因此叫Stream

字符是有语义的,因此叫Reader与Writer

需要将没语义的适配为有语义的,叫InputStreamReader,OutputStreamWriter

实用的,叫DataXXX,对象序列化的,叫ObjectXXX

21,java.io.File

放错了地方,实际是文件系统的抽象,跟IO没什么太大关系,应放到系统包里,跟Thread之类并列

22,Collections

一般的设计原则是子类重写方法的前置条件应弱于父类方法,但Collection及其子类适时的没有遵守这个原则,以此证明了任何原则都有适用范围;Collection的设计目的是尽可能通用,而不是运行时的多态,你仍然需要选择合适的具体的数据结构,尽管它有时只是通过Collection接口来引用

23,Iterator

不同于STL,Iterator提供了内部安全的Remove(),部分还提供了Add();但遍历终归是不安全的,又一次不同于STL,Iterator自己能感知外界变化,抛出异常来自我保护,而不是产生未定义行为

(The C# Programming Language Notes)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有