04 2016 档案
Java并发编程(三)后台线程(Daemon Thread)
摘要:后台线程,守护线程(Daemon Thread) 所谓的后台线程,就是指这种线程并不属于程序中不可或缺的部分,因此当所有的非后台线程结束时,程序也就终止了,同时会杀死进程中的所有后台线程。通过setDaemon(true)来设置该线程为后台线程。 结果 可以很清楚的看见当主线程结束之后,其他线程就没 阅读全文
posted @ 2016-04-19 16:04 韩思明 阅读(507) 评论(0) 推荐(0)
遇到的一个很有趣的陷阱
摘要:今天在做ACM题的时候,遇到了一个问题,记下来,避免下次再遇到。 问题 问题很简单大概就是输入一段话,然后打印出里面包含了a-z的字母分别有多少个。贴出代码 然后就开始疯狂的报我空指针异常,很奇怪,看了半天看不出来,不知道你能看的出来吗,没办法,只有拿出了我的调试大法,打上断点,跟着进源码,很快就发 阅读全文
posted @ 2016-04-19 15:30 韩思明 阅读(372) 评论(1) 推荐(0)
结对编程——关于Fault、Error、Failure程序设计
摘要:一、问题描述: 构造程序,分别是: •不能触发Fault •触发Fault,但是不能触发Error •触发Error,但是不能产生Failure 二、Fault、Error、Failure区别 Fault:可能导致系统或功能失效的异常条件,可译为“故障”。 Error:计算、观察或测量值或条件,与真 阅读全文
posted @ 2016-04-19 14:16 韩思明 阅读(822) 评论(0) 推荐(0)
二进制中1的个数
摘要:问题 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 思路 方法一:就是让原始数据与1进行与运算,若为1,则表示最低位为1,则count++,原始数据向右移动1位。大概过程{1,0,0,1}&{1} --》 1 , {0,1,0,0}&{1}--》0, {0,0,1,0}&{1}- 阅读全文
posted @ 2016-04-19 14:14 韩思明 阅读(268) 评论(0) 推荐(0)
Java并发编程(二)线程任务的中断(interrupt)
摘要:使用interrupt()中断线程 当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即返回。 结果 特别要注意的是标红的地方:如果只是单纯的调用interrupt()方法,线程并没有实际被中断, 阅读全文
posted @ 2016-04-18 21:47 韩思明 阅读(680) 评论(0) 推荐(0)
Java并发编程(一) 两种实现多线程的方法(Thread,Runnable)
摘要:Java中实现多线程的方法有两种: 继承Thread类和实现Runnable方法,并重写Run方法,然后调用start()方法启动线程。使用Runnable会比Thread要好很多,主要是以下三个原因: (1)Java语言是单继承的,如果继承了Thread类,那么便无法继承其他类。 (2)适合多个相 阅读全文
posted @ 2016-04-18 15:59 韩思明 阅读(365) 评论(0) 推荐(0)
青蛙跳台阶(Fibonacci数列)
摘要:问题 一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。 思路 当n=1时,只有一种跳法,及f(1)=1,当n=2时,有两种跳法,及f(2)=2,当n=3时,可以从n=1直接跳到n=3,也可以从n=2直接跳到n=3,及f(3)=f(1)+f(2)=3. 阅读全文
posted @ 2016-04-18 14:32 韩思明 阅读(1668) 评论(0) 推荐(0)
旋转数组的最小值
摘要:问题 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。 思路 这道题最直观的解法并不难。从头到尾遍历数组一次,就能找出最小的 阅读全文
posted @ 2016-04-18 13:02 韩思明 阅读(619) 评论(0) 推荐(0)
用两个栈实现队列
摘要:问题 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路 将入队的元素,加入stack1,如果有出队操作,则将stack1中的元素依次压入stack2,从stack2中弹出元素就等于出队操作,直到从stack2中弹出所有元素,则才又从stack1中加入元素。 阅读全文
posted @ 2016-04-17 15:07 韩思明 阅读(319) 评论(0) 推荐(0)
重建二叉树
摘要:问题 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树。 思路 首先找到先序遍历的第一个节点,就是根节点,然后在中序遍历 阅读全文
posted @ 2016-04-17 11:14 韩思明 阅读(218) 评论(0) 推荐(0)
二维数组中的查找
摘要:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 输入可能包含多个测试样例,对于每个测试案例, 输入的第一行为两个整数m和n(1<=m,n<=1000):代表将要输入的矩阵的行数和列 阅读全文
posted @ 2016-04-13 17:43 韩思明 阅读(282) 评论(0) 推荐(0)
单例设计模式 浅析
摘要:关于单例设计模式 通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。 Java实现 这是第一种实现方法,大体的思路就是一种懒汉单例(使用时才实例化),粗略的看是去没有什么问题,但是仅仅是在单线程时,如果出现多线程,两个线程同时去获取实例,因为 阅读全文
posted @ 2016-04-12 10:12 韩思明 阅读(245) 评论(0) 推荐(0)
结对编程体会
摘要:结对编程作业:某公司程序员二柱的小孩上了小学二年级,老师让家长每天出30道(100以内)四则运算题目给小学生做。 采用语言 :java 结对对象 :黄佳明 2013110416 博客地址: http://www.cnblogs.com/ezreal2016/ 双方贡献比例:1:1; 贴出代码: 点滴 阅读全文
posted @ 2016-04-10 23:56 韩思明 阅读(254) 评论(0) 推荐(0)
HTTP Status 404 - No result defined for action com.csdhsm.struts.action.LoginAction and result error
摘要:智商拙计的问题,没有找到为类LoginAction和error找到定义,然后重新去struts.xml去看,我类个去,我居然把result写成了ERROR 再看看Action类的源代码 把ERROR改回成error,OK,问题解决。 阅读全文
posted @ 2016-04-06 09:58 韩思明 阅读(488) 评论(0) 推荐(0)
关于Tcp,为什么一定要进行三次握手呢?
摘要:主要是防止已经失效的请求报文段突然又传送到了服务端而产生的连接的误判。 考虑如下的情况:客户端发送了一个连接请求报文段到服务端,但是在某些网络节点上长时间滞留了,而后客户端又超时重发了一个连接请求报文段该服务端,而后正常建立连接,数据传输完毕,并释放了连接。如果这时候第一次发送的请求报文段延迟了一段 阅读全文
posted @ 2016-04-05 09:53 韩思明 阅读(271) 评论(0) 推荐(0)
MyEclipse的 at com.genuitec.eclipse.ast.deploy.core.Deployment.<init>错误解决办法
摘要:我们使用myeclipse自动部署web项目时会设置服务器的位置,而部署的相关配置会存储在myeclipse工作目录下的“/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.ast.deploy.co 阅读全文
posted @ 2016-04-05 09:35 韩思明 阅读(779) 评论(0) 推荐(0)
一道算法题
摘要:题目描述 输入: 每个测试案例包括两行: 第一行包含一个整数n和k,n表示数组中的元素个数,k表示两数之和。其中1 <= n <= 10^6,k为int 第二行包含n个整数,每个数组均为int类型。 输出: 样例输入: 样例输出: 阅读全文
posted @ 2016-04-03 22:17 韩思明 阅读(274) 评论(0) 推荐(0)
排序小结
摘要:今天好好的把各种排序都总结了一下,感觉印象加深了不少! 下面列出各种排序: 1.插入排序 2.冒泡排序 3.快速排序 4.归并排序 5.选择排序 6.堆排序 7.希尔排序 阅读全文
posted @ 2016-04-03 17:30 韩思明 阅读(95) 评论(0) 推荐(0)
希尔排序
摘要:基本思想 1.把记录按步长 gap 分组,对每组记录采用直接插入排序方法进行排序。2.随着步长逐渐减小,所分成的组包含的记录越来越多,当步长的值减小到 1 时,整个数据合成为一组,构成一组有序记录,则完成排序。 代码实现 效率分析 不稳定 空间复杂度:O(1) 时间复杂度:O(nlog2n) 最坏情 阅读全文
posted @ 2016-04-03 17:21 韩思明 阅读(222) 评论(0) 推荐(0)
堆排序
摘要:基本思想 1)将初始待排序关键字序列(R1,R2....Rn)构建成大顶堆,此堆为初始的无序区; 2)将堆顶元素R[1]与最后一个元素R[n]交换,此时得到新的无序区(R1,R2,......Rn-1)和新的有序区(Rn),且满足R[1,2...n-1]<=R[n]; 3)由于交换后新的堆顶R[1] 阅读全文
posted @ 2016-04-03 16:54 韩思明 阅读(245) 评论(0) 推荐(0)
选择排序
摘要:基本思想 选择排序首先遍历列表,并且将最小的元素与第一个元素进行比较,随后遍历剩余的元素并将次小的元素与第二个元素进行比较,依次类推。选择排序是和冒泡排序差不多的一种排序。和冒泡排序交换相连数据不一样的是,选择排序只有在确定了最小的数据之后,才会发生交换。 代码实现 效率分析 不稳定 空间复杂度:O 阅读全文
posted @ 2016-04-03 15:55 韩思明 阅读(194) 评论(0) 推荐(0)
归并排序
摘要:基本思想 归并排序是建立在归并操作上的一种有效的排序算法。 该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将一个数组分为越来越小的子列表,每个子列表单独进行排序,然后合并形成更大的有序列表。 通过归并子列表元素来合并子列表就是归并排序(Merge Sort) 代码 阅读全文
posted @ 2016-04-03 15:40 韩思明 阅读(287) 评论(0) 推荐(0)
快速排序
摘要:基本思想 通过使用一个基准值将列表分为2个子列表,具体的过程是: 将基准值放在正确的位置上,在一个子列表中放入小于基准值的元素,另一个子列表中放入大于基准值的元素。 这就是快速排序(Quick Sort)的思想。 快排算法提供了目前已知最快的排序技术,除了某些极其特殊的情况下之外,快速排序徐几乎适用 阅读全文
posted @ 2016-04-03 14:55 韩思明 阅读(260) 评论(0) 推荐(0)
冒泡排序
摘要:基本思想 冒泡排序的基本概念是依次比较相邻的两个元数,将小的数放在前面,大的数放在后面。 即在第一趟排序中,首先比较第1个数和第2个数,将小数放前,大树放后; 然后比较第2个数和第3个数,将小数放前,大数放后。以此类推,如此继续,直到比较最后两个数,将小数放前,大数放后。至此,第一趟排序结束,将最大 阅读全文
posted @ 2016-04-03 11:36 韩思明 阅读(296) 评论(0) 推荐(0)
插入排序
摘要:基本思想 通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。 插入排序非常类似于整扑克牌。 在开始摸牌时,左手是空的,牌面朝下放在桌上。接着,一次从桌上摸起一张牌,并将它插入到左手一把牌中的正确位置上。为了找到这张牌的正确位置,要将它与手中已有的牌从右到左地进行比较 阅读全文
posted @ 2016-04-03 10:52 韩思明 阅读(249) 评论(0) 推荐(0)
计算机操作(一)
只有注册用户登录后才能阅读该文。
posted @ 2016-04-01 11:27 韩思明 阅读(7) 评论(0) 推荐(0)