3.既然是搞web开发,那么一些web方面的基本的东西,你还是应该接触和了解了,http协议、https协议,dns解析过程,get/post,session/cookie是怎么一回事请,重定向和转发又是怎么一回事情,是时候应该搞明白了,自己找个网站,浏览器的开着F12去冲冲浪(chrome\firefox都可以,现在比以前好多了,不需要装插件了),观察下,每个请求,相应,都有什么不同,消息头,消息体,响应都大概又什么内容,你登录了,没登陆,又什么不一样?cookie长什么样子,有什么特性?有个3-5天左右,结合一些概念,了解了解,差不多了。
4.既然是java处理web请求和响应,那么是时候学习下java在服务端是怎么玩耍的,推荐你用下tomcat,学习下servlet,重点了解生命周期,get,post的处理区别,作用域范围,filter,Listener有什么区别,servlet提供了哪些方法,JSP是什么?能干什么?和servlet有什么区别?JSP既然是动态模板技术,那么网页在渲染的过程中,往往都需要模板来处理,重点理解模板的概念,然后用JSP和servlet做一点简单的页面看看,再结合数据库使用一下。在网上找点JSP/SERVLET实现的小项目,自己动手搞一搞,比如xxx图书管理系统(简单点的,登录/注册,列表页,新增,修改,删除就可以了)。这个阶段给你半个月到1个月吧,每个人情况不同,直到你自己脱手,把找来的小项目自己写出来就差不多了,还可以加点功能,上传个图片什么的。
5.其实前面4步走完,你已经初步掌握了web开发的一些技巧了,后续的内容,是为了你能够胜任专业的工作而需要继续去努力的方向了。走完4步,那么web开发你是知道一些了,只是你的基础还是比较薄弱,有些东西,是你必须要去掌握的了,SpringMVC、Spring、Mybatis,也就是传说中的SSM,你该去玩耍了。不过为了你玩耍得轻松一些,你先得知道反射是怎么一回事儿,动态代理又是什么鬼东西?动态代理的姿势又有哪些?为什么要动态代理。这点小概念,3-5天吧,足够了,没这个你理解框架会比较困难的。
6.正式的去玩耍SpringMVC、Spring、Mybatis,不过在java的学习道路中,你得学会一些方法论。不管遇到什么技术名词,你在上手之前,都去思考几个问题——它是什么?能解决哪个方面的问题?它是如何工作的?再去说怎么用。否则,不管是工作还是面试,你永远吃亏,还是吃大亏。既然提到了三个框架,那么作为web层面的SpringMVC的执行流程是什么?有哪些核心组件,每个组件干了什么?Spring啊,IOC是什么?为什么需要?如何玩耍?有哪些注入形式?bean的作用域又有哪些?事务是什么?(非科班的小白,萌萌新的家伙赶紧补课),ACID什么鬼?隔离层级有是什么?不同的隔离层级导致并发下事务会有哪些问题?到底是谁给了你这些保障?再说spring对事务提供了哪些方式,传播属性是个什么鬼?有哪些?为了做到这些Spring采取了什么手段,AOP又是什么鬼,怎么做到AOP的?那么在数据层面Mybatis又解决了什么问题?怎么使用?SQL注入又是怎么一回事情,如何避免?这些概念理论,别觉得枯燥无趣。比如搞懂,要不以后找不到工作可不要怪别人叻。至少花半个月到1个月时间,弄一弄,顺便做点小练习,把三个框架整合到一起,写个小demo,知道你半生不熟的,但是谁又是第一天就精通加熟练呢?
7.前面6步走完,是时候找点稍微有分量的项目练练手了。不用找太新鲜的,老点的也没关系,关键字ssm+velocity/freemarker…找点开源的xxx系统或者小商城系统,练练手,自己码一次,把原本半生不熟的东西搞起来,至少搞到要熟不熟吧。这个时候你还可能接触一些工具性质的东西,比如apache-commons组件,一些xxxUtils怎么用?怎么处理字符串,怎么判断字符串,怎么做数据,还有重点去想,你写的程序,每个页面都具备哪些功能?有哪些功能是一个页面最基本的?为什么这些功能放在一起,组成了你的xxx管理系统?你的xxx管理系统,把哪些东西做成了自动化,流程化的东西?然后数据库的表结构为什么是那样子设计的?这些表结构,和你的页面有什么联系?这个过程比较漫长,看个人天赋和你找的系统的复杂程度了,不过既然是系统,没个几十张表的,还是不要去搞了,没啥业务含量,太多的你一时半会儿也理解不了。时间还搭进去了。不过不能因为复杂,想不同,你就停下来去专牛角尖。先搞懂技术的使用,简单的业务,有时间了再去想深层次的东西吧。搞一个月吧,半生不熟到要熟不熟的过程,需要的。这个过程下来,你绝对不会去说什么看视频教程和代码能看懂,自己写就写不出来这种傻x话了。
其实前面7步完成,你要从事一点java的初级工作的能力,已经具备了,但是吧,工作离你还是有一些距离的,因为你还是个嫩得出水的小萌新,那种一眼就看得出来的新——别不服气,老鸟看菜鸟不超过30秒的。准备一些新的东西吧,至少为了找个工作。简单点的,谈谈你对javaEE的理解。虚拟机的那些事情,是不是该了解一下了?JVM的内存模型是不是因该知道一下了?JVM的参数调优,可以了解一手?缓存时什么鬼?有哪些形式,从前端到后端,浏览器缓存,本地缓存,分布式缓存都有哪些东西?web服务器有一个叫nginx的东西可以做哪些事情?怎么玩耍的?搞搞搞,搞一下撒。当然,还有数据结构这玩意儿,java版本的就可以了,好歹看得了,跟着做一做联系,因为写程序这个事情,你还是比较熟了,那么一些经典问题的经典解决办法和思路,你必须去学会了。是比较枯燥,甚至脑壳痛,但是不痛过,你哪里会感受到酸爽的滋味?还是有数据库,你以为你会写简单的,或者复杂的SQL就可以了哇——对不起,找工作面试呢还差得远,数据库引擎的区别,索引的种类,优缺点,差异,实现原理,你还是要了解一点的,简单的SQL优化还是要会一些的。这堆东西,网上抓一抓一大把,前面7步做得比较踏实的朋友,1个月时间突击下,真的就够了。但是如果要找工作——你还要练习?怎么练习?把这些性质的东西演讲出来,条理清晰,不急不躁,别去背,用自己的话理解性质的讲出来,背的一听就听出来了,把你打入xxx行业出来的人,被鄙视了不管哈。
最后
经过日积月累, 以下是小编归纳整理的深入了解Java虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!**