自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 微服务的介绍

单体应用VS微服务优势:    开发-东西都放在一起,找起来方便,结构复杂,点状,环状,星状    稳定-远程调用,网络,序列化    性能-    部署-一个应用部署几个不足:    中心化-    耦合-做重复的开发    学习成本    伸缩-瓶颈,有一块性能很差,整个服务都很差    持续交付微服务的介绍面向服务架构(SOA)类同    面向服务    松耦合    模块化    分布式计...

2018-04-20 16:58:43 231

原创 限流模式-Guava的RateLimiter

目前有几种常见的限流方式:1、通过限制单位时间段内调用量来限流2、通过限制系统的并发调用程度来限流3、使用漏桶(Leaky Bucket)算法来进行限流4、使用令牌桶(Token Bucket)算法来进行限流具体我们看下第三种和第四中算法,也是我们目前看到的最常见的限流算法漏桶(Leaky Bucket)算法思路很简单,水(请求)先进入到漏桶里,漏桶以一定的速度出水(接口有

2017-11-27 14:32:00 514

原创 java面试

1、finalize()方法       java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。       (1).对象不一定会被回收。       (2).垃圾回收不是析构函数。       (3).垃圾回收只与内存有关。       (4).垃圾回收和finalize()都是靠不住的,只要JVM还没有快到

2017-11-20 11:24:59 491 2

转载 java ms

ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突。 ThreadLocal类中维护一个Map,用于存储每一个线程的变量副本,Map中元素的键为线程对象,而值为对应线程

2017-10-23 11:47:46 554

转载 WebMagic写的网络爬虫

WebMagic写的网络爬虫一、前言  最近因为有爬一些招聘网站的招聘信息的需要,而我之前也只是知道有“网络爬虫”这个神奇的名词,具体是什么、用什么实现、什么原理、如何实现比较好都不清楚,因此最近大致研究了一下,当然,研究的并不是很深入,毕竟一个高大上的知识即使站在巨人的肩膀上,也不能两三天就融会贯通。在这里先做一个技术储备吧,具体的疑难知识点、细节等以后一点一点的完善

2017-10-22 11:43:56 512

转载 Synchronized及其实现原理

一、Synchronized的基本使用  Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序问题。从语法上讲,Synchronized总共有三种用法:  (1)修饰普通方法  (2)修饰静态方法  

2017-10-20 16:05:17 239

转载 JDK里的设计模式

Structural(结构模式)Adapter:把一个接口或是类变成另外一种。java.util.Arrays#asList()javax.swing.JTable(TableModel)java.io.InputStreamReader(InputStream)java.io.OutputStreamWriter(OutputStream)javax.xml.bind.ann

2017-10-17 17:30:49 213

原创 Elasticsearch基本知识

2017-09-27 17:17:11 251

原创 elasticsearch -2.3.x head插件安装(windows系统)

1.进入命令行: home键+R命令:> cd \elasticsearch根目录\bin\> plugin  install  mobz/elasticsearch-head2.运行es3.打开http://localhost:9200/_plugin/head/

2017-09-27 11:40:26 322

原创 Shiro基本知识

ubject:主体,代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如网络爬虫,机器人等;即一个抽象概念;所有Subject都绑定到SecurityManager,与Subject的所有交互都会委托给SecurityManager;可以把Subject认为是一个门面;SecurityManager才是实际的执行者;SecurityManager:安

2017-09-25 19:37:46 262

转载 JAVA,最起码,你应该知道这些!

马老师说过,员工的离职原因很多,只有两点最真实: 钱,没给到位 心,受委屈了 当然,我是想换个平台,换个方向,想清楚为什么要跳槽,如果真的要跳槽,想要拿到一个理想的offer,除了运气,基本功也要足够的扎实,希望下面的面试经验能给你们能够提供一些帮助。 项目经验 面试官在一开始会让你进行自我介绍,主要是想让你介绍一下自己做过的一些项目,看看你对这些项目的了解程度,因为很多人简历

2017-09-25 17:47:04 417

原创 Spring中bean的加载过程

1.获取配置文件资源2.对获取的xml资源进行一定的处理检验3.处理包装资源4.解析处理包装过后的资源5.加载提取bean并注册(添加到beanDefinitionMap中)

2017-09-20 16:28:53 1717

转载 水平分库分表的关键步骤和技术难点

在之前的文章中,我介绍了分库分表的几种表现形式和玩法,也重点介绍了垂直分库所带来的问题和解决方法。本篇中,我们将继续聊聊水平分库分表的一些技巧。分片技术的由来关系型数据库本身比较容易成为系统性能瓶颈,单机存储容量、连接数、处理能力等都很有限,数据库本身的“有状态性”导致了它并不像Web和应用服务器那么容易扩展。在互联网行业海量数据和高并发访问的考验下,聪明的技术人员提出了分库分表技

2017-09-18 15:24:06 574

原创 javaWeb常用框架技术总结

Struts2:为什么每次请求都要创建一个Action对象?strust2的action里面很多情况下都是需要定义成员变量用来接收表单上的值,如果只是一个对象的话,那么很可能会出现多个线程共用一个成员变量 出现线程安全问题,因此struts2每次请求都要创建一个Action对象.ModelDriven拦截器的配置中refreshModelBeforeResult解决了什么问

2017-08-28 16:01:38 698

转载 Spring AOP 和 AspectJ 之间的差别

面向方面的编程(AOP) 是一种编程范式,旨在通过允许横切关注点的分离,提高模块化。AOP提供方面来将跨越对象关注点模块化。虽然现在可以获得许多AOP框架,但在这里我们要区分的只有两个流行的框架:Spring AOP和AspectJ。这里将会帮助你基于一些关键信息,为你的项目选择正确的技术。Spring AOP致力于提供一种能够与Spring IoC紧密集成的面向方面框架的实现,以便于解决在开

2017-08-21 16:24:57 738

原创 mysql索引使用

一条慢查询日志 mysql的索引是一把双刃剑,如果使用得当,会给系统带来极大的性能提升;相反的如果使用不当,则可能会带来灾难性的后果。最可怕的是前期很难发现,随着数据量的增加以及业务高峰期的临近,问题才会突然暴露出来。 本周我所负责的一个系统就出来了类似的问题,庆幸的是处理及时,没有造成灾难性的后果。今天抽时间把事情的经过记录下来,在未来的时间里鞭策自己:对新成员必

2017-06-05 11:14:13 418

转载 Map最优的遍历

我们都知道遍历Map一般有3种方法,values(),keySet()和entrySet(),常见的是keySet用的多,简单容易理解,entrySet()是返回Map中的静态内部类Entry类类型的Set实例,当然了你别说forEach,forEach只是一种代替for(int i=0;;)和while()遍历的一种方式,底层也是用迭代器实现的,只不过把部分东西隐藏了,建议大家平常开发中能用fo

2017-05-31 11:25:48 797

原创 35个Java代码性能优化总结

代码优化的目标是:1、减小代码的体积2、提高代码运行的效率代码优化细节1、尽量指定类、方法的final修饰符带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。如果

2017-05-26 16:41:23 265

原创 Java到底是不是一种纯面向对象语言

Java——是否确实的 “纯面向对象”?让我们深入到Java的世界,试图来证实它。在我刚开始学习 Java 的前面几年,我从书本里知道了 Java 是遵循 “面向对象编程范式(Object Oriented Programming paradigm)”的。在Java世界内一切都是对象,甚至包括字符串(String)这些都是对象(在 C 语言中,字符串是字符数组),那时候,我认为 Java是

2017-05-26 14:30:26 11886 2

原创 String 类

String str = “我是一个字符串”;String str2 = new String(“我也是一个字符串”)对于上面两种创建字符串的方式我来具体的分析一下:1、 对于String来说,有一个特殊的String pool,专门存储字符串数据。2、 String str = “我是一个字符串”的创建过程:首先、java会去到String pool 寻找有没有一个值为“我是一个

2017-05-26 10:38:17 293

原创 java多线程知

wait()与sleep()的区别wait():释放占有的对象锁,线程进入等待池,释放cpu,而其他正在等待的线程即可抢占此锁,获得锁的线程即可运行程序。而sleep()不同的是,线程调用此方法后,会休眠一段时间,休眠期间,会暂时释放cpu,但并不释放对象锁。也就是说,在休眠期间,其他线程依然无法进入此代码内部。休眠结束,线程重新获得cpu,执行代码。wait()和sleep()最大的不同

2017-05-24 16:40:34 178

原创 消息队列基本知识

topic主题,不同的业务线

2017-05-23 22:00:46 245

原创 SpringAOP

spring跟动态代理没关系,动态代理技术(AOP)是种思想,运用在某些特定的场景(具有横切逻辑)可以很好的解决问题,常见的实现有jdk动态代理和cglib,而spring中事务管理正是用到了这项技术。spring的强大在于他的低耦合、高内聚, 他不关心具体的持久层方案,不管是Hibernate、Mybatis或者它自带的SpringJDBC,都能很好的与其事务管理相结合,保证持久层操作的事务特性

2017-05-18 10:58:11 189

转载 Mysql索引介绍

索引是在创建表的时候会自动生成一个主键(以主键生成的)索引,所以我们可以直接搜索索引我们也可以创建  普通索引 create index t_job_index on e_user(t_job);创建索引名 被创建的表(创建的列名)  //格式所以索引可以多个. 删除普通索引drop index t_job_index on e_user;删除指定名称的索引    

2017-05-17 14:23:32 228

原创 dubbo使用的协议

1、缺省协议,使用基于mina1.1.7+hessian3.2.1的tbremoting交互。连接个数:单连接连接方式:长连接传输协议:TCP传输方式:NIO异步传输序列化:Hessian二进制序列化适用范围:传入传出参数数据包较小(建议小于100K),消费者比提供者个数多,单一消费者无法压满提供者,尽量不要用dubbo协议传输大文件或超大字符串。适用场景:常规远程服务方法调用2、

2017-05-17 11:56:10 1513

原创 集合框架和map

5.1结构         Collection      |List        |ArrayList:一般使用,数组实现,查询快,增删慢,线程不安全        |Vector:较为少用,线程安全,但效率较低        |LinkedList:双向链表实现,查询慢,增删快,线程不安全      |Set        |HashS

2017-05-16 18:02:50 201

原创 nio的实现原理

一.java NIO 和阻塞I/O的区别 假如现在你对阻塞I/O已有了一定了解,我们知道阻塞I/O在调用InputStream.read()方法时是阻塞的,它会一直等到数据到来时(或超时)才会返回;同样,在调用ServerSocket.accept()方法时,也会一直阻塞到有客户端连接才会返回,每个客户端连接过来后,服务端都会启动一个线程去处理该客户端的请求。阻塞I/O的通信模型示意图如下:

2017-05-16 09:41:37 1032

转载 ElasticJob详解

consoleconsole没有和elastic-job-lite发生直接的联系,而是借助ZK和 Elastic-job-lite联系了在一起 但是大家注意到Elastic-Job-Lite和zk怎么联系在一起的么?是的Listener 就是它。当Console增加或修改了zk上的节点时(这里指的是jobName节点下的节点和数据变动,感谢严欢欢同学指出),就会触发Listener,进

2017-05-12 10:39:42 1472

原创 Linux下Zookeeper安装、使用

进入到conf目录拷贝zoo_samle.cfg为zoo.cfg编辑zoo.cfg文件设置环境变量      vim /etc/profile      在export PATH语句前添加两行:  ZOOKEEPER=/usr/local/zookeeper/zookeeper-3.4.6  PATH=$PATH:$ZOOKEEPER

2017-05-10 10:49:15 303

Fragment实现底部选项卡切换

Fragment实现底部选项卡切换,大家快点去下载吧!

2014-09-26

仿QQ微信登录页面

android源码\仿QQ微信登录页面.rar

2014-09-24

空空如也

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

TA关注的人

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