自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Just Do It

成长的足迹

  • 博客(172)
  • 收藏
  • 关注

原创 面试可能遇到的一些问题

找工作可能遇到的一些问题1) 什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点。2) 线程和进程有什

2017-09-25 18:17:43 409 1

原创 年终回忆录(2016.02-2017.02)

看了看时间转瞬即逝,17年都2月了,还好没过15,笔者先给大家拜个晚年,祝大家鸡年大吉~(ps:第一次在博客中拜年,感觉怪怪的)一直想,为过去的16年做个年终总结,一直想,想,想,恩,对,也就是想想的意思了。作为一个程序员,愈发感觉,写篇技术性的博客比写一篇心灵鸡汤更简单,没办法,大家就硬着头皮看看我这篇以叙事为主的心灵鸡汤吧。

2017-02-09 18:07:33 693 2

原创 思想决定高度

先站位

2017-08-28 17:23:13 799

原创 Java,你用它的理由

Java已经有20年的历史了,甚至更久,而这取决于你所询问的人和你的计算方式。忽略它的年龄不看,Java依然排行第一。它的实用性、性能和向后兼容性都彰显其价值所在。2016年伊始,标志着我们已经走过了Java的20年历程。事实上,虽然Java宣称是于1995年5月23日公开发行(HotJava 浏览器却并没有获得同样的成功),但第一版官方JDK是在1996年的1月23日才正式发行,因此Ja

2017-01-14 11:34:01 443 3

转载 微服务:Java EE的拯救者还是掘墓人?

有人认为,微服务的大行其道是在给Java EE下达死刑判决书。也有人认为,Java EE已死的论调可笑至极。的读者朋友,你们怎么看?引言有人说,Java确实过于臃肿,经常“小题大做”。但PHP、Node.js扩展方面短板太明显,做小应用可以,大型应用就玩不转了。另外,Java EE领域有太多优秀框架可以解决开发效率的问题,事实上借用Spring等框架,开发的效率丝毫不亚于PHP。互联网

2017-01-07 18:49:08 514 1

原创 jboss日志暴涨,操作出现奇怪错误的问题

昨日部署预上线环境,jboss服务器一直出现无法启动的问题,后来找到原因,jboss的错误日志暴涨,一个小时错误日志直接将磁盘占满,无法成功启动。后来发现,一直重启jboss的原因,没有关闭jboss服务又去重复的startjboss服务。把服务器整个重启一次就ok。

2016-12-28 10:24:53 837 2

原创 关于File.separator 文件路

最近和测试兄弟调试,发现一个"/"和"\"。我的模拟测试环境是windows+tomcat,而测试的环境是linux+tomcat,文件路径的分隔符在windows系统和linux系统中是不一样。 比如说要在temp目录下建立一个test.txt文件,在Windows下应该这么写: File file1 = new File ("C:\tmp\test.txt"); 在Linu

2016-11-22 12:18:11 1104 4

原创 Mybatis和ibatis的区别

1、Mybatis实现了接口绑定,使用更加方便。 在ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件, 而Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便。 这可以说是Mybatis最重要的改进。 注意: 虽然Mybatis支持在接口中直接使用annotation的配置方式来简化配置, 不过

2016-10-31 10:42:11 1539 4

原创 $(document).ready is not a function的问题

用”jQuery”来代替jquery的“$”操作符

2016-10-19 14:55:41 2431 4

原创 http如何像tcp一样实时的收消息

http如何像tcp一样实时的收消息?一、webim如何实现消息推送 webim通常有三种方式实现推送通道: 1)WebSocket 2)FlashSocket 3)http轮询 其中1)和2)是用Tcp长连接实现的,其消息的实时性可以通过tcp保证。 方案3)才算是webim实现消息推送的“正统”方案,用http短连接轮询的方式实现“伪长连接”,既然是轮询,有朋友就对消息的实时性产生了

2016-09-26 09:48:47 1365 5

原创 一分钟学会负载均衡

最近在微信上看到了一些一分钟系列,copy一下,看看。 什么是负载均衡 负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。常见的负载均衡方案 常见互联网分布式架构如上,分为客户端层、反向代理nginx层、站点层、服务层、数据层。可以看到,每一个下游都有多个上游调用,只需要做到

2016-09-22 17:17:28 460 7

原创 Apache和Nginx的区别

Apache与Nginx的优缺点比较 1、nginx相对于apache的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 社区活跃,各种高性能模块出品迅速啊 apache 相对于nginx 的优

2016-09-14 14:19:30 400 4

原创 redis为啥快

Redis的高并发和快速原因很多,总结一下几点:        1. Redis是纯内存数据库,一般都是简单的存取操作,线程占用的时间很多,时间的花费主要集中在IO上,所以读取速度快。        2. 再说一下IO,Redis使用的是非阻塞IO,IO多路复用,使用了单线程来轮询描述符,将数据库的开、关、读、写都转换成了事件,减少了线程切换时上下文的切换和竞争。     

2016-09-10 08:23:13 789 6

原创 AMQ持久化方式

为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般都会采用持久化机制。 ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB,无论使用哪种持久化方式,消息的存储逻辑都是一致的。 就是在发送者将消息发送出去后,消息中心首先将消息存储到本地数据文件、内存数据库或者远程数据库等,然后试图将消息发送给接收者,发送成功则将消息从存储中删除,失败则继续尝试

2016-09-06 19:21:21 1234 2

原创 git的初步了解

Git Flow 是什么Git Flow是构建在Git之上的一个组织软件开发活动的模型,是在Git之上构建的一项软件开发最佳实践。Git Flow是一套使用Git进行源代码管理时的一套行为规范和简化部分Git操作的工具。2010年5月,在一篇名为“一种成功的Git分支模型”的博文中,@nvie介绍了一种在Git之上的软件开发模型。通过利用Git创建和管理分支的能力,为每个分支设定具有特定的含义名称,

2016-08-20 14:25:59 325 3

原创 InnoDB和MyIsAM的区别

MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持 这是网上对MyISAM和InnoDB的解释,很抽象吧,我们用白话的方式解释一下 其实也比较简单 所谓事务处理,就是原子性操作。 打个比方,支持事务处理的Innodb表,建设一个中,发帖是给积分的。你发了一个帖子 “MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持”这是网上对MyISAM和InnoDB的解释,很抽象吧,

2016-08-18 18:05:01 369 2

原创 深入浅出HashMap原理

转~ 1.HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。2.HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外

2016-08-05 15:20:16 742 1

原创 Redis-配置文件详解

1.基本配置 daemonize no 是否以后台进程启动 databases 16 创建database的数量(默认选中的是database 0)save 900 1 #刷新快照到硬盘中,必须满足两者要求才会触发,即900秒之后至少1个关键字发生变化。 save 300 10 #必须是300秒之后至少10个关键字发生变化。 save 60 10000 #必须是60秒之后至少1000

2016-06-21 11:22:06 448 5

原创 SpringMVC-前端控制器源码分析

上篇文章中提到了关于springmvc的请求流程,大家 可以看到中心就是前端控制器DispatcherServlet的作用,今天小编来讲一下关于DispatcherServlet的源码分析过程。第一步:前端控制器接收请求 DispatcherServlet中的jar包调用doDispatchprotected void doDispatch(HttpServletRequest request,

2016-06-13 09:31:11 877 3

原创 SpringMVC-轻松上手

SpringMVC-轻松上手谈到SpringMVC大家都不陌生,它是spring中的一部分,更好的与spring结合,这样也算是springmvc一大优点吧,因为我们在spring的jar包中可以轻松找到springmvc相关的jar包等等。谈到mvc大家都不陌生,小编也就不在这详细说明了,先来说说springmvc的请求步骤吧: 第一步:发起请求到前端控制器DispatcherServlet

2016-06-13 09:25:56 594 3

原创 Spring-事务管理

前段时间,小编在研究spring源码,这部分的时候,顺便看看了ssm框架的搭建,中间正好涉及到事务管理的配置和应用,所以就来写一写自己对spring事务的了解,这里就不研究事务的源码了,只是应用层的研究,会用即可的程度。 一、事务分析 大家也许对事务的概念不默认,最经典的例子就是我去银行取钱,害怕钱没到手,但是卡中的余额扣除了,相信有了事务的存在,再也不会出现这样的问题了。 在 Spring

2016-05-28 15:02:38 471 6

原创 Spring源码解读-Spring IoC容器初始化之资源注册

**上篇博客,讲到容器还没有发挥作用,需要注册,我们来看看注册吧。 这个过程是通过调用BeanDefinitionRegistry接口的实现来完成。这个注册过程将载入过程中解析得到的BeanDefinition向IoC容器进行注册。通过分析,在IoC容器内部将BeanDefinition注入到一个HashMap中去、IoC容器就是通过这个HashMap来持有这些BeanDefinition数据的。

2016-05-20 11:49:50 430 1

原创 Spring源码解读-Spring IoC容器初始化之资源解析

**上篇博客已经讲到,如何查找BeanDefinition信息(水源)的问题,这次我们要对信息进行解析,解析成容器认识的数据结构。 载入相当于把定义的BeanDefinition在IoC容器中转化成一个Spring内部表示的数据结构。IoC容器对Bean的管理和依赖注入功能的实现,是通过对其持有的BeanDefinition进行各种相关操作来完成的。 大家在写配置文件的时候,会有Bean这样的标

2016-05-20 11:17:16 448

原创 Spring源码解读-Spring IoC容器初始化之资源定位

IoC初始化过程 首先spring IoC容器的初始化,要分成三大部分,BeanDefinition的 Resource定位、载入和注册三个基本过程。 今天我要说的就是资源文件的定位,IoC容器就像是一个大水桶,首先我要将水注入吧,我们要去哪找水呢,当然要从我们的给的配置文件中了,小编写了一段特别简单的代码,然后将spring的源码,导入,断点调试一步步跟进去,篇幅比较大,请谅解。BeanFa

2016-05-20 10:09:12 658

原创 Java再学习-简单回调函数

轻松学会回调函数

2016-05-16 21:47:28 2221 4

原创 Spring源码解读--init属性和预实例化(延迟加载)

在IoC容器初始化过程中,默认是对BeanDefinition的定位,载入,解析和注册,此时的依赖注入并没有发生,只有在第一次向容器索要Bean时,第一次执行getBean调用时才会完成依赖注入,但是我们可以认为控制,在初始化时就开始依赖注入。Lazy-init属性,就是来控制预实例化。虽然这种使用方式会对容器初始化性能有一些影响,但是却能提高应用第一次取得Bean的性能。下面就对

2016-05-14 17:27:44 1955 2

原创 Java再学习-算法之选择排序

继上篇文章讲到插入排序和冒泡排序算法。这次来看一下选择排序。和上两个循环一样,还是分成两套循环,外循环起指针作用,用来指定每次循环的元素值和元素序列,而内部循环则起到真正的快速排序逻辑。首先如果我们取到第i值,那么我们要与第i+1,i+2,....等元素进行对比,找到i元素后面最小的元素,与之交换位置即可,只不过这里的交换位置比较新颖,我们看下面的代码:   package cn.tg

2016-05-10 20:07:07 753 2

原创 Java再学习-算法之插入排序

继上篇讲了冒泡排序的原理和代码,今天来讲一讲关于插入算法的逻辑。和冒泡排序不同,排序算法,是选择一个元素依次和位于前面的元素进行比较。比如我选择的是第i个元素,则要判断第i-1个元素的大小。        插入排序也分成两套循环,外套循环比如是指针,来选择从第几个元素开始比较,而内套循环则要开始比较选择元素和前面元素的大小,进行排序。代码如下:package cn.tgb.

2016-05-10 10:57:50 864 2

原创 Java再学习-算法之冒泡排序

Java排序,据说有八大排序,小编这次系列博客可能讲不了全部,我将自己理解比较到位的几个排序,和大家分享一下吧。今天来说一说冒泡排序,其实冒泡排序属于交换排序的一种,冒泡排序是最经典的交换排序,它的算法思想是:(假设数据存放在数组a[n]中)  1.比较a[0]和a[1],如果a[0]>a[1],则交换a[0],a[1],然后比较新的a[1](可能是原来的a[0])和a[2],如果a[1]>a

2016-05-09 20:48:01 1039 1

原创 Java再学习-反射机制

首先说到反射,大家肯定不会陌生,如果不知道反射,相信那些市面上常用的主流框架就不会出现了。废话不说,上主题!Java反射机制运行时判断任意一个对象所属的类构造任意一个类的对象判断任意一个类所具有的成员变量和方法调用一个对象的方法注意点:运行时,而不是编译时首先概念性的东西,小编就不细说了,想了解的直接问度娘吧,直接

2016-05-08 19:12:34 620 1

原创 Java再学习-JVM类加载和执行机制

JVM简介JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就

2016-05-07 19:17:36 756 1

原创 Java再学习-java集合(二)

上篇文章介绍了集合下的Set集合和List集合。这次我来介绍一下Queue集合和Map集合Queue集合Queue用于模拟队列这种数据结构,队列是FIFO的容器,队列的头部保存在队列存放时间最长的元素,队列尾部保存存放时间最短的元素。Queue有PriorityQueue实现类和Deque接口。PriorityQueue是一个比较标准的队列实现类,当保存元素时,不是按照队列

2016-05-03 14:14:31 418 1

原创 Java再学习-java集合(一)

Java集合类主要由两个接口派生出来Collection和Map,java集合可以分成四大类:Set、Map、Queue、List四大类,这次我要分别来介绍这四大类,以及这几类的性能比较。        List集合       首先List集合代表一个元素有序、可重复的集合,允许使用重复元素,可以通过索引来访问指定的集合元素。       首先我们要明白,List

2016-05-03 10:57:57 561 2

原创 Dubbo-Keepalived + Nginx 实现高可用web负载均衡

首先我们先来了解解决Nginx的高可用集群的问题,可以通过下面三种方式。1、阿里云:SLB;2、硬件负载均衡器(如:F5、Radware);3、软件方式实现高可用或负载均衡keepalive、lvs一、今天我们来介绍第三种方式 Keepalived  Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived 可以用来防止服务器单点故障的发生,通过配合 Ngi

2016-04-30 16:03:17 5519 2

原创 Dubbo-redis3解决负载均衡Session共享

由于redis3.0在2015年才出稳定版本,所以可能一些文档比较欠缺,如果有什么疑问可以看一下这个网址。tomcatRedisClusterEnableSessionManager  首先要准备tomcat集群,并且实现nginx的负载均衡。前期的工作我这里就不详细介绍了。还有关于网上一些解决session共享的一些思路,也可以参考一下下面的的博客 解决nginx负载均衡的session共享

2016-04-30 14:34:14 6615 5

原创 Dubbo-zookeeper的部署和安装

一、什么是zookeeperzookeeper是一套注册中心,用来管理集群的工具,zookeeper是apache hadoop下的产品,但是这里我们将zookeeper和阿里下的分布式框架Dubbo一起来使用。        二、zookeeper和Dubbo的集群框架图      三、zookeeper的部署和安装首先准备三台服务器服务器 1:192.168.1

2016-04-29 18:36:02 2230 3

原创 Dubbo-dubbo监控中心和简易监控中心的安装

继上篇文章讲到Dubbo管理控制台的安装,下面来讲一下Dubbo监控中心的安装。一、 监控 中 心服务接口 调 用统计 报 表 的 显示配置1、 Dubbo 服务提供者和服务消费者中的 spring 配置文件中增加以下配置:否则直连监控中心 -->截图如下:2、 Dubbo 简易监控中心的配置解释(不需要修改,使用默认配置)操作系

2016-04-29 14:35:26 3452 1

原创 Dubbo-管理控制台的安装

1.Dubbo安装

2016-04-29 14:23:53 1286 3

原创 hadoop入门教程-程序小实例

无论是在微信还是QQ,我们经常看到好友推荐这样的功能,其实这个功能是在大数据的基础上实现的,下面来看具体的代码实现:在src下添加三个类:JobRun.java:package com.lftgb.mr;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.

2016-03-31 22:09:04 2573 4

原创 hadoop入门教程-核心组件MR

hadoop分布式计算框架--mapReduce,简称MR(离线计算),设计理念为:----何为分布式计算;----移动计算,而不是移动数据;提到mapReduce,我们先来了解它的架构:* 首先是一个一主多从架构;* 其次,主要有主 jobTracker和从TaskTracker两部分;其中jobTracker负责调度分配每一个子任务task运行于taskTracker上,如

2016-03-31 22:02:21 978 1

空空如也

空空如也

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

TA关注的人

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