自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jackson Zhang

记录是最好的回忆!

  • 博客(39)
  • 资源 (2)
  • 收藏
  • 关注

原创 仅仅勤奋是不够滴

做事情仅仅靠勤奋是不够的,还要多动脑筋,要不断地寻找更高效的方法,才能在有限的时间内跑得更远,而人生就是比在几十年中谁跑得更远,登得更高。所以勤奋是基础,但多思可能会发现做事更有效率的方法,两者结合,才能让你更为优秀。

2012-09-30 22:31:49 497

原创 Linux权限修改命令

一、Linux文件权限    每个Linux文件具有四种访问权限:可读(r)、可写(w)、可执行(x)和无权限(-)。    利用ls -l命令可以看到某个文件或目录的权限,它以显示数据的第一个字段为    准。第一个字段由10个字符组成,如下:        -rwxr-xr-x    第一位表示文件类型,-表示文件,d表示目录    2-4位表示文件所有者的权限,u权限

2012-09-30 22:27:42 845

转载 位运算解决八皇后问题

使用位运算来求解N皇后的高效算法   核心代码如下:[cpp] view plaincopyvoid test(int row, int ld, int rd)  {      int pos, p;      if ( row != upperlim )      {          pos = upperlim &

2012-09-29 19:40:39 12362 4

转载 原子操作 Interlocked系列函数

下面是类似于统计一个网站每天有多少用户登录,每个用户登录用一个线程模拟,线程运行时会将一个表示计数的变量递增。程序在最后输出计数的值表示有今天多少个用户登录,如果这个值不等于我们启动的线程个数,那显然说明这个程序是有问题的。整个程序代码如下:#include #include volatile long g_nLoginCount; //登录次数unsigned int __stdcal

2012-09-28 21:23:32 827

转载 多线程之——CreateThread与_beginthreadex区别

C/C++创建多线程可以有CreateThread与_beginthreadex,他们到底有什么区别//最简单的创建多线程实例#include #include //子线程函数DWORD WINAPI ThreadFun(LPVOID pM){ printf("子线程的线程ID号为:%d\n子线程输出Hello World\n", GetCurrentThreadId());

2012-09-28 20:55:13 623

原创 堆栈

在C和C++中,经常需要操作的内存可分为以下几个类型:1、栈区(stack):由编译器自动分配和释放,存放函数的参数值、局部变量的值等,其操作方式类似于数据结构中的栈2、堆区(heap):一般有程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收。与数据结构的堆不同,分配方式类似于链表3、全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变量

2012-09-28 12:58:04 508

原创 八皇后问题

问题描述:八皇后问题是要求在八行八列的表格里面,要求放入8个皇后,要求所有的皇后都不能在同一行、同一列,并且不能在同一对角线上解决方法:首先是采用回溯法(一种系统地搜索问题的解的方法),其思想是:从一条路往前走,能进则进,不能进则退回来,找另一条路继续试探思路:1、算法开始,清空棋盘,从棋盘的第一行第一列开始2、检测该位置是否可以放皇后(同行、同列、对角线上都没有其他皇后),如果可

2012-09-27 23:23:50 685

原创 Java的volatile

Java内存模型的围绕着在并发过程中如何处理原子性、可见性和有序性这三个特征来建立的。1、volatile是Java虚拟机提供的最轻量级的同步机制,一个变量被定义成volatile后,它将具备两种特征:(1)保证此变量对所有的线程的可见性(当一条线程修改了这个变量的值,新值对其他线程来说是可以立即得知的,也是通过主内存完成线程间的传递的,普通变量不能做到这点)(2)禁止指令重排序优化,

2012-09-27 12:33:07 691

原创 Java内存模型与线程

1、衡量一个服务器性能的高低好坏,是每秒事务处理数,它代表着一秒内服务端平均能响应的请求总数。2、硬件中处理器、高速缓存、主内存间的交互关系3、Java内存模型中线程、主内存、工作内存三者的交互关系Java虚拟机规范中试图定义一种Java内存模型来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果。Java内存

2012-09-27 11:34:16 785

转载 Struts1和Struts2的区别

Struts1和Struts2的区别和对比:Action类• Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口,而struts2的Action是接口。 • Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去 实现 常

2012-09-27 09:19:46 648

原创 分布式——负载均衡

避免系统出现单点单点现象是指系统部署在单点机器上,一旦这台机器出问题,系统就不可用了。避免的最常见方法是将系统部署到多台机器上,每台机器对外提供同样的功能,通常将这种系统环境称为集群。当系统从单机演变为集群时,需要系统能够支持水平伸缩。实现这个功能可以用负载均衡负载均衡又分为硬件负载均衡和软件负载均衡。这样都必须在系统环境中添加负载均衡机器。通常有两台,但只有一台处于服务状态,另一台处于s

2012-09-27 09:12:17 627

原创 i++和++i

在代码书中或课堂上我们都知道++i和i++在作为一个单独语句使用时没有区别,即相当于i=i+1; 而作为语句的一部分时,如a=++i; 和a=i++; ++i先执行加1操作,再执行赋值操作(因++在前),而i++是先执行赋值操作,再执行加1操作(因++在后)。但这种论述未将其中更深的运行机制讲出来,尤其是在if或while等判断语句中,下面对其进行探讨:作为单独语句存在,如下面的两段代码:

2012-09-27 09:07:49 507

原创 智力题

1、船上有5个海盗,要分抢来的100枚金币。自然,这样的问题他们是由投票来解决的。投票的规则如下:先由最凶残的海盗来提出分配方案,然后大家一人一票表决,如果有50%以上的海盗同意这个方案,那么就以此方案分配,如果少于或者等于50%的海盗同意,那么这个提出方案的海盗就将被丢到海里去喂鱼,然后由剩下的海盗中最凶残的那个海盗提出方案,依此类推。怎么分金币才能使最凶残的海盗收益最大而且不被丢海里?

2012-09-27 09:05:45 601

转载 程序员的分为十层

第一级:神人,天资过人而又是技术狂热者同时还拥有过人的商业头脑,高瞻远瞩,技术过人,大器也。如丁磊,求伯君。  第二级:高人,有天赋,技术过人但没有过人的商业头脑,通常此类人不是顶尖黑客就是技术总监之流。  第三级:牛人,技术精湛,熟悉行业知识,敢于创新,有自己的公司和软件产品。   第四级:工头,技术精湛,有领导团队的能力,此类人大公司项目经理居多。  第五级:技

2012-09-27 08:15:42 1891

原创 求数组中连续子数组的最大和

思路:  计算出任意i到j之间连续子数组的和再比较必然能得到最大值,但时间复杂度为O(n^2),我们希望能找出线性时间的算法。      我们注意到,假如数组中全为正数,那么最大和必然为全部数相加;如果数组中有负数,并且如果加上某个负数,子数组的和小于0,则最大和子数组必然不包含这个负数。 基于此,给出以下代码:#include int getMaxSum(int a[],int

2012-09-26 19:42:16 793

转载 一个fork的问题

题目:请问下面的程序一共输出多少个“-”?#include #include #include int main(void){ int i; for(i=0; i<2; i++){ fork(); printf("-"); } return 0;}如果你对fork()的机制比较熟悉的话,这个题并不难,输出应该是6个“

2012-09-26 19:16:23 503

转载 笔试面试题——多线程

一.概念性问答题第一题:线程的基本概念、线程的基本状态及状态之间的关系? 第二题:线程与进程的区别?       这个题目问到的概率相当大,计算机专业考研中也常常考到。要想全部答出比较难。 第三题:多线程有几种实现方法,都是什么? 第四题:多线程同步和互斥有几种实现方法,都是什么?       我在参加2011年迅雷校园招聘时

2012-09-26 18:09:55 1095

原创 SQL语句的执行顺序

一、sql语句的执行步骤: 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。 2) 语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。 3)视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。 4)表达式转换, 将复杂的 SQL 表达式转换为较简单的等效连接表达式。 5)选择优化器,不同的优化器一般产生不同的“执行计划” 6)选

2012-09-26 15:33:42 527

原创 Statement和PreparedStatement的区别

在JDBC应用中,应该始终以PreparedStatement代替Statement.也就是说,在任何时候都不要使用Statement. 基于以下的原因: 一.代码的可读性和可维护性. Statement语句:stmt.executeUpdate("insert into tb_name (col1,col2,col2,col4) values ('"+var1+"','"+var2+

2012-09-26 15:17:53 605

原创 拿手电筒过桥问题

1、在漆黑的夜里,四位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,四个人一共只带了一只手电筒,而桥窄得只够让两个人同时通过。如果各自单独过桥的话,四人所需要的时间分别是1,2,5,8分钟;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的时间。问题是,你如何设计一个方案,让用的时间最少。(15分钟)2、七个旅行者,所

2012-09-22 14:19:05 9352 2

原创 字符串的全排列

字符串全排列#includeusing namespace std;#includevoid Permutation(char* pStr, char* pBegin){ //assert(pStr && pBegin); 这个可以替换下面的if if(pStr == NULL || pBegin == NULL) { return; } if(*pBegin == '\

2012-09-22 10:12:57 1143

原创 Java中创建(实例化)对象的五种方式

Java中创建(实例化)对象的五种方式1、用new语句创建对象,这是最常见的创建对象的方法。2、通过工厂方法返回对象,如:String str = String.valueOf(23); 3、运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。如:Object obj = Class.fo

2012-09-18 10:31:29 68381 1

原创 邮箱系统原理——创建邮件内容并发送

主要步骤:1、创建包含邮件服务器信息的网络连接信息的Session对象根据Properties设置的环境信息,得到Session对象(环境信息)Session session = Session.getDefaultInstance(props,null);2、创建代表邮件内容的Message对象创建Message对象,传入session得到MimeMessage mess

2012-09-15 22:08:23 1390

原创 邮箱系统原理——JavaMail中邮件内容结构

JavaMail API是sun公司为方便Java开发人员在应用程序中时间邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如SMTP、POP3、IMAP和MIME等。JavaMail中的核心的API类有Message、Transport、Store和Session四个类。Message类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件。Transport类是发

2012-09-15 16:34:40 3630

原创 邮箱系统原理——邮件的组织结构

RFC822邮件内容在RFC822文档中定义,邮件内容包括两个主要的组成部分:邮件头和邮件体邮件头部包括以下内容:Return-Path该字段代表邮件的回复地址Received该字段格式为Received from A by B from C(A为发送方,B为接收方,C为收件人的邮件地址)是在SMTP服务器传递过程中加上的,内容由接收邮件的SMTP服务器填写,常常被用来追踪邮件传输

2012-09-15 15:52:53 7137

转载 URI和URL区别

Web上可用的每种资源 - HTML文档、图像、视频片段、程序等 - 由一个通过通用资源标志符(Universal Resource Identifier, 简称"URI")进行定位。 1.URI一般由三部分组成: 2.访问资源的命名机制。 3.存放资源的主机名。 4.资源自身的名称,由路径表示。 考虑下面的URI,它表示了当前的HTML 4.0规范:     http:/

2012-09-15 15:04:02 549

原创 邮箱系统原理——POP3协议和IMAP协议

POP3协议POP3协议采用的网络监听端口号默认为110下面列举POP3命令及其说明(代表空格,代表回车和换行)userusername:该命令是POP3客户端程序与POP3邮件服务器简历连接后通常发送的第一条命令passpassword:传递用户密码apopname,digest:用于代替user和pass命令,以MD5数字摘要的形式向POP3邮件服务器提交账户密码sta

2012-09-15 13:19:25 2174

原创 邮箱系统原理——SMTP协议

SMTP协议是一个基于TCP/IP的应用层协议,SMTP服务器的默认的网络监听端口号为25SMTP协议中一共定义了18条命令:其中比较发送一封邮件的过程通常需要的有以下6条命令ehlo命令:SMTP邮件发送程序与SMTP接收程序建立连接后必须发送的第一条SMTP命令,后面通常加本主机名auth命令:认证命令,如auth login,然后输入用户名和密码(必须是BASE64编码后的)

2012-09-15 12:46:32 2141

原创 邮箱系统原理——基本原理

1、邮件服务器种类SMTP服务器:用于替用户发送和接受外面发送给本地用户的邮件(相当于邮局的接受部门)POP3/IMAP服务器:由于帮助用户读取SMTP服务器接收进来的该用户的邮件(相当于专门为前来取包裹的用户提供服务的部门)2、邮件客户端软件负责与邮件服务器通信,用于帮助用户将邮件发送给SMTP服务器和从POP3/IMAP邮件服务器读取用户的电子邮件。3、邮件传输协议SM

2012-09-15 11:24:16 24449 1

原创 数据库基础之-----三大范式和联结

2012-09-14 11:09:08 513

原创 解析pdf,获得内容

涉及到的主要的包:PDFTextStream-2.2.1.jar(用了里面的FileputStream对象获得pdf的stream和RegionOutputTarget对象得到pdf里面某一区域的内容)inputFilePath是文件路径+文件名File file = new File(this.inputFilePath);InputStream is  = new FileIn

2012-09-13 14:53:33 1025

原创 xls文件的导入实现过程

编写页面form表单(注意要使用enctype="multipart/form-data") action接收到后做如下操作:从formbean中得到文件把文件存放本地,包括声明输入流读取文件,创建本地文件,声明输出流,把读到的输入流用输出流写入本地文件然后使用poi包里面提供的api获取保存的本地xls里面的内容1、声明并得到本地xls的输入流InputS

2012-09-13 13:22:08 919

原创 JDBC连接数据库的步骤

1、注册驱动Class.forName("oracle.jdbc.driver.OracleDriver"):2、建立连接Connection con = DriverManager.getConnection("jdbc:oracle:thin:@120.0.0.1:1521:mydatabase","admin","admin");3、创建StatementStatemen

2012-09-12 18:39:11 450

原创 Java类加载的解析阶段

1、解析阶段是虚拟机将常量池内的符号引用(引用的目标不一定已经加载到内存)替换为直接引用(引用的目标一定已经在内存中)的过程2、虚拟机类加载的解析阶段的动作主要针对类或接口、字段、类方法、接口方法四类符号引用进行解析为直接引用在字段的解析中如果一个类Sub同时继承父类Parents和接口Interface2,存在字段A在Sub中没有,而在父类和接口中都存在的话,则编译器会拒绝编译,如下情况

2012-09-10 09:40:25 2416

原创 逆置链表

#includestruct SqList{ int value; struct SqList *next;};void reverse(struct SqList *L){ struct SqList *p; struct SqList *q; p=L->next; L->next=NULL; while(p) { q=p->next; p->next=L->n

2012-09-09 10:49:53 519

原创 链表创建

#include#includestruct SqList{ int value; struct SqList *next;};struct SqList *createLink(){ struct SqList *L; void create(struct SqList *); void showData(struct SqList *); L = (struct SqL

2012-09-09 10:48:03 807

转载 常见设计模式面试题

1、写出常用的设计模式,如单例、工厂、装饰者、观察者等模式,分别介绍他们运用的场景2、关于标准的JDK库中使用的一些设计模式Decorator设计模式常被用于各种Java IO类中Singleton模式常被用在运行环节中,Calendar以及各种其他类Factory(工厂)模式常被用于各种不可变类,比如Boolean。Boolean.valueOfObserver模式常被用于S

2012-09-08 10:42:33 20896 2

原创 简单工厂模式

工厂类生产output实例public class OutputFactory { public Output getOutput(){ return new Printer(); }}Computer类,可以利用工厂得到output实例public class Computer { private Output out; public Computer(Outp

2012-09-08 10:28:10 996

原创 单例模式

public class Singleton { public static Singleton singleton; public Singleton(){ } public static Singleton getInstance(){ if(singleton == null){ singleton = new Singleton(); } return si

2012-09-08 09:37:03 821

硬盘恢复软件及教程

如果一不小心把硬盘或U盘上重要的东西永久删除了,想恢复可以使用这软件 包括恢复软件和恢复操作教程

2012-08-31

空空如也

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

TA关注的人

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