从C/C++转Java的轻松入门指南:推荐Head First Java与视频教程结合学习
[入门]

2001年之前我是C/C++阵营的,有C和面向对象的基础。后来转用Java,发现没有指针的Java真的很简单。另外,Java的类库非常好用。
后来又看了《Thinking in Java》和《Java核心技术》,也没觉得难。
如果我以前从未学过其他语言,或者如果我出家并转行到计算机行业,我不会先读上面的两本书。相反,我会选择“Head First Java”。本书非常适合零基础知识的初学者。这是轻松有趣的。如果你不相信我,请看第一页。
但光看书是很无聊的。您不妨将它们与视频结合起来。网上有很多讲解Java的视频。
注:视频的好处是可以看到敲代码的过程。代码是活的,这非常酷。如果视频只讲基于PPT的编程,果断扔掉。
书也有书的好处。能写成书的东西,一定是作者经过系统思考和梳理后能够形成的东西,所以系统性比较强。
书籍还有其他优点。比如,你可以随意翻阅,找到重点,反复阅读。
所以阅读经典书籍+优秀视频的结合应该是最好的入门方式。
[实践]
软件行业的特点之一就是光看、做永远学不到。如果你的代码少于10万行,你都不好意思出去打招呼。
所以练习,练习,练习!
在校期间,我仍然会尽力寻找可以做的项目(参见我的另一篇文章《从现在开始丰富你的简历》,回复“简历”即可查看)。如果找不到的话,我也可以先打基础。
大学的时候用过颜伟民的《数据结构》。当时我也把所有的练习都做了。当我参加高级程序员考试时,我的成绩非常好。
后来又了解到一本比较好的算法入门书《算法》。如果时光可以倒流,我仍然会用Java实现本书中提到的所有数据结构和算法,并尝试在课后完成所有作业。再次。
这是一次非常重要的训练,因为我知道,如果我真正去做的话,我会发现只要我不设计算法,基本的数据结构就难不倒我。
【Java SE】
对于Java集合框架,我不仅需要学习如何使用,还会尝试实现它,List、ArrayList、Set、HashSet、Map、HashSet等,如果你不知道怎么写,看看JDK的源码就可以了。有最受欢迎的。好老师。
实现之后,可以更好地理解面向对象的设计,接口、抽象类、具体类之间的关系,如何分离职责,了解设计模式中的模板方法、迭代器等。
值得一提的是Iterator很有趣。我还清楚地记得当年在集合框架中实现Iterator时的激动心情:-)
在实现Java集合框架的时候,还可以学习泛型。如果你不学习它,你就无法实施它。
在Java世界中,一切都是对象。每个人都知道封装、继承和多态性。但仅仅了解这些只是一个入门,不可能做出真正的面向对象程序。
有一本经典的书《敏捷软件开发,原理,模式,实践》,详细讲解了一个薪资支付案例,是迄今为止面向对象设计最好的例子。
我将用Java来实现,真正体验OOD,了解如何将适当的职责分配给适当的类,什么是面向接口而不是面向实现的编程,什么是优先使用组合而不是继承。
对于Java线程,重点还是理解概念,因为我知道在以后的工作中(除非我从事系统级编程),自己写线程/线程池的机会很少了,而且都是由类库和框架封装。所以关键是要明白,
如果你想看一本书,当然是《Java并发编程实践》,很多专家写的。
关于Java IO,我认为架构设计非常优雅,是典型的学院派风格,但实用性不是很强。要打开并读取一个文件,就得用装饰器模式来包裹它,太累了。
实际项目中,就是读取一个property文件和xml文件。我仍然专注于理解概念和设计。
但自己编写一个简单的 xml 解析器会很好。
至于AWT和Swing,简单看一下就可以了。我不会深入探讨它。 Java是典型的服务器端语言,很少有人开发客户端程序。想想看,你可以使用Swing/AWT来创建一个桌面程序。要求客户安装JRE来运行是不是有点过分了?据我所知,一些银行应用程序正在使用Swing和AWT。也许有人会说Applet曾经流行过,但现在却没人用了。
所以我不会在Swing和AWT上浪费时间。
Java Reflection看起来不像集合框架、线程、OO等那么眼花缭乱,但却是很多框架(SSH)的基础。首先学习基础知识,稍后您将需要在 Java EE 中使用它。
想要真正学好Java,不了解Java虚拟机怎么可能呢?一定要读《深入理解Java虚拟机》。读完后的目标是写一个简单的Java反编译器,至少要能够解析class文件。
[做一名知识渊博的 Java 程序员]
我记得2008年,我的IBM经理说设计模式是一项必要技能,我们不能雇用任何不懂设计模式的人。
因此,设计模式是必须学习的。事实上,它们在Java中被大量使用。它们简直就是一本活生生的设计模式教科书。工厂方法、单例、模板方法、装饰器、责任链都有体现。
当然,我会先读轻松的《Head First Design》。 《设计模式》的作者之一Eric Gamma极力推荐,绝对不容错过。
几年后,我的 IBM 经理说,现在每个人都知道我们默认的设计模式,敏捷实践是一项必备技能!
所以,我需要了解JUnit,我需要了解重构,我需要了解TDD、持续集成等最基本的敏捷实践,否则我会被别人看不起。
作为一名有抱负的Java程序员,我在编写代码时必须遵循Java编码标准,例如类名首字母大写、注册小写、方法名小写……等等。
作为一个代码狂,我无法忍受脏代码,我会不断打磨我的代码,直到它看起来像一件工艺品。
Java最佳实践《Effective Java》怎么能错过呢?里面充满了JDK的作者们总结的java编程的最佳用法。
【JavaEE】
走了这么远,终于来到了Java EE。 Java 不就是用来编写服务器端 Web 应用程序的吗?
我自己会写一个Web程序,可能会考虑将上面提到的经典工资支付案例改造成Web版,使用最基本的技术Servlet/jsp/jdbc。
然后学习springmvc,自己写一个简单的mvc框架,并在自己的Web程序中使用。这就是所谓的吃自己的狗粮。
然后研究一下Hibenete/MyBatis,自己写一个简单的OR映射框架,再吃自己的狗粮。
然后看经典书籍《没有EJB的J2EE开发》。是的,它是 Spring 的作者 Rod Johnson 写的。它颠覆了大家对重量级EJB的认识,开启了一个新时代。
有了这本书的基础,自己写一个简化的依赖注入并不难。写完之后,你就可以在自己的Web程序中使用它,吃最后一次自己的狗粮了。
[阅读代码]
背诵唐诗300首,不会作文也能背诵。
模仿是最好的学习方式!仔细看看高手是怎么写代码的,这样你自己的武功也会提高。
如果我身边有一个好师傅,跟着他看他编程,我能进步多快?
在学习 Java SE 和 Java EE 时,我会阅读这些源代码:
JDK中的Java Collection源码:老祖宗的东西绝对经典
JUnit源码:看看Eric Gamma和Kent beck如何通过模式创建系统(回复“JUnit”即可查看)
SpringSide:一个以Spring框架为核心的实用风格的JavaEE应用参考示例。它是对JavaEE世界主流技术选型、最佳实践的总结和展示。
中国人开发的,强烈推荐。
另外,如果你有闲暇,有兴趣,当然可以阅读Struts、Spring、Hibernate的源码,甚至参与开发。
如何学习Java,这是我这么多年的感受,也只是家常便饭。欢迎与我交流。
学习编程从来都不是一件容易的事。通过看视频或者看书是不可能学会的。它需要大量的编程和实践。虽然编程是一件极其辛苦的脑力劳动,但其中蕴含的创造乐趣也是无与伦比的。希望大家能够享受这个过程,享受其中。
今天我就和大家分享一下。如果你对Java感兴趣的话,可以去了解一下。这里还有2020年最新的节目资料。如果您需要的话,您可以领取它们。
1.点赞+评论(勾选“同时转发”)
2.关注小编。并在私信中回复关键词【java】(一定要发私信~点击我头像可以看到私信按钮)