
编程实践
zbuger
这个作者很懒,什么都没留下…
展开
-
Svn分支 主干合并
使用svn几年了,一直对分支和合并敬而远之,一来是因为分支的管理不该我操心,二来即使涉及到分支的管理,也不敢贸然使用合并功能,生怕合并出了问题对团队造成不良影响,最主要的原因是,自己对分支的目的和合并的方法不甚了解,这才是硬伤。最近由于适配机型的需要(本人从事手机客户端的开发),需要经常接触分支和合并两项工作,突然发现这玩意整不明白很难开展工作,遂这两天着重研究了一下,有点收获转载 2016-05-19 17:48:24 · 318 阅读 · 0 评论 -
tomcat安装ssl证书[推荐]
一、 生成证书请求 1. 安装JDK 安装Tomcat需要JDK支持。JDK1.6默认只支持 SSLv3 和 TLSv1 两个版本的https协议,JDK 1.7 版本默认禁用SSLv3,并支持 TLSv1、TLSv1.1及TLSv1.2。Tomcat 6及以下版本在使用 JDK 1.6及以下版本的运行环境时,可能存在无法禁用 SSLv3的情况。此时建议您升级 Tom转载 2016-06-16 20:34:23 · 603 阅读 · 0 评论 -
关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究
本文原文连接: http://blog.youkuaiyun.com/bluishglc/article/details/7612811 ,转载请注明出处!1.XAXA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。XA接口是双向转载 2016-08-02 21:02:31 · 919 阅读 · 0 评论 -
关于同步异步非阻塞阻塞[推荐]
这里面有篇文章非常牛逼,说的很清楚(注意这句话System I/O can be blocking, or non-blocking synchronous, or non-blocking asynchronous)http://www.artima.com/articles/io_design_patternsP.html(看这一篇足够了)包括下面这篇http://ww转载 2016-08-12 14:35:15 · 411 阅读 · 0 评论 -
Mysql数据库事务的隔离级别和锁的实现原理分析
mysql数据库的事务隔离级别相信很多同学都知道.大家有没有想过它是如何实现的呢?带着这些问题我翻阅了相关数据库的书籍和资料,把我的理解写下来.一:事务隔离级别mysql数据库的隔离界别如下:1, READ UNCOMMITTED(未提交读)事务中的修改,即使没有提交,对其它事务也是可见的. 脏读(Dirty Read).2, READ转载 2016-08-18 15:42:02 · 816 阅读 · 0 评论 -
一致性模型
强一致性当更新操作完成之后,任何多个后续进程或者线程的访问都会返回最新的更新过的值。这种是对用户最友好的,就是用户上一次写什么,下一次就保证能读到什么。但是这种实现对性能影响较大。弱一致性系统并不保证续进程或者线程的访问都会返回最新的更新过的值。系统在数据写入成功之后,不承诺立即可以读到最新写入的值,也不会具体的承诺多久之后可以读到。但会尽可能保证在某个时间级别(比如秒级别原创 2016-08-13 16:50:36 · 1436 阅读 · 0 评论 -
ubuntu安装nodejs
~# wget https://nodejs.org/dist/v4.1.1/node-v4.1.1-linux-x64.tar.gz~# tar -vxf node-v4.1.1-linux-x64.tar.gz~# mv node-v4.1.1-linux-x64 nodejs~# vi /etc/profile.d/node.shexport NODE_HOME=~/node原创 2016-12-06 19:05:26 · 449 阅读 · 0 评论 -
静态成员的垃圾回收
今天在网上看到一个讨论命题:当一个单例的对象长久不用时,会不会被jvm的垃圾收集机制回收。原文链接下面就对Java中的垃圾回收和静态类型做一些总结:一、Java中的内存分配1、stack(栈),用于装变量和引用类型。如基本类型和引用类型的引用变量。 2、heap(堆) ,用于装new出来的值。 3、用来装静态变量的区域。如static变量,字符串常量。 4、转载 2017-04-20 10:00:41 · 2506 阅读 · 0 评论 -
使用sun.misc.Cleaner或者PhantomReference实现堆外内存的自动释放
Java NIO包是通过sun.misc.Cleaner和PhantomReference来实现堆外内存的自动释放的。现在我们来学习下Cleaner和PhantomReference的使用,自己封装实现堆外内存的自动释放。sun.misc.Cleaner是JDK内部提供的用来释放非堆内存资源的API。JVM只会帮我们自动释放堆内存资源,但是它提供了回调机制,通过这个类能方便的释放系统的转载 2017-04-23 16:16:01 · 665 阅读 · 0 评论 -
直接内存和堆内存的性能比较
背景知识在JDK 1.4中新加入了NIO(New Input/Output)类,引入了一种基于通道(Channel)与缓冲区(Buffer)的I/O方式,它可以使用Native函数库直接分配堆外内存,然后通过一个存储在Java堆里面的DirectByteBuffer对象作为这块内存的引用进行操作。这样能在一些场景中显著提高性能,因为避免了在Java堆和Native堆中来回复制数据。 显转载 2017-04-23 21:33:12 · 745 阅读 · 0 评论 -
ByteBuffer常用方法详解
缓冲区(Buffer)缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区:使用缓冲区有这么两个好处:1、减少实际的物理读写次数2、缓冲区在创建时就被分配内存,这块内存区域一直被重用,可以减少动态分配和回收内存的次数举个简单的例子,比如A地有1w块砖要搬到B地由于转载 2017-04-23 21:56:25 · 2603 阅读 · 0 评论 -
关于java中的本地缓存-总结概
为什么要有本地缓存?在系统中,有些数据,数据量小,但是访问十分频繁(例如国家标准行政区域数据),针对这种场景,需要将数据搞到应用的本地缓存中,以提升系统的访问效率,减少无谓的数据库访问(数据库访问占用数据库连接,同时网络消耗比较大),但是有一点需要注意,就是缓存的占用空间以及缓存的失效策略。 为什么是本地缓存,而不是分布式的集群缓存? 目前的数据,大转载 2017-04-25 23:03:57 · 2082 阅读 · 0 评论 -
用keytool创建Keystore和Trustsotre文件
JSSE使用Truststore和Keystore文件来提供客户端和服务器之间的安全数据传输。keytool是一个工具可以用来创建包含公钥和密钥的的keystore文件,并且利用keystore文件来创建只包含公钥的truststore文件。在本文中,我们学习如何通过下面的5步简单的创建truststore和keystore文件: 生成一个含有一个私钥的keystore文件转载 2016-06-16 17:33:38 · 2625 阅读 · 0 评论 -
java实现ssl单/双向认证通信[推荐]
有关SSL的原理和介绍在网上已经有不少,对于Java下使用keytool生成证书,配置SSL通信的教程也非常多。但如果我们不能够亲自动手做一个SSL Sever和SSL Client,可能就永远也不能深入地理解Java环境下,SSL的通信是如何实现的。对SSL中的各种概念的认识也可能会仅限于可以使用的程度。本文通过构造一个简单的SSL Server和SSL Client来讲解Java环境下SS原创 2016-06-17 00:30:48 · 15834 阅读 · 4 评论 -
Shell入门
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。Linux的Shell转载 2016-06-24 11:55:57 · 368 阅读 · 0 评论 -
正则表达式学习
正则表达式1.判断ip地址,有点小缺陷,不影响:(2[5][0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})原创 2016-06-24 20:12:06 · 351 阅读 · 0 评论 -
java ssl编程
实现技术:JSSE(Java Security Socket Extension)是Sun为了解决在Internet上的实现安全信息传输的解决方案。它实现了SSL和TSL(传输层安全)协议。在JSSE中包含了数据加密,服务器验证,消息完整性和客户端验证等技术。通过使用JSSE,可以在Client和Server之间通过TCP/IP协议安全地传输数据。为了实现消息认证。Server转载 2016-06-15 16:29:02 · 609 阅读 · 0 评论 -
java导入cer证书
在项目开发中,有时会遇到与SSL安全证书导入打交道的,如何把证书导入java中的cacerts证书库呢? 其实很简单,方法如下: 每一步:进入某个https://www.xxx.com开头的网站,把要导入的证书下载过来, 在该网页上右键 >> 属性 >> 点击"证书" >> 再点击上面的"详细信息"切换栏 >> 再点击右下角那个"复制到文件"的按钮转载 2016-06-15 16:53:37 · 8869 阅读 · 0 评论 -
java中 SSL认证和keystore使用
好久没用过SSL认证了,东西久不用,就有点生疏。博客就是有这个好处,可以做备忘录。java中是通过SSL认证,使用的是SSLSocket,通过SSLSocketFactory可以获得SSLSocket实例对象。通常SSLSocketFactory需要一个SSLContext环境对象来构建,构建一个SSLContext 环境:SSLContext sslc=SSLContex转载 2016-06-16 11:54:48 · 7168 阅读 · 0 评论 -
从Java Keystore文件中提取私钥、证书
Keystore是一个密码保护的文件,存放私钥和证书。可以通过JDK自带的keytool工具生成。但是keytool工具,并没有提供方便的方法,从keystore文件中到处私钥和证书。所以可以通过JDK提供的Java.security.KeyStore 类来编码完成相关工作。参见:http://www.anandsekar.com/2006/01/19/export转载 2016-06-16 11:57:51 · 6519 阅读 · 0 评论 -
[简明] 申请证书
申请SSL证书主要需要经过以下3个步骤:1、制作CSR文件。CSR就是Certificate Signing Request证书请求文件。这个文件是由申请人制作,在制作的同时,系统会产生2个密钥,一个是公钥就是这个CSR文件,另外一个是私钥,存放在服务器上。要制作CSR文件,申请人可以参考WEB SERVER的文档,一般APACHE等,使用OPENSSL命令行来生成KEY+CS原创 2016-06-16 21:10:30 · 534 阅读 · 0 评论 -
HttpClient使用详解(ssl)
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会转载 2016-06-18 22:24:44 · 7138 阅读 · 0 评论 -
一道面试题比较synchronized和读写锁
一、科普定义这篇博文的两个主角“synchronized”和“读写锁”1)synchronized这个同步关键字相信大家都用得比较多,在上一篇“多个线程之间共享数据的方式”中也详细列举他的应用,在这就不多说只做几点归纳:Java提供这个关键字,为防止资源冲突提供的内置支持。当任务执行到被synchronized保护的代码片段的时候,它检查锁是否可用,然后获取锁,执行转载 2016-06-07 11:57:23 · 1789 阅读 · 1 评论 -
注意设置httpclient连接数
在使用Httpclient的过程中,当访问量增大的时候,会发现本地的连接等待时间急剧增加,例如从400ms增加到 78000ms,之前一直以为是航信系统问题,后面经过检查才发现,原来是本地httpclient设置时,最大连接数采用了默认设置的原因,而默认的最 大连接数只有2个,所以当有大量连接需要建立时,大多数连接只有等待。后面将连接数设置修改成32个之后,这个响应时间就基本上很少出现很大的时候。转载 2016-06-18 20:51:15 · 9075 阅读 · 0 评论 -
JAVA利用HttpClient进行POST请求(HTTPS)
为了避免需要证书,所以用一个类继承DefaultHttpClient类,忽略校验过程。1.写一个SSLClient类,继承至HttpClient[java] view plain copy import java.security.cert.CertificateException; import java.security.c转载 2016-06-18 20:30:40 · 3479 阅读 · 0 评论 -
分布式文件系统下的本地缓存
在分布式文件系统中,为了提高系统的性能,常常会引入不同类型的缓存存储系统(算法优化所带来的的效果可能远远不如缓存带来的优化效果)。在软件中缓存存储系统一般可分为了两类:一、分布式缓存,例如:Memcached、Redis、淘宝的Tair等,二、本地缓存,例如:Facebook的flushcache等,其中本地缓存又可以分为两种:本地磁盘缓存(现在一般都采用读写性能比较优异的SSD来做存储)和本地内转载 2017-04-26 23:32:47 · 1097 阅读 · 0 评论