在java程序中,有时候可能需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化。此时程序员可能会采用延迟初始化。但要正确实现线程安全的延迟初始化需要一些技巧,否则很容易出现问题。比如,下面是非线程安全的延迟初始化对象的示例代码:publicclassUnsafeLazyInitialization{privatestaticInstanceinstance;publicstaticInstancegetInstance(){if(in
系统 2019-08-29 22:03:53 1995
之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白。比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了。废话不多说了,先来看一下JDK的动态是怎么用的。Java代码packagedynamic.proxy;importjava.lang.reflect.InvocationHandler;importjava.lang.reflect.Method;importj
系统 2019-08-29 22:02:51 1995
研究Glusterfs半年多了,通过实际操作以及源代码分析,对它有了越来越深的了解,由衷的赞叹Gluster的整体架构。今天时间不早了,想写点关于Glusterfs的冗余镜像产生脑裂的原因。首先,简单描述一下脑裂,所谓脑裂,就是指两个或多个节点都“认为”自身是正常节点而互相“指责”对方,导致不能选取正确的节点进行接管或修复,导致脑裂状态。这种现象出现在数据修复、集群管理等等高可用场景。Glusterfs的冗余镜像(下文简称AFR)提供了数据副本功能,能够在
系统 2019-08-12 09:27:39 1995
github是一个有海量开源代码库的网站,同时也是一个软件开发管理软件,作为软件来说它集成了git这个分布式的版本控制系统,可以上传、下载和管理自己的代码。笔者刚接触不久,把认为入门应该知道的东西稍微总结一下。以后可能还会有补充。本文写于2015年6月4日,github可能有时效性。使用git需要有一定的命令行基础1.github注册注册很简单,有邮箱就能注册,要上传项目文件需要登录后点击右上角的加号创建一个Repository。Repository个数应
系统 2019-08-12 09:27:26 1995
Geneva是微软开发的用于构建自定义安全令牌服务(STS)的探测功能、要求从ASP.NET应用程序进行联合身份验证的机制,以及简化ASP.NET应用程序和WCF服务的基于声明的授权的对象模型。它可以帮助开发人员更轻松地开发用于认证/授权的基于声明(claims-based)的身份模型的应用。这是由微软开发但得到行业支持的模型采用WS-Federation、WS-Trust和SAML(SecurityAssertionMarkupLanguage,安全断言
系统 2019-08-12 09:27:10 1995
StringwhereArgs=taskTable+"where1=1";if(upCheck){whereArgs+="andtype=2";}if(gameID!=null&&!gameID.equals("0")){whereArgs+="andgameID="+gameID;}if(searchProjectkey!=null&&!searchProjectkey.trim().equals("")){whereArgs+="andprojectI
系统 2019-08-12 01:55:37 1995
核心:使用“导入导出数据”工具(微软自带的)头疼了很多天的问题,异地数据库怎么备份到本机上。换句话说就是说如何从别人的计算机上把人家的数据库本分到你自己的机器上。可能有人会说,只要能连接上,右键备份,一步步走不就行了。但是你没发现你备份完的东西在别人的机器存上,难道你要拿着U盘去人家那拷?那假如是服务器呢?你都不知道在那怎么拷?所以,后来在网上找,也没找到中意的,就研究了一下开始——MicrosoftSQLServer2005文件下有一“导入和导出数据(3
系统 2019-08-12 01:52:00 1995
不管做什么项目,肯定会用到多表关联查询数据,从网络查询得知ofbiz有三种多表关联查询方法实现一:Screem.xml中的section里,加,加get-related实现二:在代码中使用DynamicViewEntity对象,加入addMemberEntity,addAlias,addViewLink,再用find查询实现三:在entity.xml里定义view-entity实体对象,在查询时就查这个view的对象1,方法没写出来,以后再
系统 2019-08-12 01:32:43 1995
由于python代码有的需要在python2.7版本执行,有的需要在python3版本执行,所以需要安装多个python环境。前提:已经安装了anaconda和python3(安装步骤参考:https://blog.csdn.net/flyer_tang/article/details/80363669)目的:为jupyter再添加python2.7版本内核环境安装步骤如下:创建python2.7版本虚拟环境condacreate-nenv_namepyt
系统 2019-09-27 17:57:26 1994
实例如下:#!/usr/bin/python#-*-coding:utf-8-*-importosdefdel_dir_tree(path):'''递归删除目录及其子目录,子文件'''ifos.path.isfile(path):try:os.remove(path)exceptException,e:#passprinteelifos.path.isdir(path):foriteminos.listdir(path):itempath=os.path.
系统 2019-09-27 17:57:02 1994