SF
Java中文社群
Java中文社群
注册登录
关注博客
注册登录
主页
关于
RSS
双“11”搞促销?用贪心算法来盘他!
Java中文社群
2020-11-13
阅读 3 分钟
1.8k
这几年商家为了刺激消费是变着花样的推出各种各样的活动,以某多多为首的运营式电商更是让我们看到了营销的无限“潜力”。这不,最近刚赶上双 11,小区便利店的老王头也推出了一项「空酒瓶子换酒」的促销活动,它的规则是这样的。
嗯,查询滑动窗口最大值的这4种方法不错....
Java中文社群
2020-11-09
阅读 6 分钟
1.5k
这是一道比较基础的算法题,涉及到的数据结构也是我们之前讲过的,我这里先买一个关子。这道面试题最近半年在亚马逊的面试中出现过 28 次,在字节跳动中出现过 7 次,数据来源于 LeetCode。
23张图!万字详解「链表」,从小白到大佬!
Java中文社群
2020-11-05
阅读 11 分钟
2.6k
链表和数组是数据类型中两个重要又常用的基础数据类型,数组是连续存储在内存中的数据结构,因此它的优势是可以通过下标迅速的找到元素的位置,而它的缺点则是在插入和删除元素时会导致大量元素的被迫移动,为了解决和平衡此问题于是就有了链表这种数据类型。
队列实现栈的3种方法,全都击败了100%的用户!
Java中文社群
2020-11-03
阅读 6 分钟
2.2k
本文已收录至 Github《小白学算法》系列:[链接]之前我们讲过《用两个栈实现一个队列》,而今天我们要讲的是「用队列实现栈」,它们都属于常见的面试题,而我们今天要用多种方法来实现队列到栈的“转变”。老规矩,先来回顾一下栈(Stack)和队列(Queue)的特性和常见方法。栈是后进先出(LIFO)的数据结构,常见方法如下...
小白学算法:买卖股票的最佳时机!
Java中文社群
2020-10-29
阅读 3 分钟
1.5k
今天蚂蚁集团(支付宝)正式上市了,毫无疑问这一举措又造就了一大批富豪,然而作为局外人的我们,也只有羡慕的份了。明明可以考运气吃饭,咱非得靠实力,你说冤不冤啊?
算法图解:如何用两个栈实现一个队列?
Java中文社群
2020-10-26
阅读 3 分钟
5.2k
队列和栈是计算机中两个非常重要的数据结构,经过前面的学习(《队列》、《栈》)我们知道了它们各自的特点,队列是先进先出(FIFO)的,而栈是先进后出(FILO)的,那如何用栈来实现队列呢?这可是一道经典的面试题,所以本文我们就来实现一下。
Java中的5大队列,你知道几个?
Java中文社群
2020-10-23
阅读 10 分钟
2.4k
通过前面文章的学习《一文详解「队列」,手撸队列的3种方法!》我们知道了队列(Queue)是先进先出(FIFO)的,并且我们可以用数组、链表还有 List 的方式来实现自定义队列,那么本文我们来系统的学习一下官方是如何实现队列的。
一文详解「队列」,手撸队列的3种方法!
Java中文社群
2020-10-21
阅读 5 分钟
1.7k
前面我们介绍了栈(Stack),队列和栈是比较像的一种数据结构。我们可以想象有很多辆汽车正在通过单行道的隧道,所有车辆不能插队、不能掉头,先进来的车也先出去,我们可以把这种特征的数据结构称之为队列。
忘记MySQL密码怎么办?一招教你搞定!
Java中文社群
2020-10-20
阅读 2 分钟
1.8k
在安装完 MySQL 或者是在使用 MySQL 时,最尴尬的就是忘记密码了,墨菲定律也告诉我们,如果一件事有可能出错,那么它一定会出错。那如果我们不小心忘记了 MySQL 的密码,该如何处理呢?别着急,本文教你一招搞定。
最新版MySQL在MacOS上的安装与使用!
Java中文社群
2020-10-20
阅读 3 分钟
24.7k
在 MacOS 上安装最新版的 MySQL 有三种方法:使用 Docker 安装;使用 Homebrew 运行 brew install mysql 安装;使用安装包安装。我们本文将采用最常规的方式,也就是安装包的方式进行安装,这也是我推荐给新手的安装方式,因为这种安装方式更直观更可控一些,比如对 MySQL 版本的选择和密码配置等,那接下来我们就直接开...
B站真题:如何判断括号是否有效?
Java中文社群
2020-10-18
阅读 4 分钟
2.3k
经过前面文章的学习,我想很多朋友已经看出来了,我接下来要写的是一个关于「算法图解」的系列文章,中间可能会穿插少量的其他类型的文章,但「算法和数据结构」会是我今年文章输出的重点内容。
你不知道的MySQL,以及MariaDB初体验
Java中文社群
2020-10-17
阅读 4 分钟
1.9k
MySQL 是一个跨世纪的伟大产品,它最早诞生于 1979 年,距今已经有 40 多年的历史了,而如今比较主流的 Java 语言也只是 1991 年才诞生的,也就是说 MySQL 要比 Java 的诞生还早十几年,不得不惊叹二者强大的生命力。
算法图解:如何找出栈中的最小值?
Java中文社群
2020-10-16
阅读 5 分钟
2.4k
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。
推荐一款 MySQL 开源客户端,免费 + 跨平台 + 使用便捷!
Java中文社群
2020-10-14
阅读 2 分钟
3.1k
再来看工具使用的动图:从上图可以看出此工具有超级实用的关键字提示功能,还可以很直观的显示数据库和表信息,我们只需要按快捷键 F9 就可以执行选中的 SQL 语句了。
链表反转的两种实现方法,后一种击败了100%的用户!
Java中文社群
2020-10-13
阅读 3 分钟
1.3k
从牛客网的数据来看,链表反转的面试题分别霸占了【上周考过】和【研发最爱考】的双重榜单,像网易、字节等知名互联网公司都考过,但通过率却低的只有 30%,所以本文我们就来学习一下反转链表的两种实现方法。
JDK 中的栈竟然是这样实现的?
Java中文社群
2020-10-09
阅读 5 分钟
1.5k
Stack 翻译为中文是堆栈的意思,但为了能和 Heap(堆)区分开,因此我们一般将 Stack 简称为栈。因此当“堆栈”连在一起时有可能表示的是 Stack,而当“堆、栈”中间有分号时,则表示 Heap(堆)和 Stack(栈),如下图所示:
动图演示:手撸堆栈的两种实现方法!
Java中文社群
2020-09-24
阅读 6 分钟
1.8k
正式开始之前,先和各位朋友聊聊后期的一些打算,后面的文章计划写一些关于数据结构和算法的内容,原因很简单底层结构决定上层建筑嘛,对于框架满天飞的今天,我们不止要学习如何使用框架,更要了解它的原理以及底层数据结构,只有这样我们才能更好的应用它。
Java新特性:数据类型可以扔掉了?
Java中文社群
2020-09-21
阅读 4 分钟
1.5k
枚举:尽管在 JDK 5 中增加了枚举类型,但是 Class 文件常量池的 CONSTANT_Class_info 类型常量并没有发生任何语义变化,仍然是代表一个类或接口的符号引用,没有加入枚举,也没有增加过“CONSTANT_Enum_info”之类的“枚举符号引用”常量。所以使用 enum 关键字定义常量,尽管从 Java 语法上看起来与使用 class 关键字定义...
JDK15正式发布,新增功能预览!
Java中文社群
2020-09-17
阅读 3 分钟
2k
JDK 15 在 2020 年 9 月 15 号正式发布了,这次发布的主要功能有:JEP 339:EdDSA 数字签名算法JEP 360:密封类(预览)JEP 371:隐藏类JEP 372:删除 Nashorn JavaScript 引擎JEP 373:重新实现 Legacy DatagramSocket APIJEP 374:重新实现 DatagramSocket APIJEP 375:实例模式匹配(第二次预览)JEP 377:ZGC:一个...
查找数组中最大值的5种方法!(动图演示)
Java中文社群
2020-09-16
阅读 4 分钟
12.4k
我们在一些特定场景下,例如查询公司员工的最高薪资,以及班级的最高成绩又或者是面试中都会遇到查找最大值的问题,所以本文我们就来列举一下查询数组中最大值的 5 种方法。首先我们来看最原始也是最“笨”的实现方法:循环对比和递归对比。
URL 去重的 6 种方案!(附详细实现代码)
Java中文社群
2020-09-10
阅读 8 分钟
4.2k
URL 去重在我们日常工作中和面试中很常遇到,比如这些:可以看出,包括阿里,网易云、优酷、作业帮等知名互联网公司都出现过类似的面试题,而且和 URL 去重比较类似的,如 IP 黑/白名单判断等也经常出现在我们的工作中,所以我们本文就来“盘一盘”URL 去重的问题。
一点思考|工作十几年了,竟从未用过do-while!
Java中文社群
2020-09-06
阅读 2 分钟
1.3k
最近在看 Java 的基础知识,其中有部分是关于循环的,在 Java 中,循环的语法总共分为 3 种: for、 while、 do-while,如下图所示:
阿里为什么推荐使用LongAdder,而不是volatile?
Java中文社群
2020-08-25
阅读 4 分钟
7k
【参考】volatile 解决多线程内存不可见问题。对于一写多读,是可以解决变量同步问题,但是如果多写,同样无法解决线程安全问题。说明:如果是 count++ 操作,使用如下类实现:AtomicInteger count = new AtomicInteger(); count.addAndGet(1); 如果是 JDK8,推荐使用 LongAdder 对象,比 AtomicLong 性能更好(减少乐观...
定时任务最简单的 3 种实现方法(超实用)
Java中文社群
2020-08-24
阅读 10 分钟
2.8k
定时任务在实际的开发中特别常见,比如电商平台 30 分钟后自动取消未支付的订单,以及凌晨的数据汇总和备份等,都需要借助定时任务来实现,那么我们本文就来看一下定时任务最简单的几种实现方式。
MySQL“被动”性能优化汇总!
Java中文社群
2020-08-10
阅读 5 分钟
2.3k
年少不知优化苦,遇坑方知优化难。 ——村口王大爷本文内容导图如下:我之前有很多文章都在讲性能优化的问题,比如下面这些:《switch 的性能提升了 3 倍,我只用了这一招!》《String性能提升10倍的几个方法!(源码+原理分析)》《局部变量竟然比全局变量快 5 倍?》《池化技术到达有多牛?看了线程和线程池的对比吓我一跳...
池化技术到达有多牛?看了线程和线程池的对比吓我一跳!
Java中文社群
2020-07-28
阅读 5 分钟
1.5k
尼采曾经说过:人们无法理解他没有经历过的事情。因此我会试着把技术文章写的尽量具象化一些,力求让所有人都能看懂,所以在正式开始之前,我们先从两个生活事例说起。
漫画:如何证明sleep不释放锁,而wait释放锁?
Java中文社群
2020-07-21
阅读 4 分钟
4.2k
从上述代码可以看出,我们给 wait() 和 notify() 两个方法上了同一把锁(locker),但在调用完 wait() 方法之后 locker 锁就被释放了,所以程序才能正常执行 notify() 的代码,因为是同一把锁,如果不释放锁的话,是不会执行 notify() 的代码的,这一点也可以从打印的结果中证实(结果输出顺序),所以综合以上情况来说 ...
防止数据重复提交的6种方法(超简单)!
Java中文社群
2020-07-17
阅读 11 分钟
7.7k
有位朋友,某天突然问磊哥:在 Java 中,防止重复提交最简单的方案是什么? 这句话中包含了两个关键信息,第一:防止重复提交;第二:最简单。 于是磊哥问他,是单机环境还是分布式环境? 得到的反馈是单机环境,那就简单了,于是磊哥就开始装*了。 话不多说,我们先来复现这个问题。 模拟用户场景 根据朋友的反馈,大致...
6 种快速统计代码执行时间的方法,真香!
Java中文社群
2020-07-14
阅读 9 分钟
2.5k
我们在日常开发中经常需要测试一些代码的执行时间,但又不想使用向 JMH(Java Microbenchmark Harness,Java 微基准测试套件)这么重的测试框架,所以本文就汇总了一些 Java 中比较常用的执行时间统计方法,总共包含以下 6 种,如下图所示:
IDEA 不为人知的 5 个骚技巧!真香!
Java中文社群
2020-07-06
阅读 2 分钟
2k
工欲善其事,必先利其器,磊哥最近发现了几个特别棒的 IDEA“骚”技巧,已经迫不及待的想要分享给你了,快上车... 1.快速补全行末分号 使用快捷键 Shfit + Ctrl + Enter 轻松实现。 2.自带的 HTTP 请求工具 IDEA 自带了 HTTP 的测试工具,这个功能隐藏的有点深。 这下可以卸载掉 Postman 了(我信你个鬼,你个糟老头...)...
上一页
1
…
More
11
12
13
(current)
14
15
下一页
上一页
13
(current)
下一页