发布时间:2021-05-20 10:12:12 阅读次数:264
基础
有人问我java学到什么程度能够出去找工作,最起码javase学会环境搭建、常用的javaapi、基础的语法、面向对象、IO流,反射机制、多线程和网络编程,学会这些,并用这些知识搭建一个简易的聊天室服务就差不多了。
数据库
除了基础要打牢还要去学习数据库,搞定mysql和orilcle,现在互联网企业公司大多数选择这两种数据库,一定要自己多写sql,增删改查做到熟练使用。
前端
打牢数据库以后,可以去学习web,学习web做java 的学习css,html,和javascript就够用了,学习完这些,自己动手去写动态页面,模仿其它页面,学习其它好的页面是怎样设计的。学习前端还要学习这两个框架,jquery和bootstrap。
后端
学习完这些进阶后端,后端学习的东西就多了,mvc架构模式,23种设计模式,过滤器,拦截器,数据库连接池线程池,想要多拿工资,学习springcloud,MQ,docker以及openshift,dubbo,zk,mq,nginx,redis,linux,vue,jvm优化算法和数据结构等。自己一定要深刻理解mvc架构模式,自己一定要做过mvc的项目。
框架
学习springboot ,mybaits,jpa以及springmvc必学。
总结
要面试,javase基础(什么集合,网络协议,io,反射等等),肯定必备的,然后前端三件套,其实这个如果是面试后端的,其实没必要那么深入学,学前端最主要就是掌握ajax,这是前后交互重点,后面框架ssh,ssm,其实现在ssh没必要研究了,学了会用就行。
ssm还是要认真研究的,这个不是学了会用就行,框架底层还得去了解,像sping的aop这些,mybatis四大对象,一二级缓存机制,springmvc的前端控制器等等,最好都是要理解一遍源码,清楚用了什么设计模式,接下来mysql性能优化,并发多线程,jvm,设计模式(虽然有23种,但没必要全会,后端的像代理,工厂,建造者,单例,适配器等几个必须要会,学这个方便看源码)redis等。
还有有网络知识,操作系统,数据结构,算法,学完这些才是真正有去面试的资格吧,去面试还要准备好一个拿得出手的项目,一个自认为比较熟悉的框架,加分项的话就是一些分布式啊,微服务这些新技术。
面试官最后一般都问你有没有学过什么新技术的,其实很多人说学不完,我上面说的那些2年多时间基本差不多够了,也就是大一到大三,刚刚好,当然,程序员是孤独的,所以一般每天学多久你们想拿好工资心里就要有点数,我当时初入编程时可是没日没夜的学。
应届生的话还是打好基础,学到springboot就行了,没接触过web应用的建议还是学一学ssh再学mvc,熟悉主流数据库,基础是重点,像好多人本末倒置为了框架而学,学一堆API,事实上大厂校招第一关就是算法,语言任选,过了再谈后面的框架。
java有jvm帮你们做了一堆事,netty的buf自动释放就是用引用队列做了析构类似的工作,只不过是用来计数,零拷贝原理就是c语言入门的内存映射。c是完全自己造轮子,所以熟悉c/c++的学其他语言更容易理解其他语言的底层原理。
不是应届生的话起码要熟悉cloud,reactive web,布隆,布谷鸟,雪花等等算法,分布式事务2pc 3pc tcc saga,现在有seata现成的可以用,主流注册中心,熔断降级,网关,配置中心等等。菜的人在写业务,牛的人在写底层框架和中间件