- 博客(59)
- 资源 (8)
- 收藏
- 关注
转载 单例模式漫画版
转载:https://blog.youkuaiyun.com/bjweimengshu/article/details/78716839 ————— 第二天 ————— 单例模式第一版: public class Singleton {priva...
2018-08-15 15:10:23
480
原创 简述HashMap
HashMap就是一张hash表,键和值都没有排序。HashMap是非线程安全的,只用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。HashMap 实现了Serializable接口,因此它支持序列化。HashMap 容量设为不小于指定容量的2的幂次方,且最大值不能超过2的30次方。HashMap的存储结构紫色部分即代表哈希表本身(其实是一个...
2018-03-28 22:19:44
1804
1
原创 Spring事务的一些特性
事务的四大特征1.原子性:一个事务中所有对数据库的操作是一个不可分割的操作序列,要么全做要么全不做2.一致性:数据不会因为事务的执行而遭到破坏3.隔离性:一个事物的执行,不受其他事务的干扰,即并发执行的事物之间互不干扰4.持久性:一个事物一旦提交,它对数据库的改变就是永久的五个隔离级别1.default:默认的事务隔离级别,跟具体的数据有关,mysql默认的事务隔离级别是repeatable_re...
2018-03-28 13:36:15
1217
转载 轻量级分布式 RPC 框架
RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样。RPC 可基于 HTTP 或 TCP 协议,Web Service 就是基于 HTTP 协议的 RPC,它具有良好的跨平台性,但其性能却不如基于 TCP 协议的 RPC。会两方面会直接影响 RPC 的性能,一是传输方式,二是序列化。众所周知,TCP 是传输层协议,...
2018-03-23 08:55:47
300
原创 ZooKeeper分布式锁的流程
分布式锁定义:分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问,以达到保证数据的一致性。工作流程:1、在zookeeper指定节点(locks)下创建临时顺序节点node_n2、获取locks下所有子节点children3、对子节点按节点自增序号从小到大排序4、判断本节点是不是第一个子节点,若是,则获取锁;若不是,则监听比该节点小的那个节点的删除事件5、若监听事件生效...
2018-03-19 16:02:49
510
原创 Zookeeper服务注册与发现
Zookeeper作为服务注册与发现的解决方案,它有如下优点:1. 它提供的简单API2. 已有互联网公司(例如:Pinterest,Airbnb)使用它来进行服务注册与发现3. 支持多语言的客户端4. 通过Watcher机制实现Push模型,服务注册信息的变更能够及时通知服务消费方缺点是:1. 引入新的Zookeeper组件,带来新的复杂性和运维问题2. 需自己通过它提供的API来实现服务注册与...
2018-03-19 15:33:15
7703
原创 集群和分布式区别
分布式:一个业务分拆多个子业务,部署在不同的服务器上 彼此之间仅仅通过消息传递进行通信和协调的系统集群:同一个业务,部署在多个服务器上集群架构图:分布式架构图:...
2018-03-19 14:43:41
327
原创 简述分布式RPC框架
RPC定义:远程过程调用,是实现分布式计算的基础。实现方式:1.基于TCP协议的RPC;2.基于HTTP协议的RPC;处理过程:一个简单的RPC过程包括一个服务消费者和服务提供者,服务消费者需要使用服务提供者的提供的服务,就需要传给服务提供方相关的信息,这些信息包括服务名称(实际上是一个接口),方法名称,方法的参数类型,参数个数等参数列表信息以及对应的参数,服务提供者根据这些信息返回处理结果给服务...
2018-03-19 14:42:53
2869
转载 10个实用的但偏执的Java编程技术
10个最有用但偏执的Java编程技术1.将String字符串放在最前面为了防止偶发性的NullPointerException 异常,我们通常将String放置在equals()函数的左边来实现字符串比较,如下代码:// Badif (variable.equals("literal")) { ... }// Goodif ("literal".equals(variable)) { ......
2018-02-27 17:17:23
239
原创 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
333
转载 Git远程操作详解
原文出处: 阮一峰 Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能。Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。git clonegit remotegit fetchgit pullgit push本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解。同时,本...
2018-02-27 14:18:12
324
转载 IntelliJ远程调试教程
对于分布式系统的调试不知道大家有什么好的方法。对于我来说,在知道远程调试这个方法之前就是在代码中打各种log,然后重新部署,上线,调试,这样比较费时。今天咱们来了解了解Java远程调试这个牛逼的功能,本文以Intellij IDEA为例讲解怎么使用远程调试。以Thrift入门教程这篇文章中使用的程序作为例子。这个程序由Thrift服务端和客户端组成。描述一下远程调试需要解决的问题:服务端程序运行在...
2018-02-27 14:13:52
317
转载 Git 的 4 个阶段的撤销更改
来源:张京www.fengerzh.com/git-reset/虽然git诞生距今已有12年之久,网上各种关于git的介绍文章数不胜数,但是依然有很多人(包括我自己在内)对于它的功能不能完全掌握。以下的介绍只是基于我个人对于git的理解,并且可能生编硬造了一些不完全符合git说法的词语。目的只是为了让git通俗化,使初学者也能大概了解如何快速上手git。同时,下面所有讨论,我们都假设只使用一个分支...
2018-02-27 14:12:16
215
转载 架构师必备词汇和知识点
架构师必备词汇和知识点01 高可用负载均衡(负载均衡算法)反向代理服务隔离服务限流服务降级(自动优雅降级)失效转移超时重试(代理超时、容器超时、前端超时、中间件超时、数据库超时、NoSql超时)回滚机制(上线回滚、数据库版本回滚、事务回滚)02 高并发应用缓存HTTP 缓存多级缓存分布式缓存连接池异步并发03 分布式事务二阶段提交(强一致)三阶段提交(强一致)消息中间件(最终一致性),推荐阿里的 ...
2018-02-27 14:09:49
777
转载 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
372
转载 MySQL主从复制的实现过程
一、什么是主从复制将主数据库中的DDL和DML操作通过二进制日志传输到从数据库上,然后将这些日志重新执行(重做);从而使得从数据库的数据与主数据库保持一致。二、主从复制的作用1、主数据库出现问题,可以切换到从数据库。2、可以进行数据库层面的读写分离。3、可以在从数据库上进行日常备份。三、复制过程Binary log:主数据库的二进制日志。Relay log:从服务器的中继日志。第一步:master...
2018-02-27 13:59:58
304
转载 单点登录原理与简单实现
一、单系统登录机制1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系 但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴别浏览器请求...
2018-02-27 13:55:53
187
转载 ActiveMQ之HelloWorld
篇文章从代码角度去实现一个mq。因为ActiveMQ是对JMS的一种实现,因此,AMQ的开发步骤就应该和JMS的开发模型一样。1. 创建ConnectionFactory2. 创建Connection3. 创建Session4. 创建Destination/Topic5. 创建Producer/Consumer[java] view
2017-06-27 22:23:14
669
转载 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
521
转载 hashMap的原理 深入理解
首先再次强调hashcode (==)和equals的真正含义(我记得以前有人会说,equals是判断对象内容,hashcode是判断是否相等之类):equals:是否同一个对象实例。注意,是“实例”。比如String s = new String(“test”); s.equals(s), 这就是同一个对象实例的比较;等号(==):对比对象实例的内存地址(也即对象实例的ID),
2017-06-27 22:15:23
567
转载 关于单例模式的DoubleCheckLock同步的思考
在javaeye上看到很多朋友都提出单例模式的一些变种实现,比如加入了即时加载和DoubleCheckLock机制,来提高并发性能。但事实上这些机制真的必要吗? 目前公认影响单例性能的要素有两个:一是实例构造时间开销,一是获取单例实例的同步阻塞开销。 我的理解是,并发相对与同步阻塞的优势,在于当两条线程中的一条在执行时间开销较大的操作,而另一条线程无须执行该操作,则并发执行保证了开
2017-04-08 13:05:28
1297
转载 Java基础学习过程
JVM 1. 内存模型( 内存分为几部分? 堆溢出、栈溢出原因及实例?线上如何排查?) 2. 类加载机制 3. 垃圾回收 Java基础 什么是接口?什么是抽象类?区别是什么? 什么是序列化? 网络通信过程及实践 什么是线程?java线程池运行过程及实践(Executors)
2017-04-07 13:08:45
766
转载 回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议
引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。 但是,最近问LZ的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回复了。 其实之前L
2017-03-20 12:51:26
655
转载 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
492
转载 GitLab 安装配置笔记
GitLab的安装方式GitLab的两种安装方法:编译安装 优点:可定制性强。数据库既可以选择MySQL,也可以选择PostgreSQL;服务器既可以选择Apache,也可以选择Nginx。缺点:国外的源不稳定,被墙时,依赖软件包难以下载。配置流程繁琐、复杂,容易出现各种各样的问题。依赖关系多,不容易管理,卸载GitLab相对麻烦。通过rpm包安装 优点:安装过
2017-01-19 14:50:06
10087
转载 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
763
转载 DRUID连接池的实用 配置详解
DRUID介绍 DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池(据说是目前最好的连接池,不知道速度有没有BoneCP快)。 配置参数和其它连接池一样DRUID的DataSourc
2017-01-08 14:14:01
2078
原创 Tomcat配置DruidDataSource JNDI数据源例子
一、拷贝数据库驱动到:%TOMCAT%\lib下,这里是(ojdbc6.jar)。二、拷贝Druid jar包到:%TOMCAT%\lib下,这里是(druid-1.0.23.jar)以上jar包传送门:http://download.youkuaiyun.com/detail/nk_tf/9731868二、以连接Oracle数据库为例,在%TOMCAT%\conf\conte
2017-01-08 14:01:39
2258
转载 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
364
转载 使用Ant发布web应用到tomcat
使用Ant发布web应用到tomcat 今天在公司用ant写了个部署web应用的脚本,闲来无事,就稍微总结一下,以供以后参照使用,也希望作为一个demo, 能对大家有启迪的作用,如果真的如此,我也就很是欣慰了。 好了,言归正传,下面就开始记流水账吧。一.Ant简介 Ant是一种基于java的build工具,有些类似于unix系统中的ma
2016-12-30 14:51:39
2853
原创 java虚拟机中栈内存与堆内存的区别
堆--用new建立,垃圾自动回收负责回收1、堆是一个"运行时"数据区,类实例化的对象就是从堆上去分配空间的;2、在堆上分配空间是通过"new"等指令建立的;3、Java针对堆的操作和C++的区别就是,Java不需要在空间不用的时候来显式的释放;4、Java的堆是由Java的垃圾回收机制来负责处理的,堆是动态分配内存大小,垃圾收集器可以自动回收不再使用的内存空间。5、但缺点是,因
2016-12-27 15:27:29
1665
转载 接口和抽象类有什么区别
接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么? 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.所以,在高级语言上,一个类只能继承一...
2016-11-24 18:30:24
389
转载 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
635
转载 Hibernate二级缓存的并发访问策略
Hibernate二级缓存的并发访问策略有四种:只读(read-only)、非严格读写(nonstrict-read-write)、读写(read-write)和事务(transactional)。但是目前还没有二级缓存提供者完全支持所有的并发访问策略。只读(read-only): 对于永远不会被修改的数据可以采用这种并发访问策略,它的并发性能是最高的。但必须保证数据不会被修改,否则就会出
2016-11-24 18:27:31
704
转载 hibernate二级缓存攻略
很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。 我的经验主要来自hibernate2.1版本,基本原理和3.0、3.1是一样的,请原谅我的顽固不化。hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级
2016-11-24 18:24:56
262
转载 log4j.properties 详解与配置步骤
、log4j.properties 的使用详解1.输出级别的种类ERROR、WARN、INFO、DEBUGERROR 为严重错误 主要是程序的错误WARN 为一般警告,比如session丢失INFO 为一般要显示的信息,比如登录登出DEBUG 为程序的调试信息2.配置日志信息输出目的地log4j.appender.appenderName = f
2016-11-24 18:05:35
331
转载 Spring事务管理—aop:pointcut expression解析
先来看看这个spring的配置文件的配置: class="org.springframework.orm.hibernate3.HibernateTransactionManager"> id="allDaoMethod" />
2016-11-24 18:02:34
367
转载 Spring事务配置的五种方式和spring里面事务的传播属性和事务隔离级别
Spring事务配置的五种方式前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。 总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制
2016-11-24 17:59:26
372
转载 java中Map,List与Set的区别
Set,List,Map的区别java集合的主要分为三种类型:Set(集)List(列表)Map(映射)要深入理解集合首先要了解下我们熟悉的数组:数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存
2016-11-24 17:56:28
354
转载 高并发量网站解决方案
个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单。随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的htm
2016-11-24 17:52:46
447
mongoDb客户端软件mongochef
2018-07-13
屏幕录像软件WebEx_Recorder
2018-07-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人