自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 设计模式之单例模式

1.单例模式的定义    保证一个类仅有一个实例,并提供一个访问它的全局访问点。    这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象      的方式,可以直接访问,不需要实例化该类的对象。1.非线程安全懒汉模式public class SingletonDemo {    private static Sin...

2018-11-13 11:09:40 178

原创 MQ如何实现消息延时

一、缘起很多时候,业务有“在一段时间之后,完成一个工作任务”的需求。例如:滴滴打车订单完成后,如果用户一直不评价,48小时后会将自动评价为5星。一般来说怎么实现这类“48小时后自动评价为5星”需求呢? 常见方案:启动一个cron定时任务,每小时跑一次,将完成时间超过48小时的订单取出,置为5星,并把评价状态置为已评价。假设订单表的结构为:t_order(oid, finish...

2018-11-03 14:17:43 1288

原创 什么时候用MQ

1.起因引入一个技术之前,首先应该解答的问题是,这个技术解决什么问题。就像微服务分层架构之前,应该首先回答,为什么要引入微服务,微服务究竟解决什么问题2.MQ是干嘛的消息总线(Message Queue),后文称MQ,是一种跨进程的通信机制,用于上下游传递消息。 在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了MQ之后,消息发送上游只...

2018-10-31 08:51:50 1297 2

原创 DNS轮询

经常有人会说DNS轮询是过时的技术,是可以被其他方案替代的,nginx前端加入lvs和keepalived可以替代“DNS轮询”,F5能搞定接入层高可用、扩展性、负载均衡,可以替代“DNS轮询”,“DNS轮询”究竟是不是过时的技术,是不是可以被其他方案替代,接下来本文将要做细致讨论。1.面临的问题nginx、lvs、keepalived、f5、DNS轮询,每每提到这些技术,往往讨论的是接入...

2018-10-29 14:20:58 7623 4

原创 架构 秒杀系统优化思路

1.秒杀为什么难做?1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息);2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据;3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。例如:小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万。又例如:12306抢票,票是有限的,库存一份,瞬时流量...

2018-10-26 21:38:59 193

原创 企业高并发成熟解决方案思考

要想解决高并发的问题,先需要弄清楚企业整体架构高并发发生在二处:1.负载均衡  2.数据库处分析完企业整体架构之后 1:开始搭建负载均衡服务器 2:演示负载均衡服务器的效果第一种:解决方案    DNS场景:我说的大数据量处理是指同时需要对数据进行检索查询,同时有高并发的增删改操作; 大数据量的处理例如腾讯,盛大,动辄数以亿计的帐号,怎么能这...

2018-09-18 14:29:23 979

原创 关于分布式集群间实现Session共享的思考

1.开篇针对企业,为了应对庞大的用户访问压力,目前大多数大型网站服务器都采用集群部署的方式;针对个人,仅一台服务器而言,也会安装多个tomcat进行错时更新,保证更新后台业务时服务不断开,即模拟了集群的运行方式。在此集群中,我们就不得不考虑一个用户鉴权的问题,即在不同服务上如何保证用户均已登录,并能获取相同的用户登录信息。2.java web 公认的用户鉴权机制说此部分之前先了解几个概念: 1.请...

2018-04-02 20:21:14 681

原创 Java Spring WebSocket实现后端消息主动推送

这篇文章将介绍如何构建一个简单的WebSocket消息推送Demo使用eclipse建立maven项目后引入相关的依赖jar包,如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/X...

2018-03-30 14:54:53 14218 2

原创 Tomcat实战-调优方案

最近项目跑着发现速度有点慢,然后就分析了一下原因,发现tomcat采用的都是默认配置,于是决定对tomcat调优。我们可以通过优化tomcat以此来提高网站的并发能力。提高Tomcat的性能可以分为两个方向。1.服务器资源:服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响,所以说服务器性能牛B,Tomcat也不会太差。当然提高服务器的硬件配置,是需要大量RMB的支持的。所以不到万不得已...

2018-03-19 19:56:57 576

原创 生活感悟

已经差不多1年没有写过博客了,这一年工作也比较忙,这一年还是把主要精力发在了生活上,这一年已经慢慢适应了南昌的生活,从北京回到南昌这样一个生活节凑相对慢的城市,但是技术还是需要不断学习啊,革命需要继续,所以从下周开始,决定开始重新写写博客了....................

2018-03-17 21:09:16 215

转载 Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)

今天工作任务比较轻松,研究了一下Dubbo中间件Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)标签: Dubbospringmvczookeeper负载均衡2014-11-14 08:14 56411人阅读 评论(48)收藏举报分类: SpringMVC(10)

2017-02-24 17:19:26 729 1

原创 JVM调优:基本垃圾回收算法

我们可以从不同的的角度去划分垃圾回收算法:按照基本回收策略分引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。标记-清除(Mark-Sweep):

2017-02-16 06:43:58 302

原创 JVM调优总结概念

数据类型Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,char,float,double,Boolean,return

2017-02-16 05:53:33 322

原创 java八大排序算法之冒泡排序

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。  冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作

2017-02-15 06:16:03 349

原创 java并发基础

当一个对象或变量可以被多个线程共享的时候,就有可能使得程序的逻辑出现问题。 在一个对象中有一个变量i=0,有两个线程A,B都想对i加1,这个时候便有问题显现出来,关键就是对i加1的这个过程不是原子操作。要想对i进行递增,第一步就是获取i的值,当A获取i的值为0,在A将新的值写入A之前,B也获取了A的值0,然后A写入,i变成1,然后B也写入i,i这个时候依然是1. 当然java的内存模型没有上面这么

2015-09-11 11:11:30 364

原创 java中有没有引用传递?

一、首先来明确一下"值传递"和"引用传递的"区别值传递:是对所传递参数进行一次副本拷贝,对参数的修改只是对副本的修改,函数调用结束,副本丢弃,原来的变量不变(即实参不变)引用传递:参数被传递到函数时,不复制副本,而是直接将参数自身传入到函数,函数内对参数的任何改变都将反映到原来的变量上。二、对引用传递的认识误区为什么有很多人认为java有引用传递呢?一种情况是有

2015-09-08 23:26:32 682

原创 深入理解String

我们都知道String是不可变的(immutable),不变性的体现是:String类内部通过char数组来保存字符串,而这个char数组被声明为:final。那么为什么要将String类声明为不可变呢?了解设计模式的你应该知道有一种模式叫做“不变模式”(immutable pattern),String类的设计就是使用了不变模式,有兴趣的朋友可以看看“不变模式”讲的具体是啥东东。要深入理

2015-09-08 22:25:54 630

转载 SwipeListView 详解 实现微信,QQ等滑动删除效果

今天看别人项目,看到别人使用了SwipeListView,Google一把,果然github上的,也参考了csdn上的几篇文章,然后自己写了个例子,分享给大家。效果图:嗯,看一眼SwipeListView的参数的设置:If you decide to use SwipeListView as a view, you can define it in yo

2015-09-03 18:35:23 473

转载 Android自定义控件二

今天学习了一下csdn大神的自定义控件,这里马上转载一下Android 自定义View (二) 进阶分类: 【android 进阶之路】 【Android 自定义控件之起步】2014-04-22 11:39 13135人阅读 评论(50) 收藏 举报android自定义View自定义View转载请标明出处:http://blog.csdn.net/lmj

2015-09-02 18:26:28 448

原创 利用百度地图定位城市

先上图     接下来,我们就要实现这样一个效果:下面贴出主要的代码    android:layout_width="match_parent"    android:background="#F3F3F3"    android:layout_height="match_parent" >             android:id="@+id/lay

2015-09-02 17:08:09 690

原创 百度地图

要想使用百度地图需要以下几步:a.申请密钥,到百度API控制台的页面:http://lbsyun.baidu.com/apiconsole/keyb、关于安全码 ( 数字签名;包名 ) 的获取:黑框框住的就是数字签名,然后包名就是咱们应用的包名,直接用分号连接:例如:F5:10:39:D9:81:57:BD:2E:A0:CD:E3:EB:5E:C4:CC:E0:

2015-09-02 10:30:33 404

转载 Android自定义控件

从今天开始陆续想写一些关于Android自定义控件的文章,好把工作中和学习中的知识总结一下很多的Android入门程序猿来说对于Android自定义View,可能都是比较恐惧的,但是这又是高手进阶的必经之路,所有准备在自定义View上面花一些功夫,多写一些文章。先总结下自定义View的步骤:1、自定义View的属性2、在View的构造方法中获得我们自定义的属性

2015-08-30 23:04:37 357

原创 开源框架xUtils的学习

xUtils简介xUtils 包含了很多实用的android工具。xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...xUitls 最低兼容android 2.2 (api level 8)目前xUtils主要有四大模块:DbUtils模块:android中的orm框架,一行代

2015-08-29 18:45:17 408

原创 Java 反射 Reflection

1. 了解 Java 中的反射1.1 什么是 Java 的反射Java 反射是可以让我们在运行时获取类的函数、属性、父类、接口等 Class 内部信息的机制。通过反射还可以让我们在运行期实例化对象,调用方法,通过调用 get/set 方法获取变量的值,即使方法或属性是私有的的也可以通过反射的形式调用,这种“看透 class”的能力被称为内省,这种能力在框架开发中尤为重要。 有些情况

2015-08-29 18:34:10 581

原创 关于匿名内部类,非静态内部类会造成内存泄露的隐患。

注意是内存泄露,不是内存溢出。啊首先先看一下下面这样一段代码@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    new Thr

2015-08-29 17:59:33 5204 1

转载 Android屏幕适配全攻略(最权威的官方适配指导)

今天周六,阴天,逛CSDN发现了一篇好文章,学习了,这里转载一下,希望对朋友们也有所收获。CSDN专家精选,微信开发学习路线大有看头!     【博乐】点评美文,得C币     iOS开发前沿与Swift探秘     Swift初级教程大汇总     Android屏幕适配全攻略(最权威的官方适配指导)分类: Android开发经验2015-05

2015-08-29 17:30:48 572 1

转载 IT人士应该知道的一个趋势-在线教育

为什么笔者要讨论这个话题呢,很明显,在移动设备无处不在的时代,我们的一些学习方式也应该会发生一些变化,传统的线下教育模式已经无法满足时代的快速变革,想快速汲取最新最有价值的知识只能通过在线教育来获得,不过现在的在线教育还不够成熟,用户体验还不是特别好,课程质量不是特别的高,偏入门基础的课程较多,付费模式也都是千篇一律,反正笔者到现在也没有见到有特别颠覆传统教育的模式的在线教育平台。下面就简单分析一

2015-06-28 18:37:01 655

原创 java实现快速排序

public static void quickSort(inta[], int start, int end){        inti,j;         i = start;         j = end;         if((a==null)||(a.length==0))             return;         whil

2013-10-11 21:12:41 428

原创 List、Map、Set三个接口,存取元素时,各有什么特点?

首先,List与Set具有相似性,它们都是单列元素的集合,所以,它们有一个功共同的父接口,叫 Collection。Set里面不允许有重复的元素,所谓重复,即不能有两个相等(注意,不是仅仅是相同)的对象,即假设Set集合中有了一个A对象,现在我要向Set集合再存入一个B对象,但B对象与A对象equals相等,则B对象存储不进去,所以,Set集合 的add方法有一个boolean的返回值,当集合中没

2013-10-07 16:59:12 1138

原创 描述一下JVM加载class文件的原理机制?

JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。java编译器只要面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。JVM中类的装载是由ClassLoader和

2013-10-07 16:57:41 1028

原创 说出ArrayList,Vector, LinkedList的存储性能和特性?

ArrayList和Vector在底层都是用数组来存储数据,插入时就会创造一个新数组并把数据全部转移至其内,因此在这两种数据结构中插入数据会有很大损耗,但是由于数组特性,他们索引取出数据性能较好。Vector更注重线程安全,所以通用性较差,大多数情况下可以用Arraylist就够了。LinkedList内部结构是双向链表,即保存一种含有前后索引的对象的引用的对象的方式(好纠结。。。),

2013-10-07 16:56:11 827

翻译 程序员面试之道(《程序员面试笔试宝典》)之如何与企业进行待遇谈判?

企业给所有求职者的待遇是一模一样的吗?对此问题,本书第5.1.5“同一家企业给所有的求职者的待遇都一样吗”节中有过比较深入的分析,本节不再赘述。对于待遇(备注:此处的待遇,不仅包括工资,还包括奖金、股票分红等其他收入),求职者如果不主动争取,就只能拿到一个全国统一价了。21世纪什么最重要?人才!据说,比尔盖茨就曾经表示:只要允许我带走100个人我可以再造一个微软。而这也从一个侧面反映了IT

2013-10-04 20:51:25 565

Struts+hibernate经典的分页代码

比较好的实现了分页效果,非常适合初学者。

2012-09-27

空空如也

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

TA关注的人

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