学习MySQL的四万字 笔记总结【全面整理+详细解释

  • 意思就是如果不指定该列的值,则会有默认的值取代。

另外几个字段:

在这里插入图片描述

2.4 创建数据库表(命令行)


创建语句格式要记住:

– 注意点,使用英文(),表的名称和字段尽量使用``括起来。

– AUTO_INCREMENT自增。

– COMMENT注释最好每行都添加。

– DEFAULT NULL意思就是默认是NULL。

– PRIMARY KEY 主键,一般一个表只有一个唯一的主键

CREATE TABLE IF NOT EXISTS student (

id INT(4) NOT NULL AUTO_INCREMENT COMMENT ‘学号’,

name VARCHAR(30) NOT NULL DEFAULT ‘匿名’ COMMENT ‘姓名’,

pwd VARCHAR(30) NOT NULL DEFAULT ‘123456’ COMMENT ‘密码’,

sex VARCHAR(2) NOT NULL DEFAULT ‘女’ COMMENT ‘性别’,

birthday DATETIME DEFAULT NULL COMMENT ‘出生日期’,

address VARCHAR(100) DEFAULT NULL COMMENT ‘家庭住址’,

email VARCHAR(50) DEFAULT NULL COMMENT ‘邮箱’,

PRIMARY KEY (id) – 可以设置在上面的id中,但是为了更明显可以直接单独定义出来。

)ENGINE=INNODB DEFAULT CHARSET=utf8

– ENGINE=INNODB DEFAULT CHARSET=utf8 是来表的类型和字符集设置

格式:

CREATE TABLE [IF NOT EXISTS] 表名 (

字段名 列类型 [属性] [索引] [注释],

字段名 列类型 [属性] [索引] [注释],

字段名 列类型 [属性] [索引] [注释],

)[表的类型] [字符集设置] [注释]

常用表的命令:

像这些show create database/table ,都是反向操作获取创建表的命令行。

SHOW CREATE DATABASE school; – 查看创建数据库的语句

SHOW CREATE TABLE student; – 查看student数据表的定义语句

DESC student – 显示表的结构

2.5 数据表的类型


engine = INNODB; – 默认使用。

engine = MYISAM; – 早些年使用的。

– 在创建表的时候,这些是配合engine定义的。

| | MYISAM | INNODB |

| — | — | — |

| 事务支持 | 不支持 | 支持 |

| 数据行锁定 | 不支持 | 支持 |

| 外键约束 | 不支持 | 支持 |

| 全文索引 | 支持 | 不支持 |

| 表空间的大小 | 较小 | 较大,约为2倍的myisam |

常规使用操作

MYISAM和INNODB的优缺点:

  • MYISAM – 节约空间,速度较快。

  • INNODB – 安全性高,事务的处理,多表多用户操作。

所有的数据库文件,在物理空间存在的位置,都在我们创建mysql的data中。一个文件夹就对应一个数据库,因此存储的本质上还是文件的存储!

MySQL引擎在物理文件上的区别:

  • InnoDB ,在数据库表中只有一个*.frm文件。

在这里插入图片描述

  • MYISAM 对应文件:

***.frm – 表结构的定义文件。

*.MYD – 数据文件(data)。

*.MYI – 索引文件(index)。**

在这里插入图片描述

设置数据库表的字符集编码

CHARSET=utf8

  • 不设置的话,回事mysql默认的字符集编码~Latin1(不支持中文的!!!),因此要定义为utf8。

  • 当然,我们可以设置这个默认编码,就是在my.ini中配置默认的编码:character-set-server=uft8 。

character-set-server=uft8

2.6 修改和删除 表


修改表

  • 修改表名: ALTER TABLE 旧表名 RENAME AS 新表名;

  • 增加表的字段: ALTER TABLE 表名 ADD 字段名 [INT(11)] [列属性];

  • **修改表的字段(重命名,修改约束):

– 修改约束方式:ALTER TABLE 表名 MODIFY 字段 [要修改的列属性(类型等)];

– 重命名方式:ALTER TABLE 表名 CHANGE 旧字段 新字段 [要修改的列的属性(类型等)];**

  • 删除表的字段:ALTER TABLE 表名 DROP 字段;

– 修改表名: ALTER TABLE 旧表名 RENAME AS 新表名;

ALTER TABLE teacher RENAME AS teacher1;

– 增加表的字段: ALTER TABLE 表名 ADD 字段名 [INT(11)] [列属性];

ALTER TABLE teacher1 ADD age INT(11);

– 修改表的字段(重命名,修改约束):

– ALTER TABLE 表名 MODIFY 字段 [要修改的列属性(类型等)]; – 修改约束方式

– ALTER TABLE 表名 CHANGE 旧字段 新字段 [要修改的列的属性(类型等)]; – 重命名方式

ALTER TABLE teacher1 MODIFY age VARCHAR(11); – 修改约束方式

ALTER TABLE teacher1 CHANGE age age1 INT(11); – 重命名方式

– 删除表的字段

ALTER TABLE teacher1 DROP age

下面是change和modify的区别:

在这里插入图片描述

删除表

  • DROP TABLE [IF EXISTS] 表名;

– 删除表(如果表存在再删除)

DROP TABLE IF EXISTS teacher1;

所有的创建和删除操作尽量加上判断(if exists 或者 if not exists),以免报错。

3. MySQL 数据管理

===========================================================================

3.1 外键约束(不推荐!)


方式一:在创建表的时候,增加约束(代码操作)

几个单词需要记一下:

  • constraint 约束 , foreign key 外键 ,references 引用。

– 创建grade表

CREATE TABLE grade (

gradeid INT(10) NOT NULL AUTO_INCREMENT COMMENT ‘年级id’,

gradename VARCHAR(50) NOT NULL COMMENT ‘年级名称’,

PRIMARY KEY (gradeid)

)ENGINE=INNODB DEFAULT CHARSET=utf8

– 学生表的gradeid字段,要去引用年级表的gradeid

– 1. 定义外键key。

– 2. 给外键添加约束(执行引用)。

CREATE TABLE IF NOT EXISTS student (

id INT(4) NOT NULL AUTO_INCREMENT COMMENT ‘学号’,

name VARCHAR(30) NOT NULL DEFAULT ‘匿名’ COMMENT ‘姓名’,

pwd VARCHAR(30) NOT NULL DEFAULT ‘123456’ COMMENT ‘密码’,

sex VARCHAR(2) NOT NULL DEFAULT ‘女’ COMMENT ‘性别’,

birthday DATETIME DEFAULT NULL COMMENT ‘出生日期’,

gradeid INT(10) studentNOT NULL COMMENT ‘学生的年级’,

address VARCHAR(100) DEFAULT NULL COMMENT ‘家庭住址’,

email VARCHAR(50) DEFAULT NULL COMMENT ‘邮箱’,

PRIMARY KEY (id),

KEY FK_gradeid (gradeid),

CONSTRAINT FK_gradeid FOREIGN KEY (gradeid) REFERENCES grade (gradeid)

)ENGINE=INNODB DEFAULT CHARSET=utf8

注意:删除外键关系的表的时候,必须要先删除引用别人的表(从表),再删除被引用的表。否则报错如下:

在这里插入图片描述

方式二:创建表成功后,添加外键约束

格式:

  • alter table add constraint 约束名 foreign key (作为外键的列) references 那个表(哪个字段)

– 创建grade表

CREATE TABLE grade (

gradeid INT(10) NOT NULL AUTO_INCREMENT COMMENT ‘年级id’,

gradename VARCHAR(50) NOT NULL COMMENT ‘年级名称’,

PRIMARY KEY (gradeid)

)ENGINE=INNODB DEFAULT CHARSET=utf8

– 创建student表

CREATE TABLE IF NOT EXISTS student (

id INT(4) NOT NULL AUTO_INCREMENT COMMENT ‘学号’,

name VARCHAR(30) NOT NULL DEFAULT ‘匿名’ COMMENT ‘姓名’,

pwd VARCHAR(30) NOT NULL DEFAULT ‘123456’ COMMENT ‘密码’,

sex VARCHAR(2) NOT NULL DEFAULT ‘女’ COMMENT ‘性别’,

birthday DATETIME DEFAULT NULL COMMENT ‘出生日期’,

gradeid INT(10) NOT NULL COMMENT ‘学生的年级’,

address VARCHAR(100) DEFAULT NULL COMMENT ‘家庭住址’,

email VARCHAR(50) DEFAULT NULL COMMENT ‘邮箱’,

PRIMARY KEY (id)

)ENGINE=INNODB DEFAULT CHARSET=utf8

– 创建表的时候没有外键关系:

ALTER TABLE student ADD CONSTRAINT FK_gradeid FOREIGN KEY(gradeid) REFERENCES grade (gradeid)

**注意:

以上的操作都是物理外键,数据库级别的外键,我们不建议使用!因为,引用过多删除表的时候很难删除!因此,我们不建议使用(避免数据库过多造成的困扰,这里了解即可~) 。**

在这里插入图片描述

3.2 DML语言


数据库意义:数据存储,数据管理。

DML语言:数据操作语言。

  • insert into

  • update 表名 set 字段=‘value’

  • delete from

3.3 insert into 添加


格式:

  • **插入语句(添加):

INSERT INTO 表明 ([字段名1,字段名2 ,…]) VALUES (‘值1’,‘值2’,…) , (‘值1’,‘值2’,…) , …;**

– 插入语句(添加)

– insert into 表明 ([字段名1,字段名2 ,…]) values (‘值1’,‘值2’,…);

INSERT INTO grade (gradename) VALUES(‘高三三班’)

在这里插入图片描述

如果不写表的字段,它就会一一匹配。容易报错:does’t match (不匹配)。

在这里插入图片描述

在这里插入图片描述

3.4 update 表名 set 字段=‘value’ 修改


格式:

  • update 表名 set 字段1=‘new_value1’, 字段2=‘new_value2’ , … where 条件

– 格式:update 表名 set 字段=‘new_value’ where 条件

UPDATE student SET name=‘匿名’ WHERE id = 1;

– 如果不设置where条件,就会默认修改全部

UPDATE student SET name=‘匿名’;

– 修改多个属性(字段值),逗号隔开

UPDATE student SET name=‘张三’,email=‘123456@qq.com’ WHERE id >= 2;

where 运算符 ,常用的案例,如下表格:

在这里插入图片描述

注意:

  • new_value,不一定是一个具体的值,也可以是个变量,函数调用等。如下:

– CURRENT_TIME 获得当前时间

UPDATE student SET birthday=CURRENT_TIME WHERE name=‘张三’ AND sex=‘男’

在这里插入图片描述

3.5 delete from删除 ,truncate 清空


delete语法:

  • delete from 表名 where 条件;

注意!!!一定添加条件,不添加条件就是全部删除。

– 删除student表的全部数据,不过通过这种方式全部删除数据,我们不推荐!我们使用truncate来清空数据。

DELETE FROM student

– 删除id为1的数据

DELETE FROM student WHERE id = 1;

  • truncate,作用:完全清空一个数据库表,表的结构和索引约束不会变!

– 清空表的数据

TRUNCATE student

delete from 表名 和 truncate 表名 的区别

相同点:

  • 都能删除数据,都不会删除表结构。

不同点:

  • truncate – 重新设置,自增列,计时器会归零。

  • truncate – 不会影响事务。

例如:delete from 表名 删除所有数据后,就不会对自动递增重新设置。

在这里插入图片描述

在这里插入图片描述

4. DQL查询数据

========================================================================

4.1 DQL(Data Query Language:数据查询语言)


  • 所有的查询操作都用它 select 。

  • 简单的查询,复杂的查询它都能做到。

  • 在数据库中,它是最重要的,使用频率最高的。

4.2 指定查询字段


select 字段 from 表名 和 别名

– 查询全部 select * from 表名

– select 字段 from 表名

SELECT id,name FROM student

– 别名:as ,可以字段起别名,也可以给表名起别名

SELECT id AS 学号,name AS 学生名字 FROM student AS 学生

在这里插入图片描述

函数:concat(a,b)

– 函数 concat(a,b),将a拼接到b上面

SELECT CONCAT(‘姓名:’,coll) FROM test

– 函数执行后的结果也是可以其别名的

SELECT CONCAT(‘姓名:’,coll) AS 数字 FROM test

在这里插入图片描述

去重:distinct

作用:去除select 查询出来的结果中重复的数据,重复的数据只有一条。

– distinct 去重,需要注意的是要将distinct放到最前面

– select distinct 字段 [as ‘别名’] from 表名

SELECT DISTINCT coll AS ‘数字’ FROM test

select语句还可以做加减法,查看版本,查看步长,如下:

在这里插入图片描述

4.3 where 条件


· 作用:检索数据中符合条件的值。

逻辑运算符

在这里插入图片描述

模糊查询:比较运算符

在这里插入图片描述

  • like ,% ,_ 这三个符号的使用:

– like, %(代表0到任意个字符), _(后面有一个字符)

– 查询开头有王的

SELECT * FROM student WHERE name LIKE ‘王%’;

– 查询开头是王,几个 _符号,后面加几个字

SELECT * FROM student AS s WHERE name LIKE ‘王_’;

SELECT * FROM student WHERE name LIKE ‘王__’

– %xxx%,如下查询所有包含三的内容

SELECT * FROM student WHERE name LIKE ‘%三%’

在in的范围内查询内容:

– 在规定的范围in内查询内容

SELECT name,id FROM student WHERE id IN (3,4,5,6)

查询为null 或 not null 的用法:

– null:查询为null的内容

– 查询pwd为null和空字符串的数据

SELECT * FROM student WHERE pwd IS NULL OR pwd = ‘’;

– not null:查询不为null的内容

SELECT * FROM student WHERE pwd IS NOT NULL

4.4 联表查询


注意:

模棱两可,如果进行联表查询,两个表的字段名相同,一定要指定是那个表的,不要产生模棱两可的情况。

在这里插入图片描述

– inner join

SELECT s.id,s.name,r.math,r.English FROM student AS s

INNER JOIN result AS r

WHERE s.name = r.name

– right join

SELECT s.id,s.name,math,English FROM student s

RIGHT JOIN result r

ON s.name = r.name

– left join

SELECT s.id,s.name,math,English FROM student s

LEFT JOIN result r

ON s.name = r.name

| 操作 | 描述 |

| — | — |

| inner join | 如果表中至少有一个匹配,就返回行。 |

| left join | 会从左表中返回所有的值,即使右表中没有匹配, |

| right join | 会从右表中返回所有的值,即使左表中没有匹配, |

join on连接查询 和 where 等值查询的区别。

  • join on 是一个具体的语法。on后面跟判断条件

  • where 就是等值查询。

  • 结果两者还是相同的。

如果查询多个表中的join数据,要循环递进的查询,如下解释:

在这里插入图片描述

自连接 :

  • 自己的表和自己的表连接。

  • 核心:一张表拆分为两张一样的表即可。

– 把一张表,分成两个表操作,下面分成了父和子栏目。

SELECT a.categoryName AS ‘父栏目’,b.categoryName AS ‘子栏目’

FROM category AS a,category AS b

WHERE a.categoryid = b.pid

在这里插入图片描述

4.5 分页(limit) 和 排序(order by)


在这里插入图片描述

排序: order by 要排序的字段 [asc/desc] 。

SELECT s.id,s.name,math,english FROM student s

LEFT JOIN result r

ON s.name = r.name

ORDER BY id DESC – 逆序显示

分页:limit 查询起始下标 ,pageSize 。

在这里插入图片描述

4.6 子查询 和 嵌套查询


  • 本质:在where语句中嵌套一个子查询语句。

在这里插入图片描述在这里插入图片描述

子查询和嵌套查询本质上就是由里到外的一个运行代码过程。

4.7 分组(group by) 和 过滤(having)


group by 通过什么字段来分组。

SELECT name,SUM(math) AS 数学总分, AVG(english) AS 英语平均分

FROM result AS r

WHERE r.math >= 60

GROUP BY name

HAVING 数学总分 > 60

where和having的区别:

where:

  • where是一个约束声明,使用where来约束来自数据库的数据;

  • where是在结果返回之前起作用的;

  • where中不能使用聚合函数。

having:

  • having是一个过滤声明;

  • 在查询返回结果集以后,对查询结果进行的过滤操作;

  • 在having中可以使用聚合函数。

4.8 select 语法格式 总结


总体上,select查询语法格式为:

在这里插入图片描述

在这里插入图片描述

5. MySQL 函数

=========================================================================

函数这节最好依靠官方给的文档来操作。

官方:https://dev.mysql.com/doc/refman/8.0/en/built-in-function-reference.html

5.1 常用函数


数学常用函数:

– abs(): 取绝对值

SELECT ABS(-8)

– ceiling(): 向上取整,天花板

SELECT CEILING(4.1)

– floor():向下取整,地板

SELECT FLOOR(4.9)

– rand(): 返回一个0~1之间的随机数

SELECT RAND()

– sign(): 判断一个数的符号,(注意:0是0,负数返回-1,整数返回1)

SELECT SIGN(0)

SELECT SIGN(-10)

SELECT SIGN(10)

字符串常用函数:

– 字符串函数

– char_length(): 返回字符串长度

SELECT CHAR_LENGTH(“12356张三”)

– concat(“str1”,“str2”): 拼接字符串

SELECT CONCAT(“张三”,“您好啊”)

– insert(): 查询,替换

SELECT INSERT(‘李四,hello,world’,1,2,‘张三’)

– lower() ,upper(): 转大小写

SELECT LOWER(‘ASZXCF’)

SELECT UPPER(‘sdfsd’)

– instr(‘str’,‘s’): s在str中的索引位置

SELECT INSTR(‘张三123455’,‘2’)

– replace(‘str’,‘s’,‘S’): 替换出现的指定字符串

SELECT REPLACE(‘你好张三,欢迎来到北京’,‘张三’,‘李四’)

– substr(‘str’,‘1’,‘2’): 返回指定的子字符串

SELECT SUBSTR(‘你好张三,欢迎来到北京’,‘3’,‘6’) – 注意不是3到6,而是第三个开始后面的6个。

– reverse(‘str’): 反转字符串

SELECT REVERSE(‘你好张三,欢迎来到北京’)

在这里插入图片描述

时间和日期函数:

– 时间和日期函数

– current_date() 和 curdate(): 获取当前日期 (仅有年月日)

SELECT CURRENT_DATE()

SELECT CURDATE()

– now(): 获取当前时间,比较全(年月日时分秒)

SELECT NOW()

– localtime(): 获取本地时间

SELECT LOCALTIME()

– sysdate(): 获取系统时间

SELECT SYSDATE()

– 单独输出年月日时分秒

SELECT YEAR(NOW())

SELECT MONTH(NOW())

SELECT DAY(NOW())

SELECT HOUR(NOW())

SELECT MINUTE(NOW())

SELECT SECOND(NOW())

系统函数:

– 系统函数

– system_user() 和 user(): 客户端提供的用户名和主机名

SELECT SYSTEM_USER()

SELECT USER()

– version(): 查看mysql版本

SELECT VERSION()

5.2 聚合函数 (常用)


| 函数名称 | 描述 |

| — | — |

| count() | 计数 |

| sum() | 求和 |

| avg() | 平均值 |

| max() | 最大值 |

| min() | 最小值 |

| … | … |

count(): 想查询一个表中有多少个记录,就是用count()。

– 聚合函数

– count(指定列(字段)): 查看数据的数量,但会忽略所有的null值

SELECT COUNT(categoryName) FROM category

– count(*): 查看所有代码行,*就不会忽略null值

SELECT COUNT(*) FROM category

– count(l): 将一个代码行看为 1来查询。也不会忽略null值

SELECT COUNT(1) FROM category

在这里插入图片描述

求和,平均分,最大值,最小值:

– sum():求和

SELECT SUM(pid) AS 总和 FROM category

– avg():平均分

SELECT AVG(pid) AS 平均分 FROM category

– max():最大值

SELECT MAX(pid) AS 最大值 FROM category

– min():最小值

SELECT MIN(pid) AS 最小值 FROM category

其实,使用函数大多数情况都是后面跟着列表字段,来计算整个字段的函数值。

5.3 数据库级别的 MD5()加密函数


什么是MD5?

  • MD5是一种不可逆的加密算法,主要增强算法复杂度和不可逆性。

  • MD5 不可逆,具体的值的md5值是一样的。

  • MD5 破解网站的原理,背后有一个字典,MD5加密后的值。

– 铭文密码

INSERT INTO testmd5 VALUES (1,‘张三’,‘123456’),(2,‘李四’,‘123456’),(3,‘王五’,‘123456’)

– md5()函数,通过使用md5函数加密。

UPDATE testmd5 SET pwd=MD5(pwd) – 加密全部的密码

– 插入的时候,进行加密。

INSERT INTO testmd5 VALUES (4,‘老鬼’,MD5(‘123456’))

– 如何校验:将用户传递进来的密码,进行md5加密,然后比对加密的值。

SELECT * FROM testmd5 WHERE name = ‘老鬼’ AND pwd=MD5(‘123456’)

对于MD5加密,我们只需要知道加密用户的密码,然后校验用户传进来的密码进行比较,就像下面一样。

– 如何校验:将用户传递进来的密码,进行md5加密,然后比对加密的值。

SELECT * FROM testmd5 WHERE name = ‘老鬼’ AND pwd=MD5(‘123456’)

6. 事务

===================================================================

6.1 什么是事务?什么是ACID?


将一组sql放在一个批次中去执行~,要么都执行成功,要么都执行失败。

在这里插入图片描述

事务原则:

**ACID原则特性 :

原子性(Atomicity) ,一致性(Consistency) , 隔离性(Isolation) ,持久性(Durability) (脏读,幻读…)**

一个支持事务(Transaction)的数据库,必须要具备以上四种特性,否则在事务过程(Transaction processing) 当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。

原子性(Atomicity):

要么都成功,要么都失败。

在这里插入图片描述

一致性(Consistency):

事务前后的数据完整性要保证一致。

在这里插入图片描述

持久性(Durability):

**事务一旦提交则不可逆,被持久化到数据库中。

事务如果已经提交,就不可逆了。**

在这里插入图片描述

隔离性(Isolation)

事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,事务之间要相互隔离。

在这里插入图片描述

隔离所导致的一些问题:

脏读:

指一个事务读取了另外一个事务未提交的数据。

在这里插入图片描述

不可重复读:

在一个事务内读取表中的某一行数据,多次读取结果不同。(这个不一定是错误,只是某些场合不对)

在这里插入图片描述

虚读(幻读):

它是指在一个事务内读取到了别的事务插入的数据,导致前后读取数量总量不一致。

在这里插入图片描述

6.2 事务的 执行流程


SET autocommit 用来开启或关闭事务,默认是开启。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例

MyBatis答案解析
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

大家看完有什么不懂的可以在下方留言讨论也可以关注。

觉得文章对你有帮助的话记得关注我点个赞支持一下!
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
s=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBASVRfSG9sbWVz,size_20,color_FFFFFF,t_70,g_se,x_16)

虚读(幻读):

它是指在一个事务内读取到了别的事务插入的数据,导致前后读取数量总量不一致。

在这里插入图片描述

6.2 事务的 执行流程


SET autocommit 用来开启或关闭事务,默认是开启。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。[外链图片转存中…(img-qvf3CG9V-1712429363904)]

[外链图片转存中…(img-9BU9BvKT-1712429363904)]

[外链图片转存中…(img-JCE9jEjs-1712429363905)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例
[外链图片转存中…(img-FwhN1OLP-1712429363905)]

[外链图片转存中…(img-3AtTnIt8-1712429363905)]
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

大家看完有什么不懂的可以在下方留言讨论也可以关注。

觉得文章对你有帮助的话记得关注我点个赞支持一下!
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值