想预习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 相关技术包括:

  1. AWT
  2. Swing
  3. SWT/JFACE
  4. JavaFx
  5. JavaFx2

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 遇到某个<a>aaa</a>,就会发出 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 就行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值