推荐一些对Java学习有用的经典书籍!
1、《thinkingin Java》
被称之为Java的圣经的一本书,不建议零基础刚入门的时候看,容易造成学习阴影压力,建议有一定能力以后观看,能学会很多东西,无论什么阶段都能看,都能有不少收获。
2、《Head First Servle&JSP》
这本书确实非常出色,觉得在HeadFirst系列中也算是出色的一本。虽说它是为考试而写的,但是却非常适合初学者,能使人知其然并知其所以然。虽然很厚,但是很快能读完。如果是Servlet和JSP的初学者,推荐用这本。
3、《疯狂Java讲义》
考虑到初学者大多数英文并没有好到可以直接阅读并理解英文书籍,这本书可以说是JAVA教学书中比较好的。
4、《Java从入门到精通》
作为一本Java技术的入门书,它是绝对出色的。语言通俗易懂,一个星期就能让你明白怎么用Java语言写程序。此书对于没有任何编程语言基础的同学非常友好,一步一步带领入门。不过过了基础期之后,它就可以搁置一旁了。
5、《Java核心技术:卷1 基础知识》
这系列书籍,非常适合有一定编程基础的人看,里面基本全是技术讲解,能帮助有编程基础的人迅速掌握Java技术!但是对初学者不怎么友好,因为讲得很深入,而且感觉全书都是重点,找不到真正重要的东西!
6、《Java学习笔记》
此书的特点在于里面有很多作者对Java语言的独有的理解与讲解,这些内容往往也是所有Java语言初学者迷惑的地方。称之为超简明入门书籍也不为过。
7、《HeadFirstJava》
如果你是个讨厌读书的人,那么这本书一定会让你觉得很有趣。
这内容是否看着就很好理解。
这本书,通俗易懂,重点突出的书,相当适合初学者快速入门,缺点是段子太多,有时候会被当成笑话书来看。
以上推荐的7本Java经典书籍,希望对大家的学习有所帮助。也希望在成为一名更优秀的Java程序员的道路上,我们可以一起学习、一起进步。
作为一个Java程序员来说,工作中根本用不到C语言,所以大学学的C语言基础基本也忘了。
C语言主要用于硬件或者PC的图形界面程序或游戏的主要开发语言。因为C语言接近底层,效率性能比Java更好。
Java更多的是用来做网站或App的后台,总体来说是涉及到网络相关的应用程序。
我也是自学的Java目前在北京工作,自学一路上也是坑坑洼洼不少,既然看到题主的困惑,在这里把一些学习Java的一些理解给题主分享一下。
首次回答第一个问题,不学C语言,也可以学Java。
然后入门的话,很多人装逼说 看《Java编程思想》。实际上这本书适合有一定经验的人,回顾总结来看。学习Java的过程应该是 先学基础,掌握基础语法,再学框架,也是掌握使用,然后再回过头来,学习基础,这个时候需要深入学习,源码实现,JVM底层原理,高并发,这些。
所以入门来说 我建议最好是先看 《Java核心技术I》
然后再看《Java编程的逻辑》这本书讲了很多计算机理论与Java的联系,以及对基础底层的实现的讲解,如果看不懂,可以再找几本入门书看看。
基础牢固之后,可以看看框架,在此推荐两本《Spring4.x企业开发实战》以及《Mybatis深入浅出》 现在企业中最主流的是 SSM 或者 SpringBoot+Mybatis ,很少企业会使用Hibernate作为ORM层框架,所以暂时不需要研究。
当框架有个大体的掌握后,这时可以再回头深入基础,为研究框架源码及架构思想做准备。
首先推荐马丁大神的《重构-改善既有代码的艺术》,这本书讲解了什么样的代码是有坏味道的代码,讲了很多复用代码的小技巧,建议必读,经典,我看了两遍。
然后推荐看看设计模式,首推《研磨设计模式》,这本书实体书已经买不到了,我有电子版,题主需要可以私聊我,次推《设计模式之禅》这本书通俗易懂,但不如研磨设计模式清晰明了。
当你掌握了重构及设计模式的技术之后,你写代码的思路会非常清晰,写出来的代码会非常简洁,优雅。
之后推荐看并发和JVM原理,并发必读《Java高并发实战》,豆瓣9分经典。JVM原理可以看《深入理解JVM虚拟机》,这本书讲解了Java虚拟机的各个分区,各种GC算法,以及一些JVM的参数配置和最佳实践,看第一遍的时候可能很吃力,但不要放弃,读下去,前几章看不懂的,当你看了后几章之后,就会豁然开朗,当时我读前几章,无数次想放弃,认为自己看不明白,但实际越往后读,前面的就越明白。
当这些书看完之后,其他的相信你可以根据自己所需,自己去寻找了。
以上这些书,我都有电子版,如果你需要的话,可以私信我,如果有其他问题也可以沟通,希望题主今后在技术的路上不断精进,将自己的一些理解分享给别人~
Java编程思想
这个数虽然黑的人比较多,但我个人觉得还是非常适合新手初学的,不管你java是什么水平,每次读TIJ都会感到很有收获。新手会从中读到java的一些基础知识,进阶者可以看到更广阔的应用空间,老手会从中发现太多的思考方式,并梳理一些知识遗漏。最关键的是里面太多的内容可以给人启发,而且很多思想可以应用到其他的语言比如C++。另外整本书谬误相对很少,可以少走很多弯路。
2. Java301集
这个不是书籍,是教程,动力节点的,已经推过很多次了。本来没想推荐,因为你问的是书籍,但想了想还是放了上来,毕竟我个人觉得,视频教程是最生动,最有效的现代学习方式。
而且此教程包含全面,基础层面的知识点,面试时能拿出手的技术亮点,这套基本都囊括其中了。
此为视频原链接:http://www.bjpowernode.com/vid
3.《JAVA开发实战经典》
如果说中文的最好的JAVA书,这本应该是我下载过最好的JAVA基础的书了,如果连这本书都无法学明白,你也就不要去学开发了。我在看这个书之前也没学过其他的语言,学起来也很轻松。缺点是有些代码需要以代码包里的为准。
首先英语不好不影响学习java
其次推荐你去学C的人是因为你需要基础而且不需要学很多
既然你不想学C给你推荐《java从入门到精髓》
首先你的安装eclipse 下载JDK 并且配置环境。这些可以去网上搜,基本上都有很详细的安装和配置过程。这只是开始,其次你要学会怎么运用eclipse 毕竟这只是个工具。我开始学的时直接用记事本开始编写代码的。因为eclipse有自动提示功能所以新手很容易忘记最基础的东西。看你的选择吧,因为你说了你很聪明。
这个是安装JDK配置环境变量详细教程:网页链接
这个是安装eclipse的详细教程:网页链接
再给你推荐一个看代码的软件notebook+,我一般用这个。
这些都是前奏,因为你是零基础也就是说没有学过C,对你来说比较难得应该是面向过程和面向对象概念的理解。如果没有学过C就不能完全理解java为什么是面向对象而C是面向过程。但对于现在而言可能不是那么重要了。希望你能学业有成。
学习java不需要英语很好呢,只要会24个字母就可以了。会点C语言是方便更好的学习java,没有C语言也是可以学习的。
学习Java其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。每一种语言的程序设计思想大同小异,只是一些由语言特性的而带来的细微差别,比如Java中的Interface,你几乎在以前的学习中没有碰到过。以下我仔细给你说几点:
1、明确面向对象的范畴
我们必须明确一个大方向,也就是说现在面向对象的编程范畴。尽管人工智能曾经有所浪潮(看看Borland为什么有Turbo Prolog),但未来5-10年工业界广泛承认并接受的将是面向对象式的编程。
工业界目前最流行的面向对象编程语言就是C++和Java。所以基本上锁定这两个方向就可以了。而且完全可以同时掌握。
2、掌握Java的精华特性
掌握Java的精华特性的同时,一定要知道为什么。比如,Interface和multi-thread。用interface是更好的多继承的模型,而多线程则是设计到语言一级的重要特性。要完全理解interface是为什么,用多线程又有几种常用的编程模型。
3、开始进行设计
理解了语言的特性是为什么了之后,就可以试着上升到设计这个层次,毕竟学习语言是要用的。目前比较好的开发模式是采用自定向下的面向对象的设计,加上MVC的模式(你可以看一下我介绍的关于MVC的内容)。首先要找出最顶层的对象(这往往是最难的),然后一层一层往下递归,记住每次应符合7+/-2的原则,因为我们人的短记忆就是这样。一般有图形用户界面的应从界面开始设计。如果你梦想是成为一个出色的网络应用程序的开发者,不管你用什么类型的框架,你都必须要熟悉Servlet和JSP。莪和一群大牛组建一个裙:前面的java是二三 O中间的javaEE⒋ 一 九后面是五 五 零,按照顺序组合起来,就可以找到我们心中的需要只要你有一颗学习的心就可以了 不想学习或者自认不需要学习的就不要加了
4、学习设计模式
有了基本设计模型后,可以学一些设计模式(Design Pattern)。这是目前证明很有效的。比如体系结构模式(Layering分层,Pipe/Filter管道或过滤器),设计模式(有很多,比如对象池Object Pool、缓冲池Cache等),编程模式(比如Copy-on-Write)。
懂了这些模式之后,就会对系统的整体结构有很好的把握,而学术上也有倾向一个系统完全可以由各种模式组合而成。前面提到的MT实际上就有好几种模式,掌握后就不用自己花很多时间去试了。另外一个很重要的领域就是并行和分布式计算领域,大概有20种左右。
5、进行编程实践
接下来就不能纸上谈兵了,最好的方法其实是实践。一般教科书上的例子并不能算是实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能是你自己越来越迷糊。
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的,比如在我的实践当中,我曾经学习过一个很经典的例子就是用Java实现的HotDraw(源自SmallTalk),你可以用rolemodel或hotdraw在搜索引擎上找一下,我记不大清楚了。好象 是个网站,上面有原代码和一些基本设计的文档。
另一个来源可以到 是个不错的文档基地。从HotDraw上我学到了什么是Framework,以及如何用rolemodel的方式来构造,这样我就可以应用到其他的地方。顺便说一句,这个例子你绝对不会觉得小,只会觉得大,并且他还是真正的商用的Framework。
6、学习修改经典例子
结合前面学到的设计模式你就可以很好的理解这些经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
好象以上谈的跟Java没什么关系,其实我们早就应该从单纯的学习语言到真正的学习好编程的领域。学习技术是没有止境的,你学习第一种语言可能要半年时间,以后每种语言都不应该超过两个月,否则你会觉得学习语言是包袱,是痛苦。
7、学以致用
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。