Fork me on GitHub
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 30 下一页
摘要: 本文已收录至 https://github.com/vipstone/algorithm 《算法图解》系列。 队列和栈是计算机中两个非常重要的数据结构,经过前面的学习(《队列》、《栈》)我们知道了它们各自的特点,队列是先进先出(FIFO)的,而栈是先进后出(FILO)的,那如何用栈来实现队列呢?这可 阅读全文
posted @ 2020-10-26 15:01 磊哥|www.javacn.site 阅读(665) 评论(0) 推荐(0) 编辑
摘要: 本文已收录至 https://github.com/vipstone/algorithm 《算法图解》系列。 通过前面文章的学习《一文详解「队列」,手撸队列的3种方法!》我们知道了队列(Queue)是先进先出(FIFO)的,并且我们可以用数组、链表还有 List 的方式来实现自定义队列,那么本文我们 阅读全文
posted @ 2020-10-23 09:27 磊哥|www.javacn.site 阅读(10276) 评论(0) 推荐(5) 编辑
摘要: 本文已收录至我的 Github《算法图解》系列:https://github.com/vipstone/algorithm 前面我们介绍了栈(Stack),队列和栈是比较像的一种数据结构。我们可以想象有很多辆汽车正在通过单行道的隧道,所有车辆不能插队、不能掉头,先进来的车也先出去,我们可以把这种特征 阅读全文
posted @ 2020-10-21 16:57 磊哥|www.javacn.site 阅读(762) 评论(1) 推荐(1) 编辑
摘要: 在安装完 MySQL 或者是在使用 MySQL 时,最尴尬的就是忘记密码了,墨菲定律也告诉我们,如果一件事有可能出错,那么它一定会出错。那如果我们不小心忘记了 MySQL 的密码,该如何处理呢?别着急,本文教你一招搞定。 1.修改 MySQL 配置文件 首先我们需要打开 MySQL 的配置文件,如果 阅读全文
posted @ 2020-10-20 14:14 磊哥|www.javacn.site 阅读(1202) 评论(0) 推荐(1) 编辑
摘要: 在 MacOS 上安装最新版的 MySQL 有三种方法: 使用 Docker 安装; 使用 Homebrew 运行 brew install mysql 安装; 使用安装包安装。 我们本文将采用最常规的方式,也就是安装包的方式进行安装,这也是我推荐给新手的安装方式,因为这种安装方式更直观更可控一些, 阅读全文
posted @ 2020-10-20 09:03 磊哥|www.javacn.site 阅读(824) 评论(1) 推荐(1) 编辑
摘要: 本文已收录至我的 Github《算法图解》系列:https://github.com/vipstone/algorithm 今天要讲的这道题是 bilibili 今年的笔试真题,也是一道关于栈的经典面试题。 经过前面文章的学习,我想很多朋友已经看出来了,我接下来要写的是一个关于「算法图解」的系列文章 阅读全文
posted @ 2020-10-18 12:14 磊哥|www.javacn.site 阅读(519) 评论(0) 推荐(0) 编辑
摘要: MySQL 是一个跨世纪的伟大产品,它最早诞生于 1979 年,距今已经有 40 多年的历史了,而如今比较主流的 Java 语言也只是 1991 年才诞生的,也就是说 MySQL 要比 Java 的诞生还早十几年,不得不惊叹二者强大的生命力。 MySQL 的应用十分广泛,像 Google、Taoba 阅读全文
posted @ 2020-10-17 10:03 磊哥|www.javacn.site 阅读(706) 评论(1) 推荐(0) 编辑
摘要: 前面我们学习了很多关于栈的知识,比如《动图演示:手撸堆栈的两种实现方法!》和《JDK 竟然是这样实现栈的?》,那么接下来我们再来刷一些关于栈的经典面试题以巩固学过的知识。 我们今天的面试题是这样的... 题目 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 阅读全文
posted @ 2020-10-15 20:49 磊哥|www.javacn.site 阅读(985) 评论(0) 推荐(0) 编辑
摘要: 最近无意间发现了一款开源免费的 MySQL 客户端管理工具,磊哥试用了两天感觉还行,所以今天推荐给各位大佬。 此工具不止是开源免费的,而且可以跨平台使用,如 Windows、MacOS 都可以轻松支持,并且运行速度也是杠杠的。 话不多说,先来看操作界面,如下图所示: 再来看工具使用的动图: 从上图可 阅读全文
posted @ 2020-10-14 18:07 磊哥|www.javacn.site 阅读(3277) 评论(1) 推荐(0) 编辑
摘要: 链表反转是一道很基础但又非常热门的算法面试题,它也在《剑指Offer》的第 24 道题出现过,至于它有多热(门)看下面的榜单就知道了。 从牛客网的数据来看,链表反转的面试题分别霸占了【上周考过】和【研发最爱考】的双重榜单,像网易、字节等知名互联网公司都考过,但通过率却低的只有 30%,所以本文我们就 阅读全文
posted @ 2020-10-13 15:14 磊哥|www.javacn.site 阅读(939) 评论(3) 推荐(3) 编辑
摘要: 前面的文章《动图演示:手撸堆栈的两种实现方法!》我们用数组和链表来实现了自定义的栈结构,那在 JDK 中官方是如何实现栈的呢?接下来我们一起来看。 这正式开始之前,先给大家再解释一下「堆栈」一词的含义,因为之前有读者对这个词有一定的疑惑。 Stack 翻译为中文是堆栈的意思,但为了能和 Heap(堆 阅读全文
posted @ 2020-10-09 19:42 磊哥|www.javacn.site 阅读(623) 评论(0) 推荐(0) 编辑
摘要: 多张动图配合代码对堆栈进行讲解,通俗易懂、理解成本低。 阅读全文
posted @ 2020-09-24 09:25 磊哥|www.javacn.site 阅读(872) 评论(1) 推荐(1) 编辑
摘要: Java新特性 var 局部类型推导 阅读全文
posted @ 2020-09-21 09:07 磊哥|www.javacn.site 阅读(809) 评论(3) 推荐(3) 编辑
摘要: JDK 15 在 2020 年 9 月 15 号正式发布了,这次发布的主要功能有: JEP 339:EdDSA 数字签名算法 JEP 360:密封类(预览) JEP 371:隐藏类 JEP 372:删除 Nashorn JavaScript 引擎 JEP 373:重新实现 Legacy Datagr 阅读全文
posted @ 2020-09-17 09:31 磊哥|www.javacn.site 阅读(10716) 评论(0) 推荐(4) 编辑
摘要: 我们在一些特定场景下,例如查询公司员工的最高薪资,以及班级的最高成绩又或者是面试中都会遇到查找最大值的问题,所以本文我们就来列举一下查询数组中最大值的 5 种方法。 首先我们来看最原始也是最“笨”的实现方法:循环对比和递归对比。 方式一:循环对比 循环对比的执行流程如下图所示: 从上图可以看出,循环 阅读全文
posted @ 2020-09-16 09:28 磊哥|www.javacn.site 阅读(3230) 评论(0) 推荐(1) 编辑
摘要: URL 去重在我们日常工作中和面试中很常遇到,比如这些: 可以看出,包括阿里,网易云、优酷、作业帮等知名互联网公司都出现过类似的面试题,而且和 URL 去重比较类似的,如 IP 黑/白名单判断等也经常出现在我们的工作中,所以我们本文就来“盘一盘”URL 去重的问题。 URL 去重思路 在不考虑业务场 阅读全文
posted @ 2020-09-10 09:22 磊哥|www.javacn.site 阅读(1594) 评论(7) 推荐(1) 编辑
摘要: 最近在看 Java 的基础知识,其中有部分是关于循环的,在 Java 中,循环的语法总共分为 3 种: for、 while、 do-while,如下图所示: 但我惊奇的发现,在之前的职业生涯中(11 年),竟从未用过 do-while(尴尬),于是问了群里的小伙伴,发现也是鲜有人用。 do-whi 阅读全文
posted @ 2020-09-06 17:44 磊哥|www.javacn.site 阅读(312) 评论(1) 推荐(0) 编辑
摘要: 阿里《Java开发手册》最新嵩山版在 8.3 日发布,其中有一段内容引起了老王的注意,内容如下: 【参考】volatile 解决多线程内存不可见问题。对于一写多读,是可以解决变量同步问题,但是如果多写,同样无法解决线程安全问题。 说明:如果是 count++ 操作,使用如下类实现:AtomicInt 阅读全文
posted @ 2020-08-25 17:04 磊哥|www.javacn.site 阅读(336) 评论(0) 推荐(1) 编辑
摘要: 定时任务在实际的开发中特别常见,比如电商平台 30 分钟后自动取消未支付的订单,以及凌晨的数据汇总和备份等,都需要借助定时任务来实现,那么我们本文就来看一下定时任务最简单的几种实现方式。 TOP 1:Timer Timer 是 JDK 自带的定时任务执行类,无论任何项目都可以直接使用 Timer 来 阅读全文
posted @ 2020-08-24 16:48 磊哥|www.javacn.site 阅读(2951) 评论(0) 推荐(0) 编辑
摘要: 年少不知优化苦,遇坑方知优化难。 ——村口王大爷 本文内容导图如下: 我之前有很多文章都在讲性能优化的问题,比如下面这些: 《switch 的性能提升了 3 倍,我只用了这一招!》 《String性能提升10倍的几个方法!(源码+原理分析)》 《局部变量竟然比全局变量快 5 倍?》 《池化技术到达有 阅读全文
posted @ 2020-08-10 16:33 磊哥|www.javacn.site 阅读(928) 评论(2) 推荐(5) 编辑
摘要: 《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地整理成册,当前的版本是嵩山版。现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影 阅读全文
posted @ 2020-08-03 19:04 磊哥|www.javacn.site 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 情商高的人是能洞察并照顾到身边所有人的情绪,而好的文章应该是让所有人都能看懂。 尼采曾经说过:人们无法理解他没有经历过的事情。因此我会试着把技术文章写的尽量具象化一些,力求让所有人都能看懂,所以在正式开始之前,我们先从两个生活事例说起。 尼采帅照: 唠嗑:之前一直以为尼采是中国的某位圣人,大体和庄子 阅读全文
posted @ 2020-07-28 13:51 磊哥|www.javacn.site 阅读(1645) 评论(0) 推荐(4) 编辑
摘要: wait 加锁示例 public class WaitDemo { private static Object locker = new Object(); public static void main(String[] args) throws InterruptedException { Wa 阅读全文
posted @ 2020-07-21 13:40 磊哥|www.javacn.site 阅读(3278) 评论(0) 推荐(0) 编辑
摘要: 有位朋友,某天突然问磊哥:在 Java 中,防止重复提交最简单的方案是什么? 这句话中包含了两个关键信息,第一:防止重复提交;第二:最简单。 于是磊哥问他,是单机环境还是分布式环境? 得到的反馈是单机环境,那就简单了,于是磊哥就开始装*了。 话不多说,我们先来复现这个问题。 模拟用户场景 根据朋友的 阅读全文
posted @ 2020-07-17 10:27 磊哥|www.javacn.site 阅读(18946) 评论(7) 推荐(15) 编辑
摘要: 我们在日常开发中经常需要测试一些代码的执行时间,但又不想使用向 JMH(Java Microbenchmark Harness,Java 微基准测试套件)这么重的测试框架,所以本文就汇总了一些 Java 中比较常用的执行时间统计方法,总共包含以下 6 种,如下图所示: 方法一:System.curr 阅读全文
posted @ 2020-07-14 10:29 磊哥|www.javacn.site 阅读(4878) 评论(0) 推荐(1) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 30 下一页