自学Java用哪本书好?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自学Java用哪本书好?相关的知识,希望对你有一定的参考价值。
在学校已经学过c语言c++ Java 数据结构等一些基础知识,但是掌握得不多。想好好的学一下Java语言,提高动手能力。
最开始看很多人推荐《Java从入门到精通》这本书,但是看他目录 大篇幅的在讲怎么安装环境,字符变量类型、 for循环语句之类的基础语法,这些太基础了,各种教科书上都看了好几遍了,再看就浪费时间了。
希望有经验的朋友推荐一本适合我这种水平的书。谢谢
1、《Head First Java》
作者: Kathy Sierra / Bert Bates
简介:《Head First Java》是一本完整地面向对象(object-oriented,OO)程序设计和Java的学习指导用书,根据学习理论所设计,你可以从程序语言的基础开始,到线程、网络与分布式程序等项目。重要的是,你可以学会如何像一个面向对象开发者一样去思考,而且不只是读死书。
作为一本入门书,它是绝对出色的。一个星期就能让你明白怎么用Java写程序了。尤其是你有其它语言基础的情况下,这本书能迅速让你明白java的特质。缺点是,它真的只是入门书。你必然还需要一本Java大字典,比如《Thinking in Java》,以便查阅Java在细节上的更多东西。
2、《Agile Java》中文版
这本书一大特点是以单元测试和TDD来贯穿全书的,在教你Java各种重要的基础知识的过程中,潜移默化的影响你的编程思维走向敏捷,走向TDD。另外这本书成书很新,以JDK5.0的语法为基础讲解,要学习JDK5.0的新语法也不错。而且在内容的取舍上处理的很好,可以让你段时间内掌握 Java重要的知识,顺便培养出来优秀的编程思路,真是一本不可多得的好书。
3、《Java开发实战经典》
作者:李兴华 编著
简介:本书是一本综合讲解Java核心技术的书籍,在书中使用大量的代码及案例进行知识点的分析与运用,并且给出一些比较成熟的开发步骤,帮助读者更好地进行Java的开发。 参考技术A 《Java程序员修炼之道》
码出高效:Java开发手册
Java从入门到精通(第4版 )
《Head First Java》
Java核心技术 卷I:基础知识(原书第10版)
深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)
Java编程思想(第4版) [thinking in java] 注:这本初学者看起来会比较费力,建议2年左右工作经验的童靴入手。
顺手推荐java数据结构与算法方面的三宝书
1.黑宝书《数据结构与算法分析java语言描述》mark allen weiss
2.蓝宝书《java数据结构和算法》robert lafore
3.红宝书《算法》robert sedgewick 参考技术B
推荐书籍:实战Java程序设计
这是一本既注重实战,同时也注重底层“内功”(内存分析、JVM底层、数据结构)训练的书,本书能帮 助初学者打通Java编程“任督二脉”。本书 集作者11年Java教学之精华,既适合初学者入门,也适合已经工作 的开发者复习。 全书共分18章,内容涵盖Java开发所需的相关内容及339个案例(很多案例对于工作人员也有很大的参 考价值)。书中秉承尚学堂实战化教学理念,从第一章开始介入实战项目,寓教于乐,读者可迅速进入开发 者的角色。 本书适合初学者入门,也适合高等院校相关专业作为教材使用,还可作为Java程序员的参考用书。
参考技术C 百度,想飞社区,在资源里找,在推荐书籍里的,都是JAVA经典书籍。排名第一的是JAVA编程思想。其实不建议看这本书,你可以看排名第五的《java程序设计教程》,这本书是国外大学经典教程,国内也有译作《JAVA大学教程》的,现在最新版是第九版(都第九版了。你可以想象他的流行程度),你可以在想飞社区直接下载。本回答被提问者采纳 参考技术D 现在最新的是jdk6.0如果是交0基础的人就不要用IDE了,用jCreator就可以了
到书店找找吧,现在教java基础的书狠多,如果有c++基础的话学java是很简单的,因为java和c++一样都是面向对象的语言,流程控制上有很多类似的地方,下载视频教程也不错,给你推荐孙鑫老师的,讲得很详细,百度搜一下就能找到
Java视频教程 孙鑫Java无难事 (全12CD)
张孝祥Java课堂系列之 Tomcat入门(七讲 swf)
张孝祥Java课堂系列之 Servlet开发入门 (九讲 swf)
张孝祥Java课堂系列之 HTTP协议详解(四讲 swf)
张孝祥Java课堂系列之 Web XML基础(四讲 swf)
J2EE视频教程 中间件技术 浙江大学胡晓军 全24讲完整版下载
EJB技术及应用视频教程 东北大学 全26讲完整版 RMVB格式
J2EE开发IDE Eclipse视频教程 全9CD 完整版
Java视频教程 即学即会java
你会用哪种语言自学SICP? [关闭]
【中文标题】你会用哪种语言自学SICP? [关闭]【英文标题】:Which language would you use for the self-study of SICP? [closed] 【发布时间】:2010-09-19 08:03:25 【问题描述】:我发现了真正学习函数式编程的错误。所以我的 下一个自学项目是通过Structure and Interpretation of Computer Programs工作。不幸的是,我从来没有 学习了 Lisp,因为我在大学时不是 CS 专业的。
虽然 SICP 不强调编程工具,但做 练习需要选择一种类似 Lisp 的语言来使用。这好像是 Scheme 的一些实现将是最少的路径 反抗。另一方面,我听说其他人使用过Common Lisp 和Clojure。在我看来,Common Lisp 或 Clojure 将是 更有可能在生产代码中使用,因此稍微 更适合我的简历。顺便说一句,我完全明白学习一个 语言本身是值得的,但学习一门语言 对我的简历有帮助还是有好处的。我是资本家和学者 关于我的学习。
如果您必须自学 SICP,您会选择哪种语言,为什么? 理想情况下,我想使用一种可以在 JVM 上运行的语言。 我当然可以使用 REPL 与 bash 一起使用的语言 和emacs。
补充:你们有没有人尝试过在不使用 Scheme 的情况下阅读 SICP?如果有,您的体验如何?
【问题讨论】:
【参考方案1】:使用方案。它是现有的最简单和最简单的语言之一,您将花费很少的时间学习足够的时间来理解 SICP。了解 SICP 后,您将了解这些概念如何适用于任何语言。
【讨论】:
【参考方案2】:使用 DrScheme。正如其他人所说,Scheme 是一种简单的语言,而 DrScheme 是一个使用它的绝佳环境,其中有很多支持和平庸到好的文档。
【讨论】:
昨晚下载的,UI看起来超级简单好用。 艾伦,别忘了使用 PLaneT 提供的 SICP 支持(用户为 PLT Scheme/DrScheme 贡献了库)。 planet.plt-scheme.org/package-source/neil/sicp.plt/1/13/… DrScheme 现在被称为 DrRacket en.wikipedia.org/wiki/DrRacket【参考方案3】:不是一个直接的答案,但我希望这些信息对通过 SICP 工作的任何人都有用。请务必观看此处的视频:
http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/
每集一小时有 20 集。它们是 Abelson 和 Sussman 于 1986 年为惠普员工提供的。我把它们放在我的 iPod 上,并在通勤时观看它们。令人着迷。
另外,本书全文可通过http://mitpress.mit.edu/sicp/在线获取
【讨论】:
【参考方案4】:作为一个招聘人员,我会告诉你,在简历中加入 Scheme 是一件好事。简历中包含 Scheme、SML、Ocaml 或 Haskell 表明你是一个非常全面的程序员,并且是一个相当有思想的人。
也就是说,如果您正在尝试函数式编程,为什么不使用 Haskell 呢? Scheme 是多范式的,它可以是 OO、Funcitonal、Streams 或其他任何东西。这使得尝试新的编程风格和范式变得很棒,但如果你的目标是严格的功能性的,那么它可能是一个问题。 (你最终会编写非功能性代码而没有意识到它。)
【讨论】:
【参考方案5】:我同意你应该只使用 Scheme。但是,如果你真的想使用 Common Lisp 或 Clojure,我会选择后者。 Scheme 和 Clojure 都是 Lisp-1,所以书中的代码在两者之间会更加一致(除了尾调用,但如果你了解如何补偿你会没事的)。 Common Lisp 是一个 Lisp-2,可能会掩盖 SICP 试图教给你的美妙之处。
【讨论】:
顺便说一句,解决 Clojure 中的尾调用优化问题是递归的:clojure.org/special_forms#toc10(并要求 Sun 在 JVM 中实现它们,它们应该在哪里)【参考方案6】:本书中的代码是Scheme,所以无论如何你都必须阅读它——你不妨编写它。你甚至可能会喜欢它!
【讨论】:
【参考方案7】:要从书中获得真正的价值,您必须使用 Scheme。哪种方案实现取决于您当前的环境:
Windows - Dr Scheme (PLT Scheme) - http://download.plt-scheme.org/ Linux - 如果这是一个远程帐户 - 您可以考虑使用 MZScheme (PLTScheme) (http://download.plt-scheme.org/),否则如果这是 Linux 的本地实例,您将需要使用 Dr Scheme。
【讨论】:
我还将 MIT 计划添加到该列表中。他们似乎有一个很好的(如果很大的话)口译员。 (奖金(积分)(写麻省理工学院(书)))【参考方案8】:我认为 Clojure 非常适合您想要做的事情。它比 Scheme 更实用,因为数据结构是不可变的,并且在 JVM 上运行时非常有用。但是,请注意,您最终还是要学习 Scheme 才能理解书中的代码。
【讨论】:
【参考方案9】:我已经发现了真正学习函数式编程的错误。
据我所知,SICP 不仅仅是函数式编程。
【讨论】:
【参考方案10】:警告:我没有读过整本书
由于这些示例依赖于闭包和延续,使用具有这两种功能的语言会更好地为您服务,否则您需要自己实现它们。
例如,在 Scheme 中编写元循环评估器利用了 Scheme 提供闭包和延续的事实。
【讨论】:
IIRC,续集在书中并没有真正突出。【参考方案11】:我在看 sicp 的时候用的是 lua
效果不错
【讨论】:
我也在尝试这样做。我知道 Lua 缺乏完整的延续和宏。那些缺失的部分对 SICP 是否至关重要(尤其是最后几章)?或者还有其他我不知道的缺失部分? 不,不是。由于语法不同,有些事情你必须采取不同的方法,但解决方案通常看起来非常相似。【参考方案12】:使用除方案之外的任何东西。
在使用其他东西而不是方案时,我们会鼓励您多思考,并避免仅仅重新输入示例的诱惑。这是一件好事。
当然,它必须足够相似,在 lisp-1 的意义上,所以 clojure 和 arc 是不错的选择。
【讨论】:
我不同意。也许其他教科书也是如此,但我个人发现 SICP 的练习不仅仅是简单地复制之前的示例。 我认为它是双向的以不同的方式。【参考方案13】:我在自学中使用了方案。学习 SICP 的最佳方式是虔诚地完成所有练习。
我已使用Gnu guile 进行方案。
【讨论】:
【参考方案14】:虽然您可以使用 Scheme 以外的其他东西,但您会不必要地添加额外的工作,并可能使自己无法完全理解这本书的内容。 SICP 是一本介绍性的编程书籍。它是通向计算机科学更深层次主题的垫脚石。陷入从 Scheme 到 CL 或 Clojure 的“翻译”中可能会掩盖更精细的点。那将是一种耻辱,因为 SICP 确实是了解编程真正意义的门户。
学习方案非常简单(尤其是与 CL 和 Clojure 相比),事实上,入门课程和书籍一样,假设学生还不知道。相对于手头的任务,CL 和 Clojure 承载了相当多的包袱。
【讨论】:
【参考方案15】:我听说其他人使用过 Common Lisp 和 Clojure。
您应该使用最能激励您的任何语言,但 99% 的通过 SICP 工作的人都会使用 Scheme。
【讨论】:
【参考方案16】:今年早些时候我完成了(大部分)工作,并使用了 Common Lisp,只是因为我没有可用的 Scheme(不要问)。
如前所述,Scheme 是一种 Lisp-1 语言,而 Common Lisp 是一种 Lisp-2。语言之间有足够多的差异,意味着你已经仔细考虑过翻译书中的代码,所以它迫使我真正掌握材料。
【讨论】:
【参考方案17】:但是学习一门对我的简历有帮助的语言仍然是一个好处。
您应该尝试使用 VB6 或 COBOL,因为那里有大量的计费工作。
【讨论】:
是的,仍然需要 COBOL 程序员,但是……这是一个关于函数式编程的问题,而不是关于 COBOL 的问题。 @Alan: 我猜这个回复是讽刺的:)【参考方案18】:我认为 Scheme 是自然的选择(因为它是 SICP 的“原生”语言)
但是,由于 SICP 的真正价值来自于概念而不是特定语言的机制,我认为在任何类似 Lisp 的语言中尝试它都是一个有价值的学习练习。我亲自尝试了一些 Clojure 中的练习,它们都翻译得很好。
对于那些感兴趣的人,有一个正在进行的项目来创建Clojure translation of SICP。
【讨论】:
以上是关于自学Java用哪本书好?的主要内容,如果未能解决你的问题,请参考以下文章