栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

想学java零基础先买哪本书好(java必看的几本书)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

想学java零基础先买哪本书好(java必看的几本书)

入门 Java,我推荐《Java核心技术》第 11 版,yyds!

这其实是一套书,分为两本:

卷1 基础知识(豆瓣 9.2 分)卷2 高级特性(豆瓣 8.4 分)

一个9.2分,一个8.4分,很高的分数,书的质量杠杠的!

我估计 70% 的 Java 程序员入门看的是这本书,写的经典、全面,对 Java 各种特性,都会有对应的代码示例。

同时,光看这本书作为入门有个问题,就是只能知其然,却不知所以然。而不知所以然,必然会导致咱们的基础会不够牢靠。

《Java核心技术》和《Java编程的逻辑》联合学习,算是珠联璧合,对入门 Java 是再合适不过的了。

这里多说几句,入门打基础十分重要,对于编程这种实践类的学习,想打好基础,光靠读书,是远远不够的。一定要经过大量的代码练习。所以,在这个时期一定要多作代码练习。这里,我给出一些可以自己尝试的练习:排序算法的小练习

字符串查找的小练习对系统文件做下增删查改递归的小练习使用 Java 集合的小练习写个小游戏、小东西能综合训练下学到的所有技能 Java 的桌面 GUI 相关技术

GUI,即 Graphical User Interface,图形用户界面。

Java 的 GUI 相关技术包括:

    AWTSwingSWT/JFACEJavaFxJavaFx2

Java 的 GUI 技术到目前的代表应用是两个:一个是 Eclipse,是用 SWT 开发的;另一个是 Jetbrains 下面的所有开发工具,典型代表是 IntelliJ IDEA。

我为什么把图形界面相关技术放在这里,说不用学呢?因为在我们国内,一个程序员的整个职业生涯里可能都很难和这个技术有所接触。

一是因为国内本身使用 GUI 开发桌面应用的岗位本来就非常少见。国内的主流就是互联网,相关技术岗位几乎占了 IT 圈子的 80% 以上,没有什么 GUI 技术的岗位。二是因为 Java 的 GUI 技术难用。虽然 Eclipse 和 IntelliJ IDEA 都使用的 Java 的 GUI 技术,但是 Java GUI 的难用是出了名的,哪怕是最新出的 JavaFx2,也是各种问题一堆,各种内存泄露。

说的这里,我想起来了,我第一份工作还真用过 Swing,当时有个 CS 结构的项目用到了 Swing。

当时我纯小白,Java 还没学明白,更别提用 Swing 了,然后特意买了一本书学习。

不过等我从小白到能写代码的时候,这个项目已经快做完了,所以我也没贡献多少代码……一直到现在,我还清楚记得,那个项目的界面真朴素,性能也很朴素。

从那次之后,工作十几年之中,我再也没接触过 Java 的 GUI。我身边做这方面的程序员也几乎没有。

总的来说,Java 相关 GUI 的东西可以跳过不学,因为用的机会太少了,学起来费劲,相关岗位也少,性价比太差。

Java 的 XML 相关 API

这里说的 XML 相关 API,其实就是说的 Java 中内置的相关 XML 解析 API,这些相关 API 被统一称作 JAXP。

在 JAXP 里,有两种解析 XML 的方式,都有各自对应的 API:一种叫做 DOM 解析方式,一种叫做 SAX 解析方式。

DOM 解析方式就是 Java 内置了一套解析工具,可以把 XML 内容读取到应用里挨个解析对应的元素,然后形成一棵树。

而 SAX 解析方式就是 Java 内置了一系列的事件对应于不同的 XML 内容的元素,当使用 SAX 解析方式后,碰到一个 XML 元素,就发一个事件到对应的监听器。比如,当 SAX 遇到某个aaa,就会发出 startElement 事件,然后,你就可以写个监听器,去做对应处理。

我之所以说不要学 XML 相关 API,首要原因是这套体系非常庞大。你表面看着是套 API 使用而已,可是要熟练使用对应的 API,你还得对 XML 本身的构造和相关知识也要有足够了解。

这些知识除了多和杂,最关键的一点是,这些知识过时了。现在用 XML 的场景已经不多了,以后基本也没人会用这些东西了,XML 相关的东西,基本被 JSON、YAML 这些后起之秀替代了。

所以,如果你正在学 XML,就停下来跳过去,如果准备学 XML,就赶紧避过去。同时我建议:

把精力花在学习 JSON、YAML 的结构、以及如何解析JSON、YAML上。

Java 的安全相关

这里说的 Java 安全包含了两个部分:

java.security 包中的所有相关类和接口JAAS 框架

先说第一个,java.security 包在实际工作中,都已经被封装了起来,大家往往使用的都是已经写好的工具类。同时呢,java.security 里有些功能可以通过安全策略去限制一个系统用户去访问对应的 Java 类或者远程下载一个类。

但是在实际当中,限制用户访问,完全可以通过开源的权限框架去限制,而且限制访问资源即可。限制访问一个 Java 类什么的,实际意义并不太大。

Java 的国际化

这里说的国际化就是平常大家听到的 Java 的 Internationalization 相关技术。

国际化的根本目的就是做能给用户展示出不同语言的系统界面。而这种需求,其实在国内行业需求很少。

但是,当我们学习刚入门的时候,Java 国际化理解起来门槛比较高,有各种各样的格式化和相关字符串替代,还得明白大致的配置文件是如何加载的。而且就算理解了,由于工作不会经常用到,最终都会全部忘光。

Java 的 native 方法

Java 的 native 方法就是 Java 如何去访问 C 或者 C++ 所写的函数的方式。

但是,还是像上面说的一样,我工作的十几年中,用到的次数屈指可数。所以,可以不用学,真要用的时候,我想那时候你已经是一位高级工程师了,现用现学都可以。

所以,研究 native 方法,不如去学些 Java 的高级特性、最佳编码实践。

Struts 和 Hibernate

Struts、Hibernate 当年都是非常优秀的 MVC、OR Mapping 框架,后来随着 Spring 和 MyBatis 的出现,这些后起之秀们越来越流行,Struts 和 Hibernate 用的越来越少了。

如果是自己学习的话,建议直接从 Spring 和 MyBatis 开始,毕竟它们参考了 Struts 和 Hibernate,吸收了前人的优点,改正了前人的缺点。

可能有人觉得“需要学 Struts、Hibernate”——这种观点存在也正常,因为现在还有很多公司的老项目用的就是它们。

所以,对于 Struts 和 Hibernate,学了也就学了,说不定以后会用到。还没学的话,直接学 Spring、MyBatis 就行。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/776548.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号