- 博客(42)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 transient变量真的不能被序列化吗?
一些敏感信息,比如密码和银行卡号等在java对象序列化时不希望被序列化,不被序列化的属性就不会被存储到磁盘上,或通过网络传输。为了实现属性不被序列化,只需要在属性前加上transient关键字就能达到目的。 但是,使用transient的属性就一定不会被序列化吗?带着这个疑问,我们开始进行一下测试,看看真相到底是什么样的。 被序列化的类首先需要实现Serializable接口,序列化时使用ObjectOutputStream的writeObject()方法...
2020-06-10 10:23:15
1068
原创 使用自签证书建立https连接
通过https协议,客户端与服务端可以建立加密的通道,防止通讯被监听和篡改。但是,有时会遇到在访问一些网站时,提示连接不安全的警告,或者使用某种编程语法发起http请求时,出现异常。https为什么会变得不安全了呢?这是因为网站的证书不是安全的,更准确的说是,证书不是由CA颁发的。CA是Certificate Authority的缩写,也叫证书授权中心。常用CA的根证书默认已经安...
2019-10-15 09:34:03
1192
原创 JMeter集群模式的应用
JMeter集群模式的应用 JMeter对于许多Java程序员是曾经和现在的最得心应手的压测工具,而且JMeter本身也是使用Java开发的。截止本文写作时间,官方网站上最新的版本是5.1.1,需要在Java 8的环境下运行。5.1.1版本的界面采用了类似Idea的黑色风格,一眼看上去还是很不错滴,但是第二眼再看,文字和图标怎么就那么小呢,而且只能通过Zoom In和Zoom Ou...
2019-08-07 09:08:47
1291
原创 一种顺序机器号的生成方案
在某些场景,需要一种唯一标识主机的编号,比如主机A是1,主机B是2,主机C是3等。实现的方法应该有许多中,本文介绍的是一种依赖数据库的顺序数字生成方案。生成的机器号具有具有下面几个特点1:从1~n的顺序数字。2:每个主机的机器号不重复。3:不再使用的机器号可以被复用。本方案基于mysql实现,需要在数据库中创建worker数据表,此表用于存储workerId。下面...
2019-07-10 09:22:14
158
原创 私有Docker Registry
私有registry就像git私有库一样,可以在自己的内部网络上创建自己的私有docker库,将自己创建的镜像上传到私有registry上。 有公共的registry吗?当然是有的,那个叫docker hub(是docker集线器的意思吗?)。在docker hub官网上(https://hub.docker.com/),需要先注册一个账号,但是这个网站是国外的,截止本片文章写作时...
2018-09-30 15:02:10
237
原创 spring原理总结
spring是目前使用最广泛,大家都知道的一个框架。从2003年开始到目前(2016年)已存在了13年,目前最新版本是4。 对我来说spring是使用最久的一个技术,有空的时候拿出来复习一下,温故而知新,也是很值得的。 spring创始人是Rod Johnson。于2003年兴起。简单说,Spring是一个分层的Java SE/EEFul...
2016-07-03 21:58:32
132
清除redis节点slot
#清除一个独立节点的所有slot当一个独立的闲置节点需要再次被添加到一个cluster时,需要保证这个节点slot数量为0个。清除方法是:1 ./redis-cli -h 192.168.0.5 -p 6000flushall2 停止节点进程3 编辑node.conf, 删除connected后面的所有数字如果node.conf里的内容很多,不方便修改,可以将node.conf...
2016-03-15 13:57:28
1402
redis的启动和停止
安装一个redis服务是很简单的一件事,只要把tar.gz的压缩包解压就可以使用了。但是在加压目录中只有一个redis-server文件,和redis.conf,那么如何启动redis服务呢,启动之后又要如何停止呢,是野蛮的使用kill杀掉进程吗? 如果想已后台模式运行redis,需要修改redis.conf,加入如下一行:daemonize no 启动redis的命令是...
2016-03-15 09:43:23
203
安装Redis Cluster
安装依赖包依赖包后还要安装devel(开发)版的,然后再编译Redis Cluster才能顺利通过。你的系统中如果已经安装了下面的依赖包,就可以跳过这些个步骤。 1)安装zlib 需要先安装后,在安装ruby、gem, ruby、gem需要把zlib编译进去 yum install zlib yum install zlib-devel ...
2016-03-15 09:34:46
85
原创 游戏排行榜实现(平衡二叉树)
基于平衡二叉树实现的游戏排行榜,可以处理大世界中全部数据的排行。几千万级别。性能高效。 这个实现是单服务器模式,在此基础上可以扩展出分布式排行榜。 需要实时排行的同学,可以下载附件代码。已经过调试,可以直接使用 QQ:174062042 欢迎一体讨论游戏开发相关技术。...
2015-05-08 16:55:51
684
原创 Android基础---给控件添加事件
这个知识很基础也很简单,仅以此作为一个开始吧。在窗口(activity)上面放3个控件,布局随意。在这个例子中,我们要实现的功能是给2个按钮分别加上点击事件,使之改变文本框的背景颜色。 下面是全部代码://1public void onCreate(Bundle savedInstanceState) { super.onCreat
2012-11-20 09:45:17
1864
1
原创 创建静态库Cocoa Touch Static Library
测试环境:Xcode 4.3.2代码MyStaticLib, MyStaticLibUse为了系统的安全,ios只允许使用静态库(静态连编到程序中),不能用动态库(程序运行时才加载到内存)。首先创建静态库工程File -> New -> Project -> Framework & Library -> Cocoa Touch Static Library
2012-08-16 15:05:47
2250
转载 不要用retainCount来获得对象的引用次数
这是一个CocoaChina上面的问题。就是为什么retainCount返回的对象引用值总是跟预期的不一样呢?这个应该是像我这样初学者一般都会有的疑问,来看下面的一段例子NSAlert *alert = [[NSAlert alloc] init]; [alert setMessageText:@"TEST"]; [alert setAlertStyle:NSW
2012-08-15 11:44:37
2121
原创 HttpComponents入门解析
1 简介 超文本传输协议(http)是目前互联网上极其普遍的传输协议,它为构建功能丰富,绚丽多彩的网页提供了强大的支持。构建一个网站,通常无需直接操作http协议,目前流行的WEB框架已经透明的将这些底层功能封装的很好了,如常见的J2EE, .NET, php等框架或语言。除了作为网站系统的底层支撑,http同样可以在其它的一些场景中使用,如游戏服务器和客户端的传输协议、we
2012-03-31 22:09:17
1577
翻译 iOS的主要框架介绍
本文是《Sunvey the Major Framworks》一文的翻译 框架是一个目录,这个目录包含了共享库,访问共享库里代码的头文件,和其它的图片和声音的资源文件。一个共享库定义的方法或函数可以被应用程序调用。 IOS提供了很多你可以在应用程序里调用的框架。要使用一个框架,需要将它添加到你的项目中,你的项目才可以使用它。许多应用程序都使用了如Foundation
2012-03-31 18:49:19
6337
2
原创 Object-C BOOL深入探究
这是一个很常见的类型-布尔,代表真或假的两个状态。但请注意,这里写的是BOOL(大写字母),并非输入有误,Object-C中的布尔类型就是这个样子的。如果顺其自然的将BOOL按照bool使用,很可能就会出现意想不到的结果。请看代码:bool b1 = true;BOOL b2 = true;bool b3 = 256; //0x100BOOL b4 = 256; //0x100
2012-03-24 14:29:13
4032
1
原创 Object-C开发环境搭建
作为初学者可能还没来得及买MAC,但是同样可以在windows中学习Object-C。GNUStep是windows环境中Object-C的编译器,下面详细描述了GNUStep开发工具的安装,和编写一个简单的Object-C程序。 下载GNUStep 首先访问http://www.gnustep.org/experience/Windows.html 将这4...
2012-02-08 16:20:08
147
原创 32位windows上安装mongo
1:在http://www.mongodb.org可以下载到win32的mongodb安装包2:建立目录结构如下(以下仅供参考): d:/mongo d:/mongo/data3:将解压缩的mongodb里的所有exe文件拷贝到d:/mongo下4:启动 d:/mongo/mongod --dbpath d:\program\mongo\data5: 通过以下2个...
2011-09-07 21:44:24
118
原创 HttpComponents入门解析
1 简介 超文本传输协议(http)是目前互联网上极其普遍的传输协议,它为构建功能丰富,绚丽多彩的网页提供了强大的支持。构建一个网站,通常无需直接操作http协议,目前流行的WEB框架已经透明的将这些底层功能封装的很好了,如常见的J2EE, .NET, php等框架或语言。除了作为网站系统的底层支撑,http同样可以在其它的一些场景中使用,如游戏服务器和客户端的传输协议、web...
2011-08-21 11:50:42
426
原创 隔离级别 总结
四个基本性质(ACID) 1.原子性(Atomicity)事务中包含的操作要么全做要么全不做(all or none)。 2.一致性(consistency)在事务开始以前数据处于一致性状态,事务结束后,数据也应处于一致性状态。拿银行转账来说,一致性要求事务的执行不应该改变A、B两个账户的金额总和。如果没有这种一致性要求,转账过程中就会发生钱无中生有,或者不翼而飞的现...
2011-08-07 20:48:24
80
原创 mysql权限管理
权限层级1:全局层级 适用于服务器中的所有数据库,权限存储在mysql.user表中grant all on *.*revoke all on *.*2:数据库层级 适用于一个数据库中的所有对象,权限存储在mysql.db和host表中grant all on db_name.*revoke all on db_name.*3:表层级 使用于一个表中的所有列,权限存储在mysql.tables.p
2011-06-19 23:18:00
931
原创 mysql权限管理
权限层级1:全局层级 适用于服务器中的所有数据库,权限存储在mysql.user表中grant all on *.*revoke all on *.*2:数据库层级 适用于一个数据库中的所有对象,权限存储在mysql.db和host表中grant all on db_name.*revoke all on db_name.*3:表层级 使用于一个表中的所有列,权限存储在mysql.tables.p...
2011-06-19 23:00:23
91
原创 master-slave自动切换
<br /><br />如果一台slave服务器同时还有备份master的功能,即当真正的master宕机时,此slave就充当master使用。一种将slave切换成master的方式是修改配置文件,另外还可以在配置文件中利用环境变量,启动时由环境变量决定服务器本次的角色。<br />修改solrconfig.xml<requestHandler name="/replication" class="solr.ReplicationHandler" >? <br /> <lst name="ma
2011-04-20 22:42:00
2008
原创 jQeury在不同的范围内查询DOM
<br /> <br />jQeury在不同的范围内查询DOM<br />jQuery最简单的功能是在document中用标签名或标签ID查询dom元素,这也是许多人经常用到的方法。document就是当前页面的文档对象,document作为全局命名空间window的一个属性存在,通过window.document可以得到它的引用。默认情况下jQuery的查询是在当前文档内进行的。<br />而jQuery的查询功能还允许指定在其他的不同位置或范围进行查询。这是通过$()函数的第二个参数,即context指
2011-03-23 22:09:00
1030
原创 jQeury在不同的范围内查询DOM
jQuery最简单的功能是在document中用标签名或标签ID查询dom元素,这也是许多人经常用到的方法。document就是当前页面的文档对象,document作为全局命名空间window的一个属性存在,通过window.document可以得到它的引用。默认情况下jQuery的查询是在当前文档内进行的。而jQuery的查询功能还允许指定在其他的不同位置或范围进行查询。这是通过$(...
2011-03-23 21:48:35
93
原创 查看JVM内存使用情况
java.lang.Runtime类提供了查看当前JVM内存的使用情况。每个java实例(即虚拟机实例)只有一个Runtime的实例,通过Runtime.getRuntime()可以得到当前虚拟机中的Runtime实例对象。Runtime提供3个方法可以获取当前JVM最大可以使用内存、当前JVM已拥有最大内存和剩余未使用内存。这3个内存指的都是JVM堆内存。Runtime.maxMemory();Runtime.totalMemory();Runtime.freeMemory();首先在JAVA的启动参数中
2010-11-19 22:26:00
2469
原创 Solr 基于java的复制(Master-Slave配置)
<br /> <br /> <br /> Solr支持两种复制,一是java实现的复制,通过RequestHandler实现,Slave定期调用Master的ReqeuestHandler,与Master上的索引同步。另外是利用Unix脚本实现的复制。本文以案例的形式详细说明第一种复制的配置过程,搭建一个Master-Slave环境的Solr服务。<br />Solr基于JAVA的主从复制有下面几个优点:<br /> 无需依赖外部脚本 <br /> 只需在solrconfig.xml中配置
2010-11-07 14:06:00
3220
原创 Apache+JK+Tomcat负载均衡
<br />要求环境:一个Apache,至少2个Tomcat,复制 mod_jk-1.2.14-apache-2.0.54.so 到apache安装目录下的modules子目录下 <br /> <br />1:修改Apache的conf/httpd.conf,在文件中加入以下一样:<br />#引用conf目录下mod_jk.conf文件include "conf/mod_jk.conf" <br /> <br />2:在conf目录下建立mod_jk.conf文件<br />#加载mod_jk mod
2010-10-15 22:29:00
1003
原创 检测浏览器类型
<br /> 目前浏览器种类多达10几种种,主要有:IE, Mozilla Firefox, Safari, Opera, Chrome等。还有国内使用IE内核开发的浏览器,如360, 搜狗,腾讯TT,超速,飞腾,麒麟,Maxthon等。Chrome原本是使用Safari内核的。不同的浏览器在javascript和DOM、BOM的支持上都是存在差异的。不过只要区分IE, Mozilla, Firefox, Safari4种内核种类基本就可以了。<br /> 下面检测浏览器类型的代码出自jQuery
2010-07-03 23:34:00
884
原创 X脚本群成立
<br />创建一个关于脚本方面的群已经是预谋许久的事了,知道今天晚上一个以前创建的群突然有了新的动静,才提醒了我。于是把以前的那个群停了,从新创建一个新的群,并正式命名为X脚本。专注于Javascript, jquery, ext, prototype等技术的讨论。
2010-07-03 21:36:00
756
转载 javascript基础全等号运算符
今天在博客园上看到司徒的文章,看到這样一行代码 if(typeof item === "string" ) ,看见有3个等号以前从没這么写过,可能是我的JS技术还处于初级的原因吧,我去网上查了一些资料网上说這是全等于符号而以前一直都是用等号“==”一直都没在JS里用过全等于符号“===”。而這两种运算符只是检测两个对象的相等性时,一个执行类型转换和一个类型不转换,全等于符号只有在不转换类型前才返回truevar sNum="66";var iNum=66;alert(sNum==iNum);//输出
2010-06-27 15:10:00
793
原创 JTA事务(Tomcat6+JOTM)
JTA可以在多个数据库上使用一个事务,weblogic等应用服务器提供了jta数据源的支持,可以直接被使用。但是tomcat本身并不支持这种特性。如果想在tomcat上使用jta就必须使用其它的工具。jotm就是一个独立的可以提供JTA功能的组件。 jotm有2中使用方式,1、结合容器的JNDI数据源提供JTA功能。2、使用jotm建立本地数据源。下面的内容是对第一种使用方式配置过程。 测试环境: Tomcat 6.0.18 MySQL 5.1.47 Jotm 2.0.10
2010-06-20 03:32:00
3319
2
原创 让人瞠目结舌的四位骨灰级电脑大师
1.公元1998年在我讀高二那年,那还是我用Windows 98的时候有次我系统崩溃了,因为我那时还是个电脑白痴,我同学帮我介绍了一个电脑高手来帮我修电脑。 他看了一下电脑,问我有没有Windows 98 的光盘?,我说没有。 他想了一下,叫我把家里电话拿给他,我心里想说修电脑要电话干什么? 但人家是电脑高手,我也不好意思说什么,就把电话拔下来给他了。 他把 电话线空着的一头接
2010-05-29 17:44:00
942
1
原创 SSH之struts1方法1--使用Spring的ActionSupport
步骤:1:Action继承org.springframework.web.struts.ActionSupport2:在Action中使用ApplicationContext ctx = this.getWebApplicationContext() 获取spring上下文3:通过ctx获取相应的bean Action代码public class LoginAction e
2009-12-23 22:29:00
1113
原创 SSH之struts2.0
1:将struts2-spring-plugin-2.1.6.jar放在工程下2:在web.xml中配置struts2.0的过滤器和spring的监听器 struts2org.apache.struts2.dispatcher.FilterDispatcherstruts2/*contextConfigLocation/WEB-INF/spring-config/enviro
2009-12-23 22:20:00
756
原创 修改ORACLE最大会话数
修改ORACLE最大会话数 查看当前oracle最大会话数 show parameter 条件 条件可以使用参数名中包含的几个字母,如show parameter process将显示 NAME TYPE VALUE ------------------------------------ ----------- ------ aq_tm_processes intege
2009-12-02 23:02:00
2555
原创 加载ApplicationContext
加载ApplicationContext ApplicationContext实例是Spring管理Bean的核心对象,如果是在web工程中可以在web.xml文件中进行配置,随着工程的启动会自动创建ApplicationContext的实例。然而在其它环境中,只能手动创建ApplicationContext实例。 创建ApplicationContext实例有两种方式,一是使用FileS
2009-12-02 22:59:00
871
原创 构建简单的SPRING工程
构建简单的SPRING工程 描述配置一个简单的SPRING工程的步骤,工程中只包含一个控制器MainController。控制器使用方法名解析器,在访问控制器时,需要加上控制器类中的具体方法名。比如MainController控制器的映射地址是main.do,当访问时需要调用main.do?method=showMain(showMain为控制器类中具体存在的一个方法)。 工程代码 1
2009-12-02 22:53:00
1285
Learn Object-C
2012-03-22
安装与升级ADT
2011-10-15
金永哲的java手册
2011-08-01
LoadMask如何覆盖模态Window
2010-01-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人