自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM内存区域介绍

写博客的好处是,学过的知识及时记录下来,过段时间可以用来复习。另外,还能够帮助别人,因为我们自己遇到不懂的问题往往也是受益于别人的付出。 今天记录一下自己对于JVM内存区域的理解。 JVM内存主要可以分为五个区域:程序计数器、虚拟机栈、本地方法栈、堆、方法区。其中除了堆和方法区是线程共有的,其他几个区域都是线程私有的,下面分别介绍: 1、程序计数器 程序计数器是一块较小的内存,通过这个计数...

2018-02-08 10:28:22 7592 2

原创 CyclicBarrier的使用

前面介绍了CountDownLatch的使用,这里再简单介绍一下CyclicBarrier。 CyclicBarrier的主要功能与CountDownLatch一样,也是保证一个或者多个线程等待,直到一组线程全部结束,唯一的区别是:CountDownLatch一旦不可重用,而CyclicBarrier可重用,它有一个await()方法,线程调用await方法后会变成barrier,当所有的线程都变

2016-09-04 15:00:33 1425

原创 设计模式学习-单例模式

今天学习了单例模式,这里做一下笔记。 单例模式:顾名思义就是一个类只有一个实例(要么不实例化,要么只实例化一次),使用该类的实例时,不能直接通过new来实例化该类。 代码如下:public class Singleton { private static Singleton instance; private Singleton(){}//私有无参构造方法,保证无法从外部通过new获

2016-07-30 16:22:08 503

原创 归并排序

归并排序也是一种效率比较高的排序方法,主要思想是:将数组分为两个部分,如果两个部分都是有序的,那么将两个部分合并即可。如何使得两个部分都有序呢,那就是将每个部分再分成两个部分…直到每个部分只剩下一个元素或者只有该部分只有一个元素,然后再执行合并操作,上述分割操作明显是一个递归的过程。 合并操作代码如下://合并,数组的两边已排好序public void merge(int[] a, int st

2016-07-19 22:42:09 465

原创 快速排序

这里介绍快速排序的两种写法,其中第二种方法更通用,其中的partition方法更是在很多地方可以应用。 快速排序是一个递归的过程,每次都是将需要排序的序列分为两个部分。 第一种写法:public void quickSort(int[] arr,int left,int right) { if(left >= right)//递归结束条件 return;

2016-07-19 16:07:50 535

原创 冒泡排序

记录一下冒泡排序的写法。public void bubbleSort(int[] arr) { int n = arr.length; for(int i = 0;i<n-1;i++) {//比较的趟数 int flag = 0;//标记是否有交换 for(int j = 0;j<n-1-i;j++) {//每趟比较次数

2016-07-19 15:52:32 322

原创 CountDownLatch和join两种方式实现多线程并行处理

上一篇博客主要介绍了如何使用Semaphore串行打印ABC,这一篇将介绍如何并行打印ABC,功能如下: 有三个线程,线程1打印A,线程2打印B,线程3打印C,这里假设是必须做完A、B、C,才能根据A、B、C的结果去处理D,其中A、B、C可以并行执行,互不影响。这种情况很常见,比如我们泡茶,需要烧开水、准备茶叶、清洗餐具,最后是泡茶,可以将烧开水、准备茶叶、清洗餐具看成事件A、B、C,将最后的泡茶

2016-07-19 14:59:55 1619

原创 使用信号量Semaphore循环打印ABC

最近学习了java的并发相关知识,了解了一下java.util.concurrent包,今天介绍的是concurrent包下的Semaphore,又称为信号量。 信号量主要用来控制同时访问同一资源的线程 数量,用jdk api官方的话说就是: Semaphores are often used to restrict the number of threads than can access s

2016-07-19 14:14:35 2962

原创 二叉排序树中查找元素的递归和非递归写法

上一篇介绍了二分查找的递归和非递归写法,这一篇文章主要记录二叉排序树中查找元素的递归和非递归写法。二叉排序树又称为二叉查找树,也称为二叉搜索树。 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树; (4)没有键值相等的

2016-07-18 18:35:47 7735

原创 二分查找的递归和非递归写法

二分查找是针对有序序列来说的,在有序序列中使用二分查找能大大提高查找效率,这里记录一下二分查找的递归和非递归写法。非递归写法:public int binarySearch(int[] a, int target) { int len = a.length; if(len == 0) return -1; int low = 0

2016-07-18 18:21:44 3371

原创 redis实现消息队列

消息队列,通俗点说就是消息传输过程中暂时保存消息的容器,可以在不同平台、不同语言的应用之间传输数据,并且可以异步地实现数据写入,在处理大并发问题时能起到很好的效果。 说一下我现在使用消息队列的场景:我的系统需要实时接收来自客户端的请求(周期性请求),并且将请求的数据保存在数据库,每次请求的数据量很小,但是由于需要频繁操作数据库,所以系统遭遇到性能瓶颈。原先的想法是直接将这些数据保存在redis中,

2016-07-13 16:19:28 8913 1

转载 RabbitMQ基础概念详细介绍

转自:http://blog.csdn.net/whycold/article/details/41119807更正:Exchange Types为topic一节中,routingKey=”lazy.orange.fox”的消息会路由到Q1和Q2,原文只是路由到Q1,因为X与Q2的binding key=lasy.#,可与其匹配。引言你是否遇到过两个(多个)系统间需要通过定

2016-06-30 11:46:38 353

转载 Redis内存使用优化与存储

转载自:http://www.infoq.com/cn/articles/tq-redis-memory-usage-optimization-storage/Redis常用数据类型Redis最为常用的数据类型主要有以下五种:StringHashListSetSorted set在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部内

2016-06-30 11:15:31 314

原创 centos下安装nginx访问html目录下的文件时出现403或者file not found

最近工作需要用到nginx,也是第一次接触到,安装过程中遇到一些问题,自己摸索了好久才解决,希望这篇博客能帮助大家少走弯路。具体的nginx安装步骤这里不再赘述,下载nginx的安装包后解压编译安装即可,网上有很多介绍。安装完之后在,访问nginx安装目录下的index.html或者index.php时出现403 forbidden或者file not found问题,解决方法如下:1

2016-06-12 16:59:03 16547

原创 【LeetCode】Search for a Range

Given a sorted array of integers, find the starting and ending position of a given target value.Your algorithm’s runtime complexity must be in the order of O(log n).If the target is not found in the ar

2016-03-06 21:26:34 375

原创 【LeetCode】Valid Sudoku

数独游戏:九行九列共81个小方格,只能填入1~9之间的数字,或者不填(默认填’.’),每行每列,以及9个子九宫格的数字必须唯一,如果满足返回true,否则返回false 思路很简单:先判断每行是否满足,再判断每列,最后判断每个九宫格,如果三者都满足则返回true,否则返回false。判断的方法也很简单,使用一个hash数组来标记数字出现的次数,数组下标直接使用格子中的数字表示。比较麻烦的就是判断九

2016-03-06 21:17:29 436

原创 【总结】EJB开发过程中遇到的几个问题

1、启动JBoss时报错,ERROR [AbstractKernelController] Error installing to Instantiated: name=AttachmentStore state=Described… 进入目录 server/default/conf/bootstrap,打开文件 profile.xml,找到<!-- The attachment store --

2016-01-15 22:14:38 1101

原创 【LeetCode】Implement strStr()

Implement strStr().Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. 题目意思很简单:两个字符串haystack和needle,返回字符串needle在haystack中第一次出现的位置,不存在返回-1。 我采用比较简

2016-01-14 14:48:41 485

原创 使用ant编译openacs源码

最近在做一个关于TR069的项目,使用的是网上比较有名的开源项目openacs,前期下载的是openacs的二进制形式,直接部署到jboss下就可以运行。但由于最终到目的是需要对源代码进行修改,因此又下载了openacs到与源码。在网上找到了很多关于如何发布到教程,很多是使用myeclipse,但尝试很久也没 能成功。看到源码中有build.xml文件,于是产生了用ant进行编译到想法,但尝试很久

2015-10-13 15:14:01 1586 3

原创 【LeetCode】Swap Nodes in Pairs

题目描述:Given a linked list, swap every two adjacent nodes and return its head.For example, Given 1->2->3->4, you should return the list as 2->1->4->3.Your algorithm should use only constant space. You m

2015-09-12 22:08:22 432

转载 基于TR069协议实现IPTV盒端管理

摘要:通过对IPTV机顶盒管理主要需求和TR069协议特点进行分析,给出了采用TR069协议实现IPTV机顶盒管理的实例化关键流程,对运营商实现IPTV机顶盒管理具有一定的参考价值。0 前言随着国内三网融合进程的实质性推进,IPTV业务作为电信运营商和广电运营商业务双向渗透的一个切入点,具有非常大的发展潜力。IPTV的业务形式除了基本的直播、点播等基本的视频业务外,还包括更多的时移回看、信息浏览、互

2015-07-25 20:24:28 5818

原创 【LeetCode】Remove Nth Node From End of List

题目描述: Given a linked list, remove the nth node from the end of list and return its head.For example,Given linked list: 1->2->3->4->5, and n = 2.After removing the second node from the end, the linked

2015-06-30 21:21:32 332

原创 【LeetCode】Rotate Array

Rotate an array of n elements to the right by k steps.For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].Note: Try to come up as many solutions as you can, ther

2015-06-21 16:55:04 398

原创 Longest Palindromic Substring

这道题最直观的想法可能是穷举法,对字符串中的每个字符,分别遍历其后的所有字符,此字符与其后面的每一个字符都可构成一个子字符串,判断是否为回文串,找出最长的回文即可。问题:需要三层循环(遍历字符串中的每个字符一次为一层,对每一个字符再遍历其后的所有字符一次为一层,判断子字符串是否为回文串时为一层),这样就会超时,其代码如下:public class Solution { public Strin

2015-06-15 18:52:05 331

原创 设置文件的权限,阻止用户访问(兼容Windows和Linux)

最近的一个项目中需要修改本地文件的权限,即对其“加锁”,使得用户在解锁之前不能对其访问,要求在Windows和Linux下都能运行起来。我们都知道,Linux拥有很严格很规范的权限管理,Linux之所以安全,很大原因也是因为它的权限管理,因此在Linux下面很好实现这个要求。我使用的是File类提供的setReadable()、setWritable()、setExecutable()几个方法。然而

2015-05-01 21:33:32 2205

原创 DOORS中给定一个Module的绝对路径,列出它下面的所有Object

继我的上一篇博客,在得到DOORS的整个目录树结构以后,项目(Project)和文件夹(Folder)的下一层即是模块(Module),我们已经可以得到Module的绝对路径,那么下一步我们可以利用这个绝对路径把它下面对应的所有Object按层次显示出来(分为Heading和Text),最后拼接成XML字符串的形式返回。 主要思路和得到目录树的思路类似,只不过DXL已经给我们提供了一个可以直接得到

2015-04-25 16:29:35 828

原创 Reverse Bits

这道题的思路比较简单,将n转换成二进制,存入数组中,然后再反向计算这个二进制的值即可,只不过我们可以使用移位操作来替代除法或者求2的幂,可以提高效率。此外,这道题用java实现比较简单,因为java.lang已经为我么提供了相应的方法。方法一: 使用java.lang中的reverse方法,直接可以返回反转后的值。 但效率相对较低,Runtime: 297 mspublic class Solu

2015-04-24 20:56:41 468

原创 DOORS输出database的目录树

最近在用DXL编写了一些DOORS的脚本,下面是介绍如何输出DOORS database中的目录树结构(包括Folder、Projects、Module),并拼接成XML字符串。 问题的思路主要是:先在database中用for循环遍历,得到database中的所有内容,筛选出第一级的内容(Folder和Project),然后对第一级进行递归遍历即可得到整个目录树。但这个时候比较奇怪的是,第一级

2015-04-10 14:14:08 1532

原创 WatchService API实现监听文件系统中的文件变化(包括各级子目录)

最近导师下发一个任务,要求实现监听文件系统中的文件变化,并实时向管理员报告,以便管理员及时做出相应的处理,以免造成不必要的损失。网上搜索的了一下,发现使用WatchService来实现的比较多,WatchService是Java SE7增加的服务,位于java.nio.file包中。网上的朋友都只是实现了对某个指定目录的监视,不包括对其各级子目录的监视,这不符合我的要求,于是经过整理修改,实现了对

2015-04-03 22:01:35 6935 5

原创 Java项目如何制作成安装程序

很多朋友学习java的过程中做过很多java小项目,但如何将我们的项目变成一个这样的“东东”?就如我们在网上下载的软件一样,在windows下面下载下来的是一个.exe文件,双击它即可启动安装程序,按照提示一步一步地就可以将这个软件成功安装。 正好在前几天的工作中我接触了这一块知识,在这里和大家分享,希望有所帮助。 所需软件:exe4j、Inno Setup 1、打包成jar文件 在ecli

2015-03-26 16:16:40 8813 1

转载 JAVA多线程和并发基础面试题

转载自:http://blog.csdn.net/dreamthen/article/details/26685725 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点)Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进

2015-03-21 18:31:55 595

转载 Stack的三种含义

转载自:http://blog.csdn.net/u013152895/article/details/44220443学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈"。理解这个概念,对于理解程序的运行至关重要。容易混淆的是,这个词其实有三种含义,适用于不同的场合,必须加以区分。含义一:数据结构stack的第一种含义是一组数据的存放方式,特点为LI

2015-03-13 23:25:20 586

转载 LeetCode题目难度及面试出现的频率

转载至:http://blog.csdn.net/yutianzuijin/article/details/11477603难度不一定准确,做一定的参考吧       1Two Sum25arraysort

2015-03-10 10:04:39 1071

原创 LeetCode----Two Sum

Two Sum Total Accepted: 69182 Total Submissions: 382018My SubmissionsQuestion Solution Given an array of integers, find two numbers such that they add up to a specific target num

2015-03-09 21:52:21 438

空空如也

空空如也

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

TA关注的人

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