
Java基础
文章平均质量分 78
DougLeaMrConcurrency
内推阿里巴巴、蚂蚁集团,校招社招都可以,有需要推荐的请私聊我。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java核心源码之ArrayList、LinkedList:ArrayList、LinkedList的区别、扩容机制、底层数据结构、核心API源码分析
1. ArrayList 简介ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加 ArrayList实例的容量。这可以减少递增式再分配的数量。ArrayList继承于 AbstractList ,实现了 List, RandomAccess, Cloneable, java.io.Serializable 这些接口。public class ArrayList<E>原创 2021-09-20 17:44:56 · 1157 阅读 · 0 评论 -
Java异步编程源码及原理解析:Future、FutureTask、@Async、ForkJoin框架、CompletableFuture、Redis队列、Reactive响应式编程的优缺点及适用场景
Java异步编程源码及原理解析目录1.Fork-Join2.FutureTask3.Async注解介绍4.CompletableFuture5.中间件+线程池会当凌绝顶,一览众山小。1.Fork-Join框架介绍从一道面试题讲起:如何使用多线程实现归并排序?public class Solution { private static final ForkJoinPool pool = new ForkJoinPool(4); // N 核心处理器 // 多线程排序原创 2021-09-03 19:10:34 · 2335 阅读 · 0 评论 -
Java源码HashMap、ConcurrentHashMap:JDK1.8HashMap静态常量以及设置的目的,初始容量、最大容量、扩容缩容树化条件
作为工作中最重要、最常用的容器之一,当然还是要自己动手写一篇 HashMap 的源码解析来加深对其的印象咯,而且它的设计与实现 也有很多值得学习的地方。以下包含HashMap核心静态常量说明以及变量的注释说明。源码赏析JDK1.8 的 HashMap 底层使用的是 动态数组,数组中元素存放的是 链表或红黑树。核心源码如下。public class HashMap<K, V> extends AbstractMap<K, V> implements Map<K, V>原创 2021-08-24 11:13:48 · 907 阅读 · 1 评论 -
Java算法:LeetCode剑指offer(第二版)算法Java版1-68题
《剑指 Offer(第 2 版)》系列本书精选谷歌、微软等知名 IT 企业的典型面试题,系统地总结了如何在面试时写出高质量代码,如何优化代码效率,以及分析、解决难题的常用方法。English Version题解以下所有题目均来源 LeetCode 中国官网,题解由 doocs/leetcode 贡献者 提供,正在完善中,欢迎贡献你的题解!快速搜索题号、题解、标签等,请善用 Control+F(或者 Command+F)。题号题解标签难度03数组中重复的数字数组,哈希表转载 2021-07-19 00:54:57 · 962 阅读 · 0 评论 -
Java算法:LeetCode算法Java版合集1111-1588题
1111. 有效括号的嵌套深度题目描述有效括号字符串 仅由 "(" 和 ")" 构成,并符合下述几个条件之一: 空字符串 连接,可以记作 AB(A 与 B 连接),其中 A 和 B 都是有效括号字符串 嵌套,可以记作 (A),其中 A 是有效括号字符串类似地,我们可以定义任意有效括号字符串 s 的 嵌套深度 depth(S): s 为空时,depth("") = 0原创 2021-05-07 22:41:56 · 1223 阅读 · 0 评论 -
Java算法:LeetCode算法Java版合集513-1110题
513. 找树左下角的值题目描述给定一个二叉树,在树的最后一行找到最左边的值。示例 1:输入: 2 / \ 1 3输出:1 示例 2: 输入: 1 / \ 2 3 / / \ 4 5 6 / 7输出:7 注意: 您可以假设树(即给定的根节点)不为 NULL。解法Java/** * Definition for a binary原创 2021-05-07 22:39:48 · 1179 阅读 · 0 评论 -
Java算法:LeetCode算法Java版合集155-509题
155. 最小栈题目描述设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);mi原创 2021-05-07 22:36:38 · 828 阅读 · 0 评论 -
Java算法:LeetCode算法Java版合集1-154题
##前言:二进制、位运算符基础###1.十进制转二进制原理:给定的数循环除以2,直到商为0或者1为止。将每一步除的结果的余数记录下来,然后反过来就得到相应的二进制了。比如8转二进制,第一次除以2等于4(余数0),第二次除以2等于2(余数0),第三次除以2等于1(余数0),最后余数1,得到的余数依次是0 0 0 1 ,反过来就是1000,计算机内部表示数的字节长度是固定的,比如8位,16位,32位。所以在高位补齐,java中字节码是8位的,所以高位补齐就是00001000.写法位(8)10=(000原创 2021-05-07 22:32:00 · 1104 阅读 · 1 评论 -
LeetCode算法:1578~1588道
1578. 避免重复字母的最小删除成本English Version题目描述给你一个字符串 s 和一个整数数组 cost ,其中 cost[i] 是从 s 中删除字符 i 的代价。返回使字符串任意相邻两个字母不相同的最小删除成本。请注意,删除一个字符后,删除其他字符的成本不会改变。 示例 1:输入:s = "abaac", cost = [1,2,3,4,5]输出:3解释:删除字母 "a" 的成本为 3,然后得到 "abac"(字符串中相邻两个字母不相同)。示例 2:输原创 2021-02-25 00:23:19 · 243 阅读 · 0 评论 -
LeetCode算法:900~1576道
912. 排序数组English Version题目描述给定一个整数数组 nums,将该数组升序排列。 示例 1:输入:[5,2,3,1]输出:[1,2,3,5]示例 2:输入:[5,1,1,2,0,0]输出:[0,0,1,1,2,5] 提示: 1 <= A.length <= 10000 -50000 <= A[i] <= 50000解法Python3Javaclass Solution {原创 2021-02-25 00:21:07 · 793 阅读 · 0 评论 -
LeetCode算法:400~899道
400. 第 N 个数字English Version题目描述在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...中找到第 n 个数字。注意:n 是正数且在32为整形范围内 ( n < 231)。示例 1:输入:3输出:3示例 2:输入:11输出:0说明:第11个数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... 里是0原创 2021-02-24 23:29:16 · 1254 阅读 · 0 评论 -
Java并发技术:图解Fork/join框架与CompleteableFuture原理及源码解析ppt
Fork/join框架与CompleteableFuture源码解析原创 2021-04-30 11:44:45 · 911 阅读 · 0 评论 -
LeetCode算法:100~199道
100. 相同的树English Version题目描述给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 1 /原创 2021-02-24 22:19:04 · 430 阅读 · 0 评论 -
Java算法:牛客网小米笔试真题算法Java版1-40题第二版
题号 题目 知识点 难度 通过率 XM1 小米Git 树 困难 10.22% XM2 懂二进制 中等 29.90% XM3 风口的猪-中国牛市 动态规划 较难 18.73% XM4 电话号码分身 中等 22.63% XM5 句子反转 字符串 中等 26.09% XM6 树的高度 中等 16.85% XM7 进制间转换 中等 24.29% XM8 最少立方数之和 动态规划 中等 24.28% XM9 资产包打包 动态规划贪心 中等 33.55% XM10 爬楼梯 递归动态规划原创 2021-04-27 22:15:24 · 2973 阅读 · 0 评论 -
Java算法:牛客网字节跳动笔试真题算法Java版1-27题
题号 题目 知识点 难度 通过率ZJ1 附加题 动态规划数组 中等 16.45%ZJ2 编程题1 贪心 中等 11.65%ZJ3 编程题2 字符串贪心 中等 29.30%ZJ4 附加题 递归模拟穷举 中等 32.85%ZJ5 编程题1 模拟 中等 25.80%ZJ6 编程题2 递归动态规划模拟 中等 12.32%ZJ7 字母交换 字符串动态规划 中等 29.01%ZJ8 用户喜好 数组模拟哈希 中等 18.28%ZJ9 手串 字符串哈希模拟 中等 29.63%ZJ10 编程题3 排序数组原创 2021-04-25 23:46:04 · 3745 阅读 · 9 评论 -
Java算法:牛客网腾讯笔试真题算法Java版1-11题
题号 题目 知识点 难度 通过率 QQ1 生成格雷码 递归 简单 22.61% QQ2 微信红包 模拟 简单 25.61% QQ3 编码 字符串模拟 中等 26.60% QQ4 游戏任务标记 模拟 中等 37.55% QQ5 素数对 模拟 中等 31.58% QQ6 geohash编码 模拟 中等 24.82% QQ7 拼凑硬币 动态规划 中等 22.25% QQ8 数字转换机 贪心 中等 34.40% QQ9 魔法阵 计算几何 简单 39.06% QQ10 石子合并 中等 49.原创 2021-04-25 23:44:48 · 732 阅读 · 0 评论 -
Java算法:牛客网拼多多笔试真题算法Java版1-13题
题号 题目 知识点 难度 通过率 PDD1 最大乘积 贪心模拟 中等 14.45% PDD2 大整数相乘 模拟 中等 27.32% PDD3 六一儿童节 贪心 中等 24.74% PDD4 迷宫寻路 模拟 中等 14.77% PDD5 列表补全 数组模拟 简单 21.09% PDD6 拼多多周年庆 动态规划贪心树图 较难 23.93% PDD7 数三角形 模拟排序穷举 中等 23.72% PDD8 最大乘积 贪心模拟 中等 21.08% PDD9 小熊吃糖 排序数组模拟贪心 简单 24原创 2021-04-25 23:43:39 · 1003 阅读 · 0 评论 -
Java算法:牛客网滴滴笔试真题算法Java版1-14题
题号 题目 知识点 难度 通过率 DD1 连续最大和 动态规划贪心 简单 21.59% DD2 餐馆 排序贪心 困难 13.77% DD3 地下迷宫 简单 19.98% DD4 末尾0的个数 贪心 入门 27.56% DD5 进制转换 数学 简单 23.24% DD6 数字和为sum的方法数 动态规划 较难 23.09% DD7 整数无序数组求第K大数 堆排序 中等 22.97% DD8 给定整数序列求连续子串最大和 动态规划贪心 中等 31.55% DD9 寻找丑数 穷举 中等 2原创 2021-04-25 23:41:58 · 1246 阅读 · 0 评论 -
Java算法:牛客网哔哩哔哩bilibili笔试真题算法Java版1-14题
题号 题目 知识点 难度 通过率 BL1 扭蛋机 递归 中等 32.67% BL2 小A最多会新认识的多少人 图 中等 15.20% BL3 简单表达式计算 字符串模拟栈 中等 29.30% BL4 山寨金闪闪 数组 中等 17.53% BL5 顺时针打印数字矩阵 递归数组模拟 中等 16.87% BL6 精灵鼠从入口到出口的最少减少速度 动态规划字符串 中等 35.73% BL7 比较两个版本字符串version1和version2 字符串 中等 21.86% BL8 写一段程序判断I原创 2021-04-25 23:40:37 · 1116 阅读 · 0 评论 -
Java算法:牛客网爱奇艺笔试真题算法Java版1-23题
题号 题目 知识点 难度 通过率 QY1 循环数比较 字符串模拟穷举 中等 25.56% QY2 DNA序列 字符串穷举 中等 22.69% QY3 判断题 贪心模拟 中等 46.89% QY4 删除重复字符 字符串模拟 较难 33.46% QY5 空中旅行 数组模拟贪心 中等 29.16% QY6 回文素数 模拟穷举 中等 24.36% QY7 排序 贪心排序 中等 37.11% QY8 字符串价值 字符串贪心 中等 30.15% QY9 拼凑正方形 贪心穷举排序 中等 37.67%原创 2021-04-25 23:38:54 · 558 阅读 · 0 评论 -
Java算法:牛客网京东笔试真题算法Java版1-24题
题号 题目 知识点 难度 通过率 JD1 年终奖 动态规划 简单 32.58% JD2 抛小球 数学模拟 简单 31.40% JD3 小东分苹果 动态规划模拟 中等 22.95% JD4 上台阶 递归动态规划 中等 15.96% JD5 小球的距离 入门 30.49% JD6 保卫方案 栈 中等 7.25% JD7 集合 模拟 中等 19.34% JD8 进制均值 模拟 中等 27.12% JD9 幸运数 模拟 中等 36.72% JD10 两个子串 字符串穷举 中等 27.62%原创 2021-04-23 00:19:59 · 1181 阅读 · 0 评论 -
Java算法:牛客网快手笔试真题算法Java版1-36题
题号 题目 知识点 难度 通过率 KS1 获得最多的奖金 数组贪心 中等 21.23% KS2 将满二叉树转换为求和树 递归模拟 简单 25.24% KS3 搭积木 排序动态规划 较难 16.35% KS4 最少数量货物装箱问题 动态规划贪心 中等 31.94% KS5 回文子串 字符串模拟动态规划 较难 36.79% KS6 字符串长度最大乘积 字符串模拟 简单 29.19% KS7 今年的第几天 模拟 简单 38.80% KS8 数字序列第n位的值 简单 43.40% KS9 字原创 2021-04-22 00:16:54 · 4574 阅读 · 0 评论 -
Java算法:牛客网百度笔试真题算法Java版1-19题
题号 题目 知识点 难度 通过率 BD1 罪犯转移 动态规划 较难 15.94% BD2 裁减网格纸 贪心 中等 25.14% BD3 钓鱼比赛 数学 困难 14.79% BD4 蘑菇阵 动态规划 较难 14.64% BD5 字符串匹配 字符串模拟穷举 中等 28.26% BD6 表格排序 排序模拟 中等 24.81% BD7 替换链接 字符串模拟 中等 3.09% BD8 完成括号匹配 字符串模拟栈 中等 34.55% BD9 倒计时 模拟 中等 12.35% BD10 字符覆盖原创 2021-04-20 23:52:17 · 682 阅读 · 0 评论 -
Java算法:牛客网小米笔试真题算法Java版1-40题
题号 题目 知识点 难度 通过率 XM1 小米Git 树 困难 10.22% XM2 懂二进制 中等 29.90% XM3 风口的猪-中国牛市 ...原创 2021-04-20 23:50:57 · 1825 阅读 · 1 评论 -
Java算法:牛客网网易笔试真题算法Java版1-81题
题号 题目 知识点 难度 通过率WY1 奖学金 动态规划模拟 较难 12.84%WY2 路灯 动态规划 较难 14.22%WY3 小易的升级之路 递归模拟 简单 20.03%WY4 炮台攻击 简单 18.14%WY5 扫描透镜 贪心模拟穷举 较难 15.89%WY6 合唱团 动态规划 较难 14.33%WY7 地牢逃脱 队列 简单 17.68%WY8 下厨房 字符串 入门 34.60%WY9 分田地 动态规划 中等 15.98%WY10 分苹果 贪心 入门 23.24%WY11 星际原创 2021-04-19 23:16:57 · 436 阅读 · 0 评论 -
Java算法:牛客网剑指offer算法Java版1-67题
题号 题目 知识点 难度 通过率 JZ1 二维数组中的查找 数组 中等 25.24% JZ2 替换空格 字符串 较难 48.32% JZ3 从尾到头打...原创 2021-04-18 23:55:03 · 2086 阅读 · 0 评论 -
Java算法:华为机试算法第二版(下),华为算法Java版
牛客网-华为机试练习题 73题目描述公元前五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?详细描述:接口说明原型:int GetResult(vector &list)输入参数: 无输出参数(指针指向的内存区域保证有效): list 鸡翁、鸡母、鸡雏组合的列表返回值: -1 失败 0 成功输入描述:输入任何一个整数,即可运行程序。输出描述:示例1 输入原创 2021-04-17 00:13:23 · 683 阅读 · 0 评论 -
Java算法:华为机试算法第二版(中),华为算法Java版
牛客网-华为机试练习题 34题目描述:图片整理Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。输入描述:Lily使用的图片包括"A"到"Z"、"a"到"z"、"0"到"9"。输入字母或数字个数不超过1024。输出描述:Lily的所有图片按照从小到大的顺序输出示例1输入Ihave1nose2hands10fingers输出0112Iaadeeefghhinnnorsss原创 2021-04-17 00:12:05 · 589 阅读 · 0 评论 -
Java算法:华为机试算法第二版(上),华为算法Java版
牛客网华为机试练习题文章目录牛客网华为机试练习题动态规划问题详解前言生活中的动态规划2. 几个简单的概念3. DP的典型应用:DAG最短路4. 对DP原理的一点讨论5. 例题:最长上升子序列牛客网-华为机试练习题 01题目描述输入描述:输出描述:解决代码总结牛客网-华为机试练习题 02题目描述输入描述:输出描述:解决代码总结:牛客网-华为机试练习题 03题目描述输入描述:输出描述:解决代码:总结:牛客网-华为机试练习题 04题目描述输入描述:输出描述:解决代码总结:牛客网-华为机试练习题 05题目描述输入原创 2021-04-17 00:10:47 · 1451 阅读 · 0 评论 -
Java算法:华为机试算法(下),华为算法Java版,牛客网华为算法73~108题
接上篇:Java算法:华为机试算法(上),华为算法Java版,牛客网华为算法1~54题HJ73 计算日期到天数转换计算日期到天数转换题目描述根据输入的日期,计算是这一年的第几天。。测试用例有多组,注意循环输入输入描述:输入多行,每行空格分割,分别是年,月,日输出描述:成功:返回outDay输出计算后的第几天;失败:返回-1示例1输入2012 12 31输出366import java.io.BufferedReader;import .原创 2021-03-30 10:52:41 · 1216 阅读 · 0 评论 -
Java算法:华为机试算法(中),华为算法Java版,牛客网华为算法55~72题
接上篇:Java算法:华为机试算法(上),华为算法Java版,牛客网华为算法1~54题HJ55 (练习用)挑7挑7题目描述输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的个数(一组测试用例里可能有多组数据,请注意处理)输入描述:一个正整数N。(N不大于30000)输出描述:不大于N的与7有关的数字个数,例如输入20,与7有关的数字包括7,14,17.示例1输入2010输出31impo原创 2021-03-30 10:50:52 · 1191 阅读 · 0 评论 -
Java解析SQL中的表名:使用Druid解析SQL中的表名,使用Alibaba Druid解析SQL中的数据库类型、字段、表名、条件、聚合类型、排序类型。
在工作中,我们有时候需要根据前端传来的SQL解析出SQL中的表名,使用网上各种通过正则表达式解析SQL的代码不仅麻烦,其中或多或少都会有各种Bug,现在使用Druid解析SQL,能快速解决问题。步骤如下:第一步、pom文件中添加druid依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId>dru原创 2020-12-09 11:16:20 · 10353 阅读 · 3 评论 -
Redis:基于Redis的秒杀方案,缓存秒杀模型,先到先得、随机拼运气式秒杀算法Java实现,秒杀限流算法,漏桶算法、令牌桶算法伪代码
基于redis的秒杀方案1 缓存秒杀模型 redis是单线程的,所以在redis中所有命令都是原子操作。而当要多条redis命令同时执行而不被打断时,则需要使用redis的事务了。 - MULTI - EXEC - DISCARD - WATCH MULTI命令 用于开启一个事务,它总是返回OK。MULTI执行之后,客户端可以继续向服务器发送任意多条命令, 这些命令不会立即被执行,而是被放到一个队列中,..原创 2020-05-13 23:01:43 · 1275 阅读 · 0 评论 -
Java多线程并发:Java8并发新特性、JDK1.8并发API、StampedLock、Java8第五种线程池newWorkStealingPool抢占式、ConcurrentHashMap新API
Java8并发新特性Java8新增的并发API主要如下,内容是翻译的JDK1.8的官方文档,欢迎转载,转载请注明出处。ForkJoinPool.commonPool() ConcurrentHashMap(v8) ConcurrentHashMap.newKeySet() ConcurrentHashMap.newKeySet(int) CompletableFuture StampedLock LongAdder LongAccumulator DoubleAdder Doubl原创 2020-05-09 18:54:37 · 1394 阅读 · 0 评论 -
java算法:排序算法基础,二分查找,冒泡排序,插入排序,快速排序及优化,希尔排序,归并排序,堆排序,桶排序,基数排序,二叉树算法,手写红黑树算法
一贴看完java常用的查找、排序算法,后续将更新二叉树算法、递归、谈心、回溯等算法。今天被面试官刁难了一番(问的不是排序查找),想借此复习一下算法基础。主要内容:二分查找冒泡排序算法插入排序算法快速排序(含优化)算法希尔排序算法归并排序算法堆排序算法桶排序算法基数排序算法import java.util.*;/** * 二分查找 * 冒泡排序算法 ...原创 2020-04-23 20:09:19 · 379 阅读 · 0 评论 -
Java算法:牛客网Java版剑指Offer全套算法面试题目整理及电子档,Java算法与数据结构面试题,面试刷题、背题必备!牛客网剑指offer
剑指offer(java版)牛客网Java版剑指Offer全套题目67道资源来源于网络下载地址:牛客网Java版剑指Offer全套算法面试题目整理牛客网Java版剑指Offer全套算法面试题目电子档,面试刷题、背题必备!需要参加面试的人赶紧下载!如果不想花费积分请与我私信,也可以阅读这篇文章。第1题. 二维数组中的查找... 2第2题. 替换空格... ...原创 2020-03-25 13:57:52 · 866 阅读 · 0 评论 -
JavaSE基础:Java语言概述
JavaSE基础:Java语言概述感谢尚硅谷免费的视频简单地对Java基础知识进行图解第一代语言-打孔机——纯机器语言第二代语言-汇编第三代语言-C、Pascal、Fortran面向过程的语言-C++面向过程/面向对象-Java跨平台的纯面向对象的语言-.NET跨语言的平台Java发展史是SUN(Stanford University Network,斯坦福大学网...转载 2019-07-16 21:56:47 · 266 阅读 · 0 评论 -
JavaSE基础:java中的数据类型
标题java中的数据类型感谢尚硅谷免费的视频分类基本数据类型 整型:byte、short、int、long 浮点型:float、double 字符型:char 布尔型:boolean引用数据类型 使用class定义:比如String 使用interface定义:比如List 数组类型整型补充:计算机只识别二进制,也就是需要将整型数值转换成二进制进行存储010...转载 2019-07-17 10:20:24 · 147 阅读 · 0 评论 -
JavaSE基础:流程控制结构
感谢尚硅谷免费的视频流程控制结构概述顺序结构程序从上往下依次执行,遵循前向引用的特点分支结构程序从两条或多条路径中选择一条执行一、if结构特点:①条件的结果肯定是boolean类型,表示形式:关系表达式或逻辑表达式或boolean的变量或常量或boolean变量的赋值语句②大括号如果省略,默认执行第一条语句1、单分支语法:if(条件){ 要执行的语句;}2、双...转载 2019-07-17 13:05:01 · 197 阅读 · 0 评论 -
JavaSE基础:数组和排序算法
1、数组是多个相同类型数据的组合,实现对这些数据的统一管理2、数组中的元素可以是任何数据类型,包括基本类型和引用类型3、数组属引用类型,数组型数据是对象(object),数组中的每个元素相当于该对象的成员变量转载 2019-07-18 16:50:04 · 548 阅读 · 0 评论