自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 记录初试Netty(2)-服务端心跳检测

今天在在搭建的netty框架中添加心跳机制,特此记录一下; 1.什么是心跳机制? 心跳是在TCP长连接中,客户端和服务端定时向对方发送数据包通知对方自己还在线,保证连接的有效性的一种机制 在服务器和客户端之间一定时间内没有数据交互时, 即处于 idle 状态时, 客户端或服务器会发送一个特殊的数据包给对方, 当接收方收到这个数据报文后, 也立即发送一个特殊的数...

2019-07-31 20:41:00 206

转载 Java 几道常见String面试题

1 String s1="abc"; 2 String s2="abc"; 3 System.out.println(s1==s2); 4 System.out.println(s1.equals(s2)); 5 /*output: 6 true 7 true 8 */ 本题主要考察对于java常量池的理解。java中的常量池技术,是为了方便快捷地创建某些对象而出...

2018-11-27 15:26:00 90

转载 Tomcat性能优化

Tomcat在各位JavaWeb从业者常常就是默认的开发环境,但是Tomcat的默认配置作为生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈. 幸好Tomcat还有很多的提升空间.下文介绍一下Tomcat优化,可以分为内存,线程,IO. 一:Tomcat内存优化,启动时告诉JVM我要一块大内存(调优内存是最直接的方式),具体的参数设置另行百度。 Windows 下的c...

2018-11-25 16:48:00 91

转载 SESSION COOKIE

一、cookie机制和session机制的区别*************************************************************************************具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于才服务器端保持状态的方案在客户端也需要保存一...

2018-11-21 14:12:00 76

转载 StringUtils中 isNotEmpty 和isNotBlank的区别

1 isNotEmpty(str) 等价于 str != null && str.length > 0 2 isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length > 0 3 同理 : 4 isEmpty 等价...

2018-11-15 18:08:00 71

转载 String.valueOf(null)

1 public static String valueOf(Object obj) { 2 return (obj == null) ? "null" : obj.toString(); 3 } 以上会报空指针异常;而下面这样就可以打印 null。 1 Object obj = null; 2 System.out.printl...

2018-11-15 18:01:00 275

转载 RSA 的加密 解密

RSA加密解密类: 1 package me.hao0.trace.order; 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.FileReader; 6 import java.io.FileWriter; 7 im...

2018-11-07 14:23:00 172

转载 java 实现 DES加密 解密算法

DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。   DES算法是这样工作的:如Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如 Mode为解密,则用Key...

2018-11-02 18:19:00 119

转载 用户线程和守护线程

java中线程分为两种类型:用户线程和守护线程。通过Thread.setDaemon(false)设置为用户线程;通过Thread.setDaemon(true)设置为守护线程。如果不设置次属性,默认为用户线程。用户线程和守护线程的区别:1. 主线程结束后用户线程还会继续运行,JVM存活;主线程结束后守护线程和JVM的状态又下面第2条确定。2.如果没有用户线程,都是守护线程,那么JVM结...

2018-10-22 10:41:00 98

转载 springmvc.xml和applicationContext.xml配置的特点

1:springmvc.xml配置要点 一般它主要配置Controller的组件扫描器和视图解析器 下为:springmvc.xml文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xs...

2018-10-22 09:50:00 84

转载 http GET 和 POST 请求的优缺点和误区 --前端优化

Get和Post在面试中一般都会问到,一般的区别:(1)post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)(2)post发送的数据更大(get有url长度限制)(3)post能发送更多的数据类型(get只能发送ASCII字符)(4)post比get慢(5)post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都...

2018-10-12 17:34:00 181

转载 dubbo配置文件解读(2)

<dubbo:service/> <dubbo:reference/> <dubbo:protocol/> <dubbo:registry/> <dubbo:provider/> 因此,参数和<dubbo:service>和<dubbo:protocol>完全一样 ...

2018-10-12 11:54:00 60

转载 dubbo配置文件解读(1)

详细的Dubbo配置也可以参考:https://blog.csdn.net/abcde474524573/article/details/53026110 (1)<dubbo:service/> 用于服务提供方暴露服务位置 例子:     1.interface: 服务实现的接口名称 2.ref : 指向真正的服务实现类,已...

2018-10-12 11:39:00 103

转载 Java同步与异步

一、关键字:thread(线程)、thread-safe(线程安全)、intercurrent(并发的)synchronized(同步的)、asynchronized(异步的)、volatile(易变的)、atomic(原子的)、share(共享)二、总结背景:一次读写共享文件编写,嚯,好家伙,竟然揪出这些零碎而又是一路的知识点。于是乎,Google和翻阅了《Java参考大全》...

2018-09-22 17:06:00 73

转载 java垃圾回收 - 为什么要进行垃圾回收

1、为什么要进行垃圾回收:   在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象;而在Java中,当没有对象引用指向原先分配给某个对象 的内存时,该内存便成为垃圾。 垃圾回收能自动释放内存空间,减轻编程的负担,JVM的一个系统级线程会自动释放该内存块。垃圾回收意味着程序不再需要的对象是"无用信息",这些信息将被丢弃。当一个对 象不再被引...

2018-09-22 10:31:00 118

转载 Java中的String,StringBuilder,StringBuffer三者的区别

 这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。 首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > String   String最慢的原因:   String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后...

2018-09-22 10:19:00 71

转载 ThreadLocal终极篇

前言 在面试环节中,考察"ThreadLocal"也是面试官的家常便饭,所以对它理解透彻,是非常有必要的. 有些面试官会开门见山的提问: “知道ThreadLocal吗?” “讲讲你对ThreadLocal的理解” 当然了,也有面试官会慢慢引导到这个话题上,比如提问“在多线程环境下,如何防止自己的变量被其它线程篡改”,将主动权交给你自己,剩下的靠自己发挥。 那么Thr...

2018-09-19 16:27:00 141

转载 TCP/IP协议与HTTP协议(二)

TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。 1、TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起一个TCP连接需要经过“三次握手”: 第一次握手:客户端...

2018-09-15 23:54:00 142

转载 springcloud之断路器(Hystrix)

  在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完...

2018-09-12 19:37:00 73

转载 HashMap线程不安全的体现

1. resize死循环 我们都知道HashMap初始容量大小为16,一般来说,当有数据要插入时,都会检查容量有没有超过设定的thredhold,如果超过,需要增大Hash表的尺寸,但是这样一来,整个Hash表里的元素都需要被重算一遍。这叫rehash,这个成本相当的大。 大概看下transfer: 对索引数组中的元素遍历 对链表上的每一个节点遍历:用 next 取得要转...

2018-09-10 19:27:00 98

转载 Java 8简明教程

例如:流控制,函数式接口,map扩展和新的时间日期API等等。 允许在接口中有默认方法实现 Java 8 允许我们使用default关键字,为接口声明添加非抽象的方法实现。这个特性又被称为扩展方法。下面是我们的第一个例子: 1 2 3 4 5 6 7 interface Formula { double calculate...

2018-09-06 23:25:00 56

转载 Redis事务机制和分布式锁

Redis事务机制 严格意义来讲,Redis的事务和我们理解的传统数据库(如mysql)的事务是不一样的;Redis的事务实质上是命令的集合,在一个事务中要么所有命令都被执行,要么所有事物都不执行。 一个事务从开始到执行会经历以下三个阶段: 开始事务。 命令入队。 执行事务。 在MySQL中我们使用START TRANSACTION 或 BEGIN开启一...

2018-09-03 20:18:00 55

转载 【 Tomcat 】tomcat8.0 基本参数调优配置-----(2)

Tomcat 的缺省配置是不能稳定长期运行的,也就是不适合生产环境,它会死机,让你不断重新启动,甚至在午夜时分唤醒你。对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU 的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU 的处理能力越强,系统运行速度越快。 Tomcat 的优化不像其它软件那样,简简单单的修改几个参数就可以了,它的优化主...

2018-09-02 21:21:00 115

转载 【 Tomcat 】tomcat8.0 基本参数调优配置-----(1)

Tomcat 的缺省配置是不能稳定长期运行的,也就是不适合生产环境,它会死机,让你不断重新启动,甚至在午夜时分唤醒你。对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU 的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU 的处理能力越强,系统运行速度越快。 Tomcat 的优化不像其它软件那样,简简单单的修改几个参数就可以了,它的优化主...

2018-09-02 21:18:00 96

转载 Nginx的一理解(2)

1、静态HTTP服务器 首先,Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。 配置: 2、反向代理服务器 客户端本来可以直接通过HTTP协议访问某网站应用服务器,网站管理员可以在中间加上一个Nginx,客户端请求Nginx,Nginx请求应用服务器,然后将结果返回给客户端,此时Nginx就是反向代理服务器。 ...

2018-09-02 21:13:00 258

转载 Nginx的一理解(1)

1、请解释一下什么是Nginx? 答:Nginx是一个web服务器和反向代理服务器,用于HTTP、HTTPS、SMTP、POP3和IMAP协议。 2、请列举Nginx的一些特性? 答:Nginx服务器的特性包括: 1)反向代理/L7负载均衡器 2)嵌入式Perl解释器 3)动态二进制升级 4)可用于重新编写URL,具有非常好的PCRE支持 3、nginx和...

2018-09-02 21:03:00 87

转载 jav设计模之的动态代理

在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。 在java的动态代理机制中,有两个重要...

2018-09-02 20:13:00 114

转载 Java设计模式之《适配器模式》及应用场景

适配器就是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配,简单点理解就是平常所见的转接头,转换器之类的存在。   适配器模式有两种:类适配器、对象适配器、接口适配器   前二者在实现上有些许区别,作用一样,第三个接口适配器差别较大。 1、类适配器模式:   原理:通过继承来实现适配器功能。   当我们要访问的接口A中没有我们想要的方法 ,却在另一个接口...

2018-09-02 18:33:00 59

转载 Java设计模式之三种工厂模式

工厂模式实现了创建者和调用者的分离,实现了更好的解耦。 详细分类: 1) 简单工厂模式(静态工厂模式); 2) 工厂方法模式; 3) 抽象工厂模式 面向对象设计的基本原则: 1) OCP(开闭原则, Open-Closed Principle):一个软件的实体应当对扩展开放,对修改关闭。 2) DIP(依赖倒转原则,Dependence...

2018-09-02 18:28:00 57

转载 JAVA设计模式之外观模式(门面模式)

医院的例子 现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其"分而治之",把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情。 首先病人必须先挂号,然后门诊。如果医生要求化验,病人...

2018-09-02 16:56:00 53

转载 JAVA设计模式之单例模式

概念:  java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。  单例模式有以下特点:  1、单例类只能有一个实例。  2、单例类必须自己创建自己的唯一实例。  3、单例类必须给所有其他对象提供这一实例。  单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话...

2018-09-02 15:47:00 53

转载 RabbitMQ 如何保证消息不丢失?

RabbitMQ一般情况很少丢失,但是不能排除意外,为了保证我们自己系统高可用,我们必须作出更好完善措施,保证系统的稳定性。 下面来介绍下,如何保证消息的绝对不丢失的问题,下面分享的绝对干货,都是在知名互联网产品的产线中使用。 1.消息持久化 2.ACK确认机制 3.设置集群镜像模式 4.消息补偿机制 第一种:消息持久化 RabbitMQ 的消息默认存放在内存上面,如...

2018-09-02 13:09:00 74

转载 MQ如何解决消息的顺序问题和消息的重复问题?

一、摘要 分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了两个问题: 1、消息的顺序问题 2、消息的重复问题 二、关键特性以及其实现原理 2.1、顺序消息 要实现严格的顺序消息,简单且可行的办法就是: 保证生产者 - MQServer - 消费者是一对一对一的关系 这样的设计虽然简...

2018-09-02 12:59:00 146

转载 消息队列的使用场景及优缺点?

(1)为什么使用消息队列啊? 其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么 面试官问你这个问题,期望的一个回答是说,你们公司有个什么业务场景,这个业务场景有个什么技术挑战,如果不用MQ可能会很麻烦,但是你现在用了MQ之后带给了你很多的好处 先说一下消息队列的常见使用场景吧,其实场景有很多,但是比较核心的有3个:解耦、异步、削...

2018-09-02 10:37:00 82

转载 消息队列使用场景?

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题 实现高性能,高可用,可伸缩和最终一致性架构 使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ 二、消息队列应用场景 以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景 2.1异步处理...

2018-09-02 10:12:00 97

转载 Redis 分布式锁的正确实现方式( Java 版 )

前言 分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。 可靠性 首先,为了确保分布式锁可用,我们至少...

2018-08-31 18:06:00 52

转载 学会数据库读写分离、分表分库

自行搜索:https://www.jianshu.com/p/2d1a81b2dafc 转载于:https://www.cnblogs.com/laojiao/p/9561892.html

2018-08-30 18:25:00 56

转载 MySql数据主从同步配置

由于需要配置MySQL的主从同步配置,现将配置过程记录下,已被以后不时之需 MySql数据主从同步 1.1. 同步介绍 Mysql的 主从同步 是一个异步的复制过程,从一个 Master复制到另一个 Slave上。在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在 M...

2018-08-30 16:52:00 57

转载 数据库事务的四大特性以及事务的隔离级别

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

2018-08-30 16:15:00 69

转载 常见的四种线程池和区别

线程池能有效的处理多个线程的并发问题,避免大量的线程因为互相强占系统资源导致阻塞现象,能够有效的降低频繁创建和销毁线程对性能所带来的开销。真正线程池的实现是通过ThreadPoolExecutor,ThreadPoolExecutor通过配置不同的参数配置来创建线程池。下面简单的介绍一下各个线程池的区别和用处。 (1)fixThreadPool 正规线程 我的理...

2018-08-30 11:13:00 193

空空如也

空空如也

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

TA关注的人

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