自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序緣的专栏

HEART PEACE 追梦之旅 时刻得想着提高自己,时刻保持对技术的热情

  • 博客(94)
  • 收藏
  • 关注

原创 java并发之队列同步器

、注:仅根据自己的理解整理的零碎知识点(慢慢补充)java中同步锁的实现依赖于内部的队列同步器,通过继承实现队列同步器获取同步状态和释放同步状态的方法。队列同步器内部通过一个int成员变量state来表示同步的状态  占有还是释放(包括共享和独占),当线程获取同步状态失败时当前线程被构造成一个节点加入到同步器的FIFO队列中,同时阻塞当前线程,当同步状态释放时会把首节点的线程唤醒使其再次尝

2018-01-13 16:24:02 333

原创 EXISTS字句

几种典型用法:1、slect sname from student where not exists //不存在 ( select * from course // 有一门001教师主讲的课程where course.T#='001' and not exists // 该同学没学过 (select * from sc where s#=student.s# and c#=

2017-03-10 11:03:07 463

转载 不同磁道的扇区数是否相同? 知乎

不同磁道的扇区数是否相同?修改问题1:不同磁道的扇区数是否相同?维基百科:扇区磁盘上的每个磁道被等分为若干个弧段,这些弧段便是硬盘的扇区(Sector)。硬盘的第一个扇区,叫做引导扇区。(来自维基百科http://zh.wikipedia.org/wiki/%E6%89%87%E5%8C%BA#.E7.A3.81.E5.8D.80)上图中“Sector”示意的颜色容易让

2016-10-29 09:41:30 5129

原创 蛇形矩阵

题目描述题目说明蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。   样例输入5样例输出1 3 6 10 152 5 9 144 8 137 1211接口说明原型void GetResult(int Num, char * pResult);输入参数:

2016-08-13 10:28:35 509

转载 多线程之 线程安全与非线程安全

多线程之 线程安全与非线程安全   ArrayList和Vector有什么区别?  HashMap和HashTable有什么区别?  StringBuilder和StringBuffer有什么区别?   这些都是Java面试中常见的基础问题。面对这样的问题,回答是:ArrayList是非线程安全的,Vector是线程安全的;HashMap是非线程安全的,HashTabl

2016-06-25 21:55:28 524

转载 HashMap的数据结构

1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。      数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。

2016-06-20 11:06:26 359

原创 structs2 运行流程分析

相关的API:ActionMapping:Simple class that holds the action mapping information used to invoke a Struts action. The name and namespace are requiredActionMapper:When given an HttpServletRequest, the

2016-06-14 19:15:03 448

原创 intellij ide快捷键

1、文本编辑删除    ctr + y        复制    ctr + D2、智能提示       提示    ctr + space       智能提示 ctr + shift + space       完成当前语句  ctr + shift + enter       建议提示为参数  ctr + alt + P   

2016-06-01 19:21:22 681

原创 Binary Tree Zigzag Level Order Traversal 二叉树ZigZag打印

Binary Tree Zigzag Level Order Traversal My SubmissionsQuestionEditorial SolutionTotal Accepted: 61552 Total Submissions: 213085 Difficulty: MediumGiven a binary tree, re

2016-05-26 20:08:00 533

转载 Java并发编程:Callable、Future和FutureTask

Java并发编程:Callable、Future和FutureTask   http://www.cnblogs.com/dolphin0520/p/3949310.htmlJava并发编程:Callable、Future和FutureTask  在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。  这2种方式

2016-05-25 13:13:48 306

转载 文件硬链接和软链

linux系统下提供ln指令来进行文件链接。文件链接主要分为硬链接和软链接。   硬链接:由于linux下的文件是通过索引节点(Inode)来识别文件,硬链接可以认为是一个指针,指向文件索引节点的指针,系统并不为它重新分配inode。每添加一个一个硬链接,文件的链接数就加1。    可以用:ln命令来建立硬链接。语法: [php] view plain copy

2016-05-24 09:01:08 854

转载 简明 Github Pages与 jekyll博客搭建 教程 附 git github参考文档

参考:http://cnfeat.com/blog/2014/05/10/how-to-build-a-blog/

2016-05-23 21:31:21 461

转载 java 并发SynchronousQueue

介绍介绍Java 6的并发编程包中的SynchronousQueue是一个没有数据缓冲的BlockingQueue,生产者线程对其的插入操作put必须等待消费者的移除操作take,反过来也一样。不像ArrayBlockingQueue或LinkedListBlockingQueue,SynchronousQueue内部并没有数据缓存空间,你不能调用peek()方法来看队列中是否

2016-05-20 22:22:41 1502

转载 java并发-ReentrantLock的lock和lockInterruptibly的区别

ReentrantLock的加锁方法Lock()提供了无条件地轮询获取锁的方式,lockInterruptibly()提供了可中断的锁获取方式。这两个方法的区别在哪里呢?通过分析源码可以知道lock方法默认处理了中断请求,一旦监测到中断状态,则中断当前线程;而lockInterruptibly()则直接抛出中断异常,由上层调用者区去处理中断。      1  lock操作     

2016-05-20 21:50:36 434

转载 java并发编程实战 ThreadLocal

另一篇博文:Hibernet中的ThreadLocal使用 http://www.cnblogs.com/gnivor/p/4440776.html本文参考:http://blog.csdn.net/lufeng20/article/details/24314381http://www.cnblogs.com/chenying99/articles/3405161.html

2016-05-19 15:30:44 825

原创 单链表的归并排序

本题目来源于LeetCode,具体如下:Sort a linked list in O(n log n) time using constant space complexity.题目要求复杂度O(nlogn),因此我们很自然考虑使用快速排序或者归并排序,但是后来经过实践证明,使用快速排序总是AC超时,归并排序则可以正确AC。分析一下原因,个人认为是与测试数据有关,因为

2016-05-17 14:04:38 437

转载 java进阶书籍推荐(不包括基础)

个人认为看书有两点好处:能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料对着书上的代码自己敲的时候方便“看完书之后再次提升自我的最好途径是看一些相关的好博文“,我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是自己看书学习之后的一些总结和提炼,对于梳理学习的内容很有好处,当然这里不是说自己的学习方法,就不再扯下去了。

2016-05-12 14:51:51 19244 4

转载 java 工程师 基础知识总结

1 Java基础  1.1 Collection和Map(1)掌握Collection和Map的继承体系。(2)掌握ArrayList、LinkedList、Vector、Stack、PriorityQueue、HashSet、LinkedHashSet、TreeSet、HashMap、LinkedHashMap、TreeMap、WeakHashMap、EnumMap、Tr

2016-05-12 14:32:41 503

转载 丑数

题目:我们把只包含因子2,3和5的数称作为丑数。求按从小到大的顺序的第1500个丑数。例如6,8都是丑数,但是14不是,因为它包含因子7。习惯上我们把1作为第一个丑数。方法一:遍历法使用遍历法求第k个丑数,从1开始遍历,如果是丑数则count++,直到count==k为止。那么如何判断丑数呢?根据丑数的定义,丑数只有2,3,5这三个因子,那么我们就拿数字除以这三个因子。具体算法

2016-05-11 15:12:56 388

转载 统计从1到n中1的个数

问题:给定一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数。例如:N= 2,写下1,2。这样只出现了1个“1”。N= 12,我们会写下1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12。这样,1的个数是5。问题一:写一个函数f(N),返回1到N之间出现1的个数,比如f(12)= 5。解法一

2016-05-11 11:21:24 5957

原创 JVM之GCRoots

《深入JVM之GCRoots》堆中几乎存放着Java世界中所有的对象实例,垃圾收集器在对堆回收之前,第一件事情就是要确定这些对象哪些还“存活”着,哪些对象已经“死去”(即不可能再被任何途径使用的对象)1.引用计数算法很多教科书判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器减1;任何时刻计数器都为0的对象就是不可能再

2016-05-11 09:01:29 9302

转载 垃圾收集算法

转自:http://my.oschina.net/winHerson/blog/1143911. 标记 - 清除算法 标记清除算法是最基础的收集算法,其他收集算法都是基于这种思想。标记清除算法分为“标记”和“清除”两个阶段:首先标记出需要回收的对象,标记完成之后统一清除对象。它的主要缺点:①.标记和清除过程效率不高 。②.标记清除之后会产生大量不连续的内存碎片。

2016-05-10 15:53:13 409

转载 对象的访问定位

出处: http://blog.csdn.net/kai_wei_zhang/article/details/8239537Object obj = new Object();“object obj"这部分的语义将会映射到Java(虚拟机)栈的本地变量表,作为一个reference类型数据出现而"new Object” 这部分的语义将反映到Java堆中,形成

2016-05-10 10:14:02 336

原创 java中的基本数据类型一定存储在栈中吗?

首先说明,"java中的基本数据类型一定存储在栈中的吗?”这句话肯定是错误的。栈:虚拟机栈:执行java方法是分配的内存模型。方法运行分配一个栈帧用于存放局部变量表,操作数栈、动态链接、方法出口等信息。。局部变量表存放了编译期可知的各种基本数据类型、对象引用类型,存放了指向实际对象的地址或者句柄位置   下面让我们一起来分析一下原因:   基本数据类型是放在栈中还是放在堆中,这

2016-05-10 10:06:52 2528 1

转载 Java对象的序列化和反序列化 克隆

转自:http://www.cnblogs.com/xdp-gacl/p/3777987.html一、序列化和反序列化的概念  把对象转换为字节序列的过程称为对象的序列化。  把字节序列恢复为对象的过程称为对象的反序列化。  对象的序列化主要有两种用途:  1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;  2) 在网络上传送对象的字节序列。

2016-05-10 09:12:03 333

转载 程序员推荐书目及下载

程序员推荐书目及下载(持续更新)前言本文主要是写一些程序员通用的经典书籍,与具体编程语言无关,希望给初学者或者想深入的朋友一些建议,帮助成长。以下的资料都是免登陆下载,而且都是free的。如果大家觉得资料好的话,推荐给周围的朋友,让更多的人少走弯路。 编程类《代码大全》下载地址编程的百科全书,必读。这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节

2016-05-09 20:23:43 313

转载 java推荐书籍及下载

java推荐书籍及下载(持续更新)前言一直有这么个想法,列一下我个人认为在学习和使用Java过程中可以推荐一读的书籍,给初学者或者想深入的朋友一些建议,帮助成长。推荐的的都是我自己读过,也会推荐一些朋友读过并且口碑不错的书籍。以下的资料都是免登陆下载,而且都是free的。如果大家觉得资料好的话,推荐给周围的朋友,让更多的人少走弯路。入门类《Thinking in j

2016-05-09 20:22:40 376

转载 linux 字符处理指令 awk

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfred Aho

2016-05-09 20:20:40 302

原创 N皇后的问题

N皇后问题是一个经典的问题,在一个N*N的棋盘上放置N个皇后,每行一个并使其不能互相攻击(同一行、同一列、同一斜线上的皇后都会自动攻击)import org.junit.Test;/** * @author Administrator *递归逐行放置n皇后,可以避开条件 “整个第i行的位置都不能放置” *利用一个数组record来保存已经放置的皇后位置,假设数组为record re

2016-05-06 21:49:42 760

原创 欢迎使用CSDN-markdown编辑器

字符串的组合: 给一个字符串,比如ABC, 把所有的组合,即:A, B, C, AB, AC, BC, ABC, 都找出来。 解题思路: 假设我们想在长度为n的字符串中求m个字符的组合。我们先从头扫描字符串的第一个字符。针对第一个字符,我们有两种选择:一是把这个字符放到组合中去,接下来我们需要在剩下的n-1个字符中选取m-1个字符;二是不把这个字符放到组合中去,接下来我们需要在剩下的n-1个字

2016-05-06 15:22:01 647

转载 页 页表 页表项

////操作系统和计算机组成原理里都讲到内存管理的页式管理,但是本人以及很多初次学习分页的时候,都会迷茫页表大小和页表项大小之间的关系,本人仔细分析了后写了这篇blog,仅当学习交流,个人理解之用,如果有错或者分析不够严谨,欢迎指正。//按字、图结合起来分析,相信还是比较容易看懂。//一、首先明确几个概念 逻辑地址:是程序编译后,生成的目标模块进行编址时都是从0

2016-04-26 21:11:56 46310 20

原创 Graph creat And DFS 邻接表实现图并进行DFS遍历

java代码实现图数据结构 邻接表实现方法package com.seu.edu.Graph;import java.util.*;/**用到的数据结构 * 一个VertexNode是顶点表 包括顶点和指向下一个邻接点的指针 * 一个是EdgeNode 是边表 存储的额是顶点的序号和指向下一个边的指针 * * * 刚开始吧定点表初始化指针指向null 然后边表插入

2016-02-29 14:19:13 484

转载 java comparator和comparable

有两种方式可以进行集合排序 :集合中对象的所属类实现了 java.lang.Comparable 接口为集合指定比较器 java.lang.Comparator 的实现类1. java.lang.Comparablepublic interface Comparable 接口强行对实现它的每个类的对象进行整体排序。 -- 自然排序。类的compareTo称为自然比较方法。这

2016-02-24 10:33:22 330

转载 java运行内存分配

Java的内存主要包含4块,即heap(堆内存)、stack(栈内存)、datasegment(静态变量或是常量存放区)、codesegment(方法区)   栈:存取速度快,存放一些基本类型的变量或对象的引用变量。主要用来执行程序的。 堆:    存取速度慢,通过New()方法来创建的对象或数组。主要用来存放对象的。 静态常量区:存放的是静态变量(类变量)或是常量

2016-01-04 09:10:57 1344 1

转载 抽象类和接口的区别、为什么用抽象类。

网上再学习了一次,在这里记下看到各位大虾的金言。 一、抽象类: 在面向对象领域,抽象类主要用来进行类型隐藏。那什么是类型隐藏呢?我们可以构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。这个抽象描述就是抽象类,而这一组任意个可能的具体实现则表现为所有可能的派生类。好比,动物是一个抽象类,人、猴子、老虎就是具体实现的派生类,我们就可以用动物类型来隐藏人、猴子和

2016-01-03 14:18:12 402

转载 Java 编译时与运行时

             在开发和设计的时候,我们需要考虑编译时,运行时以及构建时这三个概念。理解这几个概念可以更好地帮助你去了解一些基本的原理。下面是初学者晋级中级水平需要知道的一些问题。Q.下面的代码片段中,行A和行B所标识的代码有什么区别呢?public class ConstantFolding {      static final  int number

2016-01-03 09:12:36 388

转载 linux挂载共享文件

今天为将CentOS 下mysql数据库备份至windows共享目录,挂载windows共享目录的时候总是报错,经过一翻百度之后,终于解决。[root@www ~]# mount -t cifs -o username=domain\administrator,password=Test123 //192.168.1.10/share /databackupmount error(

2015-12-29 08:41:46 1067

转载 进程线程及堆栈关系的总结

突然想到进程的栈和线程的栈,就顺便说一下,线程的栈被自动分配到进程的内存空间中进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享

2015-12-25 09:43:10 360

转载 android开发设计模式の单例模式

单例模式是设计模式中最常见也最简单的一种设计模式,保证了在程序中只有一个实例存在并且能全局的访问到。比如在android实际APP 开发中用到的 账号信息对象管理, 数据库对象(SQLiteOpenHelper)等都会用到单例模式。下面针对一些例子分析一下我们在开发过程中应用单例模式需要注意的点。一、作用单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的

2015-11-29 19:15:50 403

转载 java匿名内部类

匿名类是不能有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一部分来声明它们。这就要采用另一种形式的new语句,如下所示: new 这种形式的new语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口。它还创建那个类的一个新实例,并把它作为语句的结果而返回。要扩展的类和要实现的接口是new语句的操作数,后跟匿名类的主体。如果匿名类对另一个类进行扩展,它

2015-11-24 12:38:37 262

空空如也

空空如也

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

TA关注的人

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