最新Day163,玩转MySQL

一线互联网大厂Java核心面试题库

image

正逢面试跳槽季,给大家整理了大厂问到的一些面试真题,由于文章长度限制,只给大家展示了部分题目,更多Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等已整理上传,感兴趣的朋友可以看看支持一波!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 如何开启开启慢查询日志:

  • set global slow_query_log = 1;开启慢查询日志

  • 使用set global slow_query_log = 1开启了慢查询日志只对当前数据库生效,如果MySQL重启后则会失效。

mysql> set global slow_query_log = 1;

Query OK, 0 rows affected (0.07 sec)

mysql> SHOW VARIABLES LIKE ‘%slow_query_log%’;

±--------------------±--------------------------------+

| Variable_name | Value |

±--------------------±--------------------------------+

| slow_query_log | ON |

| slow_query_log_file | /www/server/data/mysql-slow.log | //宝塔面板的对应目录

±--------------------±--------------------------------+

2 rows in set (0.01 sec)

  • 如果要永久生效,就必须修改配置文件my.cnf(其它系统变量也是如此)

  • 修改my.cnf文件,[mysqld]下增加或修改参数:slow_query_logslow_query_log_file后,然后重启MySQL服务器。

  • 也即将如下两行配置进my.cnf文件

[mysqld]

slow_query_log =1

slow_query_log_file=/var/lib/mysql/Heygo-slow.log

  • 关于慢查询的参数slow_query_log_file,它指定慢查询日志文件的存放路径,系统默认会给一个缺省的文件host_name-slow.log(如果没有指定参数slow_query_log_file的话)

那么开启慢查询日志后,什么样的SQL参会记录到慢查询里面?

  • 这个是由参数long_query_time控制,默认情况下long_query_time的值为10秒,命令:SHOW VARIABLES LIKE 'long_query_time%';查看慢 SQL 的阈值

mysql> SHOW VARIABLES LIKE ‘long_query_time%’;

±----------------±----------+

| Variable_name | Value |

±----------------±----------+

| long_query_time | 10.000000 |

±----------------±----------+

1 row in set (0.01 sec)

  • 可以使用命令修改,也可以在my.cnf参数里面修改。

  • 假如运行时间正好等于long_query_time的情况,并不会被记录下来。也就是说,在mysql源码里是判断大于long_query_time,而非大于等于。

2.3、慢查询日志示例

案例讲解

  • 查看慢 SQL 的阈值时间,默认阈值时间为 10s

mysql> SHOW VARIABLES LIKE ‘long_query_time%’;

±----------------±----------+

| Variable_name | Value |

±----------------±----------+

| long_query_time | 10.000000 |

±----------------±----------+

1 row in set (0.00 sec)

  • 设置慢 SQL 的阈值时间,我们将其设置为 3s

mysql> set global long_query_time=3;

Query OK, 0 rows affected (0.00 sec)

  • 为什么设置后阈值时间没变?

  • 需要重新连接或者新开一个回话才能看到修改值。

  • 查看全局的 long_query_time 值:show global variables like 'long_query_time';发现已经生效

mysql> set global long_query_time=3;

Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE ‘long_query_time%’;

±----------------±----------+

| Variable_name | Value |

±----------------±----------+

| long_query_time | 10.000000 |

±----------------±----------+

1 row in set (0.00 sec)

mysql> show global variables like ‘long_query_time’;

±----------------±---------+

| Variable_name | Value |

±----------------±---------+

| long_query_time | 3.000000 |

±----------------±---------+

1 row in set (0.00 sec)

  • 记录慢 SQL 以供后续分析

  • 怼个 select sleep(4); 超过 3s ,肯定会被记录到日志中

mysql> select sleep(4);

±---------+

| sleep(4) |

±---------+

| 0 |

±---------+

1 row in set (4.00 sec)

  • 慢查询日志文件在 /var/lib/mysql/ 下,后缀为 -slow.log

[root@Heygo mysql]# cd /var/lib/mysql/

[root@Heygo mysql]# ls -l

总用量 176156

-rw-rw----. 1 mysql mysql 56 8月 3 19:08 auto.cnf

drwx------. 2 mysql mysql 4096 8月 5 10:36 db01

-rw-rw----. 1 mysql mysql 7289 8月 3 22:38 Heygo.err

-rw-rw----. 1 mysql mysql 371 8月 5 12:58 Heygo-slow.log

-rw-rw----. 1 mysql mysql 79691776 8月 5 10:36 ibdata1

-rw-rw----. 1 mysql mysql 50331648 8月 5 10:36 ib_logfile0

-rw-rw----. 1 mysql mysql 50331648 8月 3 19:08 ib_logfile1

drwx------. 2 mysql mysql 4096 8月 3 19:08 mysql

srwxrwxrwx. 1 mysql mysql 0 8月 3 22:38 mysql.sock

drwx------. 2 mysql mysql 4096 8月 3 19:08 performance_schema

  • 查看慢查询日志中的内容

[root@Heygo mysql]# cat Heygo-slow.log

/usr/sbin/mysqld, Version: 5.6.49 (MySQL Community Server (GPL)). started with:

Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock

Time Id Command Argument

Time: 200805 12:58:01

User@Host: root[root] @ localhost [] Id: 11

Query_time: 4.000424 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0

SET timestamp=1596603481;

select sleep(4);

  • 查询当前系统中有多少条慢查询记录:show global status like '%Slow_queries%';

mysql> show global status like ‘%Slow_queries%’;

±--------------±------+

| Variable_name | Value |

±--------------±------+

| Slow_queries | 1 |

±--------------±------+

1 row in set (0.00 sec)


配置版的慢查询日志

在 /etc/my.cnf 文件的 [mysqld] 节点下配置

slow_query_log=1;

slow_query_log_file=/var/lib/mysql/Heygo-slow.log

long_query_time=3;

log_output=FILE

.

日志分析命令 mysqldumpslow

mysqldumpslow是什么?

在生产环境中,如果要手工分析日志,查找、分析SQL,显然是个体力活,MySQL提供了日志分析工具mysqldumpslow。


查看 mysqldumpslow的帮助信息

[root@Heygo mysql]# mysqldumpslow --help

Usage: mysqldumpslow [ OPTS… ] [ LOGS… ]

Parse and summarize the MySQL slow query log. Options are

–verbose verbose

–debug debug

–help write this text to standard output

-v verbose

-d debug

-s ORDER what to sort by (al, at, ar, c, l, r, t), ‘at’ is default

al: average lock time

ar: average rows sent

at: average query time

c: count

l: lock time

r: rows sent

t: query time

-r reverse the sort order (largest last instead of first)

-t NUM just show the top n queries

-a don’t abstract all numbers to N and strings to ‘S’

-n NUM abstract numbers with at least n digits within names

-g PATTERN grep: only consider stmts that include this string

-h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard),

default is ‘*’, i.e. match all

-i NAME name of server instance (if using mysql.server startup script)

-l don’t subtract lock time from total time


mysqldumpshow 参数解释

  1. s:是表示按何种方式排序

  2. c:访问次数

  3. l:锁定时间

  4. r:返回记录

  5. t:查询时间

  6. al:平均锁定时间

  7. ar:平均返回记录数

  8. at:平均查询时间

  9. t:即为返回前面多少条的数据

  10. g:后边搭配一个正则匹配模式,大小写不敏感的


常用参数手册

  1. 得到返回记录集最多的10个SQL

mysqldumpslow -s r -t 10 /var/lib/mysql/Heygo-slow.log

  1. 得到访问次数最多的10个SQL

mysqldumpslow -s c- t 10/var/lib/mysql/Heygo-slow.log

  1. 得到按照时间排序的前10条里面含有左连接的查询语句

mysqldumpslow -s t -t 10 -g “left join” /var/lib/mysql/Heygo-slow.log

  1. 另外建议在使用这些命令时结合 | 和more使用,否则有可能出现爆屏情况

mysqldumpslow -s r -t 10 /var/lib/mysql/Heygo-slow.log | more

.

3、批量数据脚本


MySql函数与存储过程的区别

存储过程可以有返回值,也可以没有,函数有且仅有一个返回值

创建表

  • 建表 SQL

CREATE TABLE dept

(

deptno int unsigned primary key auto_increment,

dname varchar(20) not null default “”,

loc varchar(8) not null default “”

)ENGINE=INNODB DEFAULT CHARSET=utf8;

CREATE TABLE emp

(

id int unsigned primary key auto_increment,

empno mediumint unsigned not null default 0,

ename varchar(20) not null default “”,

job varchar(9) not null default “”,

mgr mediumint unsigned not null default 0,

hiredate date not null,

sal decimal(7,2) not null,

comm decimal(7,2) not null,

deptno mediumint unsigned not null default 0

)ENGINE=INNODB DEFAULT CHARSET=utf8;

设置参数

  • 创建函数,假如报错:This function has none of DETERMINISTIC………

  • 由于开启过慢查询日志,因为我们开启了bin-log,我们就必须为我们的function指定一个参数。

  • log_bin_trust_function_creators = OFF ,默认必须为 function 传递一个参数

mysql> show variables like ‘log_bin_trust_function_creators’;

±--------------------------------±------+

| Variable_name | Value |

±--------------------------------±------+

| log_bin_trust_function_creators | OFF |

±--------------------------------±------+

1 row in set (0.00 sec)

  • 通过 set global log_bin_trust_function_creators=1;我们可以不用为 function 传参

mysql> set global log_bin_trust_function_creators=1;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like ‘log_bin_trust_function_creators’;

±--------------------------------±------+

| Variable_name | Value |

±--------------------------------±------+

| log_bin_trust_function_creators | ON |

±--------------------------------±------+

1 row in set (0.00 sec)

  • 这样添加了参数以后,如果mysqld重启,上述参数又会消失,永久方法在配置文件中修改‘

  • windows下:my.ini --> [mysqld] 节点下加上 log_bin_trust_function_creators=1

  • linux下:/etc/my.cnf --> [mysqld] 节点下加上 log_bin_trust_function_creators=1

创建函数,保证每条数据都不同

  • 随机产生字符串的函数

delimiter KaTeX parse error: Expected 'EOF', got '#' at position 2: #̲ 两个 表示结束

create function rand_string(n int) returns varchar(255)

begin

declare chars_str varchar(100) default ‘abcdefghijklmnopqrstuvwxyz’;

declare return_str varchar(255) default ‘’;

declare i int default 0;

while i < n do

set return_str = concat(return_str,substring(chars_str,floor(1+rand()*52),1));

set i=i+1;

end while;

return return_str;

end $$

  • 随机产生部门编号的函数

delimiter $$

create function rand_num() returns int(5)

begin

declare i int default 0;

set i=floor(100+rand()*10);

return i;

end $$

创建存储过程

  • 创建往emp表中插入数据的存储过程

delimiter $$

create procedure insert_emp(in start int(10),in max_num int(10))

begin

declare i int default 0;

set autocommit = 0;

repeat

set i = i+1;

insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) values((start+i),rand_string(6),‘salesman’,0001,curdate(),2000,400,rand_num());

until i=max_num

end repeat;

commit;

end $$

  • 创建往dept表中插入数据的存储过程

delimiter $$

create procedure insert_dept(in start int(10),in max_num int(10))

begin

declare i int default 0;

set autocommit = 0;

repeat

set i = i+1;

insert into dept(deptno,dname,loc) values((start+i),rand_string(10),rand_string(8));

until i=max_num

end repeat;

commit;

end $$

调用存储过程

  • 向 dept 表中插入 10 条记录

DELIMITER ;

CALL insert_dept(100, 10);

12

mysql> select * from dept;

±-------±--------±-------+

| deptno | dname | loc |

±-------±--------±-------+

| 101 | aowswej | syrlhb |

| 102 | uvneag | pup |

| 103 | lps | iudgy |

| 104 | jipvsk | ihytx |

| 105 | hrpzhiv | vjb |

| 106 | phngy | yf |

| 107 | uhgd | lgst |

| 108 | ynyl | iio |

| 109 | daqbgsh | mp |

| 110 | yfbrju | vuhsf |

±-------±--------±-------+

10 rows in set (0.00 sec)

  • 向 emp 表中插入 50w 条记录

DELIMITER ;

CALL insert_emp(100001, 500000);

12

mysql> select * from emp limit 20;

±—±-------±------±---------±----±-----------±--------±-------±-------+

| id | empno | ename | job | mgr | hiredate | sal | comm | deptno |

±—±-------±------±---------±----±-----------±--------±-------±-------+

| 1 | 100002 | ipbmd | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 101 |

| 2 | 100003 | bfvt | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 107 |

| 3 | 100004 | | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 109 |

| 4 | 100005 | cptas | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 101 |

| 5 | 100006 | ftn | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 108 |

| 6 | 100007 | gzh | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 102 |

| 7 | 100008 | rji | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 100 |

| 8 | 100009 | | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 106 |

| 9 | 100010 | tms | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 100 |

| 10 | 100011 | utxe | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 101 |

| 11 | 100012 | vbis | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 104 |

| 12 | 100013 | qgfv | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 104 |

| 13 | 100014 | wrvb | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 105 |

| 14 | 100015 | dyks | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 109 |

| 15 | 100016 | hpcs | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 101 |

| 16 | 100017 | fxb | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 108 |

| 17 | 100018 | vqxq | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 102 |

| 18 | 100019 | rq | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 102 |

| 19 | 100020 | l | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 106 |

| 20 | 100021 | lk | salesman | 1 | 2020-08-05 | 2000.00 | 400.00 | 100 |

…省略…

| 499984 | 599985 | l | salesman | 1 | 2021-01-13 | 2000.00 | 400.00 | 104 |

| 499985 | 599986 | fvt | salesman | 1 | 2021-01-13 | 2000.00 | 400.00 | 103 |

| 499986 | 599987 | xnal | salesman | 1 | 2021-01-13 | 2000.00 | 400.00 | 101 |

| 499987 | 599988 | vj | salesman | 1 | 2021-01-13 | 2000.00 | 400.00 | 100 |

| 499988 | 599989 | sch | salesman | 1 | 2021-01-13 | 2000.00 | 400.00 | 105 |

| 499989 | 599990 | g | salesman | 1 | 2021-01-13 | 2000.00 | 400.00 | 107 |

| 499990 | 599991 | dcfrs | salesman | 1 | 2021-01-13 | 2000.00 | 400.00 | 109 |

| 499991 | 599992 | hxsu | salesman | 1 | 2021-01-13 | 2000.00 | 400.00 | 103 |

| 499992 | 599993 | o | salesman | 1 | 2021-01-13 | 2000.00 | 400.00 | 107 |

| 499993 | 599994 | r | salesman | 1 | 2021-01-13 | 2000.00 | 400.00 | 102 |

| 499994 | 599995 | gtdk | salesman | 1 | 2021-01-13 | 2000.00 | 400.00 | 104 |

| 499995 | 599996 | njfb | salesman | 1 | 2021-01-13 | 2000.00 | 400.00 | 100 |

| 499996 | 599997 | k | salesman | 1 | 2021-01-13 | 2000.00 | 400.00 | 103 |

| 499997 | 599998 | abesz | salesman | 1 | 2021-01-13 | 2000.00 | 400.00 | 108 |

| 499998 | 599999 | owpmo | salesman | 1 | 2021-01-13 | 2000.00 | 400.00 | 106 |

| 499999 | 600000 | u | salesman | 1 | 2021-01-13 | 2000.00 | 400.00 | 105 |

| 500000 | 600001 | btf | salesman | 1 | 2021-01-13 | 2000.00 | 400.00 | 104 |

±—±-------±------±---------±----±-----------±--------±-------±-------+

500000 rows in set (0.71 sec)

.

4、Show Profile


Show Profile 是什么?

  1. 是mysql提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优测量

  2. 官网:http://dev.mysql.com/doc/refman/5.5/en/show-profile.html

  3. 默认情况下,参数处于关闭状态,并保存最近15次的运行结果

分析步骤

查看是当前的SQL版本是否支持Show Profile

  • show variables like ‘profiling%’; 查看 Show Profile 是否开启

mysql> show variables like ‘profiling%’;

±-----------------------±------+

| Variable_name | Value |

±-----------------------±------+

| profiling | OFF |

| profiling_history_size | 15 |

±-----------------------±------+

2 rows in set (0.01 sec)


开启功能 Show Profile ,默认是关闭,使用前需要开启

  • set profiling=on; 开启 Show Profile

mysql> set profiling=on;

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> show variables like ‘profiling%’;

±-----------------------±------+

| Variable_name | Value |

±-----------------------±------+

| profiling | ON |

| profiling_history_size | 15 |

±-----------------------±------+

2 rows in set (0.00 sec)


运行SQL

  • 正常 SQL

select * from tbl_emp;

select * from tbl_emp e inner join tbl_dept d on e.deptId = d.id;

select * from tbl_emp e left join tbl_dept d on e.deptId = d.id;

  • 慢 SQL

select * from emp group by id%10 limit 150000;

select * from emp group by id%20 order by 150000 ;

select * from emp group by id%10 order by 5;


查看结果

  • 通过 show profiles; 指令查看结果

mysql> show profiles;

±---------±-----------±---------------------------------------------------------------------+

| Query_ID | Duration | Query |

±---------±-----------±---------------------------------------------------------------------+

| 1 | 0.00052700 | show variables like ‘profiling%’ |

| 2 | 0.00030300 | select * from tbl_emp |

| 3 | 0.00010650 | select * from tbl_emp e inner join tbl_dept d on e.‘deptId’ = d.‘id’ |

| 4 | 0.00031625 | select * from tbl_emp e inner join tbl_dept d on e.deptId = d.id |

| 5 | 0.00042100 | select * from tbl_emp e left join tbl_dept d on e.deptId = d.id |

| 6 | 0.38621875 | select * from emp group by id%20 limit 150000 |

| 7 | 0.00014900 | select * from emp group by id%20 order by 150000 |

| 8 | 0.38649000 | select * from emp group by id%20 order by 5 |

| 9 | 0.06782700 | select COUNT(*) from emp |

| 10 | 0.35434400 | select * from emp group by id%10 limit 150000 |

±---------±-----------±---------------------------------------------------------------------+

10 rows in set, 1 warning (0.00 sec)


诊断SQL

  • show profile cpu, block io for query SQL编号; 查看 SQL 语句执行的具体流程以及每个步骤花费的时间

mysql> show profile cpu, block io for query 2;

±---------------------±---------±---------±-----------±-------------±--------------+

| Status | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |

±---------------------±---------±---------±-----------±-------------±--------------+

| starting | 0.000055 | 0.000000 | 0.000000 | 0 | 0 |

| checking permissions | 0.000007 | 0.000000 | 0.000000 | 0 | 0 |

| Opening tables | 0.000011 | 0.000000 | 0.000000 | 0 | 0 |

| init | 0.000024 | 0.000000 | 0.000000 | 0 | 0 |

| System lock | 0.000046 | 0.000000 | 0.000000 | 0 | 0 |

| optimizing | 0.000018 | 0.000000 | 0.000000 | 0 | 0 |

| statistics | 0.000008 | 0.000000 | 0.000000 | 0 | 0 |

| preparing | 0.000019 | 0.000000 | 0.000000 | 0 | 0 |

| executing | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |

| Sending data | 0.000089 | 0.000000 | 0.000000 | 0 | 0 |

| end | 0.000004 | 0.000000 | 0.000000 | 0 | 0 |

| query end | 0.000003 | 0.000000 | 0.000000 | 0 | 0 |

| closing tables | 0.000005 | 0.000000 | 0.000000 | 0 | 0 |

| freeing items | 0.000006 | 0.000000 | 0.000000 | 0 | 0 |

| cleaning up | 0.000006 | 0.000000 | 0.000000 | 0 | 0 |

±---------------------±---------±---------±-----------±-------------±--------------+

15 rows in set, 1 warning (0.00 sec)

  • 参数备注:
  1. ALL:显示所有的开销信息

  2. BLOCK IO:显示块IO相关开销

  3. CONTEXT SWITCHES:上下文切换相关开销

  4. CPU:显示CPU相关开销信息

  5. IPC:显示发送和接收相关开销信息

  6. MEMORY:显示内存相关开销信息

  7. PAGE FAULTS:显示页面错误相关开销信息

  8. SOURCE:显示和Source_function,Source_file,Source_line相关的开销信息

最后

面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典

  • Java核心知识整理

2020年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多

Java核心知识

  • Spring全家桶(实战系列)

2020年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多

  • 其他电子书资料

2020年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多

Step3:刷题

既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

以下是我私藏的面试题库:

2020年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

00 | 0 | 0 |

| freeing items | 0.000006 | 0.000000 | 0.000000 | 0 | 0 |

| cleaning up | 0.000006 | 0.000000 | 0.000000 | 0 | 0 |

±---------------------±---------±---------±-----------±-------------±--------------+

15 rows in set, 1 warning (0.00 sec)

  • 参数备注:
  1. ALL:显示所有的开销信息

  2. BLOCK IO:显示块IO相关开销

  3. CONTEXT SWITCHES:上下文切换相关开销

  4. CPU:显示CPU相关开销信息

  5. IPC:显示发送和接收相关开销信息

  6. MEMORY:显示内存相关开销信息

  7. PAGE FAULTS:显示页面错误相关开销信息

  8. SOURCE:显示和Source_function,Source_file,Source_line相关的开销信息

最后

面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典

  • Java核心知识整理

[外链图片转存中…(img-gXGqe4BL-1715625346833)]

Java核心知识

  • Spring全家桶(实战系列)

[外链图片转存中…(img-ru7VAifm-1715625346833)]

  • 其他电子书资料

[外链图片转存中…(img-1A6Q2mJB-1715625346834)]

Step3:刷题

既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

以下是我私藏的面试题库:

[外链图片转存中…(img-YefrQEj3-1715625346834)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 27
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值