自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

赚钱去看球

世间五彩 我执纯白 Hala

  • 博客(85)
  • 资源 (1)
  • 收藏
  • 关注

原创 使用PlantUML高效画图

PlantUML 是一种程序员看了就会爱上的画图方式:自然,高效。支持快速绘制:时序图类图用例图活动图状态图等等安装教程Intellij IDEA中安装 & 使用PlantUML画时序图、类图等在 Mac 上使用 Sublime + PlantUML 高效画图使用教程使用 Sublime + PlantUML 高效地画图PlantUML 官方使用手册-英文板Sublime Text 3The 10 Best Sublime Text 3 Themes of 2021

2021-03-08 20:10:27 359

原创 Mac OS 安装软件允许任何来源

Mac OS 升级到 macOS Sierra 10.12及以后版本后在 “系统设置-安全性与隐私-通用” 里边不再显示“任何来源”,导致当安装一些非 「App Store 和 被认可的开发者」下载的 app 在安装后打开时总询问是否确认打开。下面我们来看下解决办法:MAC 上安装软件允许任何来源方法显示"任何来源"选项在控制台中执行:sudo spctl --master-disable不显示"任何来源"选项(macOS 10.12及更高版本默认为不显示)在控制台中执行:sudo spct

2020-12-11 16:47:23 369

原创 高并发下,HashMap会产生哪些问题?

HashMap在高并发环境下会产生的问题HashMap其实并不是线程安全的,在高并发的情况下,会产生并发引起的问题:比如:HashMap死循环,造成CPU100%负载触发fail-fast下面逐个分析下出现上述情况的原因:HashMap死循环的原因HashMap进行存储时,如果size超过(当前最大容量*负载因子)时候会发生resize,首先看一下resize源代码:...

2018-09-07 19:22:00 880

原创 Java三种代理模式

本文转自:https://mp.weixin.qq.com/s/nBmbNP2mR7ei-lDsuOxjWg代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可...

2018-09-05 09:37:00 239

原创 Java Web项目里 classpath 具体指哪个路径

classpath路径指什么只知道把配置文件如:mybatis.xml、spring-web.xml、applicationContext.xml等放到src目录(就是存放代码.java文件的目录),然后使用“classpath:xxx.xml”来读取,都放到src目录准没错,那么到底classpath到底指的什么位置呢?WEB-INF/classes目录存放src目录java文件...

2018-08-24 20:41:00 153

原创 Mysql 关于处理NULL值的相关函数和操作符

操作符<=>NULL-safe equal. This operator performs an equality comparison like the = operator, but returns 1 rather than NULL if both operands are NULL, and 0 rather than NULL if one operand i...

2018-08-21 16:00:00 171

原创 使用 PlantUML 高效画图

PlantUML 是一种程序员看了就会爱上的画图方式:自然,高效。支持快速绘制:时序图类图用例图活动图状态图等等安装教程Intellij IDEA中安装 & 使用PlantUML画时序图、类图等在 Mac 上使用 Sublime + PlantUML 高效画图使用教程使用 Sublime + PlantUML 高效地画图PlantUML 官方使用手...

2018-08-19 20:19:00 202

原创 UML类图介绍以及PlantUML使用方法

类的UML表示方法UML介绍类图,是UML(统一建模语言)中用于描述"类"以及"类与类"之间的示意图。它形象的描述出了系统的结构,帮助人们理解系统。类图是在"所有的UML图"中,实用频率非常之高;掌握它对于我们软件设计,以及交流都很有帮助。对于类图而言,它的基本单位是类。类主要由三部分组成:类名、属性、操作(函数)。UML类的表示大致如下:类名类的名称属性UML类图中...

2018-08-19 20:14:00 644

原创 (转)面向对象设计原则——开放-封闭原则

开放封闭原则(Open-Closed Principle OCP)Software entities(classes,modules,functions etc) should open for extension ,but close for modification.什么意思呢?所谓开放封闭原则就是软件实体应该对扩展开放,而对修改封闭。开放封闭原则是所有面向对象原则的核心。软件...

2018-08-19 19:19:00 282

原创 设计模式——单例模式

概念单例模式是创建型模式的一种,所谓单例设计模式简单说就是无论程序如何运行,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。实现步骤具体实现步骤 (1) 将采用单例设计模式的类的构造方法私有化(采用private修饰)。 (2) 在其内部产生该类的实例化对象,并将其封装成private static类型。 (3) 定义一个静态方法返回该类的...

2018-08-19 17:54:00 240

原创 设计模式-介绍

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。设计模式分为三种类型,共23种:创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器...

2018-08-19 17:14:00 231

原创 【每天一条Linux指令-Day1】kill掉多个mysql的进程

我被问到过一个shell的问题,问的是如何kill掉多个mysql的进程?怎么把这个的pid传递下去ps -ef|grep mysql | xargs kill -9ps -ef|grep mysql | awk '{print $3}' | xargs kill -9貌似还有一个命令叫做pkill就不用明确的写出管道了管道还是很好的pkill mysql貌似就可以了x...

2018-08-18 00:40:00 147

原创 一道SQL面试题——表行列数据转换(表转置)

SQL语句如下:selectcountry, sum(case when type='A' then money end) as A,sum(case when type='B' then money end) as B,sum(case when type='C' then money end) as Cfrom table1group by country本文转自:...

2018-08-18 00:31:00 237

原创 @SuppressWarnings注解用法详解

J2SE 提供的最后一个批注是 @SuppressWarnings。该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。@SuppressWarnings 批注允许您选择性地取消特定代码段(即,类或方法)中的警告。其中的想法是当您看到警告时,您将调查它,如果您确定它不是问题,您就可以添加一个 @SuppressWarnings 批注,以使您不会再看到警告。...

2018-08-17 15:42:00 185

原创 Spring IoC的底层技术支持——Java反射机制

我们知道,通过 new XmlClassPathApplicationContext("beans.xml")等方式即可启动容器。在容器启动时,Spring 根据配置文件的描述信息,自动实例化bean并完成依赖关系的装配,从容器中即可返回准备就绪的bean实例,后续可直接用。那为什么Spring能凭借一个简单的配置文件就能实例化并装配好程序所用的bean呢?这就要归功于Java语言本身...

2018-08-15 09:24:00 141

原创 出现java.lang.NoSuchMethodError错误的原因

作为Java开发者我们都遇到过java.lang.NoSuchMethodError错误,究其根源,是JVM的“双亲委托模型”引发的问题。如果在类路径下放置了多个不同版本的类包,如commons-lang2.x.jar 和 commons-lang4.x.jar 都位于类路径中,代码中用到了commons-lang4.x类的某个方法,而这个方法在commons-lang2.x.jar中并...

2018-08-15 08:59:00 411

原创 Spring常见面试题

本文是通过收集网上各种面试指南题目及答案然后经过整理归纳而来,仅仅是为了方便以后回顾,无意冒犯各位原创作者。Spring框架1. 什么是Spring?Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的...

2018-08-14 20:12:00 212

原创 读《初入阿里-10天》有感

作者是一位95后应届毕业生(对楼主老说真应该算是小朋友,虽说楼主是90后,但也真真切切感觉快被拍死在沙滩上了),入职阿里一个很不错的平台担任算法工程师(佩服ing)。这篇文章主要写了作者入职阿里10天所发生的事情。其中有三点使我产生了共鸣,我要现在记录下来时刻警醒自己:厉害的人物时刻都对自己的时间有着清晰的规划和极强的执行力;日复一日的自律让他们脱颖而出,使他们自由作者每天...

2018-08-14 13:27:00 222

原创 HTTP-Http状态码301和302的区别

官方解释:301 redirect: 301 代表永久性转移(Permanently Moved)302 redirect: 302 代表暂时性转移(Temporarily Moved )共同点:301和302状态码都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取(用户看到的效果就是他输入的...

2018-08-10 19:50:00 244

原创 计算机网络核心知识总结

相关博客:搞定计算机网络面试,看这篇就够了超详细、超核心总结:面试带你飞:这是一份全面的 计算机网络基础 总结攻略TCP的三次握手与四次挥手(详解+动图)老生常谈-从输入url到页面展示到底发生了什么计算机网络:这是一份全面 & 详细 的TCP协议攻略计算机网络:这是一份全面& 详细 HTTP知识讲解HTTP长连接、短连接究竟是什么?...

2018-08-10 17:02:00 155

原创 (转)IP地址分配原理

网络模型介绍在计算机网络中有著名的OSI七层协议体系结构,概念清楚,理论完整,但是它既复杂又不实用。TCP/IP体系结构则不同,得到的广泛的应用。最终结合OSI和TCP/IP的优点,采用了一种只有五层协议的体系结构,本文的讲述的IP都是基于五层协议模型中的网络层。分类的IP地址IP地址的表示方法IP地址就是给英特网上的每个主机(路由器)的每个接口分配一个在全世界范围内是唯一...

2018-08-10 13:47:00 315

原创 (转)老生常谈-从输入url到页面展示到底发生了什么

刚开始写这篇文章还是挺纠结的,因为网上搜索“从输入url到页面展示到底发生了什么”,你可以搜到一大堆的资料。而且面试这道题基本是必考题,二月份面试的时候,虽然知道这个过程发生了什么,不过当面试官一步步追问下去的,很多细节就不太清楚了。最近刚好也在看http协议相关的东西,所以想对这个话题来个深入的总结,本文的目的是通过输入url之后发生的事情来做知识的总结和扩展。所以文章可能会很杂。...

2018-08-10 11:31:00 411

原创 生产者消费者-Java代码实现

import java.util.LinkedList;class Storage{ private static final int MAX = 100; LinkedList<Object> list = new LinkedList<>(); public void produce(int num) throws Excepti...

2018-08-10 10:43:00 119

原创 死锁-Java代码示例

class MyThread implements Runnable{ private Object o1 = new Object(); private Object o2 = new Object(); private boolean flag = true; public void run(){ if(flag){ ...

2018-08-10 10:40:00 121

原创 《Redis设计与实现》- 复制

在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他机器,满足故障恢复和负载均衡灯需求。Redis提供了复制功能,实现了相同数据多个副本,复制功能作是高可用Redis的基础,深入理解复制的工作原理与使用技巧对我们日常开发运维非常有帮助。1. 配置1.1 建立复制每个从节点只能有一个主节点,而主节点可以同时具有多个从节点。复制的数据流是单向的,只能由主节点复制到从节点。...

2018-08-09 21:28:00 158

原创 《Redis设计与实现》- AOF持久化

1. AOF持久化Redis AOF 持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的。2. RDB持久化与AOF持久化的区别RDB持久化RDB持久化通过保存数据中的键值对来记录数据库状态RDB文件是一个压缩的二进制文件AOF持久化AOF 持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的AOF 文件是纯文本格式文件,所有写入AOF文...

2018-08-09 13:42:00 268

原创 《Redis设计与实现》- RDB持久化

Redis RDB持久化功能可以将Redis内存中的数据库状态保存到磁盘里面,避免数据意外丢失。1. 手动生成 RDB 文件有两个Redis命令可以用于生成RDB文件:SAVE,该命令会阻塞Redis服务器进程,直到RDB文件创建完成为止,在此期间,服务器不能处理任何客户端命令请求BGSAVE,BGSAVE命令会派生出一个子进程,然后由子进程负责创建RDB文件,服务器进程(父进...

2018-08-09 13:36:00 145

原创 《Redis设计与实现》- 数据库

1. 服务器中数据库结构Redis 服务器将所有数据库都保存在服务器状态 redisServer 结构的 db 数组中,由 redisDb 结构代表一个数据库 struct redisServer { // ... // 一个数组,保存着服务器中的所有数据库 redisDb *db; }Redis 服务器默认会创建16个...

2018-08-09 12:26:00 56

原创 Redis常见面试题

1. 什么是redis?Redis 是一个使用 C 语言写成的,开源的基于内存的高性能key-value数据库。 Redis的值可以是由string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)等多种数据结构组成。2. Redis的特性速度快速度快的原因:- Redis所有数据都放在内存中- Redis是C语言...

2018-08-08 14:58:00 293

原创 (转)浅谈架构-从传统走向分布式

原文转自: https://www.cnblogs.com/Survivalist/p/8012266.html 随笔:最近再做这些年的知识整理,今天整理到了架构这方便,就索性拿出来和大家分享一下,有什么写错的,欢迎大家指正架构拆分的演变:  1.传统项目的架构:特点:  1.all in one(所有模块在一起,技术也不分层),  注:像05年06年那会儿,就是这样,把代码写在...

2018-08-08 14:17:00 255

原创 理解volatile与synchronized

用 volatile 修饰的变量可以保证线程的“可见性”,也就是,任何线程修改了这个 volatile 修饰的值都会通知其他线程来主缓存中重新读取值。下面通过例子加以说明:public class VolatileTest { // 对比有无 volatile 关键字的区别 volatile boolean running...

2018-02-28 21:15:00 107

转载 理解volatile与synchronized

用 volatile 修饰的变量可以保证线程的“可见性”,也就是,任何线程修改了这个 volatile 修饰的值都会通知其他线程来主缓存中重新读取值。下面通过例子加以说明:public class VolatileTest { // 对比有无 volatile 关键字的区别 volatile boolean running = true; public v...

2018-02-28 21:14:35 181

转载 格雷码的实现

问题:产生n位元的所有格雷码。格雷码(Gray Code)是一个数列集合,每个数使用二进位来表示,假设使用n位元来表示每个数字,任两个数之间只有一个位元值不同。例如以下为3位元的格雷码: 000 001 011 010 110 111 101 100 。如果要产生n位元的格雷码,那么格雷码的个数为2^n.假设原始的值从0开始,格雷码产生的规律是:第一步,改变最右边的

2015-09-22 23:40:05 481

转载 背包九讲

转载:dd_engi 的背包九讲目录第一讲 01背包问题第二讲 完全背包问题第三讲 多重背包问题第四讲 混合三种背包问题第五讲 二维费用的背包问题第六讲 分组的背包问题第七讲 有依赖的背包问题第八讲 泛化物品第九讲 背包问题问法的变化附:USACO中的背包问题前言本篇文章是我

2015-07-22 10:58:18 545

转载 动态规划算法

本文转载自:动态规划算法一、基本概念    动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略    基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子

2015-07-22 09:38:03 442

转载 静态查找结构概论

本文转自:静态查找结构概论在计算机许多应用领域中,查找操作都是十分重要的研究技术。查找效率的好坏直接影响应用软件的性能。比如说:(1) 全文检索技术中对文本建立索引之后,对索引的查找效率将决定搜索引擎的质量。(2) mysql数据库的索引就是B+树结构,查找效率极高。(3) Windows OS的文件系统结构也是采用B+树进行存储的。 在《查找算法》系列文章中,我将主要

2015-07-16 16:12:11 452

原创 平衡二叉查找树 AVL 的实现

不同结构的二叉查找树,查找效率有很大的不同(单支树结构的查找效率退化成了顺序查找)。如何解决这个问题呢?关键在于如何最大限度的减小树的深度。正是基于这个想法,平衡二叉树出现了。平衡二叉树的定义 (AVL—— 发明者为Adel’son-Vel’skii 和 Landis)平衡二叉查找树,又称 AVL树。 它除了具备二叉查找树的基本特征之外,还具...

2015-07-16 00:09:00 121

转载 动态查找树比较

本文转载自:动态查找树比较我们这个专题介绍的动态查找树主要有: 二叉查找树(BST),平衡二叉查找树(AVL),红黑树(RBT),B~/B+树(B-tree)。这四种树都具备下面几个优势:(1) 都是动态结构。在删除,插入操作的时候,都不需要彻底重建原始的索引树。最多就是执行一定量的旋转,变换操作来有限的改变树的形态。而这些操作所付出的代价都远远小于重建一棵树。这一优势在《查找结构专题

2015-07-15 15:24:47 601

原创 二叉查找树(二叉排序树)的详细实现

1、序    当所有的静态查找结构添加和删除一个数据的时候,整个结构都需要重建。这对于常常需要在查找过程中动态改变数据而言,是灾难性的。因此人们就必须去寻找高效的动态查找结构,我们在这讨论一个非常常用的动态查找树——二叉查找树 。     本文详细实现了二叉查找树的各种操作:插入结点、构造二叉树、删除结点、查找、  查找最大值、查找最小值、查找指定结点的前驱和后继2、二叉查找树简介

2015-07-15 15:14:37 1014

原创 表达式树

表达式树表达式树的树叶是操作数,如常数或变量,而其他的节点是操作符,如果所有的操作符均是二元的,则构成一棵二叉树。表达式树的性质中序遍历 —-> 中缀表达式 后序遍历 —-> 后缀表达式 先序遍历 —-> 前缀表达式构造一棵表达式树把后缀表达式转变成表达式树 (由于中缀表达式可以转换成后缀表达式,所以也可以实现将中缀表达式转换成后缀表达式,然后再构造相应的表达式树)算法思想: 我们一次一个符

2015-07-15 15:11:39 537

Wireshark-win32-1.11.0

专业网络抓包分析工具,可以很好帮你检查当前网络状况

2013-11-06

空空如也

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

TA关注的人

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