自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

寒泉

一只野生程序猿

  • 博客(952)
  • 资源 (1)
  • 论坛 (1)
  • 收藏
  • 关注

原创 集群搭建:CentOS 7 模板机封装、配置静态 IP、简单优化

最小化安装关闭内核转储安装常用工具yum install -y wget vim net-tools lrzsz配置静态ipcd /etc/sysconfig/network-scriptsvim ifcfg-ens33将 ifcfg-ens33 文件配置如下TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_A

2020-07-06 20:21:34 7651 1

原创 没有 root 权限如何使用 pip?How to install python modules without root access?

How to install python modules without root access?参考:https://stackoverflow.com/questions/7465445/how-to-install-python-modules-without-root-accessI’m taking some university classes and have been given an ‘instructional account’, which is a school account

2021-03-24 23:41:41 43

原创 SQLAlchemy 报错 NotSupportedError: Authentication plugin ‘caching_sha2_password’ is not supported 解决方法

报错内容NotSupportedError: Authentication plugin ‘caching_sha2_password’ is not supported原因使用 mysql8.0 版本,登录失败,提示 Authentication plugin ‘caching_sha2_password’ is not supported。原因是在 MySQL 8.0 以后,默认的密码加密方式是 caching_sha2_password 而不是mysql_native_password。

2021-03-09 16:28:36 79

原创 git pull 卡在 Unpacking objects 解决方法

git pull 卡在 Unpacking objects 解决方法在拉取大型二进制对象(如Adobe Illustrator文件等)时,可能会使整个拉取/推送/克隆过程陷入困境。如果你仓库没有过大的单个文件,但遇到了类似问题,可以尝试将协议说明符从 https 更改为git(或反过来将 git 改为 http),拉完之后再改回来。亲测有效。例如:...

2021-03-06 19:24:32 2541 1

原创 Java判断字符串是否为数字

经过测试,以下方法的效率高于"直接使用 try parseInt(String s) 并catch 异常"。If you are not concerned with potential overflow problems this function will perform about 20-30 times faster than using Integer.parseInt().public static boolean isNumber(String str) { if (str ==

2021-02-21 18:40:39 2467

原创 Git代码同时push到GitHub和Gitee(码云)

Git代码同时push到GitHub和Gitee(码云)1. 在Gitee和GitHub上分别创建一个项目(同名项目)2. 克隆项目到本地//从gitee 获取$ git clone https://gitee.com/admin/demo.git//从github获取$ git clone https://github.com/admin/demo.git3. 自定义关联远程库vim {$项目路径}/.git/config配置示例:[core] repository

2021-02-17 13:24:15 2492

原创 GDB入门:A GDB Tutorial with Examples

GDB安装yum install gdb使用查看 gdb 命令使用方法man gdbA GDB Tutorial with ExamplesBy Manasij MukherjeeA good debugger is one of the most important tools in a programmer’s toolkit. On a UNIX or Linux system, GDB (the GNU debugger) is a powerful and popular d

2021-02-15 21:39:50 2443

原创 Flink 实时计算 - 维表 Join 解读

Flink 实时计算 - 维表 Join 解读前言Flink 1.9 版本可以说是一个具有里程碑意义的版本,其内部合入了很多 Blink Table/SQL 方面的功能,同时也开始增强 Flink 在批处理方面的能力,真的是向批流统一的终极方向开始前进。Flink 1.9 版本在 8.22 号也终于发布了。本文主要介绍学习 Flink SQL 维表 Join,维表 Join 对于SQL 任务来说,一般是一个很正常的功能,本文给出代码层面的实现,和大家分享用户如何自定义 Flink 维表。1. 什么是维

2021-02-12 19:03:27 2464

转载 SQL 中 left join、right join、inner join 的区别

SQL 三个 join 的含义left join(左联接):返回左表中的所有记录以及和右表中的联接字段相等的记录。right join(右联接):返回右表中的所有记录以及和左表中的联接字段相等的记录。inner join(等值联接):只返回两个表中联接字段相等的记录。下面将以atable、btable为例进行讲解。atablebtable1、使用 left joinselect * from atable as aleft join btable as bon a.name =

2021-02-12 18:54:30 2437 1

原创 Linux环境搭建:设置主机名颜色、设置vim颜色

设置主机名颜色hostname颜色,指的是下图绿色的部分,敏感信息已打码配置hostname颜色的时候遇到一个问题:在开发机A(图左)上有颜色,但是开发机B(图右)上没有颜色。对比一下两者的 ~/.bashrc,发现其中有一行配置不相同,对比左侧正确配置,改成相同的就好了。配置完成后,别忘了 source .bashrc 使其生效设置vim颜色vim .vimrc在里面配上 syntax on ,保存就可以了,不需要 source .vimrc 就能生效...

2021-02-12 17:24:12 2545 1

原创 Kafka offset 最大值是多少,offset 会溢出吗?Kafka consumer offset max value?

QuestionI was googling and reading Kafka documentation but I couldn’t find out the max value of a consumer offset and whether there is offset wraparound after max value. I understand offset is an Int64 value so max value is 0xFFFFFFFFFFFFFFFF. If there is

2021-02-10 17:41:57 3969

原创 MYSQL: JOIN (SELECT … ) ue ON 1=1 的含义

QuestionI am reading an SQL query in Redshift and can’t understand the last part:...LEFT JOIN (SELECT MIN(modified) AS first_modified FROM user) ueON 1=1What does ON 1=1 mean here?It just ensures the join will return a match – 1=1 is the same as tr

2021-02-09 13:18:02 3949

转载 Java系统变量之System.getenv()和System.getProperty()

简述Java提供了System类的静态方法getenv()和getProperty()用于返回系统相关的变量与属性,getenv方法返回的变量大多于系统相关,getProperty方法返回的变量大多与java程序有关。System.getenv()获取指定的环境变量的值。System.getenv(String str)接收参数为任意字符串,当存在指定环境变量时即返回环境变量的值,否则返回null。System.getProperty()获取系统的相关属性,包括文件编码、操作系统名称、区域、用

2021-02-09 13:12:16 3870

原创 Linux export 命令用法

Linux export 命令用法Linux export 命令用于设置或显示环境变量。在 shell 中执行程序时,shell 会提供一组环境变量。export 可新增,修改或删除环境变量,供后续执行的程序使用。export 的效力仅限于该次登陆操作。export [-fnp][变量名称]=[变量设置值]参数说明:-f  代表[变量名称]中为函数名称。-n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。-p  列出所有的shell赋予程序的环境变量。示例

2021-02-06 10:07:47 3973

原创 IDEA如何设置鼠标滚轮调整字体大小

IDEA如何设置鼠标滚轮调整字体大小之前介绍过IDEA的字体设置IDEA字体调整,但这样修改起来太麻烦,IDEA可以支持快捷键快速修改字体的大小(神器吧~),我们来看一下如何配置:打开Setting页签(快捷键Ctrl+Alt+S),选择Keymap,输入框搜索“Font Size”Decrease Font Size:缩小字体Increase Font Size:放大字体选中右键可设置快捷键,我设置的是Ctrl+滚轮进行放大缩小字体。直接操作你想要的快捷键,即可被记录下来,例:按住Ctr

2021-02-01 20:39:35 4475 1

原创 `>>`(有符号右移) 和 `>>>`(无符号右移)的区别

JavaScript >>(有符号右移) 和 >>>(无符号右移)的区别之所以以 JS 为例,是因为Java中不支持无符号操作直接看MDN英文吧:>> (有符号右移)sign-propagating(符号位-传播)右移 我们知道,计算机中以二进制存储数字,二进制中最左边的第一位,叫符号位,所以这就很明显了,右移2位后,最左边缺少2位数字,那就应该填充数字,那填充什么呢?符号位是什么,我就填什么,所以 -9 >> 2 中最左边2位和符号位一样,都

2021-01-31 19:41:40 4631

原创 Java位操作:如何将long类型的指定位设置为0或1?How to set/unset a bit at specific position of a long?

Java位操作:如何将long类型的指定位设置为0或1?How to set/unset a bit at specific position of a long?To set a bit, use:x |= 0b1; // set LSB bitx |= 0b10; // set 2nd bit from LSBto erase a bit use:x &= ~0b1; // unset LSB bit (if set)x &= ~0b10; // unset 2nd bi

2021-01-31 12:59:13 4660

原创 面试必会系列 - 5.3 LVS负载均衡

目录LVS 负载均衡网络协议原理引入七层模型TCP / IP(详见5.2节)路由表下一跳机制路由器、交换机ARP 协议ARP 请求ARP 响应案例网络包传输的过程负载均衡 & LVS 的引入NAT 网路地址转换(1)S-NAT 模式:源地址替换协议(2)D-NAT 模式:目标地址转换协议(基于3层网络层)(3)DR 模型:直接路由模型(基于2层链路层)(4)隧道模式LVS隐藏的Virtual IP 配置原理负载均衡调度方法LVS在Linux中自带的ipvs内核模

2021-01-23 22:16:35 4631

原创 面试必会系列 - 11.1 一文读懂Maven:Maven工程类型、项目结构、工程关系、常见命令等

Maven详解什么是MavenMaven的下载目录结构、IDEA整合Maven【1】IDEA默认整合了Maven:【2】下载地址:【3】目录结构:【4】如果没有.m2目录 ,自己手动执行mvn命令:Maven仓库远程仓库本地仓库仓库配置在settings.xml文件中配置本地仓库在settings.xml文件中配置镜像仓库仓库优先级问题JDK的配置总结:Maven工程类型【1】POM工程【2】JAR工程【3】WAR工程在IDEA中创建Maven工程【1】过程:Ma

2021-01-16 23:17:42 5494 2

原创 面试必会系列 - 5.2 详解OSI模型与七层协议,网络TCP/IP基础,三次握手、四次挥手等

网络IOOSI 与 TCP/IP 各层的结构与功能,都有哪些协议?七层体系结构图1、应用层2、传输层3、网络层4、数据链路层5、物理层数据经过网卡,传输到 CPU 的过程TCP 协议TCP 的状态变迁图TCP 协议如何保证可靠传输?TCP协议IP 协议UDP 协议三次握手四次分手为什么握手需要三次,分手需要四次?为什么四次分手之后,还会等两个传输时间,才会释放资源?socketIP 地址HTTP 长连接、短连接

2021-01-16 18:31:27 5494

转载 mac安装brew失败怎么办?

试了好多种办法都不行,这个可以:运行下面自动脚本(已经全部替换为国内地址):/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"原地址:https://www.zhihu.com/question/35928898...

2021-01-09 18:44:30 5491

原创 从单机到多机:多机一定比单机快吗?秒杀系统到底有没有必要用分布式锁?

从单机到多机:多机一定比单机快吗?秒杀到底有没有必要用分布式锁?一、单机场景单机能承受的 TPStomcat 500~1000mysql 200~800在单机状态下,tomcat 能接受的请求肯定比 mysql 更多,此时数据库成为系统瓶颈。为了解决这个问题,可以将自增的累加器(例如请求次数、商品剩余等等)等“公共值”缓存起来,放在 JVM 里面,仅让有效请求到达数据库,让 DB 的 TPS 有最大利用价值。Tomcat 是多线程的,会产生并发问题。我们考虑不同商品数量的情况:最小,只有

2021-01-02 23:14:38 7547 2

原创 leetcode 371. 两整数之和(不用算术运算符实现两个数的加法:按位异或原理)

题目https://leetcode-cn.com/problems/sum-of-two-integers/题解按位异或:相同为0,不同为1对于二进制的加法运算,若不考虑进位,则 1+1=0, 1+0=1, 0+1=1, 0+0=0,通过对比异或,不难发现,此方法与异或运算类似。因而排除进位的情况下,加法可用异或来实现。然后考虑进位,0+0 进位为 0,1+0 进位为 1,0+1 进位为0,1+1 进位为1,该操作与位运算的 & 操作相似。那么加法运算可以这样实现:先不考虑进位

2021-01-01 20:13:52 6413

原创 leetcode 简单题合集(Java版)

326. 3的幂https://leetcode-cn.com/problems/power-of-three/题解:class Solution { public boolean isPowerOfThree(int n) { if (n == 0) return false; while (n != 1) { if (n % 3 != 0) return false; else n /= 3;

2021-01-01 00:56:32 6526

原创 leetcode 303. 区域和检索 - 数组不可变(Java版)

题目303. 区域和检索 - 数组不可变题解经典的累加和问题。定义一个数组 sum,存放数组从 0 到 sum 的累加和。欲求某区间的累加和,只需将对应位置 sum 相减即可。时间复杂度O(n),空间复杂度O(n)代码class NumArray { public int[] sum; // 累加和数组 public NumArray(int[] nums) { sum = new int[nums.length + 1]; sum[0

2020-12-31 12:25:41 6415

原创 leetcode 292. Nim 游戏(Java版)

题目https://leetcode-cn.com/problems/nim-game/题解本题实际上是一个需要分析的数学题。如果第一时间没有发现规律的话,可以尝试先用递归法,暴力输出前几个,观察规律。// 用本函数跑 1~100,找规律public boolean canWin(int n) { if (n <= 3) return true; // canWinNim(n-1), canWinNim(n-2), canWinNim(n-3) 只要有一个为false本轮就

2020-12-31 08:33:57 6484

原创 左神算法:判断二叉树是否为平衡二叉树(树形dp套路,Java版)

本题来自左神《程序员代码面试指南》“判断二叉树是否为平衡二叉树”题目。题目平衡二叉树的性质为:要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过 1。给定一棵二叉树的头节点 head,判断这棵二叉树是否为平衡二叉树。要求:如果二叉树的节点数为 N,则要求时间复杂度为 O(N)。题解平衡二叉树的标准是:对任何子树来说,左子树和右子树的高度差都不超过1。本题解法的整体过程为 树形 dp 套路,请读者先阅读 “找到二叉树中的最大搜索二叉子树” 问题了解这个套路,本题是这个套路的再次展.

2020-12-30 23:53:26 6519

原创 leetcode 290. 单词规律(Java版)

题目https://leetcode-cn.com/problems/word-pattern/题解题目要求 pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着 双向连接 的对应规律,因此,建立两个 hashmap,分别验证正向、反向是否对应即可。class Solution { public boolean wordPattern(String pattern, String s) { HashMap<Character, String>

2020-12-30 19:49:54 6405

原创 leetcode 283. 移动零(Java版)

题目题解定义一个变量 count,用于记录累计非 0 个数,可以理解为指向第一个 0 位置的指针。对数组进行遍历,每当遇到非 0 元素时,将此元素复制到 count 指针所指向的位置。数组遍历结束后,将 count 及其后面的元素全部归零。时间复杂度O(n),空间复杂度O(1)class Solution { public void moveZeroes(int[] nums) { int count = 0;//count表示累计非0个数,可以理解为指向第一个0位

2020-12-30 09:29:51 6439 1

原创 leetcode 278. 第一个错误的版本(Java版)

题目https://leetcode-cn.com/problems/first-bad-version/题解二分查找即可,注意可能会溢出,过程要用 long 类型/* The isBadVersion API is defined in the parent class VersionControl. boolean isBadVersion(int version); */public class Solution extends VersionControl { publ

2020-12-29 19:31:55 6506

原创 本地 MarkDown 怎么部署到服务器上?教你使用 Docsify 搭建个人博客

使用Docsify搭建文档类型网站docsify 可以快速帮你生成文档网站。不同于 GitBook、Hexo 的地方是,它不会生成静态的 .html 文件,所有转换工作都是在运行时。如果你想要开始使用它,只需要创建一个 index.html 就可以开始编写文档并直接部署在 GitHub Pages。Docsify官方文档:https://docsify.js.org/#/zh-cn/安装 docsify-cli 工具推荐全局安装 docsify-cli 工具,可以方便地创建及在本地预览生成的文档。

2020-12-29 18:11:11 7220

原创 左神算法:判断 t1 树中是否有与 t2 树拓扑结构完全相同的子树(Java版)

本题来自左神《程序员代码面试指南》“判断 t1 树中是否有与 t2 树拓扑结构完全相同的子树”题目。题目给定彼此独立的两棵树头节点分别为 t1 和 t2,判断 t1 中是否有与 t2 树拓扑结构完全相同的子树。例如,如图3-36 所示的 t1 树和如图 3-37 所示的 t2 树。题解如果 t1 的节点数为 N,t2 的节点数为 M,则本题最优解是时间复杂度为O(N+M)的方法。首先简单介绍一个时间复杂度为O(N×M)的方法:对于 t1 的每棵子树,都去判断是否与 t2 树的拓扑结构完.

2020-12-28 09:30:12 6620

原创 leetcode 268. 丢失的数字(Java版)

题目https://leetcode-cn.com/problems/missing-number/题解解法 1本题要求线性时间复杂度、仅使用额外常数空间的算法解决此问题,其实质是一个数学问题。由于给定的数组本应包含从 0 到 n 范围内的所有数字,故可以将其看做一个首项为 0,尾项为length,步增为 1 的等差数列。因此,求“缺项”的问题,可以转化为:先求等差数列前 n 项和,再减去已经存在的每一项 的问题。本算法的时间复杂度为O(n),空间复杂度为O(1)package test

2020-12-27 23:42:47 6559

原创 左神算法:判断 t1 树是否包含t2 树全部的拓扑结构(剑指 Offer 26. 树的子结构,Java版)

本题来自左神《程序员代码面试指南》“判断 t1 树是否包含t2 树全部的拓扑结构”题目。题目剑指 Offer 26. 树的子结构给定彼此独立的两棵树头节点分别为 t1 和 t2,判断 t1 树是否包含 t2 树全部的拓扑结构。例如,如图 3-34 所示的 t1 树和如图 3-35 所示的 t2 树。题解思路如下。如果 t1 中某棵子树头节点的值与 t2 头节点的值一样,则从这两个头节点开始匹配。匹配的每一步,都让 t1 上的节点跟着 t2 上的节点的先序遍历移动,每移动一步,都检查 t.

2020-12-25 16:19:06 6886

原创 操作系统例题:某文件系统中,针对每个文件,用户类别分为4类:安全管理员、文件主、文件主的伙伴、其他用户;访问权限分为5种:完全控制、执行、修改、读取、写入。若文件控制块中用二进制位串表示文件权限,为表

题目某文件系统中,针对每个文件,用户类别分为4类:安全管理员、文件主、文件主的伙伴、其他用户;访问权限分为5种:完全控制、执行、修改、读取、写入。若文件控制块中用二进制位串表示文件权限,为表示不同类别用户对一个文件的访问权限,则描述文件权限的位数至少应为______。(2017统考真题)A. 5B. 9C. 12D. 20答案本题答案为:D分析可以把用户访问权限抽象为一个矩阵,行代表用户,列代表访问权限。这个矩阵有 4 行 5 列,1 代表 true,0 代表 false,所以需要 2

2020-12-23 18:18:34 7176 2

原创 leetcode 263. 丑数(Java版)

题目https://leetcode-cn.com/problems/ugly-number/题解思路比较简单,如下:如果当前数可以被 2、3、5 当中任意一个整除,就一直除,直到不能被 2、3、5 当中任意一个整除为止。如果此时结果不为 1,说明还有其他因数,不是丑数。代码class Solution { public boolean isUgly(int num) { if (num == 0) return false; while (num !=

2020-12-22 18:36:04 6791 1

原创 左神算法:调整搜索二叉树中两个错误的节点(Java版)

本题来自左神《程序员代码面试指南》“调整搜索二叉树中两个错误的节点”题目。原问题:一棵二叉树原本是搜索二叉树,但是其中有两个节点调换了位置,使得这棵二叉树不再是搜索二叉树,请找到这两个错误节点并返回。已知二叉树中所有节点的值都不一样,给定二叉树的头节点 head,返回一个长度为 2 的二叉树节点类型的数组 errs,errs[0] 表示一个错误节点,errs[1] 表示另一个错误节点。进阶问题:如果在原问题中得到了这两个错误节点,我们当然可以通过交换两个节点的节点值的方式让整棵二叉树

2020-12-22 18:23:46 6859 1

原创 面试必会系列 - 5.1 网络BIO、NIO、epoll,同步/异步模型、阻塞/非阻塞模型,你能分清吗?

BIO,NIO,epoll同步/异步模型、阻塞/非阻塞模型同步:当一个同步调用发出后,调用者要一直等待返回结果。通知后,才能进行后续的执行。异步:当一个异步过程调用发出后,调用者不能立刻得到返回结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。阻塞:是指调用结果返回前,当前线程会被挂起,即阻塞。非阻塞:是指即使调用结果没返回,也不会阻塞当前线程。比喻:小Q去钓鱼,抛完线后就傻傻的看着有没有动静,有则拉杆(同步阻塞)小Q去钓鱼,拿鱼网捞一下,有没有鱼立即知道,不用等,直

2020-12-22 18:00:22 7814 3

原创 leetcode 258. 各位相加(Java版)

题目https://leetcode-cn.com/problems/add-digits/题解方法一:双 while常规解法。题目描述即思路,反复将各个位上的数字相加,直到结果为一位数,返回即可。public class Solution { public static int addDigits(int num) { int sum = num; while (sum / 10 != 0) { num = sum;

2020-12-22 00:13:00 7039 1

原创 leetcode 257. 二叉树的所有路径(Java版)

题目https://leetcode-cn.com/problems/binary-tree-paths/题解二叉树前序遍历即可每走到一个节点,将当前节点的值拼到路径字符串 str 中。如果走到的是叶子结点,说明当前路径已经结束。将拼好的字符串 str 加入到 list 中。前序遍历完成后,得到的 list 即为所求。复杂度分析因为是前序遍历,所以之间复杂度 O(n),空间复杂度O(h)。其中,n 表示二叉树节点个数,h 表示二叉树深度。代码为了可读性,本文直接用 “+” 做字符

2020-12-21 18:30:32 7018 1

Java小球躲避小游戏

Java开发的小球躲避小游戏。通过上下左右按键控制小球移动,小球移动的方向包括:横向、纵向、斜向,小球具有初始生命值。小球通过移动来躲避炮弹,当小球碰到炮弹时,产生爆炸的动画效果。注释很全面,速度、初始子弹数量都可以通过全局变量修改。适合入门学习使用。

2019-06-24

寒泉Hq的留言板

发表于 2020-01-02 最后回复 2020-04-18

空空如也

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

TA关注的人 TA的粉丝

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