03 2013 档案
摘要:大家都知道,Java之所以如此受人喜欢,很大的原因是要规于它的跨平台性。“一次编写,到处运行”,Java诞生之时曾提出的著名的宣传口号,充分表达了软件开发人员对冲破平台界限的渴求。或许大部分程序员都认为Java虚拟机执行Java程序是一件理所当然和天经地义的事,但时至今日,商业机构和开源机构已经在Java语言之外发展出一大批在Java虚拟机之上运行的语言,如Clojure、Groovy、JRuby、Jython、Scale等。使用Java编译器可以把Java代码编译为存储字节码的Class文件,使用JRuby等其它语言的编译器一样可以把程序代码编译成Class文件,Java之所以能够跨平台运行
阅读全文
摘要:JVM:Java Virtual Machine,Java虚拟机。 作用:由类装载器装载class字节码文件,通过执行引擎执行被装载类中方法中的指令。 生命周期:启动一个Java程序,就会创建一个虚拟机实例,该程序关闭,虚拟机实例随之消亡。 虚拟机实例通过调用某个初始类的main方法来运行一个Java程序.JVM模块介绍: 1:类装载子系统:根据给定的类名或者接口名装载class字节码文件。 2:执行引擎:负责执行被装载类中的方法的指令。 3:方法区跟堆:每个虚拟机实例都有一个方法区和一个堆。【他们由该虚拟机实例中所有线程共享。】 方法区:...
阅读全文
摘要:Web应用实现国际化(i18n),主要包括两个方面一、页面(jsp)静态信息的国际化二、动态消息的国际化在开始Struts国际化之前,我们先来看一下java如何实现国际化主要步骤:1、创建属性文件(国际化资源文件)*国际化资源文件是有baseName+Locale构成,如MessagesBundle_en_US.properties*缺省的国际化资源文件是baseName.properties格式命名,如:MessagesBundle.properties*关于中文必须转换成unicode,可以采用JAVA_HOME/bin/native2ascii工具转换命令native2ascii.exe
阅读全文
摘要:Servlet方法:public class ValidateCodeServlet extends BaseServlet { private static final String CONTENT_TYPE = "image/jpeg"; /** * 数字图像认证系统 随机产生一个四位的数组,转换成图象输出 产生的数组保存在Session中,绑定名字“rand” * * @param super.getRequest() * @param super.getResponse() */ public void createImage(HttpServletRe...
阅读全文
摘要:疑问首选,给出一个php的示例代码,如果你完全明白为什么会出现如下结果,就不需要再在这篇博客浪费时间了,这里是让php初学者注意一下可能会犯的错误<?php var_dump("abcdefg" == "0"); // bool(false)
var_dump("abdsafd" == 0); // bool(true)如果你不是太清楚上面的结果,那就跟着博客继续学习下去吧!比较运算符比较运算符,如同它们名称所暗示的,允许对两个值进行比较。比较运算符例子名称结果$a == $b等于TRUE,如果$a等于$b$a === $b全等
阅读全文
摘要:Struts设置转向信息的时候,需要用到Forward。我们有四种不同的处理方式: <!--方式一、 全局转向信息,所有Action公用 --> <global-forwards> <forward name="error" path="/mustLogin.jsp" /> </global-forwards> <action-mappings> <!--方式二、 直接转向,不牵扯到action,完全交给Struts控制--> <action path="/showL
阅读全文
摘要:通过前面几篇的介绍,我们对ActionForward已经不再陌生,这篇我们再进一步了解一下它。1、转发or重定向ActionForward封装转向路径,用来完成页面的转向。那它既然是转向,到底是转发还是重定向呢?可以通过配置文件来设置,加入redirect属性,true重定向,false转发。默认的情况下,actionForward采用的是转发的方式进行页面跳转的。<forward name="success" path="/loginsuccess.jsp" redirect="true"/>转发和重定向的区别:转发的时
阅读全文
摘要:使用ActionForm把表单数据单独封装起来,而且提供了自动的数据验证,简化了代码的编写,给我们带来了极大的方便。但是,ActionForm也存在一些明显的不足:1、如果ActionForm对应的HTML表单添加或删除一些属性,ActionForm类就可能需要修改并重新编译;所以如果HTML表单是动态的,那么ActionForm就无能为力了;2、ActionForm增加了项目中类的数量!3、对于安全性要求不高的系统,ActionForm的数据验证并不常用,我们一般都在js中验证了面对这些缺点,Struts引入了动态actionform概念,动态ActionForm使得用户无须为应用程序的每一
阅读全文
摘要:动态规划算法基本概念动态规划的过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划基本思想和策略基本思想与分治法类似,也是将待求解的问题分解为若干个子问题阶段,按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解由于动态规划解决的问题多数有重叠子问题这个特点,为减少重复计算,对每一个子问题只解一次,将其不同阶段的不同状态保存在一个二维数
阅读全文
摘要:Struts标签库的使用和JSTL标签库使用方式类似。认识可以了,建议熟练掌握JSTL标签库。struts标签库基本认识就可以了。核心操作:配置:* 配置国际化支持,在struts-config.xml文件中加入如下配置:<message-resources parameter="MessageResources" />* 最好提供国际化资源文件(MessageResources.properties),将该文件放到src下使用:采用taglib引入<%@ taglib uri="http://struts.apache.org/tags-bea
阅读全文
摘要:引子打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些基础知识,自然,还是得从最基础的开始,那就从汇编语言开刀吧,从汇编语言开刀的话,我们必须还先要了解一些其他东西,像 CPU ,内存这些知识点还是理解深刻一点的比较好,所以这一篇博文就绕着 80x86 CPU 中寄存器的基础部分下手,至于其他的一些将会在后续的博文中介绍 。同时在这里说明一下,本篇博文介绍的算是比较详细的了,而且介绍的知识点也是比较多的,所以造成博文长度过长,如果有兴趣想了解这一块的话,还请自行斟酌好阅读比例,建议分 3 次以上阅览 。读者定位本博文主要将介绍的是 8086 CPU 中的寄存器,既然是 8086 C
阅读全文
摘要:先看struts-config.xml<action path="/login" type="com.jialin.LoginAction" name="userForm" scope="request" validate="true" attribute="uf"> <forward name="success" path="/LoginSuccess.jsp" /> <forward name=&quo
阅读全文
摘要:前言每次让我看到北邮的上机题目不管当时多忙我都必须把它们ac,原因是当年北邮复试,上机题目竟然一道也没有做出来,旁边一同学还抱怨和我坐一起连个讨论的人都没有!唉,往事不堪回首,这里记录一下2012年北邮上机的题目吧,每年复试前才会放出上一年的上机题目二进制数题目题目描述: 大家都知道,数据在计算机里中存储是以二进制的形式存储的。 有一天,小明学了C语言之后,他想知道一个类型为unsigned int 类型的数字,存储在计算机中的二进制串是什么样子的。 你能帮帮小明吗?并且,小明不想要二进制串中前面的没有意义的0串,即要去掉前导0。
输入:
第一行,一个数字T(T<=1000),表示...
阅读全文
摘要:了解了Struts的基本流程,那么我们利用Struts来实现一个简单的登陆功能:先用时序图来描述一下登录功能的处理流程:核心操作:1、配置struts* 拷贝struts相关的jar到WEB-INF/lib下* 在web.xml文件中配置ActionServlet* 提供struts-config.xml文件,需要放到WEB-INF下2、实现*建立login.jsp/loginSuccess.jsp/loginFail.jsp*建立了LoginAction.java/userActionForm.java*将LoginAction/LoginActionForm/相关jsp配置到struts-
阅读全文
摘要:原题地址:http://bbs.csdn.net/topics/390398519第一题、杨氏矩阵查找在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如下面的二维数组就是每行、每列都递增排序,如果在这个数组中查找数字6,则返回True;如果查找数字10,由于数组不含有该数字,则返回False。123456789输入:输入的第一行为两个整数m和n(1<=m,n<=1000):代表将要输入的矩阵的行数和列数。输入的第二行包括一个整数t(1<=t<=1000
阅读全文
摘要:图的定义和术语图中数据元素通常称为顶点(Vertex),V是顶点的有穷非空集合VR是两个顶点之间的关系的集合若<v,w>属于VR,则<v,w>表示从v到w的一条弧(Arc),且称v为弧尾(Tail)或起始点(Inital node),称w为弧头(Head)或终端点(Terminal node),此图称为有向图(Digraph)若<v,w>属于VR必有<w,v>属于VR,即VR是对称的,则以无序对(v,w)代替这两个有序对,表示v和w之间的一条边(Edge),此时图称为无向图(Undigraph)我们用n表示图中顶点的数目,用e表示边或弧的数目,那
阅读全文
摘要:题目题目描述:
求2个浮点数相加的和
题目中输入输出中出现浮点数都有如下的形式:
P1P2...Pi.Q1Q2...Qj
对于整数部分,P1P2...Pi是一个非负整数
对于小数部分,Qj不等于0
输入:
对于每组案例,第1行是测试数据的组数n,每组测试数据占2行,分别是两个加数。
每组测试数据之间有一个空行,每行数据不超过100个字符
输出:
每组案例是n行,每组测试数据有一行输出是相应的和。
输出保证一定是一个小数部分不为0的浮点数
样例输入:
2
0.111111111111111111111111111111
0.111111111111111111111111111111 1000.
阅读全文
摘要:上篇中,用jsp+servlet演示了一下Struts的基本原理,这一篇我们介绍一下Struts执行的基本流程。假设现在有以下情景:用户正在浏览一个用STRUTS的技术构建的网站主页,主页上有个登陆表单,用户填好登陆名和密码,单击“登陆”按钮,就激活了以下一系列过程:(1)用户的请求以HTTP方式传输到服务器上,接受请求的是ActionServlet.(2)ActionServlet接收到请求后,会查找Struts-config.xml文件来确定服务器上是否有用户请求的操作,此处用户请求操作应为登陆操作。如果没有,则返回一个用户请求无效的出错信息。(3)当ActionServlet请求找到用户
阅读全文
摘要:Date 对象Date 对象用于处理日期和时间。创建 Date 对象的语法:var myDate=new Date()注释:Date 对象会自动把当前日期和时间保存为其初始值。Date 对象属性FF:Firefox, IE:InternetExplorer属性描述FFIEconstructor返回对创建此对象的 Date 函数的引用。14prototype使您有能力向对象添加属性和方法。14Date 对象方法FF: Firefox, IE: Internet Explorer方法描述FFIEDate()返回当日的日期和时间。13getDate()从 Date 对象返回一个月中的某一天 (1 ~
阅读全文
摘要:题目题目描述: 输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。
输入: 输入第一行包括一个整数n(1<=n<=100)。 接下来的一行包括n个整数。
输出: 可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。 每种遍历结果输出一行。每行最后一个数据之后有一个空格。
样例输入:
5
1 6 5 9 8
样例输出:
1 6 5 9 8 1 5 6 8 9 5 8 9 6 1 提示:
输入中可能有重复元素,但是输出的二叉树遍历序列中重复元素不用输出。AC代码#include <std...
阅读全文
摘要:通常的理解:Java中,提起i++就知道是先赋值后自增,提起++i就知道是先自增后赋值,那么来看下面一段程序:public class Demo{ public static void main(String[] args) { int x = 0; for (int y = 0; y < 5; y++) { x = x++; System.out.println("x=" + x); } /* 控制台输出结果: x=0 x=0 x=0 x=0 x=0 */ }
}
问题的引出:为何输出结果都是0?变量x自加了吗?看到这最好...
阅读全文
摘要:JAVA虚拟机的生命周期 一个运行时的Java虚拟机实例的天职是:负责运行一个java程序。当启动一个Java程序时,一个虚拟机实例也就诞生了。当该程序关闭退出,这个虚拟机实例也就随之消亡。如果同一台计算机上同时运行三个Java程序,将得到三个Java虚拟机实例。每个Java程序都运行于它自己的Java虚拟机实例中。 Java虚拟机实例通过调用某个初始类的main()方法来运行一个Java程序。而这个main()方法必须是共有的(public)、静态的(static)、返回值为void,并且接受一个字符串数组作为参数。任何拥有这样一个main()方法的类都可以作为Java程序运行的起点。p..
阅读全文
摘要:题目题目描述:
判断两序列是否为同一二叉搜索树序列
输入:
开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束。
接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。
接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树。
输出:
如果序列相同则输出YES,否则输出NO
样例输入:
2
567432
543267
576342
0
样例输出:
YES
NO思路二叉搜索树的特点二叉查找树,对任何结点x,其左子树中的关键字最大不超过key[x],其右子
阅读全文
摘要:struts是开源项目。它通过采用 Java Servlet/JSP 技术,实现了基于Java EE Web应用的MVC的应用框架。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。MVC即Model-View-Controller的缩写,是一种常用的设计模式(具体自己百度吧)我们用JSP+Servlet实现“一个应用的增改信息”,先来看一下,如果没有Struts,我们一般都是怎么做的。废话少说,果断上代码V层用JSP实现<body>
<a href="Servlet/Add.action">测试增加》》》》》》》》》》
阅读全文
摘要:图示C内存分配程序代码区存放函数体的二进制代码全局数据区全局变量和静态变量的存储是放在一起的。初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。常量数据存放在另一个区域里。这些数据在程序结束后由系统释放。我们所说的BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称栈区由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈堆区一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收命令行参数区存放命令行参数和环
阅读全文
摘要:相信大家看到这个标题都不屑一顾,因为在任何一本计算机基础知识书的第一章都有他们的解释,但是在书上我们只能找到一些简单的定义,没次看过之后不久就忘了。最近论坛里有人问起这些概念,看到很多人的回复是以前看过现在忘了去看看某某书之类,很少有给出一个合理的解释。于是本人就开始思考(虽然上帝会发笑,我还是要思考。),于是得出了以下的结论。 数值在计算机中表示形式为机器数,计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,"正如亚里士多德早就指出的那样,今天十进制的广泛采用,只不过我们绝大多数人生来具有10个手指头这个解剖学事实的结果.尽管在历史上手指计数(5,10进制)的
阅读全文
摘要:byte 长度是1字节,也就是8位,八位二进制数转换为十进制最大值是多少?是255。如果是unsigned byte 那么取值范围就是 0-255,而Java中的byte是有符号位的,第一位表示正负数,0代表正数,1代表负数。下面引用其它博友的解答并加以分析:博友解答:概念:负数的补码为其原码除符号位外取反然后总体加一步骤:1.确定byte是1个字节,也就是8位2.最大的应该是0111 1111,因为第一位是符号位,0表示正数3.最小的应该是1000 0000,因为第一位是符号位,1表示负数4.0111 1111即127,1000 0000即-128。5.1000 0000按照最下面的解释为先
阅读全文
摘要:1、利用filter对一些不变的数据进行简单缓存,例如图片 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest)request; HttpServletResponse res = (HttpServletResponse)response; //时间可以也可以配到...
阅读全文
摘要:【基础概念:】汇编指令,是机器指令的助记符,每一种CPU都有自己的机器指令集。汇编,程序员用汇编语言(汇编指令)编写源程序,汇编编译器将其编译为机器码,由计算机执行。【计算机常用计量单位:】bit(位) byte(字节) kb(千字节) mb(兆) gb(千兆字节)一般以字节(byte)作为计算机存储容量的基本单位,一个字节是八个二进制位(1Byte=8Bit),共有2^8=256种电路状态。怎么去理解计算机存储容量呢?1):生活中,大家常说我下载了一个1MB的文件,那这1MB在平常人理解看来是什么样呢?我想对于普通PC用户来说,1MB仅仅就是数字上的概念,比kb大,比gb小,用常用的数学概念
阅读全文
摘要:定义方式下标数组直接赋值#!/bin/bash arr[0]="one"
arr[1]="two"
arr[2]="three" for num in ${arr[*]}
do echo $num
done
圆括号顺序赋值arr=("four" "five" "six") for num in ${arr[*]}
do echo $num
don执行结果关联数组前提:关联数组需要进行语法声明,参考链接:http://blog.csdn.net/zinss26914/artic
阅读全文
摘要:以往Tomcat5.0的连接池配置是在http://localhost:8080/admin/下进行的非常方便,可是5.0以后的版本里面Tomcat就没有把admin集成到程序中了。Tomcat5.5的admin可以在apache官方网站上下到,也可以通过admin里面的提示信息进行配置。可是Tomcat6.0和7.0以后就没有admin管理界面了。这个时候配置连接池就必须手动配置了。以前很多都是在server.xml中配置的,现在分离出了一个context.xml下面说一下,在Tomcat6和7下如何配置连接池第一步:首先要把jdbc驱动文件拷贝到Tomcat安装目录的lib文件夹下由于是使
阅读全文
摘要:前言数组中判断元素是否存在的时间复杂度一般为O(n),是因为大家一般的做法都是遍历一遍数组看看所要找的数据是否存在。这里介绍一种利用key的唯一性来实现的时间复杂度为O(1)的判断元素是否存在的方法在c语言里这种方法经常使用,这里介绍在shell的语法中我们如何利用关联数组和key值唯一性来提高脚本的执行效率需求&&解决方法构建关键字数组和查找数组#构建关键字数组
for num in `seq 1 10`
do element[$num]="user_"$num
done #构建被搜索数组
for num in `seq 1 100`
do search[
阅读全文
摘要:前言用bash shell写程序时,经常会用到for循环,特别是从1到100这种需求,这里记录几种shell中从1到100的循环方法方法类c语言for ((i=1; i<=100; i ++))
do echo $i
done
in使用for i in {1..100}
do echo $i
done
seq使用作用seq - print a sequence of numbers代码for i in `seq 1 100`
do echo $i
done后记虽然这篇博客没什么技术含量,但是记录一下总是遗忘的shell语法,省得每次都去google,特别是现在FQgoogle服务都不稳定
阅读全文
摘要:锁在并发环境下,解决共享资源冲突问题时,可以考虑使用锁机制。synchronized同步当使用同步块时,如果方法下的同步块都同步到一个对象上的锁,则所有的任务(线程)只能互斥的进入这些同步块。举例说明:1、Test1.java演示了4个线程(包括main线程)试图进入某个类的三个不同的方法的同步块中线程1调用method1线程2调用method2线程3调用method3main也调用method3不仅仅线程3和main是互斥的,实际上4个线程都是互斥的,因为他们都同步到了一个对象上(当前对象 synchronized (this)),所以对它们的方法依然是互斥的。2、Test2.java演示了
阅读全文
摘要:首先 本人觉得他们两个很类似,所以我才会说说他们的区别。。 - -相同点:1. 都是object类型的。2. 都是在函数内部声明,看似是局部变量,但是在类中的其他函数也可以使用3.使用方法相同。和session的区别就是:1. session是直接存在硬盘中的而viewstate是存在html文档里的;2. session存储主要是调用的cookie所以存储大小有限制。。貌似是1024k吧。。。viewstate没有。。
阅读全文
摘要:JSTL一般要配合EL表达式一起使用,通过提供大多数 Web 应用程序常用功能的标准实现,JSTL 有助于加速开发周期。一、JSTL和El表达式的关系EL与四个 JSTL 定制标记库提供的操作结合起来允许页面作者不使用脚本元素即可实现表示层逻辑(不需要对表示层程序编写java代码),这极大地简化了 JSP 应用程序的维护。二、使用方法:1、如果只是使用EL表达式不需要引入任何jar包,只要jsp/servlet容器实现了J2EE1.4/Servlet2.4、JSP2.0规范就可以2、JSTL标签的配置和使用:(1)将jstl.jar和standard.jar拷贝到WEB-INF/lib下(2)
阅读全文
摘要:今天,老师带偶们复习了一下数据库中的分页,总体来说,今天感觉还不错,因为以前学的还没忘。。-_-||| 好了,进入正题, 首先,说说top的方法 top方法其实就是将你要查的的页数的数据前得数据去掉 再取前几 例:一页3条数据 取第一页的数据 -- 第一页 select top 3 * from T_news; 取第五页的数据 --第五页 select top 3 * from T_News where id not in (select top (3*4) id from T_News) --关键就在于not in上 靠他来去掉前几页的数据 如果想要自己设定每页几条数据和看第几页的...
阅读全文
摘要:段寄存器是因为对内存的分段管理而设置的。16位CPU有四个段寄存器,所以,其程序可同时访问四个不同含义的段。段寄存器及其偏移量的引用关系如图所示。段寄存器CS指向存放程序的内存段,IP是用来存放下条待执行的指令在该段的偏移量,把它们合在一起可在该内存段内取到下次要执行的指令。段寄存器SS指向用于堆栈的内存段,SP是用来指向该堆栈的栈顶,把它们合在一起可访问栈顶单元。另外,当偏移量用到了指针寄存器BP,则其缺省的段寄存器也是SS,并且用BP可访问整个堆栈,不仅仅是只访问栈顶。段寄存器DS指向数据段,ES指向附加段,在存取操作数时,二者之一和一个偏移量合并就可得到存储单元的物理地址。该偏移量可以是
阅读全文
摘要:概述一个数的约数,并且是质数,比如8=2×2×2,2就是8的质因数。 12=2×2×3,2和3就是12的质因数。把一个式子以12=2×2×3的形式表示,叫做分解质因数。分解质因数的方法是先用一个合数的最小质因数去除这个合数,得出的数若是一个质数,就写成这个合数相成的形式;若是一个合数就继续按原来的方法,直至最后一个质数题目题目描述:
求正整数N(N>1)的质因数的个数。
相同的质因数需要重复计算。如120=2*2*2*3*5,共有5个质因数。
输入:
可能有多组测试数据,每组测试数据的输入是一个正整数N,(1<N<1
阅读全文
摘要:题目题目描述:
将M进制的数X转换为N进制的数输出。
输入:
输入的第一行包括两个整数:M和N(2<=M,N<=36)。
下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出。
输出:
输出X的N进制表示的数。
样例输入:
16 10
F
样例输出:
15
提示:
输入时字母部分为大写,输出时为小写,并且有大数据。思路大整数乘法转换成10进制数组大整数除法转换成指定进制数AC代码#include <stdio.h>
#include <stdlib.h>
#include <string.h> #define LE
阅读全文
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace lianxi4{ class Program { static void Main(string[] args) { string str = "Welcome to china! this is a beautiful county, i think you will like it.here is The great wall"; str= str.ToLower();//避免出现大小写问
阅读全文
摘要:pageContext属性默认在当前页面是共享的。session中的属性在当前session中是共享的ServletContext对象中的属性对所有页面都是共享的。
阅读全文
摘要:在做考试系统的时候,当使用到事务的时候,为保证各个方法都是使用同一个连接,我们需要把连接传来传去的。这里,我们采用ThreadLocal维护Connection可以避免这种情况。ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一些。该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。
阅读全文
摘要:如果采用三层架构的方式开发,在业务逻辑层不可避免的要手动操作事务,所以在业务逻辑层会出现很多与业务逻辑无关的:Connection conn = ConnectionManage.GetConnection();ConnectionManage.beginTransaction(conn);ConnectionManage.commitTransaction(conn);等等代码。不仅不合理,而且是重复劳动,程序开发的一个原则就是杜绝重复劳动,做到良好的封装。这里,我们就采用动态代理对事务进行封装,使我们的业务逻辑层不再出现有关事务的代码。package com.jialin.drp.util
阅读全文
摘要:代理模式是对象的结构型模式,代理模式给某一个对象提供了一个代理对象,并由代理对象控制对原对象的引用。代理分静态代理和动态代理一、静态代理代码示例接口package com.jialinl;public interface InterfaceUserManage { public void AddUser(); public void DelUser(); public void ModifyUser();}目标类package com.jialinl;public class UserManageImp implements InterfaceUserManage { @Override pu
阅读全文
摘要:静态包含是在请求包含页面时去编译包含页面,编译时遇到静态页面包含伪码将被包含页面的内容复制到被包含页面中进行编译。动态包含是指在请求包含页面的时候遇到动态包含指令将请求转到被包含页面,这时去编译被包含页面。测试项目静态包含Header.jsp<html><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030"><title>Insert title here</title></head><
阅读全文
摘要:我们通常可以部署一些特殊的Servlet类来监听Web应用的上下文信息、Servlet会话信息,Servlet请求信息等。通过这些监听,我们可以自动执行某些程序。例如,我们可以把利用监听会话信息,来统计在线人数。我们可以监听ServletContext,来初始化一些系统常量,初始化一些工厂等。我们可以通过对请求进行监听,可以控制用户访问,例如如果是本地机器访问,不用登陆,如果是远程机器访问,需要登陆。我们完全可以通过监听请求获取客户端地址,来做相应处理。利用监听的实例比比皆是。一、ServletContext监听,监听ServletContext信息。1、实现ServletContextLis
阅读全文
摘要:在Web应用开发中,我们经常使用过滤器截取从客户端发来的请求,做出相应的处理。过滤器可以说是外部进入网站的第一道关卡。我们可以利用这道关卡做很多事,例如:对数据进行编码;判断用户是否来自可信任的网络;过滤垃圾数据;记录日志;判断客户端浏览器版本;验证用户是否合法等等……下图用UML时序图简单画了一下filter的基本原理一、定义过滤器类,必须实现 java.servlet.Filter接口 实现三个方法:1、init(FilterConfig filterConfig) 初始化过滤器,在Servlet容器(服务器刚启动时,一般为tomcat启动时)创建过滤器实例的时候就会调用该方法,多用于读取
阅读全文
摘要:题目题目描述: 对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们乘B为A的二进制逆序数。 例如对于十进制数173,它的二进制形式为10101101,逆序排列得到10110101,其十进制数为181,181即为173的二进制逆序数。
输入: 一个1000位(即10^999)以内的十进制数。
输出: 输入的十进制数的二进制逆序数。
样例输入:
173
样例输出:
181思路这道题花了我将近一天的时间才ac,主要失误在没有考虑大数的n次方,这里讲一下具体的思路和容易出错的地方首先,将十进制字符串A通过大数除法转换成二进制字符串B,参考...
阅读全文
摘要:前言今天下午在九度做题,又遇到了大整数乘法的问题,求n的阶乘。当n很大时,求得的结果肯定超出了unsigned long int所能表示的范围,因此需要用整型数组去模拟两个数的乘法。具体方法写在实现代码中了题目题目描述: 输入一个正整数N,输出N的阶乘。
输入:
正整数N(0<=N<=1000)
输出: 输入可能包括多组数据,对于每一组输入数据,输出N的阶乘
样例输入:
4
5
15
样例输出:
24
120
1307674368000AC代码#include <stdio.h>
#include <stdlib.h>
#include <string
阅读全文
摘要:接着上一篇文章、今天继续学习利用java 反射机制构建JSON字符串。JSON的格式跟使用的方式方法就不讲了、这个百度一下就有......好了今天心情很糟糕、直接上代码吧!import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List; import com.test.hzw.bean.test_user;
import co.
阅读全文
摘要:前言唉,总感觉想帮助老师确是力不从心,只能尽自己最大的努力,这一年多下来看还是学生靠谱,学历高靠谱,学历不能反应所有问题,但是可以反应大部分问题,至少我身为硕士经常学习算法或者计算机其它方面东西到深夜题目题目描述:
将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。
输入:
多组数据,每行为一个长度不超过30位的十进制非负整数。
(注意是10进制数字的个数可能有30个,而非30bits的整数)
输出:
每行输出对应的二进制数。
样例输入:
0
1
3
8
样例输出:
0
1
11
1000思路很明显,30位的整数是无法用long int类型来表示的,因此我们采用char str[3
阅读全文
摘要:1、后台生成input的button按钮HtmlGenericControl control = new HtmlGenericControl("input");control.Attributes.Add("type", "button");control.Attributes.Add("onclick",Page.ClientScript.GetPostBackEventReference(this, "btnMyQuery")写入到界面中2、后台回发拦截与处理 if (Page.IsPos
阅读全文
摘要:经过前面的一篇文章的学习、学会了利用Class.formName("")去获取Class对象、在通过Class对象提供的静态方法、获取类或接口的字段、方法、构造这些成员。了解了反射的一些基础、个人觉得学习编程应该充分的动起手来。在使用过Hibernate的查询过后、突然觉得普通的JDBC查询对查询结果的封装很是麻烦!于是仿造它、构建一个简单的JDBC查询。数据库连接类:/** * 数据连接类 * @author 胡汉三 * */
public class UtilDao { static Properties properties = null; public Util..
阅读全文
摘要:Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类。Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建。 Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的,因此不能显式地声明一个Class对象。 虚拟机为每种类型管理一个独一无二的Class对象。也就是说,每个类(型)都有一个Class对象。运行程序时,Java虚拟...
阅读全文
摘要:题目题目描述: 求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。 不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。
输入: 输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。a,b是十进制整数,2 =< a,b <= 16。 数据可能存在包含前导零的情况。
输出: 可能有多组测试数据,对于每组数据,输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0,1,......
阅读全文
摘要:重构教务考试系统接近尾声了,写这篇文章,总结一下这次项目中的得失。一、缺有经验,强势,并且有人脉的项目经理我们的项目前期之所以陷入一滩烂泥,我认为主要是出在项目经理身上,没有贬低人的意思,就事说事。由于人员紧缺,项目经理承担了过多地任务,既要做需求,又要做设计,导致开发人员在那干等着,啥事干不了。如果有丰富经验地项目经理绝不会犯这种错误。之所以说到强势,不仅是说对下属地强势,而且是排除掉那些对项目不利地影响。有拍板地魄力,敢于承担责任,杜绝互相扯皮,不能让其他部门或者事情影响了项目地顺利进行。拍板是需要支撑地,必须有人支撑,领导也好,同事也好,良好地人脉是必须的。如果项目经理权力很弱,复杂的人
阅读全文
摘要:今天早上、在群里闲聊。群友A说道叫群友B拉几个妹纸进群来聊天。B说道:"凡是我认识的妹子,我都会标注为private,怎么可能有public的"。A说道:"你妹,伙计们,用反射获取他的private属性"。于是闲的蛋疼的我就去写代码去了、在写代码的过程中、我的疑惑渐渐的多了起来。好多以前学习过的内容都忘记了、于是乎Google百度什么的开始忙了起来。String classPath = "com.test.hzw.bean.test_user"; //B君的类路径 Class cls = Class.forName(classPath
阅读全文
摘要:前言这个周末感冒,一直没写程序,拿到题练习一下,我很奇怪的是这道题只能用全局数组,传参总会出问题,gdb没有调试出来,太诡异了题目题目描述:
实现一个加法器,使其能够输出a+b的值。
输入:
输入包括两个数a和b,其中a和b的位数不超过1000位。
输出:
可能有多组测试数据,对于每组数据,
输出a+b的值。
样例输入:
2 6
10000000000000000000 10000000000000000000000000000000
样例输出:
8
10000000000010000000000000000000ac代码#include <stdio.h>
#include &l
阅读全文
摘要:前言今天很天真的写了个openvpn的开机启动脚本,以为添加到/etc/rc.local就万事大吉了,结果肯定是失败的,因此这里记录一下我学习linux启动流程的过程!系统启动流程加载BOIS的硬件资讯与进行自我测试,并依据配置取得第一个可启动的装置在个人计算机架构下,你想要启动整部系统首先就得让系统去加载BIOS(Basic Input Output System),并透过BIOS程序去加载CMOS资讯,并且藉由CMOS内的配置值取得主机的各项硬件配置。在取得这些资讯后,BIOS还会进行启动自我测试(power-on self test,POST)。然后开始运行硬件侦测的初始化,并配置PnP
阅读全文
摘要:前言自己管理的一台服务器出现了时间错误,导致邮件发送显示的时间很有问题,因此痛定思痛,在这里花时间记录一下搭建ntp服务器的过程简介NTP协议全称网络时间协议(Network Time Procotol),它的目的是在国际互联网上传递统一、标准的时间。具体的实现方案是在网络上指定若干时钟源网站,为用户提供授时服务,并且这些网站间应该能够相互比对,提高准确度。NTP是一个跨越广域网或局域网的复杂的同步时间协议,它通常可获得毫秒级的精度。RFC2030描述了SNTP(Simple Network Time Protocol),目的是为了那些不需要完整NTP实现复杂性的主机,它是NTP的一个子集。通
阅读全文

浙公网安备 33010602011771号