自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (2)
  • 收藏
  • 关注

原创 Redis 大key问题

what:什么是大key问题就是一个key的value特别大,比如一个hashmap中存了超多k,v,或者一个列表key中存了超长列表,等等;开发规范-单key大小Redis限制每个String类型value大小不超过512MB,理论上限: 每个hashset里头元素数量< 2^32.实际开发中,不要超过10KB,否则会对CPU和网卡造成极大负载。 hash、list、set、zset元素个数不要超过5000。...

2020-07-14 17:14:01 964

转载 Shell语法

Shell语法基本语法解释器# 以下两种方式都可以指定 shell 解释器为 bash,第二种方式更好#!/bin/bash#!/usr/bin/env bash#!/usr/bin/env bash这样做的好处是,系统会自动在 PATH 环境变量中查找你指定的程序(本例中的bash)。相比第一种写法,你应该尽量用这种写法,因为程序的路径是不确定的。这样写还有一个好处,操作系统的PATH变量有可能被配置为指向程序的另一个版本。比如,安装完新版本的bash,我们可能将其路径添加到PATH中

2020-06-17 19:07:50 802

原创 Shell 特殊变量,$0, $n, $*, $@, $#, $?, $$

$0 当前脚本的文件名$n 第n个参数,第1个参数,$1$# 参数的个数$* 所有参数,"$*" = "$1 $2 … $n"$@ 所有参数, "$@" = "$1" "$2" ... "$n"#? 上一个命令的退出状态或函数的返回值,一般情况下,大部分命令执行成功会返回 0,失败返回 1。$$ 当前shell进程id$* 和 $@ 的区别$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。但是当它.

2020-06-15 22:19:07 241

转载 MySQL查询逗号分隔的字段匹配,可且可或

evaluation 字段为 1,2,3,4此查询字段必须包含1,2才匹配SELECT * FROM tb_service_rule WHERE FIND_IN_SET('1',evaluation) AND FIND_IN_SET('2',evaluation);此查询字段包含1或2的即可SELECT * FROM tb_service_rule WHERE FIND_IN_SET('1',evaluation) OR FIND_IN_SET('2',evaluation);参考:http

2020-06-09 16:09:45 1531

原创 分布式事务解决方案

分布式事务解决方案1. XA(两阶段提交)两阶段提交,顾名思义就是要分两步提交。存在一个负责协调各个本地资源管理器的事务管理器,本地资源管理器一般是由数据库实现,事务管理器在第一阶段的时候询问各个资源管理器是否都就绪?如果收到每个资源的回复都是 yes,则在第二阶段提交事务,如果其中任意一个资源的回复是 no, 则回滚事务。存在问题同步阻塞:当参与事务者存在占用公共资源的情况,其中一个占用了资源,其他事务参与者就只能阻塞等待资源释放,处于阻塞状态。单点故障:一旦事务管理器出现故障,整个系统

2020-05-25 19:16:22 244

原创 CAP、BASE理论

CAP 原则CAP是指在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)分区容错性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生

2020-05-21 19:19:21 238

原创 重写 equals 与 hashCode

@Getter@Setterpublic class Person { private String idCard; private String name; @Override public boolean equals(Object other) { // 同一对象 if (this == other) { return true; } // 不同类型 if.

2020-05-20 20:18:05 110

原创 Semaphore 简单应用

@Slf4jpublic class SemaphoreTest { private static ExecutorService executorService = Executors.newFixedThreadPool(5); public static void main(String[] args) { // 5个信号量 Semaphore semaphore = new Semaphore(5); Random random .

2020-05-19 19:24:48 120

原创 100个运动员,5个5个跑

public class Test { private static Executor executor = Executors.newCachedThreadPool(); public static void main(String[] args) throws InterruptedException { int[] array = new int[100]; for (int i = 0; i < 100; i++) { .

2020-05-18 21:05:24 195

原创 二叉搜索树

public class BinarySearchTree { private TreeNode root; private static class TreeNode { int data; TreeNode left; TreeNode right; TreeNode parent; public TreeNode(int data) { this.data = data; .

2020-05-13 16:37:34 103

原创 缓存穿透、击穿、雪崩

缓存穿透缓存和数据库中都没有数据,而用户不断发起请求。如请求id为-1的数据。解决方案接口增加校验,如用户鉴权,id做基础校验对key-null做短时间缓存缓存击穿缓存中没有但数据库中有的数据(一般是缓存时间到期),这时并发量大,同时缓存读数据没有,又同时去数据库取数据,引起数据库压力瞬间增大。解决方法读取数据库数据,加互斥锁缓存雪崩缓存中大批量数据到期,去查数据库,查询数据量巨大,引起数据库压力过大甚至down机。和缓存击穿不同的是,缓存击穿指并发查同一条数据,缓存

2020-05-09 11:17:15 99

原创 线程安全性

线程安全性:当多个线程访问某个类时,这个类始终都能表现出正确的行为,那么称这个类是线程安全的。线程不安全产生的问题竞态条件:由于不恰当的执行时序而出现不正确的结果。大多数竞态条件的本质是基于一种可能失效的观察结果来做出判断或者执行某个计算。常见先检查后执行,延迟初始化(单例模式)读取 - 修改 - 写入(递增运算)如果当多个线程访问同一个可变的状态变量时没有使用合适的同步,那么...

2020-05-07 19:55:26 92

原创 多线程简介

为什么要使用多线程?优势发挥多核处理器性能建模的简单性如果在程序中只包含一种类型的任务,那么比包含多种不同类型任务的程序要更易于编写,错误更少,也更容易测试。如果为模型中每种类型的任务都分配一个专门的线程,那边可以形成一种串行执行的假象,并将程序的执行逻辑与调度机制的细节,交替执行的操作,异步I/O以及资源等待等问题分离开。异步的简单性响应更灵敏的用户界面风...

2020-05-06 20:17:45 160

原创 CAS

// AtomicIntegerpublic final int getAndAdd(int delta) { return unsafe.getAndAddInt(this, valueOffset, delta);}// var1: AtomicInteger, var2: valueOffset, var4: deltapublic final int getAndAdd...

2020-05-04 20:47:26 131

原创 多线程问题

竞态条件当多个线程访问同一资源时,如果对资源的访问顺序敏感,则称存在竞态条件。导致竞态条件发生的代码区称做临界区。例:count++;先检测后执行对于main线程,如果文件a不存在,则创建文件a,但是在判断文件a不存在之后,Task线程创建了文件a,这时候先前的判断结果已经失效,(main线程的执行依赖了一个错误的判断结果)此时文件a已经存在了,但是main线程还是会继续创建文...

2020-05-04 20:44:01 201

原创 Executor 框架

阿里巴巴手册线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。 说明:Executors各个方法的弊端:1)newFixedThreadPool和newSingleThreadExecutor:  主要问题是堆积的请求处理队列可能会耗费非常大的内存,甚至OOM。2)ne...

2020-05-03 14:44:07 152

原创 桥接模式

在现实生活中,某些类具有两个或多个维度的变化,如图形既可按形状分,又可按颜色分。桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。...

2020-05-03 10:05:09 103

原创 JSON对象和字符串互转

var obj = JSON.parse(str);var str = JSON.stringify(obj);

2016-07-05 15:19:37 280

原创 URL中文

JSencodeURI(s)decodeURI(s)JavaURLEncoder.encode(s, "UTF-8")URLDecoder.decode(s, "UTF-8")

2016-07-05 10:49:56 322

转载 HTTP请求工具类

/** * HTTP请求工具类 */public class HttpClient { private final static Logger LOGGER = Logger.getLogger(MyHttpRequest.class); /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @

2016-07-04 15:57:53 535

转载 script引用放置位置

理论上来说js标签放在html文档的任何位置都可以,规范起见,推荐放到body结束标签的末尾,包含到body标签内:        // 这里是代码 这样处理的好处是无需担心因页面未完成加载,造成DOM节点获取不到,使脚本报错的问题,而且能避免因脚本运行缓慢造成页面卡死的问题。另外,Yahoo的前端优化指南里就有这一条。

2016-07-04 09:40:32 1241

原创 Linux文件系统基本结构

pwd 显示当前工作目录 print work directorytouch 创建一个空白文件或者更新已有文件的时间以“.”开头的文件为隐藏文件ls -a 显示所有文件(包括隐藏文件)ls -l 显示详细信息ls -R 递归地显示子目录ls -ld 显示目录和链接信息file 查看文件类型cd - 上一个工作目录

2016-07-03 20:33:57 250

原创 BASH

historyctrl+r 查找历史命令su - 用户名sudo 使用管理员权限执行命令

2016-07-03 15:24:12 298

转载 没有块级作用域

声明变量使用var声明的变量会自动被添加到最接近的环境中。在函数内部,最接近的环境就是函数的局部环境;在with语句中,最接近的环境就是函数的局部环境;如果初始化变量时没有使用var声明,该变量会自动被添加到全局环境。

2016-07-01 18:12:08 241

原创 JavaScript值传递和引用传递

值传递是只把对象的值传入函数,函数中可以使用这个值,但却无法更改该对象的值。引用传递是将整个对象本身(或地址)传入函数,在函数中既可调用对象的值,也可改变对象的值。复制变量1. 基本类型var num1 = 5;var num2 = num1;2. 引用类型(对象)var obj1 = new Object();var obj2 =

2016-07-01 16:25:00 294

原创 DOM整理

DOM属性节点的属性1. nodeName2. nodeType返回整数值对应以下12种节点类型之一:(1) ELEMENT_NODE(2) ATTRIBUTE_NODE(3) TEXT_NODE(4) CDATA_SECTION_NODE(5) ENTITY_REFERENCE_NODE(6) ENTITY_NODE(7) PROCESSING_I

2016-07-01 13:56:35 266

转载 MySQL limit

mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.//如果只给定一个参数,它表示返回最大的记录行数目:

2016-06-27 15:44:11 267

转载 Java中重定向与请求转发的区别

比喻:请求转发:A向B发送请求,想让B帮忙完成一项工作,当B接收到请求后发现自己完成不了,于是B请C帮忙,C接收到B的请求后最终完成了该项工作,并把最后的结果返回给A。此过程A只发送了一次请求给B,A只知道把请求发给B,至于B是怎么完成的A并不关心,他只等待最终的结果。重定向:A向B发送请求,想让B帮忙完成一项工作,当B接收到请求后发现自己无法完成,就立即告诉A情况,并向A推荐C可以完成该

2016-06-27 09:16:45 442

转载 JsonObject Integer 0

JsonObject Integer 0

2016-06-16 13:54:41 777

转载 js post

function post(URL, PARAMS) { var temp = document.createElement("form"); temp.action = URL; temp.method = "post"; temp.style.display = "none"; for (var x in

2016-06-14 11:57:55 407

转载 JSON.parse()和JSON.stringify()

parse用于从一个字符串中解析出json对象,如var str = '{"name":"huangxiaojian","age":"23"}'结果:JSON.parse(str)Objectage: "23"name: "huangxiaojian"__proto__: Object注意:单引号写在{}外,每个属

2016-06-14 11:29:14 198

转载 html a onclick

提交

2016-06-13 09:40:20 243

转载 java 浮点运算 工具类

import java.math.BigDecimal;/** * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入。 */public class DoubleUtil { // 默认除法运算精度 private static final int DEF_DIV_SCALE = 10; // 这个类不能实例化 pri

2016-06-12 13:16:48 497

转载 Action(controller) service DAO

一般后台代码也分三层 action(controller) service DAO (这里的三层不是MVC)比如 我得到用户名 但是在存入数据库的时候 用户名字段应该是前台的用户名加上当前日期拼成的字符串action或者controller层是第一层 一般是用来及接受数据并且做数据的非空啊 格式是否正确的验证  如用户名是否为空 是不是安全字符串之类的service层一般是用来做一

2016-06-12 11:40:30 429

转载 java http 请求

private final static Logger LOG = Logger.getLogger(MyHttpRequest.class);static WapHttpClient sWapHttpClient = null;/*** 向指定URL发送GET方法的请求* * @param url*            发送请求的URL* @para

2016-06-08 09:54:54 499

转载 HTTP消息中header头部信息的讲解

本文导读:HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。 HTTP Request的Header信息 1、HTTP请求方式如下表:

2016-06-07 19:20:15 297

转载 XML 默认命名空间

默认的命名空间(Default Namespaces)为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作。请使用下面的语法:xmlns="namespaceURI"这个 XML 文档携带着某个表格中的信息:xmlns="http://www.w3.org/TR/html4/"> Apples Bananas 此

2016-06-01 09:50:26 2553

转载 Intellij 常用设置

http://www.phperz.com/article/15/0923/159043.html?spm=5176.100239.blogcont.2.LOphcR

2016-05-31 16:19:08 329

原创 Intellij 快速解决

2016-05-29 09:23:07 240

原创 Intellij 背景色 显示行数

1. 背景色 RGB 204 232 2072. 行数 line numbers

2016-05-28 20:40:38 527

FLEX 4 API 中文版

FLEX 4 API 中文版

2014-07-14

Java Web应用教程——网上购物系统的实现

Java Web应用教程——网上购物系统的实现

2012-12-10

空空如也

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

TA关注的人

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