最全java书籍推荐

书也有书的好处,能写成书的,肯定是作者经过系统化思考,梳理才能形成的东西, 所以系统性比较强。书还有其他优点,例如可以找到重点再反复的看。所以混合着看经典书+优秀的视频 应该是最好的入门。
如果之前没学过别的语言,或者半路出家转到计算机行业,可以直接选择这本《Head First Java》,这本书非常适合零基础的小白,读起来轻松搞笑,去 看看第一页你就知道了。
之后可以看看这两本《Thinking in Java》 ,《 Java 核心技术 》。《Thinking in Java》无论在学校还是在工作,都能听到过来人说,Java编程思想是一本经典著作。《 Java 核心技术 》这本书相对于《Thinking in Java》来说更基础,比较简单一些,可以先读《 Java 核心技术 》。
但是光看书也挺无趣的,不妨和视频结合着看,可以在B站搜索java小秃子会定期更新Java学习视频资源也非常多。
初学过程中如果有实战经验丰富的高人指导一下, 绘出路线图, 指出攀登的方向,哪些地方有陷阱, 哪些地方不应该浪费时间, 就可以减少摸索,少走弯路, 这样的话可以加快学习效率。加入这个q群聊 里面有老师在线指导,还有很多的教学资源。
软件行业的一大特点就是光看不做永远都学不会所以实践,实践,实践特别重要。
在校期间,尽可能的去找项目做先把基础打好。后来有了一本更好的算法入门书《算法》,将这本书上提到的所有数据结构和算法用Java 都实现一遍, 课后作业也争取都做一遍。自己的能力将十分的强。这是个非常重要的训练,因为我知道,真的做了,就会发现工作以后只要不是设计算法,基本的数据结构没有能难的。对于Java集合框架, 不但要学会用, 还要尝试着实现一遍,List, ArrayList, Set ,HashSet, Map ,HashSet 等等。实现一遍能更好的明白面向对象的设计,接口,抽象类,具体类的关系,怎么分离职责,会学习到设计模式中的模板方法, Iterator 等 。值得一提的是Iterator, 很有趣。
在实现Java 集合框架的时候,可以顺便把泛型也学了,不学不行,要不然实现不了啊。
Java 世界里,万事万物都是对象, 大家都知道封装,继承,多态, 但是仅仅了解这些只是入了门, 不可能做出真正的面向对象的程序。
有一本经典的书《敏捷软件开发, 原则,模式,实践》,里边详细的讲解了一个薪水支付案例,是迄今为止最好的面向对象设计的例子,用Java 把它实现一遍, 真正的体会一下OOD, 了解怎么才能把合适的责任分给合适的类, 什么叫面向接口而不是面向实现编程, 什么是优先使用组合而不是继承。
对于Java线程, 重点还是理解概念, 在以后的工作中(除非从事系统级编程) ,自己写线程/线程池的机会是非常罕见的,都被类库,框架给封装好了。所以重点是理解,看书的话就当然是《Java并发编程实战》 ,一大群大牛写的啊。
对于Java IO,架构设计的很优雅,典型的学院派,可就是不太实用, 打开读取一个文件都得用装饰者模式包装来包装去,太累了。项目实战中呢,就是读取个property 文件,xml 文件。还是重点去理解概念和设计吧。
至于 AWT, Swing ,简单看看就行了,Java 是典型的服务器端的语言,开发客户端程序的极,你用Swing/AWT搞个桌面程序出来,还得让客户装个JRE才能运行,是不是有点过分 据我所知,也即是银行的一些应用在用Swing,AWT了。有人可能说 Applet,它曾经流行过,但现在早都没人用了。
所以不要在Swing和AWT上浪费时间。
Java Reflection 看起来没有集合框架,线程,OO等那么耀眼, 但它可是很多框架(SSH) 的基础啊, 先把基础学会,后面的Java EE得用到它。
想真正的学好Java ,不了解Java 虚拟机怎么可能? 《深入理解Java 虚拟机》一定得看,看完的目标就是写个简单的Java 反编译器,至少要做到能解析class文件。设计模式是必学, 其实Java里边用的非常多,简直就是设计模式的活教材, 工厂方法,单例,模板方法, 装饰者,责任链都有体现。
当然可以先看一下轻松的《Head First Design》, 《设计模式》的作者之一 Eric Gamma 都大力推荐, 绝对不容错过。
现在 JUnit 我得会, 重构我得会, TDD,持续集成这些最最基本的敏捷实践也得知道。
写代码的时候要遵循Java 的编码规范,例如类名首字母大写, 报名要小写, 方法名要首字母小写…等等。
作为代码洁癖, 我受不了脏代码, 我会不断的打磨自己的代码,直到它像一个工艺品。
Java 的最佳实践 《effective java》 怎么能错过? 里边满满的全是JDK的作者们总结出来的java 编程最佳用法。
不过翻译的实在是不咋滴, 很多句子都得仔细的琢磨一下才知道什么意思, 所以我打算录一系列视频讲解一下,敬请期待。
Java EE
说了这么多, 终于讲到了Java EE了, Java 不就是写服务器端的Web应用。我会自己写个Web程序, 可以考虑把上面提到的经典的薪水支付案例改造成Web 版, 用最基础的技术Servlet/jsp/jdbc 。
然后研究springmvc , 自己写个简单mvc框架, 在自己的Web 程序中用起来, 这叫吃自己的狗粮。
然后研究Hibenete/MyBatis , 自己写个简单的OR mapping框架, 再吃一次自己的狗粮。
然后读一下经典的书《J2EE development without EJB》 , 对,就是Spring 的作者Rod Johnson写的, 它颠覆了大家对于重量级EJB的认识, 开启了新的时代。
有了这本书的铺垫, 自己写个简化的依赖注入也不是难事, 写好后还是在自己的Web程序中用起来, 最后一次吃自己的狗粮。
熟读唐诗三百首,不会作诗也会吟
模仿是最好的学习! 多看看大牛们的代码是怎么写的, 潜移默化,自己的武功也能提高。
在学习Java SE和Java EE的同时, 读一下这些源代码:
JDK中的 Java Collection 源码 : 老祖宗的东西绝对经典
JUnit 源码 : 看看Eric Gamma 和 Kent beck 是怎么通过模式来创建系统的
SpringSide : 以Spring Framework为核心的,Pragmatic风格的JavaEE应用参考示例,是JavaEE世界中的主流技术选型,最佳实践的总结与演示。
国人开发的,大力推荐一下。
另外如果有余力的,有兴趣的话,可以阅读Struts, Spring, Hibernate的源码, 甚至参与进去开发了。
学习编程从来就不是一件容易的事情,需要大量的编程和实践。 编程虽然是极为辛苦的脑力和体力劳动, 但其中蕴含的创造的乐趣也是无与伦比的。 希望每个人都能够享受这个过程,乐在其中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值