一个Java实习生应该具备哪些知识和能力?
如果你仔细看Java核心技术第一卷,你会发现集合类的常用用法,最重要的两个是ArrayList和HashMap,能轻松刷leetcode和一些集合类操作的介质还是可以的。再进一步,可以看看ArrayList的源代码(这部分源代码几乎没有难度),有助于理解接口和抽象类的使用。
另外,针对目前主要的Java面试,我觉得Java内存模型,GC,线程安全,线程池都是需要了解的。不管面试会不会被问到,至少你要知道Java有这些东西,你可以在实战中通过阅读了解Java虚拟机和Java并发编程来补充这部分知识。实习工作不应该接触这些东西,但是还是那句话,这些概念要知道。
02、熟悉数据库和基本SQL语句。
数据库的主流是MySQL。熟悉MySQL的安装、启动和可视化工具(workbench、navicat等。)并且知道什么是隔离级别。SQL语句可以编写基本的两个表的select、insert、update和inner join,加上ddl语句添加字段和修改字段,了解索引原理和innodb特性。有可能的话可以学生价买个云主机,阿里云里的腾讯云就行。您已经熟悉在CentOS或Ubuntu中通过命令行安装和使用MySQL。
另外作为延伸,可以了解一下redis的基本用法。作为现在的热门组件,其实很容易上手,有些技术面试喜欢问。
03,了解一个Java Web框架。
我推荐Spring+SpringMVC+Mybatis(不建议一上来就学Sping Boot),先在本地搭建这样的环境。
一个很好的学习地方是github,比如教你手工集成最优雅的SSM框架,耐心地用这个教程一步一步配置一个web开发环境。春季重点了解IOC和AOP。
建议使用Intellij IDEA进行编码,并学习如何使用Git。命令包括切换分支、创建分支、添加、提交、推送和合并(了解什么是冲突以及如何修复冲突),无论是使用命令行还是IDEA提供的图形界面。我强烈推荐后者,因为用了之后你就知道它有多好用了。
04,懂一点前端知识。
以我的经验,你需要知道简单的html、css、js(angularjs 1.x)和jQuery,其中需要知道一个bootstrap。根据文档,您可以使用其组件来实现所需的效果。你需要多长时间才能学会这些东西?也许三天。。。我只需要知道最基本的写作方法,就可以满足项目的需要。如果不能满足未来的工作,我可以随时在百度学习,所以我觉得这不是一件很难的事情。
05.实施基于SSM框架的项目。
不好的是网上书店和个人博客。虽然他们是老古董,但他们总是熟悉数据库操作,在添加、删除和检查业务逻辑方面受过培训。其中,你需要注意几点:
代码风格,包括驼峰命名、数据库字段、类型、表名等。,注重面向接口而不是面向实现的编程。
MVC到底在做什么?为什么我的道和服务里面写的代码几乎一样?那为什么要做两层呢?控制器中需要做什么?
进一步(题目要求可以忽略但需要理解),登录时密码如何存储?明文?会话管理呢?如何设置交易配置?我是怎么一改网址就直接跳到后台的?我如何控制这部分的权限?前端分页和后端分页怎么做,等等。
最后,试试把你的应用发布到你买的云主机上,熟悉cd、tar、scp、vi、vim、tomcat配置和操作等基本命令,对以后实习有帮助。
06,刷一些简单的手写算法问题。
这些程序员面试几乎是必然的,高频话题无非就是快速排序、二分搜索法、topK、二叉树遍历、双栈模拟队列等等。
07.写在最后
经过以上,我觉得应聘一个普通公司的Java实习生还是可以的,更不用说大公司了。唯一的缺点是,如果你想进大公司,你只能比我说的要好,但是技术不是太在意你的背景。可以说,努力就有机会。
最后,面试前要多看各种面试,准备好常见问题,写一份简洁清爽的简历。