自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(928)
  • 资源 (12)
  • 问答 (12)
  • 收藏
  • 关注

原创 【解题报告】Leecode 423. 从英文中重建数字——Leecode每日一题系列

今天是坚持每日一题打卡的第二十五天题目链接:https://leetcode-cn.com/problems/reconstruct-original-digits-from-english/题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779题目描述给你一个字符串 s ,其中包含字母顺序打乱的用英文单词表示的若干数字(0-9)。按 升序 返回原始的数字。示例 1:输入:s = “owoztneoer”输出:“

2021-11-24 22:45:00 861

原创 BeanUtils.copyProperties()使用详解+在不同包的区别

一. 两个包下的BeanUtils.copyProperties对比BeanUtils是开发中常用到的工具类。而获取这一工具类常用的方法有两种org.springframework.beans.BeanUtilsorg.apache.commons.beanutils.BeanUtils以上两个包皆可获取不同的包中BeanUtils的方法使用是不一样的,接下来就对这两个包中的copyProperties方法进行对比。先来看一下这两个包中的,通过copyProperties方法的定义:/

2021-11-24 17:36:56 1531

翻译 这或许是讲解Knuth(Shuffle)洗牌算法最好的文章

1. 前言看问题,洗牌,显然是一个随机算法了。随机算法还不简单?随机呗。把所有牌放到一个数组中,每次取两张牌交换位置,随机 k 次即可。如果你的答案是这样,通常面试官会进一步问一下,k 应该取多少?100?1000?10000?很显然,取一个固定的值不合理。如果数组中有 1000000 个元素,随机 100 次太少;如果数组中只有 10 个元素,随机 10000 次又太多。一个合理的选择是,随机次数和数组中元素大小相关。比如数组有多少个元素,我们就随机多少次。这个答案已经好很多了。但其实,连这个问.

2021-11-22 21:30:00 752

原创 MySQL分区表概念以及优缺点

1. 表空间及分区表的概念1.1 表空间是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间。1.2 分区表当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。2. 表分区的具体作用2.1 作用Oracle的表分区功能通过改善可管理性、性能和可用性,从而为各式应用

2021-11-22 20:16:53 2782

原创 对于半结构化数据的讲解,这可能是最通俗易懂的一篇文章了

一. 概述相对于结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。非结构化数据库是指其字段长度可变,并且每个字段的记录又可以由可重复或不可重复的子字段构成的数据库,用它不仅可以处理结构化数据(如数字、符号等信息)而且更适合处理非结构化数据(全文文本、图象、声音、影视、超媒体等信息)。非结构化WEB数据库主要是针对非结构化数据而

2021-11-22 15:50:05 3516

原创 【解题报告】Leecode 384. 打乱数组——Leecode每日一题系列

今天是坚持每日一题打卡的第二十二天题目链接:https://leetcode-cn.com/problems/maximum-depth-of-n-ary-tree/submissions/题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779题目描述给你一个整数数组 nums ,设计算法来打乱一个没有重复元素的数组。实现 Solution class:Solution(int[] nums) 使用整数数组 num

2021-11-22 14:29:33 214

原创 【解题报告】Leecode 559. N 叉树的最大深度——Leecode每日一题

今天是坚持每日一题打卡的第二十二天题目链接:https://leetcode-cn.com/problems/maximum-depth-of-n-ary-tree/submissions/题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779题目描述给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。

2021-11-21 20:53:08 170

原创 【最优解】Leecode 594. 最长和谐子序列——Leecode每日一题系列

今天是坚持每日一题打卡的第二十二天题目链接:https://leetcode-cn.com/problems/longest-harmonious-subsequence/题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779题目描述和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。现在,给你一个整数数组 nums ,请你在所有可能的子序列中找到最长的和谐子序列的长度。数组的子序列是一个由数组派生

2021-11-20 12:30:25 204

原创 解题报告-Leecode 563. 二叉树的坡度——Leecode每日一题系列

今天是坚持每日一题打卡的第二十二天题目链接:https://leetcode-cn.com/problems/binary-tree-tilt/题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779题目描述给定一个二叉树,计算 整个树 的坡度 。一个树的 节点的坡度 定义即为,该节点左子树的节点之和和右子树节点之和的 差的绝对值 。如果没有左子树的话,左子树的节点之和为 0 ;没有右子树的话也是一样。空结点的坡度是 0

2021-11-18 20:48:05 194

原创 C++题解-Leecode 318. 最大单词长度乘积——Leecode每日一题系列

今天是坚持每日一题打卡的第二十二天题目链接:https://leetcode-cn.com/problems/maximum-product-of-word-lengths/题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779题目描述给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母。你可以认为每个单词只包含小写字母。如果不存在

2021-11-17 21:18:09 223

原创 深入浅出,对于代理模式的理解(代理模式与外观模式的区别)

从名字入手, 理解为我们生活中的代理商角色即可。场景一:我饿了,去饭店点菜, 我不需要关心菜是怎么做出来的, 只要最后能吃到就好(外观模式)场景二:我是个外地人, 连饭店都不知道在哪,于是找了个当地的代理,叫他帮我去点菜,我无需关心代理是怎么找到饭店,以及怎么点菜的,我只要结果(代理模式)综上, 代理模式相当于更包装化的外观模式, 代理可以调用外观。...

2021-11-16 11:50:54 548 2

原创 享元模式在JDK源码中的应用——Java设计模式系列学习笔记

1. String中的享元模式Java中将String类定义为final(不可改变的),JVM中字符串一般保存在字符串常量池中,java会确保一个字符串在常量池中只有一个拷贝,这个字符串常量池在JDK6.0以前是位于常量池中,位于永久代,而在JDK7.0中,JVM将其从永久代拿出来放置于堆中。我们做一个测试:public class Main { public static void main(String[] args) { String s1 = "hello";

2021-11-16 11:23:50 693

原创 题意解读+详细题解-Leecode 319. 灯泡开关——Leecode每日一题系列

今天是坚持每日一题打卡的第二十天题目链接:https://leetcode-cn.com/problems/bulb-switcher/题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779题目描述初始时有 n 个灯泡处于关闭状态。第一轮,你将会打开所有灯泡。接下来的第二轮,你将会每两个灯泡关闭一个。第三轮,你每三个灯泡就切换一个灯泡的开关(即,打开变关闭,关闭变打开)。第 i 轮,你每 i 个灯泡就切换一个灯泡的开关

2021-11-15 23:15:00 373

原创 深入浅出解释深拷贝、浅拷贝、对象拷贝、引用拷贝原理和应用

一、拷贝的引入1. 引用拷贝创建一个指向对象的引用变量的拷贝。public class QuoteCopy { public static void main(String[] args) { Teacher teacher = new Teacher(); Teacher otherTeacher = teacher; }}class Teacher { private String name; private int age;

2021-11-15 17:06:46 285

原创 单例设计模式详解+源代码+JDK源码应用——Java设计模式系列学习笔记

@toc一. 基本介绍采取一定的方法保证在整个的软件系统中,对某个类智能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如Hibernate的SessionFactor,他充当数据存储源的代理,并负责创建Session对象。SessionFactor并不是轻量级的,一般情况下,一个项目通常只需要一个SessionFactor就够,这时就会使用到单例模式。二. 单例模式的八种方式饿汉式(静态常量)饿汉式(静态代码块)懒汉式(线程不安全)懒汉式(线程安全,同步方法)懒

2021-11-15 15:34:21 305 1

原创 final、static、单例模式与线程安全之间的关系(附单例模式的三种线程安全方式的实现)

final意思是,这个对象的值(基本类型就是值,引用类型是引用地址),不会再被改变与线程安全的关系:final在一定程度上能使某些变量强制变得线程安全static意思是,这个对象是一个全局变量了,你可以在多个地方,多个线程中调用到它,而且调用的是同一个它与线程安全的关系:一般这种的变量很容易造成线程不安全的情况单例模式这首先是一种特殊的需求,就是某个类的实例在JVM中只能存在一个,跟前面的static,线程安全都不一样与线程安全的关系:实现单例需要考虑复杂的多线程的情况,这个东西需要线程安全

2021-11-15 15:15:03 3330

原创 什么是51%算力攻击?——区块链系列学习笔记

关注比特币的朋友,想必听过51%算力攻击这个词,它到底是什么意思呢,发起这种攻击之后能做哪些“坏事”呢? 今天就来简单介绍一下51%算力攻击相关的事情。 01 什么是51%算力攻击 比特币白皮书中,有过这样的表述:诚实节点控制算力的总和,大于有合作关系的攻击者算力的总和,该系统就是安全的。 换句说,当系统中有合作关系的恶意节点所控制的算力,超过诚实节点所控制的算力,系统就是有被攻击的风险。 这种由恶意节点控制超过50%算力所发起的攻击,称为51%算力攻击。 那是不是所有的加密货币系统都有可能遭

2021-11-13 22:05:17 480

翻译 分布式CAP理论:为什么CAP理论中的三个指标不能同时满足呢?

文章目录 前言 分布式系统的特点分布式系统技术是用来解决什么问题的呢? CAP代表什么含义一致性(Consistency)可用性(Availability)分区容错性(Partition Tolerance) CAP理论的证明CAP理论的应用CP和AP架构的取舍CP架构:放弃可用性,追求一致性和分区容错性AP架构:放弃强一致性,追求分区容错性和可用性 结语 前言 为什么CAP理论中的三个指标不能同时满足呢?春暖花开、鸟语花香,莫要虚度这明媚的春天,一..

2021-11-13 21:42:47 1082 1

原创 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)——Web网络系列学习笔记

数字签名是什么? 1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥。 2. 鲍勃把公钥送给他的朋友们—-帕蒂、道格、苏珊—-每人一把。 3. 苏珊给鲍勃写信,写完后用鲍勃的公钥加密,达到保密的效果。 4. 鲍勃收信后,用私钥解密,看到信件内容。 5. 鲍勃给苏珊回信,写完后用Hash函数,生成信件的摘要(digest)。 6.

2021-11-13 20:35:41 417

原创 哈希碰撞——密码哈希函数

解释如果两个输入串的hash函数的值一样,则称这两个串是一个碰撞(Collision)。既然是把任意长度的字符串变成固定长度的字符串,所以必有一个输出串对应无穷多个输入串,碰撞是必然存在的。一个优良的hash函数 f 应当满足以下三个条件:(1)对于任意y,寻找x,使得f(x)=y,在计算上是不可行的。(2)给定x1∈A,找x2∈B,,使得f(x1)=f(x2),在计算上是不可能的,这也就是弱无碰撞性。(3)寻找x1,x2,使得f(x1)=f(x2),在计算上也是不可行的,这也就是强无碰撞性。这

2021-11-13 11:00:57 1040

原创 C++题解-Leecode 520. 检测大写字母——Leecode每日一题系列

今天是坚持每日一题打卡的第十八天题目链接:https://leetcode-cn.com/problems/detect-capital/题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779题目描述我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如 “USA” 。单词中所有字母都不是大写,比如 “leetcode” 。如果单词不只含有一个字母,只有首字母大写, 比如 “Google” 。给你

2021-11-13 10:10:38 694

原创 C++题解-Leecode 375. 猜数字大小 II——Leecode每日一题系列

今天是坚持每日一题打卡的第十七天题目链接:https://leetcode-cn.com/problems/guess-number-higher-or-lower-ii/submissions/题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779题目描述我们正在玩一个猜数游戏,游戏规则如下:我从 1 到 n 之间选择一个数字。你来猜我选了哪个数字。如果你猜到正确的数字,就会 赢得游戏 。如果你猜错了,那么我会告诉

2021-11-13 09:54:59 272

原创 组合和聚合的区别,通俗易懂。

聚合与组合都是表示整体和个体的关联关系,他们之间最大的区别在于子类被父类控制的程度。组合的父子类关系比聚合要强。组合:part-of关系,父类拥有子类,子类不能独立于父类存在。这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。下面代码的A类、B类之间的关系是组合关系public class A { void funcA() { // ... }}public class B { A a; a.

2021-11-11 11:58:16 3003

原创 12行代码AC_Leecode 495. 提莫攻击——Leecode每日一题系列

今天是坚持每日一题打卡的第十五天题目链接:https://leetcode-cn.com/problems/teemo-attacking/题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779题目描述在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。正式地讲,提莫在 t 发起发起攻击意味着艾

2021-11-10 22:30:00 211

原创 泛型的作用是什么?——Java系列学习笔记

Java 语言中,引入泛型实乃为一个较大的功能增强。不仅语言、类型系统和编译器有了较大的变化,以支持泛型,而且类库也进行了大翻修,所以许多重要的类,比如集合框架,都已经成为泛型化的了。作用如下:1. 类型安全。泛型的主要目标是提高 Java 程序的类型安全。编译时的强类型检查;通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存在于代码注释中)。2. 消除强制类型转换。泛型的一个附带好处是,消除源代码中的

2021-11-10 14:46:03 1455

转载 Java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一

对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。本文参考java 泛型详解、Java中的泛型方法、java泛型详解1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定.

2021-11-10 14:42:44 193

翻译 阿里飞天云平台架构简介

一. 简介飞天是由阿里云开发的一个大规模分布式计算系统,其中包括飞天内核和飞天开放服务。飞天内核负责管理数据中心Linux集群的物理资源,控制分布式程序运行, 隐藏下层故障恢复和数据冗余等细节,有效提供弹性计算和负载均衡。如图所示,飞天体系架构主要包含四大块:1、资源管理、安全、远程过程调用等构建分布式系统常用的底层服务;2、分布式文件系统;3、任务调度;4、集群部署和监控。飞天开放服务为用户应用程序提供了计算和存储两方面的接口和服务,包括弹性计算服务(Elastic ComputeService,.

2021-11-09 20:37:54 2013

原创 数据源是什么?

数据源,简单理解为数据源头,提供了应用程序所需要数据的位置。数据源保证了应用程序与目标数据之间交互的规范和协议,它可以是数据库,文件系统等等。数据源定义了位置信息,用户验证信息和交互时所需的一些特性的配置,同时它封装了如何建立与数据源的连接,向外暴露获取连接的接口。应用程序连接数据库无需关注其底层是如何如何建立的,也就是说应用业务逻辑与连接数据库操作是松耦合的。...

2021-11-09 20:16:35 4256

翻译 怎么理解 IaaS、SaaS 和 PaaS 的区别?

我们从SaaS、PaaS、IaaS的定义、工业应用以及具体案例几方面来介绍他们之间的区别 一、定义层面的区别SaaS、PaaS、IaaS简单的说都属于云计算服务,也就是云计算+服务。我们对于云计算的概念,维基百科有以下定义:Cloud computing is a new form of Internet-based computing that provides shared computer processing resources and data to computers and othe

2021-11-09 15:07:08 672

原创 24行代码-Leecode 2063. 所有子字符串中的元音——Leecode周赛系列

今天是坚持每日一题打卡的第十一天题目链接:https://leetcode-cn.com/problems/missing-number//题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779题目描述给你一个字符串 word ,返回 word 的所有子字符串中 元音的总数 ,元音是指 ‘a’、‘e’、‘i’、‘o’ 和 ‘u’ 。子字符串 是字符串中一个连续(非空)的字符序列。注意:由于对 word 长度的限制比

2021-11-08 23:15:00 4040

原创 18行代码AC-Leecode 299. 猜数字游戏——Leecode每日一题系列

今天是坚持每日一题打卡的第十三天题目链接:https://leetcode-cn.com/problems/bulls-and-cows/题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779题目描述你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下:写出一个秘密数字,并请朋友猜这个数字是多少。朋友每猜测一次,你就会给他一个包含下述信息的提示:猜测数字中有多少位属于数字和确切位置都猜对了(

2021-11-08 20:15:00 230

原创 12行代码AC-Leecode 598. 范围求和 II——Leecode每日一题系列

今天是坚持每日一题打卡的第十二天题目链接:https://leetcode-cn.com/problems/range-addition-ii/题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779题目描述给定一个初始元素全部为 0,大小为 m*n 的矩阵 M 以及在 M 上的一系列更新操作。操作用二维数组表示,其中的每个操作用一个含有两个正整数 a 和 b 的数组表示,含义是将所有符合 0 <= i <

2021-11-07 11:43:52 3032

原创 Leecode 268. 丢失的数字——Leecode每日一题系列

今天是坚持每日一题打卡的第十一天题目链接:https://leetcode-cn.com/problems/missing-number//题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779题目描述给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。示例 1:输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所

2021-11-06 11:20:38 172

原创 Leecode 1218. 最长定差子序列——Leecode每日一题系列

今天是坚持每日一题打卡的第十天题目链接:https://leetcode-cn.com/problems/longest-arithmetic-subsequence-of-given-difference/题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779题目描述给你一个整数数组 arr 和一个整数 difference,请你找出并返回 arr 中最长等差子序列的长度,该子序列中相邻元素之间的差等于 differen

2021-11-05 23:34:43 178

原创 【最常用】两种java中的占位符的使用

第一种:使用%s占位,使用String.format转换public class Test { public static void main(String[] args) { String url = "我叫%s,今年%s岁。"; String name = "小明"; String age = "28"; url = String.format(url,name,age); System.out.println(

2021-11-05 15:33:05 5807

原创 详解JSONObject.parseObject和JSONObject.fromObject——Web网络系列学习笔记

一. 说明com.alibaba.fastjson.JSONObject是经常会用到的JSON工具包,同样它的转换方法也会经常被我们使用,包括对象转成JSON串,JSON串转成java对象等,如果过一段时间不用的话很容易就会忘记,所以将使用方法总结如下,以便以后忘记了方便查询//Java对象转换成String类型的JSON字符串JSONObject.toJSONString(Java对象) //String类型的JSON字符串转换成Java对象JSONObject.toJavaObject(JS

2021-11-05 14:43:07 8214

原创 JSONObjec的作用详解——Web网络系列学习笔记

JSONObject只是一种数据结构,可以理解为JSON格式的数据结构(key-value 结构),可以使用put方法给json对象添加元素。JSONObject可以很方便的转换成字符串,也可以很方便的把其他对象转换成JSONObject对象。总而言之,JSONObject是一种中间结构,并且在网络中有很快的传输速度。1. 依赖包:fastjson <dependency> <groupId>com.alibaba</groupId> <

2021-11-05 11:24:17 519

原创 postman根据请求内容生成对应的代码(Java、Go、C语言等)

2021-11-04 15:29:07 605

原创 通俗易懂。HTTP请求行、请求头、请求体、响应行、响应头、响应体详解

一. HTTP请求报文解剖HTTP Request :HTTP请求Request Line:请求行Header:请求头Request Body:请求体HTTP请求报文由3部分组成(请求行+请求头+请求体):下面是一个实际的请求报文:其中,①,②和③属于请求行;④属于请求头;⑤属于报文体① 是请求方法,HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE,最常的两种GET和POST,如果是RESTful接口的话一

2021-11-04 14:13:12 34632

原创 【题解报告】Leecode367. 有效的完全平方数——Leecode每日一题系列

今天是坚持每日一题打卡的第九天题目链接:https://leetcode-cn.com/problems/valid-perfect-square/题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779题目描述给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。示例 1:输入:num = 16

2021-11-04 13:22:11 182

【最新2021版】阿里巴巴Java开发手册

《阿里巴巴 Java 开发手册》始于阿里内部规约,在全球Java开发者共同努力下,已成为业界普遍遵循的开发规范,涉及到如变量的命名、类和方法的使用、不同结构的定义方法等,让初学者在刚刚接触开发时就以最正确的姿态来学习,达到事半功倍的效果。 毫不夸张的说,每一位编程者都需要这样一本开发手册。

2021-06-03

紫书第三章习题源码.zip

紫书第三章习题源码,里面有我对例题的一些心得、总结和感悟。 所选代码都是可以找到的最优解。

2020-05-15

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除