浅谈从学校(培训机构)跳跃到企业初/中级java开发工程师的学习路线(由浅入深)

1.先别学SSM,也别学Mybatis ,直接百度SpringBoot 

为什么学它呢,简单,还有你要用到的几乎所有框架都可以以最简单的模式去学习,比如mybatis。

springboot天然集成了你在校学习的ssm以及任何你需要用到的东西,真正意义上实现0配置,开箱即用。

任何行业有价值的东西都会有行业门槛或者行业堡垒,疯狂的提高门槛为了不让其他人来瓜分蛋糕。

而互联网程序员现在蛋糕越来越大,一些既得利益者会想办法提高门槛,直接springboot让你以最简单最捷径的模式开启后端之路。

2.接口

@Autowired

@Autowired是用在JavaBean中的注解,通过byType形式,用来给指定的字段或方法注入所需的外部资源。

例如Controller层加注解 @Autowired private XxxService xxxService;注入业务层

@Component

(把普通pojo实例化到spring容器中,相当于配置文件中的)

泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。

@Repository
@Repository注解修饰哪个类,则表明这个类具有对对象进行CRUD(增删改查)的功能,而且@Repository是@Component注解的一个派生品,所以被@Repository注解的类可以自动的被@ComponentScan 通过路径扫描给找到。(这也在一定程度上解释了,为什么被@Repository注解的类也能@Autowired)

实际开发过程中通常在Mapper接口中添加,否则ServiceImpl中注入mapper会报红波浪线。
@Service@Controller/@RestController

在applicationContext.xml配置文件中加上这一行以后,将自动扫描指定路径下的包,如果一个类带了@Service注解,将自动注册到Spring容器,不需要再在applicationContext.xml配置文件中定义bean了,类似的还包括@Component、@Repository、@Controller。

@Service@Controller我归为一类,我理解的可以简单理解为是用来标记其对应的层但是实际开发中标记controller层都用@RestController 自行百度区别

写好接口壳子,

入参是一个,多个,集合,文件?

出参是一个,多个,集合,文件?

3.异常怎么处理?如何全局统一处理一些问题? 

@ControllerAdvice

@RestControllerAdvice

@Aspect

(以上内容都是高收益的,基本百度一查一看就能懂,且非常非常实用)

4.百度SpringBoot mybatis

这个必须会,且会熟练使用

·百度原理,搭建,主要配置 (pom文件)

·百度@Select,@Update.....

这是mybatis的主要内容,干活就写这些

·百度mybatis动态参数 注解

别学驱动方式或其他方式,直接注解版本或者 xml文件

·百度springboot事务,过一遍有些忘记了也没关系

·重点(很实用)百度mybatisplus ,dao(数据层)代码全都是写好的

·百度mybatis-plus-generator 或者 mybatis Generator

从业务层到实体类全部生成 别人给你写好的改一改

5.百度pagehelper 分页(必须会)

到这一步几乎涵盖所有内容也就是所谓的能干活了,你靠着这一套就能保住工作。

如果时间充裕强烈建议手必须编码进行增删改查列表分页一波,知道熟练。因为后面还有新的技术都需要以此作为起点。

如果你号称自己在学校学习熟悉掌握并精通ssm

那会问你:

1.aop,ioc 默写全文

2.声明事务以及事物传播的方式 默写全文

3.spring事务不生效的原因 默写全文

4.什么是数据库连接池,你怎么用(hikari,druid)

5.背诵并默写全文

6.spring多数据源配置 请简述主要步骤.

7.mybatis #{}和${}啥区别(其实这是ognl表达式..)

8.Mybatis都有哪些Executor执行器

9.Mybatis的一级、二级缓存

10.sqlsession生命周期

..

经过长时间的朗诵阅读背诵并默写你能拿到10人公司offer..

毫不客气的说,2021年年底了只会这点玩意..好点的外包公司外包项目你都进不去..

如果你放弃了,不想学了,饿不死你了你可以止步于我上面阐述的这些。

———————————————————————————————————————————

如果你不甘于如此那么请继续下面的内容

一个初级工程师是否牛逼,首先是sql,sql牛逼成功了一大半了。

不停的百度sql更多内容

1mysql

1.1mysql innodb原理

1.2mysql事务隔离级别 必问

1.3mysql索引原理(就是背诵b树,b+树)

1.4sql优化 必问,而且是装逼的好时节(图2)


这玩意给你一个捷径:mysql参考手册

苹果翻译,然后第八章开始阅读,然后默写全文..

以上内容可以入职后再用,仅仅只是救命稻草

———————————————————————————————————————————

以下内容我自己也在学,部分参考知乎问答中级java工程师,有些我也不会但是学习路线是正确的

一、

百度sql优化

会得到 like% null,大小表等..先记住..


1.5百度执行计划

就知道有哪几个type 谁快就好了

system:系统表,少量数据,往往不需要进行磁盘IO
const:常量连接
eq_ref:主键索引(primary key)或者非空唯一索引(unique not null)等值扫描
ref:非主键非唯一索引等值扫描
range:范围扫描
index:索引树扫描
ALL:全表扫描(full table scan)
然后百度 msql不走索引的原因..

比如like百分号,is null …

6再加一个乐观锁mvvc

差不多 普通难度最后生还者可以玩了..

哦不 crud boy的工作没问题了

百度sql优化

会得到 like% null,大小表等..先记住..

1.6然后百度inner join,left join,right join区别

1.7百度mysql左原则,大小表查询怎么优化(装逼技巧:先说如何如何,然后话题一转..现在没用了,编译器早就帮你优化了,不管前后都无所谓)

1.8mysql数据超过4-5千万会很慢.解决办法…

(1.6-1.8我比较熟悉因为项目很少有单表或者单对多,一般面试涉及你以往项目或者问你数据库上来直接会问你多对多的相关问题 :中间表了,怎么设计多对多了,crud一些功能相比较于单表或者单对多有什么注意的了,一定会涉及联合查询与表与表的连接 就会问到inner join,left join,right join 区别,因为给你个模块你是要自己涉及数据库的。

———————————————————————————————————————————

分库分布以及中间件..

更快的数据库引擎..

这是一个大的话题了,现在跳过

!!!还有一个大块就是Redis,强烈建议学习这是啥,以及怎么用。

二、如何才算sql牛逼,可以解决复杂的问题 

一:请百度如下内容,基本上工作时间不久的人不会知道的。

1列转行

2开窗函数

3 id between分页(结合大数据分页很慢怎么解决一起装逼)

limit 分页 后面几万页会很慢。

二 自己百度或者意淫一些统计sql题

比如1求出每个班三科成绩都是90分的数量

2求出全年级每个班数学95分以上的人

3.90份以上的优秀,80以上良,70以上中 60以下 差,求出差生最多的三个班级。

..

三 批量


INSERT INTO tablename ('username','password') values 
('xxx','xxx'),('xxx','xxx'),('xxx','xxx'),('xxx','xxx'),('xxx','xxx'),('xxx','xxx')
.......
insert into dh_dead_letter(id,topic_code,content) values('2','topic_code','topic_code') on duplicate key update topic_code = values(topic_code), content = values(content);


insert ignore into table(name) …

当然这不够,还得结合mybatis

三、jvm

四、jdk的新特性

(三四,我个人觉得仅仅只是面试时候装逼用)

———————————————————————————————————————————

五、(非实习生,做了很久的初级java工程师,或者中级工程师进阶)也是跟深圳在职朋友(接触过的或认识的最牛逼的后端)交流取经得到的学习路线,学这些的前提是以上内容全部学完看懂,除了装逼用的以外都会使用。

1.springBoot 2.springCloudnetflix 3.springcloudalibaba 4.dubbo 5.redis 6.elasticSearch 7.rabbitMQ

我只能说粗略掌握123,再进阶的还没学,计划明年年中全部学完掌握

——————————————————————————————————————————

找工作tips

1  一份工作所需技术方向太多(多工种),你又不是管理人员

比如测试只有开发自测

前后端一个人写

需求文档由领导口头说开发写

别去。

玩游戏应该都知道 别乱点技能树吧。

2  后端会前端比如jquery,vue,会selenium,只要你提出来,就会认为你很垃圾,(重中之重如果你面试的是后端不要提任何你会的前段技术,如果需要你会前端技术就是前后端不分离的垃圾公司,如果你想去那么跟人事谈的时候就要给到你 全栈开发的工资否则不要去)但前端懂一点后端,会写写ssm会认为很牛逼

3  面试落差是必然的,

你以为公司不会吹逼?

公司吹他们用ssm入职会写jsp

公司吹他们用springcloud,大概率就是挂了一个eureka的分布式单体,入职crudboy

如果干吹他们有上亿数据量,入职sql boy


4  如果真的聊一下中间件的细节,比如kafka如何保证数据的顺序,大概率是准备用。

入职就是@KafkaListener

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

interface接口_接口 interface

接口不是类,而是对类的一组需求描述。Arrays类中的sort方法承诺可以对对象数组进行排序,但要求满足下列条件:对象所属的类必须实现了Comparable接口。public interface Comparable {int compareTo(Object other); }Java SE5.0,Com…

代码视图与StoryBoard.Xib文件视图的跳转

在storyboard中拖拽的控件,当我们使用纯代码进行编写的时候,进行跳转的时候用我们平时用的[self.navigationController popToViewController:Vc animated:YES], 你会发现跳转的后出现的页面只有你用用纯代码写的,而storyboard中的没有,这时候我们使用这个方法还是比较简单不能实…

influxdb mysql对比_InfluxDB读写性能测试

这里将告诉您InfluxDB读写性能测试,教程操作步骤:今天进行了InfluxDB和MySQL的对比测试,这里记录下结果,也方便我以后查阅。操作系统: CentOS6.5_x64InfluxDB版本 : v1.1.0MySQL版本:v5.1.73CPU : Intel(R)…

Nginx windows安装部署

一、Nginx简介 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru 站点(俄文:Рамблер)开发的. 它也是一种轻量级的Web服务器…

前端学习(1514):vue-router使用步骤

<!-- 1引入插件的js --> <!-- 2设置链接 --> <!-- 3设立容器部分 --> <!-- 4提供要渲染的组件 --> <!-- 5配置路由 --> <!-- 6挂载路由 --> <!DOCTYPE html> <html lang"en"><head><meta charset"UT…

1024电商项目的邮箱验证码与图形验证码功能模块

项目基于springcloudalibaba&#xff0c;模块功能大致概括就是登录页面的时候先完成图形验证码的校验&#xff0c;输入的数字和字母与图片上的相对应之后&#xff0c;会向对应的邮箱或手机号发送邮箱/短信验证码二次验证。这里展示的是邮箱验证码。 用到的技术点有&#xff1a…

Android自己的自动化测试Monkeyrunner和用法示例

眼下android SDK在配有现成的测试工具monkey 和 monkeyrunner两。也许我们不看一样的兄弟名字。但事实是完全跑了两个完全不同的工具。在测试的不同区域的应用程序。总体&#xff0c;monkey主要用于压力和可靠性测试&#xff0c;拟键盘事件流。而且能够自定义发送的次数&#x…

内存大对象dump linux_在 Linux 上创建并调试转储文件 | Linux 中国

了解如何处理转储文件将帮你找到应用中难以重现的 bug。• 来源&#xff1a;linux.cn • 作者&#xff1a;Stephan Avenwedde • 译者&#xff1a;Xingyu.Wang •(本文字数&#xff1a;5501&#xff0c;阅读时长大约&#xff1a;6 分钟)崩溃转储、内存转储、核心转储、系统转储…

爬虫用mysql存储还是mongodb_【面试题】Mongodb和MySQL存储爬虫数据的特点是什么?...

(1)问题分析面试官主要考核Mongodb和MySQL数据库的特点&#xff0c;以及关系型与非关系型数据库。(2)核心问题讲解MySQL属于关系型数据库&#xff0c;它具有以下特点&#xff1a;在不同的引擎上有不同的存储方式。查询语句是使用传统的sql语句&#xff0c;拥有较为成熟的体系&a…

mysql originator_MySQL数据库事件调度(Event)

4.创建事件调度每5秒在表中插入数据MySQL> create event if not exists event_t1 on schedule every 5 second do insert into t values(1,1,sysdate());Query OK, 0 rows affected (0.01 sec)mysql> select * from t; --查看事件执行数据-------------------…

前端学习(1520):vue-router嵌套路由

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title></head> <!-- 1引入…

python与sql连接不上_Python连接不上SQL Server的两种根治思路

连接不上数据库&#xff0c;首先可以排除是代码的问题&#xff0c;连接方式都是千篇一律的。大多数问题都是本机的两个原因造成的&#xff0c;1.服务没有开启,2.没有启动SQL配置的TCP/IP下面给出统一解决方案&#xff1a;首先从开始菜单找到SQL数据库的配置工具&#xff0c;比如…

python多进程和多线程一起使用_Python:多进程和多线程

在现实社会&#xff0c;我们经常需要一种场景&#xff0c;就是同时有多个事情需要执行&#xff0c;如在浏览网页的同时需要听音乐。比如说在跳舞的时候要唱歌。同样的&#xff0c;在程序中我们也可能需要这种场景。如下面我们以同时听音乐和浏览网页为例。def network():while …

python字典怎么换行_Python字典如何换行

原标题&#xff1a;Python字典如何换行Python字典换行的方法如下&#xff1a;1、换行时保证行尾是逗号即可a {"key0": "val0","key1": "val1","key2": "val2"}2、在长度不影响阅读的情况下这种写法也是允许的&am…

回复《我要阻止做java开发的男朋友去创业型公司工作吗?》园友问题

真的非常开心能收到这么多园友的关心&#xff0c;看到这么多的回复顿感身边处处充满爱。也非常感谢大家踊跃的帮我出谋划策&#xff0c;小女子在此有礼了&#xff01; 我先来回答一下性别的问题&#xff08;前面已经暴露了……&#xff09;&#xff0c;我是前端程序媛。大三时和…

java date转sql date_java.util.Date和java.sql.Date转换(转)

Date 的类型转换&#xff1a;首先记住java.util.Date 为 java.sql.Date的父类1.将java.util.Date 转换为 java.sql.Datejava.lang.ClassCastException: java.util.Date cannot be cast to java.sql.DateDate dnew Date(); //java.util.Datenew java.sql.Date(d.getTime()) //…

Kaggle Bike Sharing Demand Prediction – How I got in top 5 percentile of participants?

Kaggle Bike Sharing Demand Prediction – How I got in top 5 percentile of participants? Introduction There are three types of people who take part in a Kaggle Competition: Type 1: Who are experts in machine learning and their motivation is to compete with…