自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(382)
  • 收藏
  • 关注

转载 一致性hash算法

那怎么搭建一个好的系统架构呢?这个话题太大,这里主要说一下数据分流的方式。比如我们的数据库服务器只能存储200个数据,突然要搞一个活动预估达到600个数据。可以采用两种方式:横向扩展或者纵向扩展。纵向扩展是升级服务器的硬件资源。但是随着机器的性能配置越高,价格越高,这个代价对于一般的小公司是承担不起的。横向扩展是采用多个廉价的机器提供服务。这样一个机器只能处理200个数据、3个

2017-06-22 18:03:12 354

转载 Java对象的序列化与反序列化

一、为什么要进行序列化再介绍之前,我们有必要先了解下对象的生命周期,我们知道Java中的对象都是存在于堆内存中的,而堆内存是可以被垃圾回收器不定期回收的。从对象被创建到被回收这一段时间就是Java对象的生命周期,也即Java对象只存活于这个时间段内。对象被垃圾回收器回收意味着对象和对象中的成员变量所占的内存也就被回收,这意味着我们就再也得不到该对象的任何内容了,因为已经被销毁了嘛,当然我们

2017-05-04 17:54:31 391

转载 数据库中 事务的四大特性(ACID),事务的隔离级别。

如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consistency)  一致性是指事务必须使

2017-04-06 18:15:11 9083 2

转载 Java内存分配之堆、栈和常量池

Java内存分配主要包括以下几个区域:1. 寄存器:我们在程序中无法控制2. 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中3. 堆:存放用new产生的数据4. 静态域:存放在对象中用static定义的静态成员5. 常量池:存放常量6. 非RAM(随机存取存储器)存储:硬盘等永久存储空间**************

2017-03-09 14:06:37 378

转载 JAVA反射系列之Field----------java.lang.reflect.Field使用方法。

Field类主要是用来辅助 获取和操作 类 的 【属性】的!1.怎么通过反射获取类的属性     先来看JDK提供的方法有如下几种:    a)Class.getDeclaredField(String name);     返回一个 Field 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明字段。     b)Class.getDeclaredF

2017-01-19 13:58:00 3815

转载 Java之内存分析和String对象

Java中内存分析:  栈(Stack) :存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中)。  堆(heap):存放所有new出来的对象。  常量池(constant pool):在堆中分配出来的一块存储区域,存放储显式的String常量和基本类型常量(float、int等)。另外,可以存储

2016-11-29 12:03:29 1350

原创 spring 事务是否会回滚的几种写法

spring 事务注解默认遇到throw new RuntimeException("...");会回滚需要捕获的throw new Exception("...");不会回滚// 指定回滚@Transactional(rollbackFor=Exception.class) public void methodName() { // 不会回滚 t

2016-09-28 09:50:22 3283

转载 SOCKET连接与TCP/IP连接

SOCKET连接与TCP/IP连接创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。socket则是对TCP/IP协议的封装和应用(程序员层面上)。也可以说,TPC/IP协议是传输层协议,主要解决数据 如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数

2016-08-01 17:18:43 2613

原创 httpClient中的三种超时设置

在Apache的HttpClient包中,有三个设置超时的地方:(1)/* 从连接池中取连接的超时时间*/ ConnManagerParams.setTimeout(params, 1000); 设置ConnectionPoolTimeout:这定义了从ConnectionManager管理的连接池中取出连接的超时时间,此处设置为1秒。

2016-07-22 13:50:23 9878

转载 HTTP报文结构图解

GET请求报文如下POST请求报文如下200响应报文如下404响应报文如下HTML中的meta标签的http-equiv属性,实际上修改的是响应报文的响应头中的键值对

2016-07-21 17:54:08 1112

转载 数据库分片(Sharding)技术

假如您有一个应用程序,随着业务越来越有起色,系统所牵涉到的数据量也就越来越大,此时您要涉及到对系统进行伸缩(Scale)的问题了。一种典型的扩展方法叫做“向上伸缩(Scale Up)”,它的意思是通过使用更好的硬件来提高系统的性能参数。而另一种方法则叫做“向外伸缩(Scale Out)”,它是指通过增加额外的硬件(如服务器)来达到相同的效果。从“硬件成本”还是“系统极限”的角度来说,“向外伸缩”一

2016-07-01 13:58:44 7252

转载 serialVersionUID的作用 和 Java序列化与反序列化

serialVersionUID作用:     序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。有两种生成方式:       一个是默认的1L,比如:private static final long serialVersionUID = 1L;       一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如:

2016-05-25 17:32:49 453

原创 mysql 数据类型 (最大值 和 最小值)

1、整型MySQL数据类型含义(有符号)tinyint(m)1个字节  范围(-128~127)smallint(m)2个字节  范围(-32768~32767)mediumint(m)3个字节  范围(-8388608~8388607)int(m)4个字节  范围(-2147483648~21474836

2016-04-19 14:40:08 21954

转载 MySQL数据类型 int(M) 表示什么意思?

MySQL数据类型 int(M) 表示什么意思?MySQL 数据类型中的 integer types 有点奇怪。你可能会见到诸如:int(3)、int(4)、int(8) 之类的 int 数据类型。刚接触 MySQL 的时候,我还以为 int(3) 占用的存储空间比 int(4) 要小, int(4) 占用的存储空间比 int(8) 小。 后来,参看 MySQL 手册,发现自己

2016-01-29 10:46:07 1105

转载 Java异常:选择Checked Exception还是Unchecked Exception?

Java异常:选择Checked Exception还是Unchecked Exception?Java包含两种异常:checked异常和unchecked异常。checked和unchecked异常之间的区别是:Checked异常必须被显式地  捕获 或者  传递(向上抛出[ 沿着调用栈  继续向上传播该异常]),如try-catch-fina

2016-01-26 20:43:57 643

原创 static代码块,代码块 ,构造方法(一个参数),构造方法(二个参数)

//================================ 父类 =================================//public class QQParent {   {     System.out.println("QQParent的构造块");   }      public QQParent(String name,String

2015-12-03 12:59:51 549

原创 HashTable 与HashMap 三点区别

1) HashTable 与HashMap实现的是不同的接口            HashTable 是Dictionary的子类 /   HashMap 是Map接口的子类2)HashTable的键值都不允许为空,             HashMap的键值允许为空。HashTable不允许null值(key和value都不可以),HashMap允许null值(key和v

2015-08-22 21:31:40 545

转载 深入理解Servlet转发和重定向

深入理解Servlet转发和重定向分类: Java 精华文章 2013-10-31 00:14 1582人阅读 评论(1)收藏 举报一、转发    转发的原理,可以通过下图展示:    浏览器的请求发送给组件1,组件1经过一些处理之后,将request和response对象“传递”给组件2,由组件2继续处理,然后输出响应(当然,也可以继续向其他组件“传递

2015-07-20 09:41:24 429

转载 Java类加载器总结

Java类加载器总结1.类的加载过程  JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示:1) 装载:查找并加载类的二进制数据;2)链接:验证:确保被加载类的正确性;准备:为类的静态变量分配内存,并将其初始化为默认值;解析:把类中的符号引用

2015-04-09 16:11:01 344

转载 java 数组

数组(Array):相同类型数据的集合。 定义数组  方式1(推荐,更能表明数组类型)  type[] 变量名 = new type[数组中元素的个数];  比如:  int[] a = new int[10];  数组名,也即引用a,指向数组元素的首地址。  方式2(同C语言)  type变量名[] = new type[数

2015-04-03 19:24:38 326

原创 java 获取map中所有的key值

java 获取map中所有的key和value值java.util.Iterator it = hashmap.entrySet().iterator();while(it.hasNext()){java.util.Map.Entry entry = (java.util.Map.Entry)it.next();entry.getKey() 返回与此项对应的键entry.g

2014-11-17 16:29:48 51932 4

原创 线程池 --- 4种拒绝策略

2019-10-10 20:10:01 405

原创 Java对象 转化成 json字符串 输出

   使用  com.alibaba.fastjson.JSONObject。   ======ok == com.alibaba.fastjson.JSONObject ====== res :  {"bwDictId":2,"list":"127.0.0.1","logUserId":33,"note":"黑名单测试Note","score":150

2018-10-15 18:54:46 22337

原创 java 接口中 不要加任何修饰符号 (public 也不要加)

   阿里巴巴开发规范中提到:-----------------------------------------------------------------------------------------------------------------------------------------------------public interface NI {     pro...

2018-08-31 17:46:41 12732 3

原创 httpServletRequest.getContextPath() 和 getServletPath() 和 getRequestURL()

        http://localhost:8088/aimili/event/eventList.htm?name=1&key=3&class=5       String url  =  httpServletRequest.getRequestURL().toString();     // url 为 :http://localhost:8088/aimili...

2018-08-14 16:05:56 2818

原创 防止xss攻击 --- getParameter getParameterValues getParameterMap的使用

import java.io.IOException;import java.util.HashMap;import java.util.Map;import java.util.Set;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;impo...

2018-08-03 17:59:57 3005

转载 多线程 Future

package src;import java.util.ArrayList;import java.util.List;import java.util.Random;import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.c

2017-12-25 16:13:03 506

转载 服务熔断、降级、限流、异步RPC -- HyStrix

原文地址:http://blog.csdn.net/chunlongyu/article/details/53259014在今天,基于SOA的架构已经大行其道。伴随着架构的SOA化,相关联的服务熔断、降级、限流等思想,也在各种技术讲座中频繁出现。本文将结合Netflix开源的Hystrix框架,对这些思想做一个梳理。背景伴随着业务复杂性的提高,系统的不断拆分,一个面向用户端

2017-11-28 09:41:51 712

转载 @ModelAttribute注解的作用

1.@ModelAttribute注释void返回值的方法[java] view plain copy@Controller  public class HelloModelController {            @ModelAttribute       public void populat

2017-11-17 18:06:58 4766 1

转载 char(10)和VARCHAR(10)主要的区别是什么?

1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (10),表示你存储的字符将占10个字节(包括7个空字符),而同样的VARCHAR2 (10)则只占用3个字节的长度,10只是最大值,当你存储的字符小于10时,按实际长度存储。 2.CHAR的效率比VARCHAR2的效率稍高。 3.目前VARCHAR是VARCHAR2的同义词。工业标准的V

2017-11-08 11:15:04 1483

原创 $.each(srcData, function(i, oneData){});

jQuery中  each循环:在each循环里面不能使用break结束循环,也不能使用continue来结束本次循环,想要实现类似的功能就只能用return。已验证break           用return false;continue       用return ture;     或   return;                 

2017-10-31 18:44:25 856

转载 Java synchronized 详解

下面的文字均来自其它博客和网页。参考:http://www.jianshu.com/p/ea9a482ece5f由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。需要明确的几个问题:synchronized关键字可以作为函数的修饰符,也可作

2017-09-17 16:42:33 324

转载 面试题:Dubbo中zookeeper做注册中心,如果注册中心集群全都挂掉,发布者和订阅者之间还能通信么?

1、【提供者】在【启动】时,向注册中心zk 【注册】自己提供的服务。 2、【消费者】在【启动】时,向注册中心zk 【订阅】自己所需的服务。可以的,消费者在启动时,消费者会从zk拉取注册的生产者的地址接口等数据,缓存在本地。每次调用时,按照本地存储的地址进行调用可以的,消费者本地有一个生产者的列表,他会按照列表继续工作,倒是无法从注册中心去同步最新

2017-09-12 18:21:22 14310 1

转载 dubbo工作原理

dubbo主要核心部件 Remoting:网络通信框架,实现了sync-over-async和request-response消息机制。RPC:一个远程过程调用的抽象,支持负载均衡、容灾和集群功能。Registry:服务目录框架用于服务的注册和服务事件发布和订阅。  dubbo架构  Provider: 暴露服务的提供方。Consum

2017-09-12 18:12:14 914

转载 给dubbo接口添加白名单——dubbo Filter的使用

面试题大概意思是,测试和生产 公用一套zookeeper,怎么保证消费不冲突?在开发中,有时候需要限制访问的权限,白名单就是一种方法。对于Java Web应用,Spring的拦截器可以拦截Web接口的调用;而对于dubbo接口,Spring的拦截器就不管用了。dubbo提供了Filter扩展,可以通过自定义Filter来实现这个功能。本文通过一个事例来演示如何实

2017-09-12 17:50:26 2673

转载 javaweb之Filter详解

 Filter也称之为过滤器,它是Servlet技术中比较激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。二、Filter简介 Servlet API中提供了一个...

2017-09-11 17:49:45 331

转载 Java并发编程:volatile关键字解析

作者:海子   出处:http://www.cnblogs.com/dolphin0520/Java并发编程:volatile关键字解析   volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  vola

2017-09-11 15:22:32 240

转载 redis中 SETBIT命令 和 BITCOUNT命令

原文链接:https://www.zhihu.com/question/27672245/answer/123641959这个是SETBIT使用方法的简单说明<img src="https://pic4.zhimg.com/8650852c348cf08ff711e44ca13aaf47_b.png" data-rawwidth=&qu

2017-09-11 11:31:41 1684

转载 浅谈mysql中varchar(m)与char(n)的区别与联系

对这varchar和char这两个数据类型最简单区分是:varchar存放变长字符串,char存放定长字符串。那么他们是否还有其他差别呢?本文将从浅显的层次以抛出问题解决问题的形式对两者的区分进一步了解。首先我们确认一下mysql版本。本文中的所有知识点都基于mysql5.0+,本文中的例子基于mysql5.6。那么,接下来开始抛出我的问题。

2017-09-11 10:21:04 502

转载 深入理解乐观锁与悲观锁

在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是关系型数据库系统中有乐观锁和悲观锁的概念,像memcache、

2017-09-11 10:13:59 220

空空如也

空空如也

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

TA关注的人

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