编程基础(掌握)

在说编程基础之前不妨问问自己先为什么要去学?(面试是一个原因)

为什么使用JVM虚拟机?

JVM虚拟机解决了什么问题?

并发编程是不是主要就是处理多线程,以及多线程引发的一些问题?

数据是怎么在数据库中查询出结果的?以怎样的存储查询速度才会快速?

设计模式在spring开源框架中的使用,哪些地方可以提现?

更多的是为了清晰的了解程序里面是如何运行,更加深刻的理解一些编程的思想,其实新的技术与框架也是在此基础上去解决了一些问题,万变不离其宗,以不变应万变。

夯实基础才是技术人员长久之道。

这里推荐大家阅读一下《停止学习框架》里面列举了一些必要的知识学习

  • 程序员修炼之道 The Pragmatic Programmer
  • 代码整洁之道 Clean Code
  • 程序员的职业素养 The Clean Code
  • 领域驱动设计和实践 Domain-Driven Design
  • 测试驱动的面向对象软件开发 Growing Object-Oriented Software, Guided by Tests
  • 持续交付 Continuous Delivery

最近学习了很多新技术新框架,感觉越学越烦躁,新知识记不住,基础也不扎实,看到《停止学习框架》才感到找到了方向。

是好巧不巧 遇到羊哥(codesheep)总结学习路线,顺手copy来了

下面:java基础学习路线

JAVA语法

Java基础

JVM

  • 类加载机制
  • 字节码执行机制
  • JVM内存模型
  • GC垃圾回收
  • JVM性能监控与故障定位
  • JVM调优

多线程

  • 并发编程的基础
  • 线程池
  • 并发容器
  • 原子类
  • JUC并发工具类### 数据结构和算法

数据结构

  • 字符串
  • 数组
  • 链表
  • 堆、栈、队列
  • 二叉树
  • 哈希

算法

  • 排序

  • 查找

  • 贪心

  • 分治

  • 动态规划

  • 回溯

    计算机网络

  • ARP协议

  • IP、ICMP协议

  • TCP、UDP协议

  • DNS、HTTP/HTTPS协议

  • Session/Cookie

    MySQL数据库

  • SQL语句的书写

  • SQL语句的优化

  • 事务、隔离级别

  • 索引

  • 操作系统

  • 进程、线程

  • 并发、锁

  • 内存管理和调度

  • I/O原理

    设计模式

  • 单例

  • 工厂

  • 代理

  • 策略

  • 模板方法

  • 观察者

  • 适配器

  • 责任链

  • 建造者