自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜鸟程序猿的博客

小小菜鸟请大神多多指教

  • 博客(59)
  • 资源 (8)
  • 收藏
  • 关注

转载 单例模式漫画版

转载:https://blog.csdn.net/bjweimengshu/article/details/78716839    —————  第二天  —————              单例模式第一版:  public class Singleton {priva...

2018-08-15 15:10:23 434

原创 简述HashMap

HashMap就是一张hash表,键和值都没有排序。HashMap是非线程安全的,只用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。HashMap 实现了Serializable接口,因此它支持序列化。HashMap 容量设为不小于指定容量的2的幂次方,且最大值不能超过2的30次方。HashMap的存储结构紫色部分即代表哈希表本身(其实是一个...

2018-03-28 22:19:44 1745 1

原创 Spring事务的一些特性

事务的四大特征1.原子性:一个事务中所有对数据库的操作是一个不可分割的操作序列,要么全做要么全不做2.一致性:数据不会因为事务的执行而遭到破坏3.隔离性:一个事物的执行,不受其他事务的干扰,即并发执行的事物之间互不干扰4.持久性:一个事物一旦提交,它对数据库的改变就是永久的五个隔离级别1.default:默认的事务隔离级别,跟具体的数据有关,mysql默认的事务隔离级别是repeatable_re...

2018-03-28 13:36:15 1152

转载 轻量级分布式 RPC 框架

RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样。RPC 可基于 HTTP 或 TCP 协议,Web Service 就是基于 HTTP 协议的 RPC,它具有良好的跨平台性,但其性能却不如基于 TCP 协议的 RPC。会两方面会直接影响 RPC 的性能,一是传输方式,二是序列化。众所周知,TCP 是传输层协议,...

2018-03-23 08:55:47 246

原创 ZooKeeper分布式锁的流程

分布式锁定义:分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问,以达到保证数据的一致性。工作流程:1、在zookeeper指定节点(locks)下创建临时顺序节点node_n2、获取locks下所有子节点children3、对子节点按节点自增序号从小到大排序4、判断本节点是不是第一个子节点,若是,则获取锁;若不是,则监听比该节点小的那个节点的删除事件5、若监听事件生效...

2018-03-19 16:02:49 471

原创 Zookeeper服务注册与发现

Zookeeper作为服务注册与发现的解决方案,它有如下优点:1. 它提供的简单API2. 已有互联网公司(例如:Pinterest,Airbnb)使用它来进行服务注册与发现3. 支持多语言的客户端4. 通过Watcher机制实现Push模型,服务注册信息的变更能够及时通知服务消费方缺点是:1. 引入新的Zookeeper组件,带来新的复杂性和运维问题2. 需自己通过它提供的API来实现服务注册与...

2018-03-19 15:33:15 7631

原创 集群和分布式区别

分布式:一个业务分拆多个子业务,部署在不同的服务器上 彼此之间仅仅通过消息传递进行通信和协调的系统集群:同一个业务,部署在多个服务器上集群架构图:分布式架构图:...

2018-03-19 14:43:41 286

原创 简述分布式RPC框架

RPC定义:远程过程调用,是实现分布式计算的基础。实现方式:1.基于TCP协议的RPC;2.基于HTTP协议的RPC;处理过程:一个简单的RPC过程包括一个服务消费者和服务提供者,服务消费者需要使用服务提供者的提供的服务,就需要传给服务提供方相关的信息,这些信息包括服务名称(实际上是一个接口),方法名称,方法的参数类型,参数个数等参数列表信息以及对应的参数,服务提供者根据这些信息返回处理结果给服务...

2018-03-19 14:42:53 2791

转载 10个实用的但偏执的Java编程技术

10个最有用但偏执的Java编程技术1.将String字符串放在最前面为了防止偶发性的NullPointerException 异常,我们通常将String放置在equals()函数的左边来实现字符串比较,如下代码:// Badif (variable.equals("literal")) { ... }// Goodif ("literal".equals(variable)) { ......

2018-02-27 17:17:23 201

原创 Eclipse 安装反编译插件jadclipse

Eclipse 安装反编译插件jadclipse工具:jadClipse version:3.3.0的jar包Eclipse Java EE IDE for Web Developers. Version: Indigo Service Release 1jad.exe可执行文件步骤:1、先下载jadClipse的jar包    链接:sourceforge.net/projects/jadcli...

2018-02-27 14:29:06 279

转载 Git远程操作详解

原文出处: 阮一峰 Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能。Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。git clonegit remotegit fetchgit pullgit push本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解。同时,本...

2018-02-27 14:18:12 279

转载 IntelliJ远程调试教程

对于分布式系统的调试不知道大家有什么好的方法。对于我来说,在知道远程调试这个方法之前就是在代码中打各种log,然后重新部署,上线,调试,这样比较费时。今天咱们来了解了解Java远程调试这个牛逼的功能,本文以Intellij IDEA为例讲解怎么使用远程调试。以Thrift入门教程这篇文章中使用的程序作为例子。这个程序由Thrift服务端和客户端组成。描述一下远程调试需要解决的问题:服务端程序运行在...

2018-02-27 14:13:52 279

转载 Git 的 4 个阶段的撤销更改

来源:张京www.fengerzh.com/git-reset/虽然git诞生距今已有12年之久,网上各种关于git的介绍文章数不胜数,但是依然有很多人(包括我自己在内)对于它的功能不能完全掌握。以下的介绍只是基于我个人对于git的理解,并且可能生编硬造了一些不完全符合git说法的词语。目的只是为了让git通俗化,使初学者也能大概了解如何快速上手git。同时,下面所有讨论,我们都假设只使用一个分支...

2018-02-27 14:12:16 170

转载 架构师必备词汇和知识点

架构师必备词汇和知识点01 高可用负载均衡(负载均衡算法)反向代理服务隔离服务限流服务降级(自动优雅降级)失效转移超时重试(代理超时、容器超时、前端超时、中间件超时、数据库超时、NoSql超时)回滚机制(上线回滚、数据库版本回滚、事务回滚)02 高并发应用缓存HTTP 缓存多级缓存分布式缓存连接池异步并发03 分布式事务二阶段提交(强一致)三阶段提交(强一致)消息中间件(最终一致性),推荐阿里的 ...

2018-02-27 14:09:49 684

转载 sql查询优化30个

sql查询优化30个1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select...

2018-02-27 14:05:19 329

转载 MySQL主从复制的实现过程

一、什么是主从复制将主数据库中的DDL和DML操作通过二进制日志传输到从数据库上,然后将这些日志重新执行(重做);从而使得从数据库的数据与主数据库保持一致。二、主从复制的作用1、主数据库出现问题,可以切换到从数据库。2、可以进行数据库层面的读写分离。3、可以在从数据库上进行日常备份。三、复制过程Binary log:主数据库的二进制日志。Relay log:从服务器的中继日志。第一步:master...

2018-02-27 13:59:58 244

转载 单点登录原理与简单实现

一、单系统登录机制1、http无状态协议  web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系  但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴别浏览器请求...

2018-02-27 13:55:53 150

转载 ActiveMQ之HelloWorld

篇文章从代码角度去实现一个mq。因为ActiveMQ是对JMS的一种实现,因此,AMQ的开发步骤就应该和JMS的开发模型一样。1. 创建ConnectionFactory2. 创建Connection3. 创建Session4. 创建Destination/Topic5. 创建Producer/Consumer[java] view

2017-06-27 22:23:14 623

转载 JVM运行机制

本文主要讨论以下内容:1. JVM启动流程2. JVM基本结构3. 内存模型JVM启动流程1. 我们在启动一个JAVA程序的时候一般是通过java命令启动。2. 运行java命令后JVM会首先加载jvm.cfg文件3. 通过cfg找到JVM.DLL4. jvm.dll初始化jvm并获得JNIEnv接口用来findClass

2017-06-27 22:20:47 476

转载 hashMap的原理 深入理解

首先再次强调hashcode (==)和equals的真正含义(我记得以前有人会说,equals是判断对象内容,hashcode是判断是否相等之类):equals:是否同一个对象实例。注意,是“实例”。比如String s = new String(“test”);  s.equals(s), 这就是同一个对象实例的比较;等号(==):对比对象实例的内存地址(也即对象实例的ID),

2017-06-27 22:15:23 513

转载 关于单例模式的DoubleCheckLock同步的思考

在javaeye上看到很多朋友都提出单例模式的一些变种实现,比如加入了即时加载和DoubleCheckLock机制,来提高并发性能。但事实上这些机制真的必要吗? 目前公认影响单例性能的要素有两个:一是实例构造时间开销,一是获取单例实例的同步阻塞开销。 我的理解是,并发相对与同步阻塞的优势,在于当两条线程中的一条在执行时间开销较大的操作,而另一条线程无须执行该操作,则并发执行保证了开

2017-04-08 13:05:28 1232

转载 Java基础学习过程

JVM 1. 内存模型( 内存分为几部分? 堆溢出、栈溢出原因及实例?线上如何排查?) 2. 类加载机制 3. 垃圾回收 Java基础 什么是接口?什么是抽象类?区别是什么? 什么是序列化? 网络通信过程及实践 什么是线程?java线程池运行过程及实践(Executors)

2017-04-07 13:08:45 721

转载 回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议

引言    其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。  但是,最近问LZ的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回复了。  其实之前L

2017-03-20 12:51:26 619

转载 jsp页面格式化数字或时间

Tags   fmt:requestEncoding fmt:setLocale fmt:timeZone fmt:setTimeZone fmt:bundle fmt:setBundle fmt:message fmt:param fmt:formatNumber fmt:parseNumber fmt:formatDate fmt:parseDa

2017-03-02 08:38:54 451

转载 GitLab 安装配置笔记

GitLab的安装方式GitLab的两种安装方法:编译安装 优点:可定制性强。数据库既可以选择MySQL,也可以选择PostgreSQL;服务器既可以选择Apache,也可以选择Nginx。缺点:国外的源不稳定,被墙时,依赖软件包难以下载。配置流程繁琐、复杂,容易出现各种各样的问题。依赖关系多,不容易管理,卸载GitLab相对麻烦。通过rpm包安装 优点:安装过

2017-01-19 14:50:06 10010

转载 json技术比较

一 、各个JSON技术的简介和优劣1.json-libjson-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,包括commons-beanutils.jar,commons-collections-3.2.jar,commons-lang-2.6.jar,commons-logging-1.1.1.jar,ezmorph-1.

2017-01-08 14:21:03 713

转载 DRUID连接池的实用 配置详解

DRUID介绍    DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池(据说是目前最好的连接池,不知道速度有没有BoneCP快)。 配置参数和其它连接池一样DRUID的DataSourc

2017-01-08 14:14:01 2031

原创 Tomcat配置DruidDataSource JNDI数据源例子

一、拷贝数据库驱动到:%TOMCAT%\lib下,这里是(ojdbc6.jar)。二、拷贝Druid jar包到:%TOMCAT%\lib下,这里是(druid-1.0.23.jar)以上jar包传送门:http://download.csdn.net/detail/nk_tf/9731868二、以连接Oracle数据库为例,在%TOMCAT%\conf\conte

2017-01-08 14:01:39 2208

转载 MongoDB 3.0 用户创建

文章转自:http://www.cnblogs.com/zhoujinyi/p/4610050.html摘要:      MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法。环境、测试:      在安装MongoDB之后,先关闭auth认证,进入查看数据库,只有一个local库

2017-01-04 16:35:09 314

转载 使用Ant发布web应用到tomcat

使用Ant发布web应用到tomcat         今天在公司用ant写了个部署web应用的脚本,闲来无事,就稍微总结一下,以供以后参照使用,也希望作为一个demo, 能对大家有启迪的作用,如果真的如此,我也就很是欣慰了。         好了,言归正传,下面就开始记流水账吧。一.Ant简介        Ant是一种基于java的build工具,有些类似于unix系统中的ma

2016-12-30 14:51:39 2790

原创 java虚拟机中栈内存与堆内存的区别

堆--用new建立,垃圾自动回收负责回收1、堆是一个"运行时"数据区,类实例化的对象就是从堆上去分配空间的;2、在堆上分配空间是通过"new"等指令建立的;3、Java针对堆的操作和C++的区别就是,Java不需要在空间不用的时候来显式的释放;4、Java的堆是由Java的垃圾回收机制来负责处理的,堆是动态分配内存大小,垃圾收集器可以自动回收不再使用的内存空间。5、但缺点是,因

2016-12-27 15:27:29 1613

转载 接口和抽象类有什么区别

接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么? 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.所以,在高级语言上,一个类只能继承一...

2016-11-24 18:30:24 355

转载 Nginx配置文件详细说明

在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络.#运行用户user www-data;    #启动进程,通常设置成和cpu的数量相等worker_processes  1;#全局错误日志及PID文件error_log  /var/log/nginx/error.log;pid        /var/run/nginx.pid;

2016-11-24 18:29:06 588

转载 Hibernate二级缓存的并发访问策略

Hibernate二级缓存的并发访问策略有四种:只读(read-only)、非严格读写(nonstrict-read-write)、读写(read-write)和事务(transactional)。但是目前还没有二级缓存提供者完全支持所有的并发访问策略。只读(read-only): 对于永远不会被修改的数据可以采用这种并发访问策略,它的并发性能是最高的。但必须保证数据不会被修改,否则就会出

2016-11-24 18:27:31 642

转载 hibernate二级缓存攻略

很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。 我的经验主要来自hibernate2.1版本,基本原理和3.0、3.1是一样的,请原谅我的顽固不化。hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级

2016-11-24 18:24:56 230

转载 log4j.properties 详解与配置步骤

、log4j.properties 的使用详解1.输出级别的种类ERROR、WARN、INFO、DEBUGERROR 为严重错误 主要是程序的错误WARN 为一般警告,比如session丢失INFO 为一般要显示的信息,比如登录登出DEBUG 为程序的调试信息2.配置日志信息输出目的地log4j.appender.appenderName = f

2016-11-24 18:05:35 299

转载 Spring事务管理—aop:pointcut expression解析

先来看看这个spring的配置文件的配置:      class="org.springframework.orm.hibernate3.HibernateTransactionManager">                             id="allDaoMethod" /> 

2016-11-24 18:02:34 323

转载 Spring事务配置的五种方式和spring里面事务的传播属性和事务隔离级别

Spring事务配置的五种方式前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。    总结如下:    Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制

2016-11-24 17:59:26 326

转载 java中Map,List与Set的区别

Set,List,Map的区别java集合的主要分为三种类型:Set(集)List(列表)Map(映射)要深入理解集合首先要了解下我们熟悉的数组:数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存

2016-11-24 17:56:28 319

转载 高并发量网站解决方案

个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单。随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的htm

2016-11-24 17:52:46 407

mongoDb客户端软件mongochef

一个好的MongoDB客户端管理工具,可以大大提高MongoDB应用的开发效率。MongoDB自带的Shell是一个很好的工具,但是它在操纵大数据集时就没那么直观了。因此使用MongoDB客户端GUI管理工具就非常必要了

2018-07-13

屏幕录像软件WebEx_Recorder

全新屏幕录像软件,可以支持刷选对应软件工具或者单屏录像,可以设置录入声音,采用精妙的压缩算法,可以把录像视频压缩极小,24小时录像视频也就几十兆左右。

2018-07-13

postman谷歌插件

postman谷歌离线安装插件,用于接口测试。

2016-11-09

mongodb数据库

mongodb内存数据库,快速存储和读取数据。

2016-11-09

百度编辑器euditor

百度编辑器,适合web开发。可以编辑图片,地图,文件等。

2013-07-25

uploadify 带有进度条上传文件

方便上传文件,并能看到上传进度,时间等。便于操作,样式可根据自己喜欢进行调整。

2013-07-25

jQuery版公司大事记时间轴插件

通过时间轴的方式,依次播放每个时间段的事迹。适合用在根据时间排版在前台,动画播放效果很好。

2013-07-25

svn上传软件

上传代码,帮助你了解代码的最新沉淀、特别是团队工作时,他是很有用的

2013-01-28

空空如也

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

TA关注的人

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