自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Spring为核心

本博客中所讲到的原创技术,都是经过本人亲测得出的结果。本人理想是让我的博客成为我技术成长的笔记本。

  • 博客(103)
  • 资源 (1)
  • 收藏
  • 关注

原创 redis 在 mac 下的安装与启动

简介:1.redis 是一个高性能的 Key,Value 数据库,默认端口是 6379。2.典型的非关系型数据库,不用写sql语句的数据库;3.查询频率高,且查询的是相同的内容,就用 redis 做缓存;(在高并发的时候对关系型数据库起到一个很好的补充作用)下载、安装redis:官网下载,下载 stable 版本,稳定版本 移动到你想要的目录:mv redis-5.0.5 ...

2019-08-01 17:53:58 272

转载 CentOS搭建ShowDoc文档工具

1. 准备 Nginx+ PHP环境安装 Nginx使用 yum安装 Nginx:yum install nginx1修改 /etc/nginx/nginx.conf文件为如下内容:user nginx;worker_processes auto;error_log /var/log/nginx/error.log;pid /run/nginx.pid;incl...

2018-09-27 10:36:24 652

转载 Confluence wiki——CentOS6.8搭建详解

参考资料:http://www.cnblogs.com/jackyyou/p/5534231.html     http://www.ilanni.com/?p=11989公司需要搭建WIKI方便员工将一些资料记录下来,开始搭建了一遍,感觉有些乱,所以我就又找了个干净的系统搭了第二次,现在把详细流程写下来。整个安装过程需要用到的包裹:jre-8u131-linux-x64.tar.gz...

2018-09-27 10:18:54 511

转载 50个经典的增长黑客策略高效实现增长

一家公司仅仅赚取可观的利润,并将其再投资于长期的增长是远远不够的。对于现在的创业公司来说,增长是衡量成功的唯一标准,更多的公司需要寻找更具独创性的方法,让新用户了解它们的产品或服务。这就是增长黑客策略。什么是增长黑客?在我们阅读50个经典的增长黑客策略之前,先来看一个假设。假设你现在在一家餐馆里,你吃完饭,该付钱了。当你从钱包里掏出一张卡片并决定给多少小费时,服务员会把账单带给你,然后退到柜台。与...

2018-05-23 14:19:36 7731

转载 Linux新建用户

创建新用户创建一个用户名为:linuxidc[root@localhost ~]# adduser linuxidc为这个用户初始化密码,linux会判断密码复杂度,不过可以强行忽略:[root@localhost ~]# passwd linuxidc更改用户 zhangbiao 的密码 。新的 密码:无效的密码: 密码未通过字典检查 - 过于简单化/系统化重

2017-09-01 10:49:40 444

原创 zookeeper在Dubbo中扮演的角色和起到的作用

是dubbo推荐的注册中心。流程:1.服务提供者启动时向/dubbo/com.foo.BarService/providers目录下写入URL2.服务消费者启动时订阅/dubbo/com.foo.BarService/providers目录下的URL向/dubbo/com.foo.BarService/consumers目录下写入自己的URL3.监控中心启动时订

2017-07-02 19:05:59 1504

转载 HBase 常用Shell命令

进入hbase shell console$HBASE_HOME/bin/hbase shell如果有kerberos认证,需要事先使用相应的keytab进行一下认证(使用kinit命令),认证成功之后再使用hbase shell进入可以使用whoami命令可查看当前用户hbase(main)>whoami表的

2017-07-02 18:51:12 342

转载 类似Google Dapper,微服务需要这样的分布式跟踪工具

作为工程师,我们总是喜欢让事情变得简单化、自动化。其实仔细去想,面向过程编程就是这种思维的产物之一,再到后来,我们发明了面向对象编程。不管是哪种编程模式,这些概念永远都有着核心的共同点:把一些大的东西折分成小的、独立的模块,再开放或者共用抽象层,隐藏实现层的细节。抽象能够帮助我们更好的理解大型的、复杂的系统,同时编写独立的模块也更有效率。我们进行系统架构设计的方式也在不断地革新:

2017-07-02 18:45:36 747

原创 Java中ArrayList和LinkedList区别

ArrayList和LinkedList的大致区别如下:1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。  

2017-06-20 14:14:26 266

原创 forward和redirect的区别

SetCookie、GetCookie自行设定有效日期:Response.Cookies(CookieName).Expires=#日期#  页面转发区别:在Servlet中两种实现:       forward方式:request.getRequestDispatcher("/somePage.jsp").forward

2017-06-20 14:13:18 266

原创 Servlet 生命周期、工作原理

Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁。init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。service():它是S

2017-06-20 14:12:09 264

原创 http响应状态码大全

http状态返回代码 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。http状态返回代码代码   说明100   (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101   (切换协议)请求者已要求服务器切换协议,服务器已确认并准备切换。http状态返回代码 2xx(成功)表示成功处理了请求的状态代码。

2017-06-20 14:10:38 498

转载 成为java高手必读的11本书

“学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会。个人认为看书有两点好处:1.能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料2.对着书上的代码自己敲的时候方便“看完书之后再次提升自我的最好途径是看一些相关的好博文“,我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是自己看书学习之后的一些总结

2017-06-07 11:38:56 2641 1

原创 java线程安全的单利模式

首先定义3个类,一个是容器类,属性有容器最大容量和当前容量;另外两个分别是生产者和消费者类,二者分别有生产方法和消费方法(均在各自的run方法中实现,实际上最好抽离出来成为一个单独的方法)packagetest3; classContainer{    publicint max; //定义容器最大容量    pu

2017-05-25 16:00:46 450

转载 Java开发中的23种设计模式详解

一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式

2017-04-26 09:02:13 551

转载 Linux负载均衡软件LVS之一(概念篇)

一、 LVS简介LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org。现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能

2017-04-26 09:00:41 415

转载 Java基础之集合

最近看泛型的时候,刚好看到集合相关的,所以想把一些常用集合类型的思路理清一下。参考文章: http://android.blog.51cto.com/268543/400557/ http://www.cnblogs.com/xwdreamer/archive/2012/05/30/2526822.html http://blog.csdn.net/softwave/artic

2017-04-26 08:59:17 291

转载 session原理及实现共享

最近,在工作中遇到一个问题,问题描述:一个用户在登录成功以后会把用户信息存储在session当中,这时session所在服务器为server1,那么用户在session失效之前如果再次使用app,那么可能会被路由到server2,这时问题来了,server没有该用户的session,所以需要用户重新登录,这时的用户体验会非常不好,所以我们想如何实现多台server之间共享session,让用户状态

2017-04-26 08:57:44 3409

转载 HttpClient使用详解

Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会

2017-04-26 08:51:30 353

转载 Java Volatile(包含对volatile数组和对象的理解)

1.多线程中重要概念1.1 可见性也就说假设一个对象中有一个变量i,那么i是保存在main memory中的,当某一个线程要操作i的时候,首先需要从main memory中将i 加载到这个线程的working memory中,这个时候working memory中就有了一个i的拷贝,这个时候此线程对i的修改都在其working memory中,直到其将i从working memory写

2017-04-26 08:49:06 4236 1

转载 sql优化的几种方法

我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享! (1)      选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基

2017-04-26 08:47:59 976

原创 simpledateformat线程不安全解决方案

1      出现原因代码功能性测试和低并发测试时一切正常,但是高并发多线程性能测试时出现Java.lang.NumberFormatException: multiplepoints错误,排查原因发现是SimpleDateFormat线程不安全引起。2      网上解决方案1.      局部变量,每次new SimpleDateFormat,这样开销过大,对性

2017-04-26 08:46:27 402

转载 线程池的原理及实现

1、线程池简介:    多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。        假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。    如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。                一个线程

2017-04-26 08:45:52 553

转载 JVM性能调优

最近因项目存在内存泄漏,故进行大规模的JVM性能调优 , 现把经验做一记录。一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代)Tenured(年老代)永久代(Perm)  其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配,但可以通过

2017-04-26 08:43:38 237

转载 ArrayList自动扩容解析

探索ArrayList自动改变size真相ArrayList的列表对象实质上是存储在一个引用型数组里的,有人认为该数组有“自动增长机制”可以自动改变size大小。正式地说,该数组是无法改变大小的,实际上它只是改变了该引用型数组的指向而已。下面,让我们来看看java是怎样实现ArrayList类的。一、ArrayList类的实质     ArrayList底层采用Ob

2017-04-26 08:41:45 223

转载 Java内存区域划分、内存分配原理

运行时数据区域        Java虚拟机在执行Java的过程中会把管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,而有的区域则依赖线程的启动和结束而创建和销毁。       Java虚拟机包括下面几个运行时数据区域:        程序计数器        程序计数器是

2017-04-26 08:40:56 242

转载 实现Http Server的三种方法

一、使用SUN公司在JDK6中提供的新包com.sun.net.httpserver   JDK6提供了一个简单的Http Server API,据此我们可以构建自己的嵌入式Http Server,它支持Http和Https协议,提供了HTTP1.1的部分实现,没有被实现的那部分可以通过扩展已有的Http Server API来实现,程序员必须自己实现HttpHandler接口,H

2017-04-26 08:39:33 36096

转载 TCP/IP四层模型

TCP/IP参考模型    ISO制定的OSI参考模型的过于庞大、复杂招致了许多批评。与此对照,由技术人员自己开发的TCP/IP协议栈获得了更为广泛的应用。如图2-1所示,是TCP/IP参考模型和OSI参考模型的对比示意图。            图2-1  TCP/IP参考模型  2.1 TCP/IP参考模型的层次结构  TCP/IP协议栈是美国国防部高级研究计划局计

2017-04-26 08:37:01 532

转载 GC的三大基础算法

1. 垃圾(Garbage)就是需要回收的对象。作为编写程序的人,是可以做出“这个对象已经不再需要了”这样的判断,但计算机是做不到的。因此,如果程序(通过某个变量等等)可能会直接或间接地引用一个对象,那么这个对象就被视为“存活”;与之相反,已经引用不到的对象被视为“死亡”。将这些“死亡”对象找出来,然后作为垃圾进行回收,这就是GC的本质。2、根(Root)就是判

2017-04-26 08:34:36 1332

转载 HashMap和Hashtable的区别

HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java

2017-04-26 08:33:25 207

转载 HashMap实现原理分析

1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。      数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难

2017-04-26 08:31:14 181

转载 最近5年133个Java面试问题列表

Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入。 在我初入职场的时候,类似于 Vector 与 Array 的区别、HashMap 与 Hashtable 的区别是最流行的问题,只需要记住它们,就能在面试中获得更好的机会,但这种情形已经不复存在。如今,你

2017-04-24 10:05:46 582

转载 JAVA多线程和并发基础面试题

Java多线程面试问题1. 进程和线程之间有什么不同?一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的单一进程。线程可以被称为轻量级进程。线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源。2. 多线程编程的好处是什么?在多线

2017-04-24 10:01:49 402

转载 java List 排序 Collections.sort()

用Collections.sort方法对list排序有两种方法 第一种是list中的对象实现Comparable接口,如下:[java] view plaincopy/**  * 根据order对User排序 */  public class User implements Comparable{       private String name;      

2016-01-21 11:35:52 532

转载 正则表达式30分钟入门教程

首页 | 常用正则表达式 | 正则表达式测试工具正则表达式30分钟入门教程版本:v2.33 (2013-1-10) 作者:deerchao 转载请注明来源目录跳过目录本文目标如何使用本教程正则表达式到底是什么东西?入门测试正则表达式元字符字符转义重复字符类分枝条件反义分组后向引用零宽断言负向零宽断言注释贪婪与懒惰处理选项平衡组/递归匹配还有些什么东西没提到联系作

2015-10-30 15:18:00 319

原创 关于get方式和post方式“安全性”讨论

如果有人问你,GET和POST,有什么区别?你会如何回答?可能很多人都已经想到了的答案是:GET使用URL或Cookie传参。而POST将数据放在BODY中。GET的URL会有长度上的限制,则POST的数据则可以非常大。POST比GET安全,因为数据在地址栏上不可见。幸的是,这个答案还是Google搜索的头版头条。get请求通过url(请求行)提交数据,在url中可以看到所传参数。po

2015-09-17 13:59:27 4321 1

原创 spring security详解

always-use-default-target="true" default-target-url="/index.do" />                下边这些是标签属性说明: 配置说明:   lowercase-comparisons:表示URL比较前先转为小写。   path-type:表示使用Apache Ant的匹配模式。   access-deni

2015-04-29 22:44:49 520

原创 Bootstrap教程--(1)入门篇

什么是 Bootstrap?Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,一个用于快速开发 Web 应用程序和网站的前端框架。Bootstrap 是2011 年八月在 GitHub 上发布的开源产品,由 Twitter 的 Mark Otto 和Jacob Thornton 开发的。为什么使用 Bootstrap?移动设备优先:自 Bootst

2015-04-25 13:42:44 719

转载 4种系统间交互方法比较

4种系统间交互方法比较指相对独立子系统间的交互指标\方式API数据文件共享数据库(web系统)根域名cookie实效性高低最高实时时间效率高低最高低实时空间效率低高低-实时占用带宽低低低低系统设计正交性高高低低

2015-04-20 22:47:24 1319

原创 map和list遍历测试和遍历map的四种方法

public static void main(String[] args) {  Map map = new HashMap();  map.put("1", "value1");  map.put("2", "value2");  map.put("3", "value3");    //第一种:普遍使用,二次取值  System.out.println("通过

2015-04-20 22:45:24 437

spring3.1所需的全部jar包

此包为本人亲测spring3.1所需的全部jar包

2015-04-03

空空如也

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

TA关注的人

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