长沙Java培训:学Java找工作需要具备哪些知识能力?
推荐
在线提问>>
在长沙Java培训学Java找工作需要具备哪些知识能力?初级Java程序员工作对求职者的要求不高,但是至少要掌握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),先自己本地搭建一个这样的环境。有个很好的学习地方就是github,例如:手把手教你整合最优雅SSM框架,跟着这种教程一步一步耐心的配置一个web开发环境。对于Spring重点理解 IOC和AOP。
推荐使用 Intellij IDEA 进行编码,学会 Git 的使用,命令包括切换分支、创建分支,add、commit、push、merge(理解什么叫conflict和怎么修复),不论是用命令行还是IDEA提供的图形界面都可以,我强烈推荐后者,因为用过你就知道它有多好用。
做Java工作还需要了解一点前端知识。这里以我的经验来讲,你需要会简单 html、css、js(angularjs 1.x)和 jQuery,其中前两者你还需要知道一个 bootstrap,根据文档能用它的组件实现你需要的效果,只需要知道其中最基本的写法,能实现项目中的需求,如果之后工作遇到不会的随时可以百度学习,所以我觉得这不算很艰巨的任务。
最后基于SSM框架实现一个项目,用烂的就是网上书店、个人博客这类,虽然老掉牙,但是对熟悉数据库操作、训练增删改查的业务逻辑编写却屡试不爽,其中你需要注意的一些点:代码风格,包括驼峰命名法、数据库字段、类型、表名等的设置,注意面向接口而不要面向实现编程。MVC 究竟在干吗,我dao、service里写的代码怎么差不多啊,那为什么要做两层?controller里需要做些什么?
再深入(对于题主需求可能可以忽略但需要了解),登录时的密码存储怎么做?明文么?session管理怎么搞?事务配置怎么设置?我怎么url一变直接跳进后台了,这部分怎么做权限控制?前端分页、后端分页都是怎么弄的等等最后,将你的应用发布到你买的云主机上试试,熟悉基本的 cd、tar、scp、vi、vim、tomcat配置运行等基本命令,有助于之后的实习工作。
去面试前刷一些简单的手写算法题,这些程序员面试中几乎不可避免,高频的题目无非就是快排、二分查找、topK、二叉树三种遍历、两个栈模拟队列等等。面试前还是要多看看各种面经,好好准备一下常问的题目,写一份简单的、清爽又具备信服力的简历。