如何学习java?

来源:互联网 发布:收银软件 编辑:程序博客网 时间:2024/05/16 01:55

基础很重要,千万不能好高骛远

学好java,特别是java高级编程,需要很多的基础作为铺垫,而不能一味的好高骛远,基础既包括java语言的基本知识,面向对象的思想,更包括了操作系统,数据结构,以及数据库基础知识,和计算机网络等知识。只要你有了这些基础,学好java,特别是java高级编程就不是难事了。

持之以恒的态度

当初你可能会一时的冲动,觉得java很流行,于是也跟风,也学java,实话说,编程语言的艺术是具有共性的,只要你深刻感悟到了编程语言的艺术,不管是任何语言,只是一些语法上的区别而已,但是对于程序猿来说,语法不是问题。
所以更重要的是你要有一颗持之以恒的心,追求编程之美,不断去感悟语言的魅力,为什么这个语言要这样设计,你就会去感悟这个语言的设计者的思想,真正喜欢上一门。

多练习

学一门语言,如果只看书,只学习理论,而不去实践,那样肯定是不行的,只有自己尝试了,练习了,才能体会到,以及感受到。有时候你学并发编程,只是知道继承Thread,实现Runnable接口,而不去上机实验,怎能感受到并发带来的不仅仅是并发的快感,其中涉及到的一些同步等安全性问题值得我们注意。同时,只有当你动手认真操作了,你对这个知识的印象就会更加深刻。而不至于日后只是有印象的状态。推荐一下,写博客是一个很好的习惯,它能督促你加深某个模糊知识点的学习,进一步巩固自己的知识,因为当你写博客的时候,你会认真查阅相关资料,你会非常谨慎,因为你怕别人笑话你,你怕出丑。。。

怎么学习java 高级知识

如异常类,集合类,多线程,IO等知识,你会觉得很多,很杂,实在太多知识点,根本不可能全部记住,而且很多现实用不到,没必要掌握。其实这样想是一般人的想法,也对,的确是这样的,我当初也是这样。但是后来发现,学习这些知识也是有技巧的,这些功能类,其实很类似,他们都有一个框架,接口和类之间的关系也很明确,只要你看了这些框架,你就可以了解大致是什么,心中对这些知识有个底,而不至于茫然,至于某个具体类里到底有什么函数提供什么服务,那是可以死记硬背的。比如异常类中的框架,顶层接口是Throwable,下面又分为两个接口,Exception和Error,Exception又分为RuntimeException和IOException,下面是具体的类,顶层接口都是为了定义某种异常的共性。集合类也类似。
我在学java的时候都是把图形界面那块直接跳过去不学,感觉在实际中并没有用到。不过那块知识可以学到很多设计模式的知识。

java能干嘛

很多人不知道自己学了java到底能干嘛,只是写网页后台代码吗,每天MVC中的后台吗,其实感觉也查不到,不过远远不止这些,java有很多企业提供了很多jar包,很多复杂的功能都可以使用这些api轻松解决,有时候我会用java帮老师整理搜集上来的调查表,把他们整合到一个excel表中,就是用到了excel的jar包,特别方便。
最近在学分布式,中间件,感觉好难,这些知识都需要很多的知识储备作为支撑,如计算机网络,操作系统,数据结构等知识。我算法思维不行,这是我学编程最大的障碍,不过这并不能阻碍我对编程对java的喜爱。
java是一个很优秀的后台语言,其本身的跨平台性很好,自身的优点特别多,功能也非常强大,很多功能并不需要自己编写。如RMI等。

推荐java一些经典书籍

《java核心技术卷一卷二》,《java编程思想,《Effective java》,《深入理解java虚拟机》,《java分布式应用》《java并发编程实战》等,这些都是很好的书籍。

java常用的必备框架
Struts、Hibernate和Spring三个主流框架
我们知道,传统的Java Web应用程序是采用JSP+Servlet+Javabean来实现的,这种模式实现了最基本的MVC分层,使的程序结构分为几层,有负责前台展示的JSP、负责流程逻辑控制的Servlet以及负责数据封装的Javabean。但是这种结构仍然存在问题:如JSP页面中需要使用符号嵌入很多的Java代码,造成页面结构混乱,Servlet和Javabean负责了大量的跳转和运算工作,耦合紧密,程序复用度低等等。

Struts

为了解决这些问题,出现了Struts框架,它是一个完美的MVC实现,它有一个中央控制类(一个Servlet),针对不同的业务,我们需要一个Action类负责页面跳转和后台逻辑运算,一个或几个JSP页面负责数据的输入和输出显示,还有一个Form类负责传递Action和JSP中间的数据。JSP中可以使用Struts框架提供的一组标签,就像使用HTML标签一样简单,但是可以完成非常复杂的逻辑。从此JSP页面中不需要出现一行包围的Java代码了。

可是所有的运算逻辑都放在Struts的Action里将使得Action类复用度低和逻辑混乱,所以通常人们会把整个Web应用程序分为三层,Struts负责显示层,它调用业务层完成运算逻辑,业务层再调用持久层完成数据库的读写。

使用JDBC连接来读写数据库,我们最常见的就是打开数据库连接、使用复杂的SQL语句进行读写、关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常烦琐的过程。

Hibernate

这时出现了Hibernate框架,它需要你创建一系列的持久化类,每个类的属性都可以简单的看做和一张数据库表的属性一一对应,当然也可以实现关系数据库的各种表件关联的对应。当我们需要相关操作是,不用再关注数据库表。我们不用再去一行行的查询数据库,只需要持久化类就可以完成增删改查的功能。使我们的软件开发真正面向对象,而不是面向混乱的代码。我的感受是,使用Hibernate比JDBC方式减少了80%的编程量。

现在我们有三个层了,可是每层之间的调用是怎样的呢?比如显示层的Struts需要调用一个业务类,就需要new一个业务类出来,然后使用;业务层需要调用持久层的类,也需要new一个持久层类出来用。通过这种new的方式互相调用就是软件开发中最糟糕设计的体现。简单的说,就是调用者依赖被调用者,它们之间形成了强耦合,如果我想在其他地方复用某个类,则这个类依赖的其他类也需要包含。程序就变得很混乱,每个类互相依赖互相调用,复用度极低。如果一个类做了修改,则依赖它的很多类都会受到牵连。 为此,出现Spring框架。

Spring

Spring的作用就是完全解耦类之间的依赖关系,一个类如果要依赖什么,那就是一个接口。至于如何实现这个接口,这都不重要了。只要拿到一个实现了这个接口的类,就可以轻松的通过xml配置文件把实现类注射到调用接口的那个类里。所有类之间的这种依赖关系就完全通过配置文件的方式替代了。所以Spring框架最核心的就是所谓的依赖注射和控制反转。

现在的结构是,Struts负责显示层,Hibernate负责持久层,Spring负责中间的业务层,这个结构是目前国内最流行的Java Web应用程序架构了。另外,由于Spring使用的依赖注射以及AOP(面向方面编程),所以它的这种内部模式非常优秀,以至于Spring自己也实现了一个使用依赖注射的MVC框架,叫做Spring MVC,同时为了很好的处理事物,Spring集成了Hibernate,使事物管理从Hibernate的持久层提升到了业务层,使用更加方便和强大。

Struts框架是2000年就开始起步了,到目前已经发展了5年,技术相当成熟,目前全球Java开发中Struts框架是显示层技术中当之无愧的王者。它拥有大量的用户群和很好的开发团队。这也是国内大部分Java软件公司对新进员工的基本要求。

其他

Java这个名词似乎注定和开源紧密联系在一起了,在Java界,每天都有大量的开源技术出现,由于是开放源代码的,技术中存在的问题和不足很快就会被人发现,开源软件提供者会很快的修正或扩展这些技术,因此版本更新很快,几个星期或者几天就有一个新版本出来。

当我们在技术线路中选择了Java,也就选择了你必须持续学习,经常关注最新的技术,了解它们,看是否适合你的需要,然后学习使用它们。

最后想说的是,多看大牛们写的blog,多逛逛开源社区,很多别人的开源软件和框架都很好,以上是本人的观点,不喜勿喷 -^-

0 0
原创粉丝点击