查找最晚入职员工的所有信息

解题步骤:

   题目:查询最晚入职员工的所有信息
        目标:查询员工的所有信息
   筛选条件:最晚入职
           答案:

  1. SELECT
  2. *--查询所有信息就用*
  3. FROM
  4. employees
  5. WHERE
  6. hire_date = (--这里是一个子查询,因为要和hire_date匹配,所以只能是一个值,注意max函数使用规则
  7. SELECT
  8. MAX(hire_date)
  9. FROM
  10. employees
  11. )

查找入职员工时间排名倒数第三的员工所有信息

     

解题步骤:

   题目:查找入职员工时间排名倒数第三的员工所有信息
        目标:查询员工的所有信息
   筛选条件:入职时间到第三
           答案:

  1. SELECT
  2. *--所有信息,用*省事
  3. FROM
  4. employees
  5. where hire_date = ( SELECT DISTINCT--子查询,注意hire_date是一个值,子查询的返回值一定要是一个
  6. hire_date
  7. FROM
  8. employees
  9. ORDER BY--这里有一个小技巧,倒序排,从第三条取,去一条
  10. hire_date DESC
  11. limit 2,1--分页语法要仔细看看,limit m,n=> m+1开始取,取n
  12. )

查找各个部门当前(to_date='9999-01-01')领导当前薪水详情以及其对应部门编号dept_no

解题步骤:

   题目:查找各个部门当前(to_date='9999-01-01')领导当前薪水详情以及其对应部门编号dept_no
        目标:查询领导薪水详情,对应部门编号
   筛选条件:部门表当前时间,隐藏的条件(薪水表当前时间)
           答案:

  1. SELECT
  2. s.*,
  3. d.dept_no
  4. FROM
  5. salaries s--左联到部门表,薪水表人全,所以做主表比较好,不会出现关联出空的情况
  6. LEFT JOIN dept_manager d ON s.emp_no = d.emp_no
  7. WHERE
  8. s.TO_DATE = '9999-01-01'--筛选条件
  9. AND d.TO_DATE = '9999-01-01'

查找所有已经分配部门的员工的last_name和first_name

 

解题步骤:

   题目:查找所有已经分配部门的员工的last_name和first_name
        目标:查询员工的 last_name,first_name,题目隐藏要显示dept_no
   筛选条件:已分配部门的员工
           答案:

  1. SELECT
  2. e.last_name,
  3. e.first_name,
  4. d.dept_no
  5. FROM
  6. employees e--通过左联,确认员工已分配部门
  7. LEFT JOIN dept_emp d ON d.emp_no = e.emp_no
  8. WHERE
  9. d.dept_no != ''--防止关联为空

查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括展示没有分配具体部门的员工

解题步骤:

   题目:查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括展示没有分配具体部门的员工
        目标:查询员工的 last_name,first_name,题目隐藏要显示dept_no,没有分配具体部门的员工
   筛选条件:已分配部门的员工
           答案:

  1. SELECT
  2. ep.last_name,
  3. ep.first_name,
  4. dp.dept_no
  5. FROM
  6. employees ep --人员信息表为主表,左联,一位部门可能为空,所以关联后就会包含未分配部分的人
  7. LEFT JOIN dept_emp dp ON ep.emp_no = dp.emp_no

查找所有员工入职时候的薪水情况,给出emp_no以及salary, 并按照emp_no进行逆序

解题步骤:

   题目:查找所有员工入职时候的薪水情况,给出emp_no以及salary, 并按照emp_no进行逆序
        目标: 查询薪水情况,显示emp_no以及salary(select 要显示的字段)
   筛选条件:员工入职时间,并按照emp_no进行逆序
           答案:

  1. SELECT --显示字段
  2. e.emp_no,
  3. s.salary
  4. FROM
  5. employees e
  6. LEFT JOIN salaries s ON e.emp_no = s.emp_no --确定是同一个人
  7. AND e.hire_date = s.from_date --确定是入职时间
  8. ORDER BY
  9. e.emp_no DESC --倒序

查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t

解题步骤:

   题目:查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t
        目标: 查找员工号,涨幅次数(select 要显示的字段)
   筛选条件:涨幅超过15次
           答案:

  1. SELECT
  2. emp_no,
  3. SUM(1) --统计次数;
  4. FROM
  5. salaries
  6. GROUP BY
  7. emp_no --对每一个员工进行分组,然后统计其涨幅次数
  8. HAVING
  9. COUNT(1) > 15 --进行次数过滤

如果想详细了解 sum(1),可以看这个文章:https://blog.csdn.net/qq_39313596/article/details/80623495

找出所有员工当前(to_date='9999-01-01')具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示

解题步骤:

   题目:找出所有员工当前(to_date='9999-01-01')具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示
        目标: 查找薪水(select 要显示的字段)
   筛选条件:当前时间(to_date),相同的仅显示一次,逆序显示
           答案:

  1. SELECT DISTINCT --去重
  2. salary
  3. FROM
  4. salaries
  5. WHERE
  6. TO_DATE = '9999-01-01'
  7. ORDER BY
  8. salary DESC --倒序

获取所有部门当前manager的当前薪水情况,给出dept_no, emp_no以及salary,当前表示to_date='9999-01-01'

解题步骤:

   题目:获取所有部门当前manager的当前薪水情况,给出dept_no, emp_no以及salary,当前表示to_date='9999-01-01'
        目标: 查找dept_no, emp_no以及salary(select 要显示的字段)
   筛选条件:当前表示to_date='9999-01-01'
           答案:

  1. SELECT
  2. d.dept_no,
  3. s.emp_no,
  4. s.salary
  5. FROM --注意左关联条件
  6. dept_manager d
  7. LEFT JOIN salaries s ON d.emp_no = s.emp_no
  8. AND d.TO_DATE = s.TO_DATE
  9. WHERE
  10. d.TO_DATE = '9999-01-01'

获取所有非manager的员工emp_no

解题步骤:

   题目:获取所有非manager的员工emp_no
        目标: 查找emp_no(select 要显示的字段)
   筛选条件:非manager的员工
           答案:

  1. SELECT
  2. em.emp_no
  3. FROM
  4. employees em
  5. WHERE
  6. NOT EXISTS ( --此处用了一个exists表达式,是管理者的员工,然后将这些排除就时非管理员的员工,此处也可以用not in,但是效率会降低一些
  7. SELECT
  8. 1
  9. FROM
  10. dept_manager dm
  11. WHERE
  12. em.emp_no = dm.emp_no
  13. )

题外闲谈:exists,in;语法上区别,效率上区别;没有觉得效率高低,看实际场景

这俩篇文章说的不错,再次就不再赘述,唯一要注意的是exists的返回值是真或者假:https://blog.csdn.net/baidu_37107022/article/details/77278381https://www.cnblogs.com/xuyufengme/p/9175929.html

获取所有员工当前的manager,如果当前的manager是自己的话结果不显示,当前表示to_date='9999-01-01'。

解题步骤:

   题目:获取所有员工当前的manager,如果当前的manager是自己的话结果不显示,当前表示to_date='9999-01-01'
        目标: 查找员工,当前的manager(select 要显示的字段)
   筛选条件:当前表示to_date='9999-01-01',如果当前的manager是自己的话结果不显示
           答案:

  1. SELECT
  2. de.emp_no,
  3. dm.emp_no AS manager_no
  4. FROM
  5. dept_emp de
  6. LEFT JOIN dept_manager dm ON de.dept_no = dm.dept_no
  7. WHERE
  8. de.emp_no != dm.emp_no
  9. AND de.TO_DATE = '9999-01-01'
  10. AND dm.TO_DATE = '9999-01-01'

获取所有部门中当前员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary

解题步骤:

   题目:获取所有部门中当前员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary
        目标: 查找部门,员工,薪水(select 要显示的字段)
   筛选条件:当前表示to_date='9999-01-01',
           答案:

  1. SELECT
  2. de.dept_no,
  3. de.emp_no,
  4. MAX(sa.salary) --注意函数使用时机,什么时候需要group by,什么时候不需要
  5. FROM
  6. dept_emp de
  7. LEFT JOIN salaries sa ON de.emp_no = sa.emp_no
  8. WHERE
  9. de.TO_DATE = '9999-01-01' --题目中默认为当前时间
  10. AND sa.TO_DATE = '9999-01-01'
  11. GROUP BY
  12. de.dept_no --每个部门中最高的薪水的人,所以需要按照部门分组

从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。

解题步骤:

   题目:从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。
        目标: 查找title以及对应的数目t(select 要显示的字段)
   筛选条件:按照title进行分组,每组个数大于等于2

  1. SELECT
  2. title,
  3. COUNT(1) AS t
  4. FROM
  5. titles
  6. GROUP BY
  7. title --分组
  8. HAVING --配合分组使用,作用和where差不多
  9. COUNT(1) >= 2

从titles表获取按照title进行分组,注意对于重复的emp_no进行忽略。

解题步骤:

   题目:从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。
注意对于重复的title进行忽略。
        目标: 查找title以及对应的数目t(select 要显示的字段)
   筛选条件:按照title进行分组,每组个数大于等于2,注意对于重复的title进行忽略。

  1. SELECT
  2. title,
  3. COUNT(DISTINCT(emp_no)) AS t --本题关键是对于重复的title进行忽略。也就是计数的时候要去重,注意 函数和distinct的使用方法
  4. FROM
  5. titles
  6. GROUP BY
  7. title
  8. HAVING
  9. COUNT(1) >= 2

关于count(distinct)的延伸

  1. sql-按条件统计非重复值,count(distinct case when)使用
  2. 背景
  3.  
  4. 项目中,遇到一个统计需求,从某张表中按照条件分别统计。刚开始想到用union all的写法,太臃肿,后来使用count(distinct case when)解决此问题
  5.  
  6. count
  7.  
  8. 数据统计中,count出现最频繁
  9.  
  10. 最简单的用法
  11.  
  12. select count(*) from table where ....
  13.  
  14. select count(distinct xx) from table where ...
  15.  
  16. 但最简单的用法也有其深刻的地方,比如这里其实有3种写法,count(1)、count(*)、count(字段),它们有什么区别呢?
  17.  
  18. count(1) count(*)
  19. count(1)和count(*)差别不大,使用count(*)时,sql会帮你自动优化,指定到最快的字段。所以推荐使用count(*)
  20.  
  21. count(*) count(字段)
  22. count(*)会统计所有行数,count(字段)不会统计null
  23.  
  24. count(case when)
  25.  
  26. 条件统计,即对某个table分条件统计,比如表test_db,有一个字段user_id(可能重复), gender(manwomen),需要统计manwomen的人数
  27.  
  28. 可以使用where分别统计
  29.  
  30. select count(distinct user_id) as man_cnt from test_db where gender = 'man'
  31.  
  32. select count(distinct user_id) as women_cnt from test_db where gender = 'women'
  33.  
  34. 也可以使用按条件统计
  35.  
  36. select count(distinct case gender = 'man' then user_id end) as man_cnt --至于case when,本人没用过,不过也很少有这个使用场景吧
  37.  
  38. , count(distinct case gender = 'women' then user_id end) as woman_cnt
  39.  
  40. from test_db

查找employees表所有emp_no为奇数,且last_name不为Mary的员工信息,并按照hire_date逆序排列

解题步骤:

   题目:查找employees表所有emp_no为奇数,且last_name不为Mary的员工信息,并按照hire_date逆序排列
        目标: 查找所有员工信息(select 要显示的字段)
   筛选条件:ast_name不为Mary,emp_no为奇数

  1. SELECT
  2. *
  3. FROM
  4. employees
  5. where emp_no%2 != 0 --如果emp_no为索引列,会导致索引失效
  6. AND last_name != 'Mary'
  7. order by hire_date desc

拓展:索引列上计算引起的索引失效及优化措施以及注意事项索引失效的情况有哪些?索引何时会失效?(全面总结)

  1. 两个示例
  2. 例子一
  3.  
  4. 表结构
  5.  
  6. DROP TABLE IF EXISTS `account`;
  7. CREATE TABLE IF NOT EXISTS `account` (
  8. `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  9. `account` int(10) unsigned NOT NULL,
  10. `password` char(32) NOT NULL,
  11. `ip` char(15) NOT NULL,
  12. `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  13. PRIMARY KEY (`id`),
  14. KEY `time` (`time`)
  15. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  16. 比如要统计20120815日注册的会员数:
  17.  
  18. SELECT count(id) FROM account WHERE DATEDIFF("2012-08-15",time)=0
  19.  例子二
  20.  
  21. 表结构
  22.  
  23. DROP TABLE IF EXISTS `active`;
  24. CREATE TABLE IF NOT EXISTS `user` (
  25. `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  26. `userid` int(10) unsigned NOT NULL,
  27. `lastactive` int(10) unsigned NOT NULL,
  28. PRIMARY KEY (`id`),
  29. KEY `lastactive` (`lastactive`)
  30. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  31. 统计最近3分钟的活跃用户
  32.  
  33. SELECT count(id) FROM user WHERE unix_timstamp()-lastactive < 180
  34.  
  35. 以上两个例子中,虽然都建有索引,但是SQL执行中却不走索引,而采用全表扫描。
  36.  
  37. 原因揭密
  38. SQL语句where中如果有functionName(colname)或者某些运算,则MYSQL无法使用基于colName的索引。使用索引需要直接查询某个字段。
  39.  
  40. 索引失效的原因是索引是针对原值建的二叉树,将列值计算后,原来的二叉树就用不上了;
  41.  
  42. 为了解决索引列上计算引起的索引失效问题,将计算放到索引列外的表达式上。
  43.  
  44. 解决办法
  45. 例子一:SELECT count(id) FROM account WHERE time between "2012-08-15 00:00:00" and "2012-08-15 23:59:59"
  46.  
  47. 例子二:SELECT count(id) FROM user WHERE lastactive > unix_timstamp() - 180
  48.  
  49. 相关内容
  50. 1、如果对时间字段进行查找,可以将时间设置为int unsigned类型,存取UNIX时间戳。因为整型比较速度快
  51. 2、当我们执行查询的时候,MySQL只能使用一个索引。
  52. 3MySQL只有对以下操作符才使用索引: < <= = > >= BETWEEN IN ,以及某些时候的LIKE。可以在LIKE操作中使用索引的情形是指另一个操作数不是以通配符( % 或者 _ )开头的情形。例如, SELECT peopleid FROM people WHERE firstname LIKE 'Mich%';” 这个查询将使用索引,但 SELECT peopleid FROM people WHERE firstname LIKE '%ike';” 这个查询不会使用索引。
  53.  
  54. 不得不说
  55. 创建索引、优化查询以便达到更好的查询优化效果。但实际上,MySQL有时并不按我们设计的那样执行查询。MySQL是根据统计信息来生成执行计划的,这就涉及索引及索引的刷选率,表数据量,还有一些额外的因素。
  56.  
  57. Each table index is queried, and the best index is used unless the optimizer believes that it is more efficient to use a table scan. At one time, a scan was used based on whether the best index spanned more than 30% of the table, but a fixed percentage no longer determines the choice between using an index or a scan. The optimizer now is more complex and bases its estimate on additional factors such as table size, number of rows, and I/O block size.
  58.  
  59. 简而言之,当MYSQL认为符合条件的记录在30%以上,它就不会再使用索引,因为mysql认为走索引的代价比不用索引代价大,所以优化器选择了自己认为代价最小的方式。事实也的确如此
  60.  
  61. 实例检测
  62. 表结构
  63.  
  64. DROP TABLE IF EXISTS `active`;
  65. CREATE TABLE IF NOT EXISTS `active` (
  66. `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  67. `userid` int(10) unsigned NOT NULL,
  68. `lastactive` int(10) unsigned NOT NULL,
  69. PRIMARY KEY (`id`),
  70. KEY `lastactive` (`lastactive`)
  71. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  72. 插入数据
  73.  
  74. insert into active values
  75. (null,10000, unix_timestamp("2012-08-20 15:10:02")),
  76. (null,10001, unix_timestamp("2012-08-20 15:10:02")),
  77. (null,10002, unix_timestamp("2012-08-20 15:10:03")),
  78. (null,10003, unix_timestamp("2012-08-20 15:10:03")),
  79. (null,10004, unix_timestamp("2012-08-20 15:10:03")),
  80. (null,10005, unix_timestamp("2012-08-20 15:10:04")),
  81. (null,10006, unix_timestamp("2012-08-20 15:10:04")),
  82. (null,10007, unix_timestamp("2012-08-20 15:10:05")),
  83. (null,10008, unix_timestamp("2012-08-20 15:10:06"))
  84. explain select * from active where lastactive > unix_timestamp()-3;
  85.  
  86. 上面这句索引起作用。
  87.  
  88. 但是我在测试中,因为插入的日期与我测试的当前日期相差不少时间。所以我改写为以下内容:
  89.  
  90. explain select * from active where lastactive > unix_timestamp("2012-08-20 15:10:06") - 3;
  91.  
  92. 但是数据显示,TYPEALLkeyNULL。也就是说索引不起作用。
  93.  
  94. 我在改写以下语句测试:
  95.  
  96. explain select * from active where lastactive > unix_timestamp("2012-08-20 15:10:06");
  97.  
  98. 上面这个语句,索引又起作用了。
  99.  
  100. 一个疑惑
  101. 正好手头上有一个12016条记录的数据,证实一下“当MYSQL认为符合条件的记录在30%以上,它就不会再使用索引”的结论。经过测试,在总记录12016条记录的表中,查询小于1854条记录时走索引,大于该记录时不走索引。符合条件的记录在15.4%。这....,30%的数据可能有待确认,正如上面说的那样,MySQL的优化器是考虑多方面因素,并选择自己认为代价最小的方式。
  102.  
  103. mysql自己判断是否使用索引,如果你自己确信使用索引可以提高效率,你也可以强行实用索引force index(index_name)

统计出当前各个title类型对应的员工当前(to_date='9999-01-01')薪水对应的平均工资。结果给出title以及平均工资avg。

解题步骤:

   题目:统计出当前各个title类型对应的员工当前(to_date='9999-01-01')薪水对应的平均工资。结果给出title以及平均工资avg。
        目标: 查找结果给出title以及平均工资avg。(select 要显示的字段)
   筛选条件:默认为当前时间

  1. SELECT
  2. t.title,
  3. AVG(s.salary) AS avg
  4. FROM
  5. salaries s
  6. LEFT JOIN titles t ON s.emp_no = t.emp_no
  7. WHERE
  8. s.TO_DATE = '9999-01-01'
  9. AND t.TO_DATE = '9999-01-01'
  10. GROUP BY
  11. t.title

获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary

     题目:获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary
        目标: 查找emp_no以及其对应的薪水salary(select 要显示的字段)
   筛选条件:薪水第二多

  1. SELECT
  2. emp_no,
  3. salary
  4. FROM
  5. salaries
  6. WHERE
  7. TO_DATE = '9999-01-01'
  8. ORDER BY
  9. salary DESC --本题精髓,第二多,可以理解成倒序排第二的人
  10. limit
  11. 1,1 --从第二条开始,去一条;也就是取得第二条

查找员工编号emp_no为10001其自入职以来的薪水salary涨幅值growth

    题目:查找员工编号emp_no为10001其自入职以来的薪水salary涨幅值growth
        目标: 查找涨幅值growth(select 要显示的字段)
   筛选条件:自入职以来,号emp_no为10001

  1. SELECT
  2. MAX(salary) - MIN(salary) AS growth --函数的使用,计算,以及起别名 as的语法
  3. FROM
  4. salaries
  5. WHERE
  6. emp_no = '';

针对actor表创建视图actor_name_view,只包含first_name以及last_name两列,并对这两列重新命名,first_name为first_name_v,last_name修改为last_name_v:

  终于到了听起来牛逼点的题目啦!!!,其实也没啥~~~,还是查询

     题目:针对actor表创建视图actor_name_view,只包含first_name以及last_name两列,并对这两列重新命名,first_name为first_name_v,last_name修改为last_name_v:
        目标: 创建这个视图
   筛选条件:

  1. CREATE VIEW actor_name_view AS
  2. SELECT
  3. first_name AS first_name_v,
  4. last_name AS last_name_v
  5. FROM
  6. actor

针对salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005, 使用强制索引。

     题目:针对salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005, 使用强制索引。
        目标:使用强制索引
   筛选条件:

  1. SELECT
  2. *
  3. FROM
  4. salaries indexed
  5. by idx_emp_no --使用强制索引
  6. WHERE
  7. emp_no = 10005

拓展:使用强制索引的案例

在last_update后面新增加一列名字为create_date

     题目:修改表结构,用sql(这样比手写显得牛逼)
        目标:alter用法
   筛选条件:

  1. ALTER TABLE actor ADD 'create_date' datetime NOT NULL DEFAULT '0000-00-00 00:00:00'

构造一个触发器audit_log,在向employees_test表中插入一条数据的时候,触发插入相关的数据到audit中。

    题目: 构造一个触发器audit_log,在向employees_test表中插入一条数据的时候,触发插入相关的数据到audit中。(听着就很高级,虽然实际中从未用过)
        目标:
   筛选条件:

  1. CREATE TRIGGER audit_log AFTER
  2. INSERT ON employees_test
  3. BEGIN
  4. INSERT INTO audit VALUES (
  5. new.id,
  6. new.name
  7. );
  8.  
  9. END;

使用含有关键字exists查找未分配具体部门的员工的所有信息。

   题目: 使用含有关键字exists查找未分配具体部门的员工的所有信息。
        目标:查找员工的所有信息。
   筛选条件:未分配具体部门

  1. SELECT
  2. *
  3. FROM
  4. employees e
  5. WHERE
  6. NOT EXISTS ( --就是exists的使用,上面有详细讲解过的,注意返回值是逻辑真假
  7. SELECT
  8. 1
  9. FROM
  10. dept_emp de
  11. WHERE
  12. e.emp_no = de.emp_no
  13. )

牛客网sql刷题解析-完结的更多相关文章

  1. 牛客网Java刷题知识点之什么是进程、什么是线程、什么是多线程、多线程的好处和弊端、多线程的创建方式、JVM中的多线程解析、多线程运行图解

    不多说,直接上干货! 什么是进程? 正在进行中的程序(直译). 什么是线程? 就是进程中一个负责程序执行的控制单元(执行路径). 见 牛客网Java刷题知识点之进程和线程的区别 什么是多线程? 一个进 ...

  2. 牛客网Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤

    福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟   ...

  3. 牛客网Java刷题知识点之为什么HashMap和HashSet区别

    不多说,直接上干货! HashMap  和  HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collection框架的 ...

  4. 牛客网Java刷题知识点之为什么HashMap不支持线程的同步,不是线程安全的?如何实现HashMap的同步?

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  5. 牛客网Java刷题知识点之Map的两种取值方式keySet和entrySet、HashMap 、Hashtable、TreeMap、LinkedHashMap、ConcurrentHashMap 、WeakHashMap

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  6. 牛客网Java刷题知识点之ArrayList 、LinkedList 、Vector 的底层实现和区别

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  7. 牛客网Java刷题知识点之垃圾回收算法过程、哪些内存需要回收、被标记需要清除对象的自我救赎、对象将根据存活的时间被分为:年轻代、年老代(Old Generation)、永久代、垃圾回收器的分类

    不多说,直接上干货! 首先,大家要搞清楚,java里的内存是怎么分配的.详细见 牛客网Java刷题知识点之内存的划分(寄存器.本地方法区.方法区.栈内存和堆内存) 哪些内存需要回收 其实,一般是对堆内 ...

  8. 牛客网Java刷题知识点之HashMap的实现原理、HashMap的存储结构、HashMap在JDK1.6、JDK1.7、JDK1.8之间的差异以及带来的性能影响

    不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑          ...

  9. 牛客网Java刷题知识点之UDP协议是否支持HTTP和HTTPS协议?为什么?TCP协议支持吗?

    不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑          ...

随机推荐

  1. mysql 8.0 忘记root密码后重置

    最近状态很不好,一直晕晕晕晕晕晕乎乎的,一个测试实例,下班前修改了一下root的密码,接着就下班走人,第二天来发现root密码忘了 刚好自动化安装脚本整理好了,本来想着算了直接重装实例得了,简单省事也 ...

  2. Hibernate 数据层基类实现

    提取经常操作表如新增.修改.删除.查询.分页查询.统计等业务功能,形成基类,用泛型传参,有利于每个实体对象数据层继承. package com.base.dao; import java.io.Ser ...

  3. MongoDB学习笔记(七、MongoDB总结)

    1.为什么要NoSQL:nosql能解决sql中那些解决不了的问题 NoSQL是什么:Not Only SQL,本质上还是数据库,但它不会遵循传统数据库的规则(如:SQL标准.ACID属性[事务].表 ...

  4. python-参数化-(1)(手机号码)

    一.生成手机号码,此处并没有写成类或者函数形式,上代码 import random #指定手机号码前三位格式,并随机返回一个区号,关于random参数化的相关部分自行了解type_mobile = [ ...

  5. Ubuntu18.04 设置开机进入命令行模式

    首先来了解下启动级别(Runlevel): 指 Unix 或 类 Unix 操作系统下不同的运行模式,运行级别通常分为 7 级: 运行级别 0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启 ...

  6. 围观高手是如何写好 Python 循环,把内存用到极致的?

    0 前言 说到处理循环,我们习惯使用for, while等,比如依次打印每个列表中的字符: lis = ['I', 'love', 'python'] for i in lis:     print( ...

  7. 批量装机工具cobbler简介及其安装使用

    前言:如果仅有几台机器的话,使用U盘或者光盘装起来还不是很费事,一旦数量到了一定程度,使用手动方法就是一件费时费力的事,PXE+kistart就可以解决这个问题,降低难度,加快速度,而cobbler更 ...

  8. 【第二章】Zabbix3.4监控SQLServer数据库和H3C交换机思科Cisco防火墙交换机教程笔记

    监控SQLServer数据库 SSMS执行相关SQL SQL模板命名规则 Zabbix客户端导入模板 添加SQLServer监控图形 SQLServer服务器关联模板 监控思科Cisco防火墙交换机 ...

  9. go语言面向对象之方法

    1.实现方法 package main import "fmt" //在面向对象编程中,一个对象其实就是一个简单的值或者一个变量,在这个 //对象中包含一些函数 //这种带有接受者 ...

  10. Python 词云可视化

    最近看到不少公众号都有一些词云图,于是想学习一下使用Python生成可视化的词云,上B站搜索教程的时候,发现了一位UP讲的很不错,UP也给出了GitHub上的源码,是一个很不错的教程,这篇博客主要就是 ...