第一类的内功:计算机专业所有的专业课程,包括计算机组成原理、操作系统、计算机网络、数据结构与算法、离散数学等等。
如果你选择了 Java,那么还有一层内功需要修炼
JVM:需要了解 Java 的内存模型、内存管理、堆和栈、垃圾回收、类加载机制;学习 JVM 各种参数及调优方法;会用一些调优的工具,当程序出现问题时知道如何跟踪和定位;
多线程和并发:了解多线程、锁机制,知道什么是线程池、线程池的执行流程,如何定义线程池中的核心线程数、最大线程数、队列大小等等;
Java 常用类:String、集合、IO 等等,这些都需要关注到源码级,例如集合中的 HashMap,甚至需要了解不同 JDK 版本的实现方式有什么不同,也可以学习一下 Java 常用的工具库;
其他的 Java 基础:反射、序列化、泛型、异常、Annotation 等等。
其实到了这一层,已经可以应付大多数的校招面试了,当然如果你能继续学习 Java 的常用框架和中间件,那毕业之后进入大厂的机会就会更大了。
关系型数据库:SQL 语法、如何进行 SQL 优化;索引的使用及原理,数据库事务及事务级别等等;
非关系型数据库:Redis 的使用,数据结构及使用场景;
消息队列:Kafka、RabbitMQ 这些可以了解一下,关注使用场景(为什么要用);
开发框架:Spring 全家桶中的很多框架都值得学习,比如 Spring 、Spring MVC、Spring Boot;用到数据库的话,ORM 框架肯定也是离不开的,比如 Mybatis、Srping Data JPA;还有负载均衡、单元测试、持续集成、虚拟化、DevOps、容器...其实框架的东西说起来就太多了,精力有限的话,先在精力方法基础知识的学习上。