关于基础知识

来源:3-2 Java String 可以有多长?

慕妹2978617

2020-05-06

老师您好,我已经我又来打卡啦,看了你的Kotlin的课程,正好准备面试,看讲师是你,没犹豫就入坑位啦。

作为非科班(其实我是电子专业也该算是科班,但是大学没学习,后来又参加的培训),深知基础知识的重要性,但是对于基础知识,真的又是又爱又恨,有的说学算法就《算法4》,学JVM,学并发,学Java,学网络,学操作系统。没当我去查学什么书籍的时候,网上大部分推荐的都是那些即经典又权威的书,我想这些一定是非常好的书,但是我一上来很多我就放弃了。因为看到一个知识点发现不会的知识点越来越多,就比如字符能引申出字符集,编码,有可能出现补码,反码,源码,越看发现要学习的越多。还有一个让我烦恼的就是对于一些知识点,比如前两节关于char和String的问题,再工作中,有的时候会不太注意这些,看一些书的时候很多知识点看了也因为用不到而渐渐忘了,比如看《Java核心编程》的时候,关于泛型的知识比如泛型擦除,其实在工作中很少用到,就算用到了,可能百度一下大概知道解决也就过去了。

其实总结两点就是:

  1. 关于基础知识,根绝老师的经验,有什么在看那些经典的书籍之前有什么好的入门的过度书籍嘛?可否推荐基本?Java基础,并发,网络,操作系统 jvm相关的
  2. 关于知识如何系统的学习和掌握,如何能做到像老师这样 知其然 又知所以然,做到在及时基础知识也能做到有深度呢?

可能我的问题有点广,老师要是不好回答就推荐基本入门书籍也可以,老师辛苦了

写回答

2回答

bennyhuo

2020-05-06

你的问题我得想想,哈哈,等我明天电脑上线整理答复你,我先加个备忘

0
2
bennyhuo
回复
慕妹2978617
没事儿别客气
2020-05-06
共2条回复

bennyhuo

2020-05-07

  1. 经典书籍如果指的是Java编程思想,算法这种,那没有什么过渡书籍,直接看就行了。但需要注意的是每个几万行不重复的代码的练习其实是看不到质变的效果的,我的经验就是遇到问题一定要想办法实现,实现了之后也要看看别人是怎么写的。

  2. 第二个问题其实很简单,保持好奇心。其实我接触各类语言的过程中,Java 对于学习进阶而言是非常友好的,因为生态很好,可以参考的资料很多,另外有完善的构建工具例如 maven gradle,可以让我们用第三方框架的时候也能很轻松的阅读源码,因此财富其实就在面前,一定要把握住。我的习惯是用别人的 api一定要看看他是怎么实现的,可以不求细节,但大体思路要清楚,这样遇到问题就容易排查了,所以习惯性的点进去看看源码是一个很好的习惯,时间久了会有很大的进步的。

看源码一开始肯定看不懂,都这样,硬着头皮多看,多想,想不明白就去 github 看 issue,里面有很多人遇到的问题,当刷帖子一样去看,会有很多收获的。

书的话,Java 的书可以看看《深入理解 Java 虚拟机》《Java 编程思想》《Effective Java》,比较枯燥的还有 Java 语言规范和Java虚拟机规范,网络相关的有本 《Java 网络编程》写的还不错,操作系统方面的话一般都太厚了,而且也基本上是 C 语言的,要看的话可以看看 《Unix 环境高级编程》(这本书我也是当工具书查了,没有通读),并发相关的《Java 并发编程实战》,可以搜一下阿里的方腾飞,他也写了一本 Java 并发编程的书。

前面的书还是要边看边实践,不然看了就忘。等你的不重复代码量达到了10-20万行,其实可以横向扩展知识面了,深入的话可以多看看 C++ 相关的书,android framework 的代码很多都是 C++实现的,例如 C++ 编程思想,想要了解下现代语言的设计,可以看看 Scala,当然 Kotlin 也是很好的。我个人也比较喜欢 JavaScript,其实看的 js 的书比 Java 的还多。触类旁通的前提是积累够多,这个就是厚积薄发了。

2
0

大厂资深面试官 带你破解Android高级面试

改变视野和思维 深度与广度兼备的 Android 进阶面试指导课程

1636 学习 · 222 问题

查看课程