原创(tech)
文章平均质量分 63
yaoweijq
这家伙很懒,什么也没留下
展开
-
oracle bbed 文档<Disassembling the Oracle Data Block> 翻译(2)
开始你的bbed之旅 默认情况下,bbed链接到了rdbms/lib目录。很明显,不是咱们经常用的$ORACLE_HOME/bin目录。链接后的bbed可执行文件可以移动到bin目录,如果你不移动的话,可以在rdbms/lib目录来启动bbed.[oracle@RDBALINUX03 bin]$ bbedPassword: ******BBED: Release 2.0.0.0翻译 2013-01-28 23:15:56 · 948 阅读 · 0 评论 -
java抽象类不能实例化&实践是检验真理的唯一标准
<br />下午试了半天,发现不行,没法搞<br />即对含有抽象方法的抽象类实例化失败。<br />网上有这个资料:<br /> 抽象类就一定不可以实例化吗?<br /> 呵呵,不一定哦。。看下面的例子:<br /> public abstract class YourClassName<br /> {<br /> public abstract Object someMethod(...);<br /> }<br /> 在你要有的地方<br /><br /> YourClassName原创 2011-01-27 17:57:00 · 2249 阅读 · 0 评论 -
C语言来实现字符串反转(只有单词反转,单词里的字母不反转)
<br />用C/C++来实现字符串的反转。比如:字符串”I am a good developer!”反转之后变成了”developer! Good a am I”。(只有单词反转,单词里的字母不反转)<br />用c语言来搞<br />先到字符串末尾<br />然后挨个扫描<br />碰到非空格wordLen++<br />否则先处理wordLen<br />然后把空格拷贝过去就行<br />上代码:<br />#include <malloc.h>main() { char *c = "原创 2010-11-24 11:58:00 · 6735 阅读 · 5 评论 -
java基本数据类型及其所对应对象的自动装箱,new,valueof操作研究
<br />昨天,今天从源程序级别仔细观察了下这些操作的逻辑,除了没看到过的,<br />都看过了:)哈哈。。。<br />jdk从1.5开始有了自动拆箱装箱功能,<br />对写程序方便了不少,1.5开始加了不少新特性么。<br />java的基本数据类型有<br />boolean char byte short int float long double<br />对应的对象为<br />Boolean Character Byte Short Integer Float Long Double<br原创 2010-11-19 15:30:00 · 2993 阅读 · 1 评论 -
java通过暴力反射创建不可实例化类的对象实例
以java.lang.Math为例 Class b = Math.class; Constructor[]cc = b.getDeclaredConstructors(); Math t1=null,t2=null; for(int i =0;i要禁止此类情况,需要在jvm中加安全检查参数原创 2011-01-12 10:14:00 · 3007 阅读 · 0 评论 -
sso-cas全攻略(java版)------cas如何加验证码功能
加个验证码在一定程度上可以防止robot不停访问猜测用户名密码如何在cas server端加验证码呢?以典型的cas server端为例,我们来实际操作下验证码一般来说,是放在session中session又是从request中拿来的我们的用户名,密码验证是在哪儿做的呢?在SimpleTestUsernamePasswordAuthenticationHandler这个类中OK只要把请求的request拿到set到SimpleTestUsernamePasswordAuthenticationHandler原创 2011-01-10 11:47:00 · 3973 阅读 · 1 评论 -
java中数组的反射
<br />java.lang.reflect.Array<br />这个还是很好用的,可惜里面全是native方法<br />没法研究源程序<br />里面有得到数组中某元素类型的get 值的get set相关操作<br />下面给出一点具体示例:<br />final int []a = {1,2,3,4,5}; Object o = a; System.out.println(Array.getLength(o)); for(int i=0;i<Array.getLength(o);原创 2011-01-10 11:26:00 · 893 阅读 · 0 评论 -
java.util.Arrays.sort方法简单分析
<br />今天比较仔细的观察了下1.6jdk下的java.util.Arrays.sort方法<br />稍微总结下:<br />sort分为对基本数据类型(byte char short int float long double)和object类型的排序<br />1.对基本数据类型的排序<br />Arrays类中public方法都是sort,<br />但里面实际做工作的是sort2和sort1<br />最实际的工作是sort1<br />sort2是做一些边界处理的闲杂工作,类似于<br />原创 2010-11-16 17:19:00 · 14536 阅读 · 0 评论 -
sso-cas全攻略(java版)------部署cas client端应用
<br />cas server端部署起来以后,如果能正常登陆,<br />client端就相对容易多了,<br />直接把cas client端的程序包(版本3.1.1)拷至/lib目录下,<br />或者你需要修改,加自己的程序逻辑的话,<br />直接用java source code也行,不需要做任何改动,<br />但需要注意的是有几个jar包必不可少,类似于log4j之类的,<br />新建个webproject工程,<br />myclipse给自动生成了个index.jsp<br />我们不原创 2010-11-11 17:18:00 · 4724 阅读 · 1 评论 -
jdk6中新增的grouplayout,可以简单地处理对齐问题
<br />昨天帮人搞程序的时候发现的<br />比如说登陆的swing界面,<br />如何处理用户密码输入label textfield的对齐呢?<br />自己写定位也行<br />就是太麻烦<br />jdk6提供了一个grouplayout<br />可以简单地实现对齐<br />不多废话了<br />直接上测试程序<br />import javax.swing.*;import javax.swing.GroupLayout.Alignment;public class Test8原创 2011-02-25 11:36:00 · 1179 阅读 · 0 评论 -
jdk的Double.parseDouble漏洞bug~
<br />String s = "2.2250738585072012e-308";<br /> double d = Double.parseDouble(s);<br />大家可以先在jre1.6.0_24以前的版本上执行这两句话<br />看看会发生神马情况。<br />没错,死循环!<br />jdk的bug,据http://www.cnblogs.com/mengheyun/archive/2011/02/11/1951674.html里面讲到<br />这个bug2001年就被发现了<br原创 2011-02-17 17:42:00 · 3358 阅读 · 1 评论 -
在自己的台式机上把oracle和pl/sql developer安装成功并且可以用了
不错,折腾了两天了都开始安装64位的,发现pl/sql dev没有64位的版本又下载了32位的oracle和客户端中间任何错误都直接忽略了后面慢慢研究这些东西嘿嘿原创 2013-01-23 22:57:30 · 769 阅读 · 0 评论 -
sed命令删除xml中的某一特定行
-i 可以直接在源xml文件中删除另外为了避免可能的异常情况,最好先echo "" >> test.xmltest.xml命令执行之前内容为: yaowei -1 xxx 执行语句sed -i '/.*/d' test.xml注意.*为正则d为删除后,内容为:原创 2012-03-03 17:38:10 · 3110 阅读 · 0 评论 -
反复平方法求解幂取模问题(java版)
具体理论参考相应算法书,主要是应用了(A*B)modC = ((AmodC)*B)modC及对幂进行二进制分解来求的 上代码: /** * 从左到右 */ public static long calc_1(long a, long b, long mod){ final String s = Long.toBinarySt原创 2012-02-09 20:47:58 · 2064 阅读 · 1 评论 -
c/c++求两个日期之间的间隔天数
就不废话了,直接上程序: ps:day_distance_2中的逻辑哪位大神懂,请直接留言,感谢/**参见msdn tm time_t注意有效范围,里面的year不能太早,否则计算不准确*/int day_distance_1(int year1,int month1,int day1,int year2,int month2,int day2){ str原创 2012-02-07 14:02:07 · 5919 阅读 · 4 评论 -
牛顿迭代法对大数进行开平方操作(java版)
求f(x)=0的一实根,可以采用牛顿迭代法,根据迭代公式x(n+1)= x(n)-f(x(n))/f '(x(n))注意后面是f(x)的导数对大数a进行开平方操作呢,可以认为是求x^2-a=0在x>0时候的一实根java提供了现成的BigDecimal类,直接调用其api即可上简单代码import java.math.*;public class Yaowei原创 2011-12-29 15:01:11 · 4165 阅读 · 6 评论 -
java泛型与类型擦除
java的泛型一般来说,编译期会起作用,类型检查,运行时全部擦除成object了上代码观察一下:List list = new ArrayList(); list.add(100); Method method = list.getClass().getDeclaredMethod("add",Object.class); meth原创 2012-01-20 16:36:05 · 840 阅读 · 1 评论 -
观察java中栈的最大递归深度
无聊观察了一下,没有对jvm参数进行调整,直接用myeclipse进行跑application9000附近机器内存2g附简单程序:public class StackSize { private int size = 1; public void stackLeak(){ size++; stackLeak(); } public static原创 2012-01-07 17:52:27 · 7276 阅读 · 2 评论 -
windows操作系统下不能创建的文件名称
如下:CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9大小写混合的也不行原创 2011-10-21 14:05:58 · 740 阅读 · 3 评论 -
sax解析内容中含有xml特殊字符转义实体的解决方案
<br />一般来说,类似于& < > ' ";这些xml的特殊字符都是放在cddata中的<br />有些xml的内容直接把这些字符转义了,直接放在内容中,<br />也就是说不放在cddata中,<br />类似于这样<br /><data><br /> <person><br /> <name>yaowei</name><br /> <nick>'名字好难起啊'</nick><br /> </person><br /></data><br /原创 2010-11-09 11:39:00 · 6580 阅读 · 2 评论 -
把字符串中每个字符都相同的子串解析出来--用正则表达式实现
<br />早晨刚翻出来,竟然可以用正则表达式实现。<br />其实可以用o(n)的时间复杂度加三四个变量直接搜索出来<br /> final String str = "aaaabbbbbcccbbbbbd****$$$$$$$$$%%%%%%%%aaab"; int length = str.length(); char temp = str.charAt(0); int start = 0; for(int i=1;i<length;i++) { //循环比较,如果在原创 2010-11-05 10:54:00 · 1117 阅读 · 0 评论 -
kmp算法的思想及其简单应用(java版)
<br />kmp算法是典型的字符串匹配算法。<br />相对于朴素字符串匹配算法来说,由于其在计算时进行了预处理,<br />所以在时间复杂度上比朴素字符串匹配算法要高。<br />其核心在于kmp算法在计算时的预处理。<br />预处理是干什么呢?<br />这里我们先给出一个算法导论上面字符串及其预处理结果。<br />字符串str为ababababca<br />预处理结果数组为:<br />[0, 0, 1, 2, 3, 4, 5, 6, 0, 1]<br />预处理结果数组与字符串的长度是一样的原创 2010-11-02 16:55:00 · 6615 阅读 · 1 评论 -
给定一个数组,求数组中所有元素的可能组合(每个元素只出现一次),使其和等于给定数的解决办法
<br />只求一个组合可以采用背包问题的思路,求所有组合的话,背包问题可能就不太适用了。<br />这里面采用暴力搜索+剪枝,具体是先对给定的数组进行排序,在求解的深度优先搜索过程<br />中,如果出现中间的求和结果大于预先给定的数,那么就不用继续搜索了(因为后面的元素都大于<br />等于当前的元素,不用再往后搜索了)。<br />以前也写过类似的程序,但只是针对具体问题的,<br />这里修改了下,<br />给出一个比较通用的代码:<br />public void find(int total,原创 2010-10-18 11:36:00 · 4794 阅读 · 1 评论 -
某php加密算法的java版本
<br />很久以前弄的了,作个记录,<br />不说了,上代码:<br />function encpw($src){$spw=$src;//$spw=base64_decode($src);$Xbox1 = array( chr(75), chr(99), chr(200), chr(24), chr(64), chr(10), chr(23), chr(52) );$Xbox2 = array( chr(12), chr(28), chr(21), chr(100), chr(29),原创 2010-11-30 14:57:00 · 985 阅读 · 0 评论 -
sso-cas全攻略(java版)------cas server端的login-webflow详细流程
<br />login-webflow是当你在浏览器里面输入https://localhost:8080/cas/login?param_list<br />后,cas server端如何处理的.<br />它实际上是spring-webflow的应用<br />有关spring-webflow的详细介绍,<br />网上铺天盖地,我就不啰嗦了<br />cas server端的web.xml文件里面有<br /> <servlet><br /> <servlet-name>cas</servlet-na原创 2010-11-30 11:04:00 · 19355 阅读 · 7 评论 -
汉字转化为unicode
<br /> public static String gbkToUnicode(String s) throws Exception { if(s == null) return null; char []chars = s.toCharArray(); StringBuffer result = new StringBuffer(); String temp = ""; for(int i = 0;i < chars.length; i++) { temp = In原创 2010-08-31 15:32:00 · 858 阅读 · 0 评论 -
基于数组的深度优先搜索二例
public void find20() { int []resultArray = new int[20]; for(int i=0;i 20) { resultArray[arrayLocationIndex-1] = 0; resultArray[arrayLocationIndex-2] = tempNumb原创 2010-08-23 12:00:00 · 1690 阅读 · 0 评论 -
红黑树java版
<br />早些日子某N天闲着没事,<br />听说jdk某类中有红黑树的实现,<br />挖出来改写了下,<br />做个记录。<br />package com.yaowei.datastructure;public class RBTreeNode<E> implements Comparable<RBTreeNode<E>>{ static boolean RED = true; static boolean BLACK = false; private E value; /原创 2010-08-24 10:16:00 · 1868 阅读 · 0 评论 -
fckeditor使用心得
<br />前一段时间一直在搞fckeditor的改造,<br />总算告一段落。。。<br />这下把改造的心得记录下,<br />为有需要的人提供点参考,<br />不当之处请及时指正。<br />1.fckeditor的编辑区域与空格有关的显示,如果其他地方有中文的话,<br />不是所见即所得的,明明显示是空两个中文,实际上发表以后不是如此。<br />原因在于fck的editarea的默认字体不是宋体<br />在fckeditor目录下找到<br />fck_editorarea.css文件,<原创 2010-06-25 17:31:00 · 999 阅读 · 0 评论 -
蛇形矩阵的两种实现方法(java版本)
<br />看到一个关于蛇形矩阵的帖子,<br />想了下如何一行一行打印,<br />无须建立二维数组存储。<br />基本思想如下:<br />把这个输出的二维数组从外到里分解为多层<br />每层都是一个正方形的边<br />从外到里称为1,2,3...层<br />对于一个指定维数(行=列)的二维数组,<br />其中某个位置的元素(x,y)<br />首先根据x,y计算出这个位置所在的层数,<br />然后根据层数计算出这层左上角元素的值,<br />(这个元素的位置必然是(层数-1,层数-1))原创 2010-06-25 17:25:00 · 8955 阅读 · 0 评论 -
某取数问题的递推解法
<br />杯具啊,听说是数论的题,可惜不会数论,<br />只能用递推法给出一个范围内的结果,原题如下:<br />对于任意整数n, 有甲乙两个人,每个人可以从n中取出6的次方个数,比如1,6,36,216。。。。,<br />比赛规则为:甲先取,谁最后将数取到0便为胜者。<br />注: 假设甲乙都都以最优化方式取数。<br />问: 给定任意整数n,设计算法计算出谁会是最后的胜者<br />这个题估计是以前看过某题的升级版,<br />某题大意是这样的:<br />一堆石头,两个人轮流取,每次可取1原创 2010-12-07 17:15:00 · 1193 阅读 · 0 评论 -
(java)a!=a在什么情况下为true?
<br />目前只发现两种情况:<br /> double a = Double.NaN; if(a != a) { System.out.println("gg"); } float b = Float.NaN; if(b != b) { System.out.println("gg"); }<br />为何?<br />对于jdk来说呢,具体实现也是有标准的<br />根据ieee 754的浮点运算标准来实现,好像在啥地方见过java的某个实现没有遵循这个原创 2010-12-09 10:31:00 · 2755 阅读 · 2 评论 -
bitmap思想及其在java中的相关实现
先看一个题目:给你一堆西安市的电话号码列表,数量大概在千万级,要求从中找出所有重复的电话号码,需要时间复杂度尽可能小。目前西安市的电话号码大概都以8开头,为8位,也就是类似于82678578这样子二重暴力搜索时间复杂度太高,这里我们不予考虑。容易想到的办法就是建立一个标志数组,int boolean都行,用相应的位置值来代替这个号码是否出现,根据数组的可直接存取特性,来提高效率。但是你是否想过或测试过int[] a = new int[100000000];boolean[] a = new boolean原创 2010-11-02 15:55:00 · 24144 阅读 · 5 评论 -
(java)urlconnection访问ContentEncoding为gzip的网页
<br />幸好java.util.zip包下提供了GZIPxxxx<br />可以直接调用,<br />ContentEncoding为text/html或其他类似的文本直接打印出来就行<br />为gzip的话,需要再转化一下<br />上程序:<br />String url = "http://health.sohu.com/yangshengtang/"; URL cumtURL = new URL( url); HttpURLConnection cum原创 2010-12-21 10:59:00 · 6873 阅读 · 0 评论 -
一个序列,顺序扫描,一个buffer保存中间结果,结束后每个元素被留在buffer中的概率相等
<br />一个元素大小就够了<br />从第一个开始扫描 <br />到第i个元素时,以1/i的概率保留第i个元素<br />可以保证每个元素被保留的概率都相等<br />上测试代码<br />public static void main(String []args) throws Exception{<br /> int size = 200;<br /> int []result = new int[size];<br /> for(int i = 0;i<result.length;i原创 2010-12-20 14:45:00 · 852 阅读 · 0 评论 -
sso-cas全攻略(java版)------部署cas server端应用
有了前面的基础,现在可以开始cas server端的部署了。首先大家可以去http://www.jasig.org/cas/download上下载cas的最新server端和client端这里我们下载的是cas-server-3.4.2-release.zip和cas-client-3.1.1-release.zip下载完成后是一个压缩包,解压后一堆文档,不过里面只有最核心的cas jar包需要的jar包是用maven管理的,需要安装maven后再从maven.apache.org下载,maven的使用倒也原创 2010-10-26 16:28:00 · 14136 阅读 · 2 评论 -
jdk1.5以后的多线程同步方式
<br />jdk1.5以后有了java.util.concurrent包<br />里面对同步提供了相当多的支持<br />例如lock atomic以及一些可同步操作的容器<br />下面给出一个常见的多线程面试题及其对应实现<br />有三个线程ID分别是A、B、C,请有多线编程实现,在屏幕上循环打印10次ABCABC<br />采用AtomicInteger来实现这个,<br />不多说了,上代码,还是相当简单易懂的<br />可以对concurrent包见一斑。。<br />import java原创 2010-12-13 15:37:00 · 2013 阅读 · 0 评论 -
一类排列组合问题的解决办法
<br />最近看到一个问题,大概是这样:<br />用1、2、2、3、4、5这六个数字,用你熟悉的语言写一个f()函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。<br />用for循环做太抽象,用set判定重复又太繁琐,还是用递归吧。<br />主要在于如何解决输出中重复的问题,<br />方法是先把输入的数字进行排序,<br />在递归调用时,如果碰到2...2这样的组合,直接跑到最后一个2进行递归,<br />避免重复。<br />初步原创 2010-10-21 11:10:00 · 784 阅读 · 0 评论 -
sso-cas全攻略(java版)------tomcat和weblogic配置ssl
<br />为了登陆的安全性,cas默认是用https协议进行用户名与密码的传递。但是tomcat在配置完成后默认并没有开启https端口(8443)。<br />这个时候就需要手工配置。当然,新版本的cas并没有强制使用https协议进行用户名与密码的传递,只是在某些老版本中有这方面的<br />限制,写在了源代码中。但是为了安全起见,为tomcat配置ssl还是十分必要的。你总不想被大家都能用的抓包工具看到http协议post<br />过去的用户名与密码明文吧?<br />这里我们对tomcat6.0原创 2010-10-19 17:38:00 · 5904 阅读 · 9 评论 -
sso-cas全攻略(java版)------sso及cas简介
<br />单点登录(SSO,Single Sign-on)是一种方便用户访问多个系统的技术,用户只需在登录时进行一次注册,就可以在多个系统间自由穿梭,不必重复输入用户名和密码来确定身份。单点登录的实质就是安全上下文(Security Context)或凭证(Credential)在多个应用系统之间的传递或共享。当用户登录系统时,客户端软件根据用户的凭证(例如用户名和密码)为用户建立一个安全上下文,安全上下文包含用于验证用户的安全信息,系统用这个安全上下文和安全策略来判断用户是否具有访问系统资源的权限.<b原创 2010-10-19 16:03:00 · 3076 阅读 · 1 评论