java实习生应该具备那些知识

这里讲所需知识可能比较的多,我认为有一下知识后能使自己完全胜任这个职位,甚至可以直接比过其他实习生,从而使自己获得更好的优势。
第一:java基础
认真看一遍 java核心技术卷一,会常见的集合类用法,最主要两个 ArrayList 和 HashMap,水平到可以刷 leetcode easy 和一些集合类操作的 medium 就OK。其中更进一步可以看看 ArrayList 的源码(这部分源码几乎没有什么难点),有助于理解接口和抽象类的使用。
另外,针对目前主要的java面试,我觉得java内存模型、GC、线程安全、线程池这些需要了解,不管面试会不会问,至少应该要知道java有这些东西,可以通过看 深入理解Java虚拟机 和Java并发编程实战 补充这部分知识,实习工作应该不会接触到这些,但还是那句话,这些概念要知道。
第二:熟悉一个数据库和基本SQL语句
数据库主流就是MySQL了,熟悉MySQL的安装、启动、可视化工具(workbench、navicat等),知道什么是隔离级别,SQL语句会写基本的select,insert,update和两张表的 inner join,外加增加字段、修改字段的ddl语句,理解索引原理和innodb特点。这里有条件的可以用学生价买一个云主机,国内阿里云腾讯云都行,熟悉在 CentOS 或者是 Ubuntu 里命令行安装和使用MySQL。另外,作为拓展,可以去了解一下redis的基本使用,作为现在大热的组件,其实却非常容易上手,一些技术面试很喜欢问。
第三:了解一个Java Web框架
推荐 Spring+SpringMVC+Mybatis不太推荐一上来就学 Sping Boot,先自己本地搭建一个这样的环境,这里建议不要去 CSDN 这类国内博客找搭建教程,因为往往这类博客写得错综复杂,用的Spring版本混乱,代码注释少而且配置文件里面配置得还不标准。有个很好的学习地方就是github,例如:手把手教你整合最优雅SSM框架,跟着这种教程一步一步耐心的配置一个web开发环境。对于Spring重点理解 IOC和AOP。推荐使用 Intellij IDEA 进行编码,学会 Git 的使用,命令包括切换分支、创建分支,add、commit、push、merge(理解什么叫conflict和怎么修复),不论是用命令行还是IDEA提供的图形界面都可以,我强烈推荐后者,因为用过你就知道它有多好用。
第四:了解一点前端知识
这里以我的经验来讲,你需要会简单 html、css、js(angularjs 1.x)和 jQuery,其中前两者你还需要知道一个 bootstrap,根据文档能用它的组件实现你需要的效果,你学习这些东西要多久呢?可能三天吧。。。只需要知道其中最基本的写法,能实现项目中的需求,如果之后工作遇到不会的随时可以百度学习,所以我觉得这不算很艰巨的任务
第五:基于SSM框架实现一个项目
用烂的就是网上书店、个人博客这类,虽然老掉牙,但是对熟悉数据库操作、训练增删改查的业务逻辑编写却屡试不爽,其中你需要注意的一些点:
代码风格,包括驼峰命名法、数据库字段、类型、表名等的设置,注意面向接口而不要面向实现编程。
MVC 究竟在干吗,我dao、service里写的代码怎么差不多啊,那为什么要做两层?controller里需要做些什么?
再深入(对于题主需求可能可以忽略但需要了解),登录时的密码存储怎么做?明文么?session管理怎么搞?事务配置怎么设置?我怎么url一变直接跳进后台了,这部分怎么做权限控制?前端分页、后端分页都是怎么弄的等等
最后,将你的应用发布到你买的云主机上试试,熟悉基本的 cd、tar、scp、vi、vim、tomcat配置运行等基本命令,有助于之后的实习工作。
第六:刷一些简单的手写算法题
这些程序员面试中几乎不可避免,高频的题目无非就是快排、二分查找、topK、二叉树三种遍历、两个栈模拟队列等等,这里可以通过刷 剑指offer 来训练,不想买书的很多网络平台也有在线刷题
最后
这些在一个普通公司的java实习生就已经ok了,唯一不足是鉴于你的学历如果想进大公司只能做到比我说的要更优秀,但是技术不是过分在意出身,可以说努力就有机会。最后,面试前还是要多看看各种面经,好好准备一下常问的题目,写一份简单的、清爽的简历。如果你认为自己还达不到,那么你来加入java学习交流群934623944一起讨论学习。

你可能感兴趣的:(java)