学习java怎么开始

文章描述:-2022年4月13日发(作者:莫燕忠)学习java怎么开始1明确面向对象的范畴我们必须明确一个大方向,也就是说现在面向对象的编程范畴。尽管人工智能曾经有所浪潮(看看Borland为什么有TurboProlog),但未来5-10年工业界广泛承认并接受的将是面向对象式的编程。工业界目前最流行的面向对象编程语言就是C++和Java。所以基本上锁定这两个方向就可以了。而且完全可以同时掌握。2掌握Java

-

学习java怎么开始
2022年4月13日发
(作者:莫燕忠)

学习java怎么开始

1明确面向对象的范畴

我们必须明确一个大方向,也就是说现在面向对象的编程范畴。

尽管人工智能曾经有所浪潮(看看Borland为什么有TurboProlog),

但未来5-10年工业界广泛承认并接受的将是面向对象式的编程。

工业界目前最流行的面向对象编程语言就是C++和Java。所以基

本上锁定这两个方向就可以了。而且完全可以同时掌握。

2掌握Java的精华特性

掌握Java的精华特性的同时,一定要知道为什么。比如,

Interface和multi-thread。用interface是更好的多继承的模型,

而多线程则是设计到语言一级的重要特性。要完全理解interface

是为什么,用多线程又有几种常用的编程模型。

3开始进行设计

理解了语言的特性是为什么了之后,就可以试着上升到设计这个

层次,毕竟学习语言是要用的。目前比较好的开发模式是采用自定

向下的面向对象的设计,加上MVC的模式(你可以看一下我介绍的关

于MVC的内容)。首先要出最顶层的对象(这往往是最难的),然后

一层一层往下递归,记住每次应符合7+/-2的原则,因为我们人的

短记忆就是这样。一般有图形用户界面的应从界面开始设计。

4学习设计模式

有了基本设计模型后,可以学一些设计模式(DesignPattern)。

这是目前证明很有效的。比如体系结构模式(Layering分层,

Pipe/Filter管道或过滤器),设计模式(有很多,比如对象池

ObjectPool、缓冲池Cache等),编程模式(比如Copy-on-Write)。

懂了这些模式之后,就会对系统的整体结构有很好的把握,而学

术上也有倾向一个系统完全可以由各种模式组合而成。前面提到的

MT实际上就有好几种模式,掌握后就不用自己花很多时间去试了。

另外一个很重要的领域就是并行和分布式计算领域,大概有20种左

右。

5进行编程实践

接下来就不能纸上谈兵了,最好的方法其实是实践。一般教科书

上的例子并不能算是实践,只能算是让你掌握语言特性用的。而提

倡做实际的Project也不是太好,因为你还没有熟练的能力去综合

各种技术,这样只能是你自己越来越迷糊。

我认为比较好的方法是一些比较经典的例子,每个例子比较集

中一种编程思想而设计的,比如在我的实践当中,我曾经学习过一

个很经典的例子就是用Java实现的HotDraw(源自SmallTalk),你

可以用rolemodel或hotdraw在搜索引擎上一下,我记不大清楚

了。好象是个网站,上面有原代码和一些基本设计的文档。

另一个来源可以到是个不错的文档基地。从HotDraw上我学到了

什么是Framework,以及如何用rolemodel的方式来构造,这样我

就可以应用到其他的地方。顺便说一句,这个例子你绝对不会觉得

小,只会觉得大,并且他还是真正的商用的Framework。

6学习修改经典例子

结合前面学到的设计模式你就可以很好的理解这些经典的例子。

并且自己可以用他来实现一些简单的系统。如果可以对他进行进一

步的修改,出你觉得可以提高性能的地方,加上自己的设计,那

就更上一个层次了,也就会真正地感到有所收获。

好象以上谈的跟Java没什么关系,其实我们早就应该从单纯的

学习语言到真正的学习好编程的领域。学习技术是没有止境的,你

学习第一种语言可能要半年时间,以后每种语言都不应该超过两个

月,否则你会觉得学习语言是包袱,是痛苦。

7学以致用

学习是为了用的,是为了让你的程序产生价值,把握住这个原则

会比较轻松点。

、false和null在IDE中虽然以不同的颜显示,但是

并不是关键字,而是“字面常量”,就和String类型的abc一样。

类是非可变类,其对象一旦创建,就不可销毁。

String类那些看似修改字符序列的方法实际上都是返回新创建的

String对象,而不是修改自身对象。

3.由于String对象是不可改变的,因此具有线程安全性,可以

自由地实现共享。

4.在String类内部,是使用一个字符数组(char[])来维护字符

序列的。String的最大长度也就是字符数组的最大长度,理论上最

大长度为int类型的最大值,即2147483647.在实际中,一般可获

取的最大值小于理论最大值。

5.在Java中,数组也是类,数组声明的引用变量指向数组类型

的对象。

e码使用16位字符编码,在Java中用char类型来表

示。现在Unicode已经扩展到一百万个字符,超出16位限制的成为

增补字符。所有增补字符都不能用字符常量来表示。

7.当short,byte,char参加运算时,结果为int型,而非与较

高的类型相同。如果变量是byte,short,char类型,当对其赋予

编译时期的常量,而该常量又没有超过变量的取值范围时,编译器

就可以进行隐式的收缩转换。这种隐式的收缩转换是安全的,因为

该收缩转换只适用于变量的赋值,而不适用于方法调用语句,即不

适用于方法调用时的参数传递。

8.注意char类型,这是一个无符号类型。因此,char与short

或char与byte之间的转换必须显示地使用类型转换。从byte到

char的转换为扩展收缩转换,该转换比较特殊,即先将byte扩展

转换到int,然后再收缩到char。

9.在整型数据间的扩展转换中,如果操作数是char类型(无符号

类型),则进行无符号扩展,扩展位为0.如果操作数是byte,short

或int(有符号类型),则进行有符号扩展,扩展位为该变量的符号

位。

类型可以保留7~8个有效数字,而double类型可以

保留15~16个有效数字,因而当int类型或long类型数值多于

double或float地有效数字时,该值的一些最低有效位就会丢失,

从而造成精度丢失,这时,就会采用IEEE754最近舍入模式,提取

与该整型值最接近的浮点值。尽管整型向浮点型的转换属于扩展转

换,但当数值很大或很小(绝对值很大)时,就会产生一定的精度丢

失。

11.浮点的相除与求余运算不同与整型的相除与求余运算,当除

数为0时,浮点运算不会产生ArithmeticException异常。

()方法在表现行为上,与其他方法基本相同,可以重载,

由其他方法调用,继承,隐藏,也可以抛出异常,带有类型参数。

我们也可以在一个程序中通过反射来调用main方法(或其他方法)。

13.当两个或多个方法的名称相同,而参数列表不同时,这几个

方法就构成了重载。重载方法可以根据参数列表对应的类型与参数

的个数来区分,但是,参数的名称、方法的返回类型,方法的异常

列表与类型参数不能作为区分重载方法的条件。

14.构造器是递归调用的,子类的构造器会调用父类的构造器,

直到调用Object类的构造器为止。

15.构造器没有创建对象,构造器是使用new创建对象时由系统

调用的,用来初始化类的实例成员。从顺序上说,先是创建对象,

然后再调用构造器的。(构造器并没有产生新的对象)

16.默认的构造器不为空,该构造器会调用父类的无参构造器,

并可能执行实例成员变量的初始化。所以,默认的构造器至少调用

了父类的构造器,它做的工作还可能更多,包括实例变量声明初始

化与实例初始化块,都是在构造器中执行的。

17.当==或!=运算符的两个操作数的类型一个是基本数据类型,

另一个是包装类引用类型时,将引用类型拆箱转换为基本数据类型,

然后比较两个基本数据类型的值是否相等。

18.接口是完全抽象的设计,不能实例化。使A用new方式创建

的借口类型,实际上是创建了一个匿名类,该匿名类实现了接口类

型。

19.如果两个接口声明了相同的变量x,则当某接口同时继承这

两个接口,或者某类同时实现这两个接口时,通过简单名称访问会

产生编译错误。

20.如果两个接口中声明了相同名称的方法m,并且两个方法没

有构成重载,则当某接口能够同时继承这两个接口,或者某类能够

同时继承这两个接口时,必须存在一种方法签名,使得该签名同时

为两个m方法签名的子签名,并且在方法的返回类型上,必须存在

一种类型,使得该类型同时为两个m方法返回类型的可替换类型。

猜你感兴趣:

-

学习java怎么开始

发布时间:2022-04-13 03:17:28
文章版权声明:除非注明,否则均为IT技术网-学习WEB前端开发等IT技术的网络平台原创文章,转载或复制请以超链接形式并注明出处。

发表评论

评论列表 (有 9 条评论,331人围观)
雨恋V铁粉30 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
出你觉得可以提高性能的地方
思密达说明书V铁粉5 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
用来初始化类的实例成员
重庆建筑V铁粉3 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
这是目前证明很有效的
良乡电影院V铁粉27 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
在Java中用char类型来表示
xml是什么V铁粉12 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
然后再收缩到char
信托公司V铁粉22 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
并且自己可以用他来实现一些简单的系统
东旭公寓V铁粉25 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
7学以致用学习是为了用的
自由不变V铁粉14 minutes ago Google Chrome 93.0.4577.82 Windows 10 x64
最好的方法其实是实践

最近发表

随便看看

热门文章

标签列表