自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 迅雷笔试题

迅雷笔试题编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。Java实现代码如下:public class PrintThread extends Thread {   private intprintCount = 0;   publicPrintTh

2012-05-20 10:59:15 918

原创 递归计算n个数中取k个的取法总数

递归计算n个数中取k个的取法总数不采用公式直接计算。思路如下:n个数中取k个,可以分为两种情况(假设n个数中某个数为s):Ø  包含s;Ø  不包含s。包含s的取法总数为从剩余的n-1个数中取k-1个数的取法总数,即C(n-1,k-1);不包含s的总数为从剩余的n-1个数中取k个数的取法总数,即C(n-1,k)。结论如下:当n>k>0时,

2012-05-20 10:48:05 2375

原创 Java RMI

Java RMI当在一台计算机上的某个对象需要调用在另一台计算机上的某个对象时,它会发送一个包含这个请求的详细信息的网络消息。这个远程对象可能通过访问数据库也可能通过与其他对象通信来计算出响应。一旦该远程对象得到了客户端请求的东西,就将它送回客户端。1.客户与服务器的角色所有分布式编程技术的基本思想都很简单:客户计算机产生一个请求,然后将这个请求通过网络发送到服务器。服务器处理这个

2012-05-16 15:24:32 3945 1

原创 海量数据处理(1)

海量数据处理题目1给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,找出a、b文件共同的url?解决方案:每个文件的大小为(5000000000×64÷1024÷1024÷1024)G≈298G,远远超出内存限制,所以不可能将其完全加载到内存中处理,采用分而治之的思想。1. 处理文件a遍历文件a,对每个url求取hash(url)%100

2012-05-09 11:08:38 675

原创 Single Thread Execution

Single Thread Execution这里有一条独木桥。因为桥身非常的细,一次只能容许一个人经过。当一个人还没有走到桥的另一头,下一个人不可以过桥。如果桥上同时有两个人,桥身就会变成碎片而掉落河里了。Single ThreadExecution是指“以1个线程执行”的意思。就像独木桥只能允许一个人通行一样,这个Pattern用来限制同时只让一个线程执行。Single Threa

2012-05-08 10:13:10 1927

原创 数据库事务ACID

ACIDACID,是指在可靠数据库管理系统(DBMS)中,事务(Transaction)所应该具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。Atomicity原子性(Atomicity)意味着数据库中的事务执行是原子操作,即不可再分,要么全部执行,要么全不执行。Consistency

2012-05-07 10:49:24 2275 1

原创 会话跟踪

会话跟踪会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。理论是,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。而Web应用程序是使用HTTP协议传输数据的。HT

2012-04-22 21:15:50 2756

原创 Thread-Sepecific Storage

Thread-SpecificStorageThread-SpecificStorage Pattern是只有一个入口,但内部会对每个线程提供特有存储空间的Pattern。比如说有一个保管箱间,里面有许多用户的保管箱,当多个用户进入房间使用保管箱时,进到的是同一个房间,但一定是只能打开自己的保管箱,只能对自己的保管箱提取或放置物品。ThreadLocaln  public void

2012-04-14 10:13:53 1102

原创 Java正常关闭资源的方式

在实际开发中,经常需要在程序中打开一些物理资源,如数据库连接、网络连接、磁盘文件等,打开这些物理资源之后必须显式关闭,否则将会引起资源泄漏。JVM的垃圾回收机制不会回收这些资源,垃圾回收机制属于Java内存管理的一部分,它只是负责回收堆内存中分配出来的内存,至于程序中打开的物理资源,垃圾回收机制是无能为力的。为了正常关闭程序中打开的物理资源,应该使用finally块来保证回收。下面程序

2012-04-10 15:00:15 4993

原创 Java线程的生命周期

Java线程的生命周期一个线程的产生是从我们调用了start方法开始进入Runnable状态,即可以被调度运行状态,并没有真正开始运行,调度器可以将CPU分配给它,使线程进入Running状态,真正运行其中的程序代码。线程在运行过程中,有以下几个可能的去向:(1)调度器在某个线程的执行过程中将CPU分配给了其它线程,则这个线程又变为Runnable状态,等待被调度。(2)调度器

2012-04-09 11:25:15 7007

原创 Thread-Per-Message Pattern

Thread-Per-MessagePatternPer是“每一”的意思,Thread-Per-Message即每个消息一个线程。Message在这里可以看作是“命令”或“请求”的意思。对每个命令或请求,分配一个线程,由这个线程执行工作,这就是Thread-Per-Message Pattern。使用Thread-Per-Message Pattern时,“委托消息的一端”与“执行消息

2012-04-08 17:04:37 1089

原创 Reader-Writer Pattern

当线程“读取”实例的状态时,实例的状态不会变化。会使实例状态变化的,只有线程对实例的“写入”的操作而已。如果把视角放在实例状态变化的角度来看时,“读取”与写入本身是不同的东西。读写者问题解决的就是将实例的读取与写入分开来处理。在读取数据之前,必须获取用来读取的锁定,而要写入的时候,则必须获取用来写入的锁定。因为进行读取时,实例的状态不会改变,所以,就算有多个线程在同时读取也没有关系。但,有

2012-04-06 21:13:27 737

原创 Producer-Consumer Pattern

Producer-ConsumerPatternProducer是“生产者”的意思,是指产生数据的线程。而Consumer是“消费者”的意思,意指使用数据的线程。生产者必须将数据安全地交给消费者。虽然只是这样的问题,但当生产者与消费者在不同线程上运行时,两者的处理速度差将是最大的问题。当消费者要取数据时生产者还没建立出数据,或是生产者建立出数据时消费者的状态还没办法接收数据等等。Pro

2012-04-06 19:57:02 1047

原创 Struts2中Ajax的使用(Javascript实现)

Struts2中Ajax的使用(Javascript实现)描述:实现在输入框中输入信息时动态提示(模仿百度或谷歌的页面效果)。注意:服务器端提示信息以XML格式返回。1. 页面效果  2. 页面Html代码 提示:输入祥子、帅帅、图书馆、阿姨

2012-04-01 10:11:51 2935 1

原创 对象与内存控制

对象与内存控制Java内存管理分为两个方面:内存分配和内存回收。这里的内存分配特指创建Java对象时JVM为该对象在堆内存中所分配的内存空间。内存回收指的是当该Java对象失去引用,变成垃圾时,JVM的垃圾回收机制自动清理该对象,并回收该对象所占用的内存。由于JVM内置了垃圾回收机制回收失去引用的Java对象所占用的内存,所以很多Java开发者认为Java不存在内存泄漏、资源泄漏的问题。实际上

2012-03-28 14:51:28 687

原创 Servlet实现上传下载

Servlet实现上传下载文件的上传下载在Web开发中会经常遇到,使用基本的I/O(输入/输出)流当然可以完成这项操作,但是出于对开发效率和程序运行效率方面的考虑,在实际开发过程中一般采用第三方的组件来完成这个上传功能。本例选择使用commons-fileupload组件,使用的时候需要commons-io的支持。将commons-fileupload-1.2.2.jar与commons-

2012-03-26 23:28:27 1641

原创 JavaEE平台下Ajax的使用

Ajax1. XMLHttpRequest对象XMLHttpRequest对象在Ajax中占据着十分重要的地位,Ajax中的客户端就是通过XMLHttpRequest对象实现与服务器通信的。1.1 创建XMLHttpRequest对象此对象需要在发送请求和接收响应之前创建。在IE浏览器中,XMLHttpRequest对象是以ActiveX组件的形式提供的;而在其他浏览器中则使用Ja

2012-03-26 17:02:05 2919

原创 数组和内存控制

数组与内存控制使用Java数据之前必须先对数组对象进行初始化。当数组的所有元素都被分配了合适的内存空间,并指定了初始值时,数组初始化完成。程序以后将不能重新改变数组对象在内存中的位置和大小。从用法角度来看,数组元素相当于普通变量,程序既可以把数组元素的值赋给普通变量,也可把普通变量的值赋给数组元素。(注意数组变量、数组对象、数组元素的区别)1.1 数组初始化如果程序需要多个类型相同的变

2012-03-25 12:18:13 1321

原创 Java实现定时关机

<br />/*<br /> * MainFrame.java<br /> *<br /> * Created on __DATE__, __TIME__<br /> */<br />package com.main;<br />import java.awt.AWTException;<br />import java.awt.MenuItem;<br />import java.awt.PopupMenu;<br />import java.awt.SystemTray;<br />import jav

2011-05-27 17:58:00 828

原创 以文本格式存储对象数组(使用PrintWriter、Scanner)

<br />对象文件:<br />public class Student {<br /> <br /> private String number;<br /> <br /> private String name;<br /> <br /> private String sex;<br /> <br /> private int age;<br /> <br /> private GregorianCalendar birthDate;<br /> public String getNumber() {

2011-05-27 17:51:00 1219

原创 Java中的classpath问题

<br />     //1.得到的是当前类文件(.class文件)的URI目录。不包括自己!<br />     System.out.println(this.getClass().getResource("students.txt"));<br />     <br />     //2.得到的是当前的classPath的绝对URI路径。<br />     System.out.println(this.getClass().getResource("/")); // Class文件所在路径<br

2011-05-27 17:49:00 709

原创 Java的内存分配

<br />Java把内存划分成两种:一种是栈内存,另一种是堆内存。<br />在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配,当在一段代码块(也就是一对花括号{}之间)定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。<br />堆内存用来存放由new创建的对象和数组,在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊

2011-05-07 08:46:00 480

原创 Java操作Properties文件

<br />import java.io.BufferedInputStream;<br />import java.io.BufferedOutputStream;<br />import java.io.File;<br />import java.io.FileInputStream;<br />import java.io.FileOutputStream;<br />import java.io.IOException;<br />import java.io.InputStream;<br />

2011-05-05 09:32:00 670

原创 Java使用URLConnection写入和读取数据

<br />通过应用程序使用URLConnection访问Servlet(该Servlet的功能为将InputStream传入的字符串转换为大写字字母并重新写入OutputStream),将字符串数据写入OutputStream传入Servlet中,并通过InputStream获取Servlet的返回结果。<br /> <br />应用程序代码:<br />  URL url = new URL("http://localhost:8080/URLConnection/servlet/Receive");<

2011-04-13 19:28:00 6671 6

原创 Tomcat运行环境配置

<br />Tomcat的运行环境配置     ­<br />    ­<br />    (1)安装j2sdk-1_4_1_02,把servlet.jar放到d:/j2sdk1.4.1_02/lib下     ­<br />    ­<br />    (2)环境变量的设置:     ­<br />    ­<br />       CLASSPATH=d:/j2sdk1.4.1_02/lib/tools.jar;d:/j2sdk1.4.1_02/lib/servlet.jar   ­<br />    

2011-04-13 12:08:00 733

原创 Java使用URLConnection类访问网络资源

import java.io.*;import java.net.*;public class URLConnectionTest { public static void main(String[] args) { try { URL url = new URL("http://www.baidu.com"); URLConnection urlConnection = url.openConnection(); B

2011-04-13 11:18:00 996

原创 Java使用URL类访问网络资源

<br />import java.net.*;<br />import java.io.*;<br />public class URLTest {<br /> <br /> public static void main(String[] args) {<br />  <br />  try {<br />   <br />   URL url = new URL("http://www.baidu.com");<br />   <br />   InputStream input = url.open

2011-04-13 11:15:00 1057

原创 Java中线程的创建

<br />同类的多个线程是共享一块内存空间和一组系统资源的,而线程本身的数据通常只是微处理器的寄存器数据,以及供程序使用的堆栈。所以系统在产生一个线程或在多个线程之间进行切换时,负担要比进程小得多。<br /> <br />一个进程中可以包含多个线程。<br /> <br />多线程编程的含义是指可将程序任务分成几个并行的子任务。<br /> <br />Java中的线程可以认为由3部分组成:虚拟CPU、代码和数据:<br />(1)虚拟CPU封装在Java.lang.Thread类中。<br />(2)

2011-04-13 09:53:00 520

原创 Java中的数组

<br />一维数组<br /> <br />一维数组的定义:<br />数组元素类型 数组名[];<br />数组元素类型[] 数组名;<br /> <br />其中数组元素类型可以是Java中任意的数据类型,包括基本数据类型和复合数据类型,数组名需要是一个合法的标识符;[]指明该变量是一个数组类型变量,[]可以写在数组元素类型后的标识符前或标识符后。<br /> <br />需要注意的是,Java在通过以上的方式进行数组定义时,只是建立了一种数组的引用,并没有对数组元素分配内存、生成实例,数组元素的内存

2011-04-12 19:38:00 542

原创 Java中数据的输入问题

<br />import java.io.*;<br />import java.util.*;<br />public class InputTest {<br /> <br /> public static void main(String[] args) throws Exception {<br />  <br />  Scanner cin=new Scanner(System.in);                    <br />  <br />  int a=cin.nextInt();

2011-04-12 18:25:00 594

原创 面试题攻略之四

<br />/*矩阵式螺旋输出*/<br />#include <stdio.h><br />#include <malloc.h><br />/*<br />填充数组:从数组的最外围开始,先向下填充一列,<br />再向右填充一行,再向上填充一列,最后向左填充<br />一行,注意向上向左填充时的约束条件<br />*/<br />void fillArray(int m,int n,int **array)<br />{<br /> int start_row = 0,start_column = 0;

2011-03-27 11:33:00 574

原创 全排列算法之字典序法

<br />字典序算法如下:<br />  设P是1~n的一个全排列:p=p1p2......pn=p1p2......pj-1pjpj+1......pk-1pkpk+1......pn<br />  1)从排列的右端开始,找出第一个比右边数字小的数字的序号j(j从左端开始计算),即 j=max{i|pi<pi+1}<br />  2)在pj的右边的数字中,找出所有比pj大的数中最小的数字pk<br />  3)对换pi,pk<br />  4)再将pj+1......pk-1pkpk+1pn倒转得到排列

2011-03-16 19:01:00 1338

原创 面试题攻略之三

<br />/*<br />    给出一个函数来输出一个字符串的所有排列<br />*/<br />#include <stdio.h><br />#include <malloc.h><br />#include <string.h><br />#define MAXLENGTH 100<br />//输出字符数组中的内容<br />void outputArray(char array[])<br />{<br />    int i;<br />    <br />    int length =

2011-03-16 18:58:00 589

原创 面试题攻略之二

<br />/*<br />写一个函数,检查字符是否是整数,如果是,返回其整数值<br />*/<br />#include <stdio.h><br />//检查字符是否是整数,如果是,返回其相应的整数值<br />//否则,返回-1 <br />int charToInt(char ch)<br />{<br />   if(ch >= '0' && ch <= '9')<br />   {<br />        return (ch - '0');   <br />   }<br />   els

2011-03-16 11:03:00 551

原创 面试题攻略之一

/*有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数*/#include #include int main(){    //整数数组指针     int *array;    //数组元素个数     int n;    int i,j;    //整数数组两两之差绝对值最小值     int min;     //存放临时值     int term;    printf("输入整数数组的个数:");    scanf("%d",&n);    array =

2011-03-16 10:41:00 691

原创 MPI并行计算环境的建立

MPI并行计算环境的建立

2011-03-03 18:02:00 6182

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除