自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 快速排序

public void QuickSort(int[] nums,int low,int high){ if(low<high){ int point=Partition(nums,low,high); QuickSort(nums,low,point-1); QuickSort(nums,point+1,hig

2017-09-18 11:39:45 373

原创 冒泡排序

public void BubbleSort(int[] nums){ //最多进行nums.length-1次 for(int i=1;i<nums.length;i++){ //标识在一次冒泡中是否发生交换 boolean tag=false; for(int j=0;j<nums.lengt

2017-09-18 10:25:01 376

原创 java的WeakHashMap详细介绍

在上一篇文章中介绍了Java的四种对象引用,这篇文章介绍一个java中相关的具体应用WeakHashMap。      WeakHashMap是基于弱引用实现的哈希表,与HashMap在操作上基本相同,WeakHashMap最大的特点是对于哈希表中的每个Key,如果除了自身对Key有引用外,此Key没有其他引用,那么该Key对应的键值对会被表自动移除,这个行为取决于垃圾回收器的动作,只有在垃圾

2016-09-14 17:21:12 500

原创 java的四种引用对象介绍

在java.lang.ref包中提供了引用对象类,通过这些引用对象类,可以支持在某种程度上与垃圾回收器(gc)的交互,这个包中的类有:Reference,ReferenceQueue,WeakReference,SoftReference,PhantomReference,对应不同的引用对象类,Java中有以下四种对象引用。1、强引用(Strong Reference)      强引用就

2016-09-14 17:06:39 866

原创 java实现生产者与消费者

写了一段生产者与消费者代码,有待改进package test;import java.util.Random;//商品缓冲池class Buffer { private int[] NumberPool = null; private int size; //缓冲池大小 private volatile int head = 0; private volatile

2016-08-30 12:17:56 367

原创 java多线程问题总结

1、synchronized关键字修饰的同步函数使用什么对象作为锁?分为两种情况,如果该函数为静态的则采用所在类的class锁,否则采用this锁,测试用例如下:class test{ public synchronized void f1() throws InterruptedException{ System.out.println("进入f1"); Thread.

2016-08-29 19:30:50 344

原创 java注解(Annotation)

在代码中总是看到注解,但是没有深入了解过,发现有两篇文章讲的不错,Mark一下Java基础之理解Annotation注解(Annotation)自定义注解入门

2016-08-23 18:41:42 239

原创 Docker:手动配置容器网络

docker容器的网络是net命名空间与虚拟设备的结合,容器在启动时会创建一对虚拟接口veth pair,这一对接口分别放到本地和容器中,在本地的veth会被分配类似vethxxxx的名称并被桥接到指定网桥的上(默认为docker0),可以通过brctl show命令查看网桥上挂载的接口,在容器中的veth会从网桥获取一个未使用地址,该veth的名称会被更改为eth0并配置默认路由到vethxxx

2016-08-22 14:30:22 989

原创 Docker:添加自定义网桥

docker服务进程在启动的时候会生成一个名为docker0的默认网桥,容器默认都会挂载到该网桥下,但是我们可以通过添加服务进程启动参数-b 网桥名称 或更改docker配置文件来进行网桥的切换,我的docker环境操作系统为centos7。网桥设置(/etc/sysconfig/network-scripts/ifcfg-br0文件)DEVICE="br0"ONBOOT="yes"T

2016-08-19 16:14:06 9857

原创 Docker:搭建tomcat+mysql+web+nginx运行环境

1. 镜像准备    采用基础镜像为CentOS,由于公司网络网络限制,连接不上Docer Hub,采用离线下载,下载地址为:centos-6-x86_64.tar.gz,下载到本地以后采用docker import 命令导入。 cat centos-6-x86_64.tar.gz | docker import - centos:latest2. 搭建tomcat

2016-08-17 20:44:41 12428

原创 Linux硬链接与软链接

http://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/#fig2

2016-07-27 09:48:59 218

原创 /usr/bin/env的使用

linux shell的脚本开头一行需要指定脚本的解释程序,如:#!/usr/bin/env python,但有的时候我们又会使用#!/usr/bin/python,这是因为脚本解释器在linux中可能被安装于不同的目录,如果直接将解释器路径写在脚本里,这样可能会造成找不到解释器的问题,env可以在系统的PATH目录中查找解释器。同时,env还规定一些系统环境变量,可以执行env 命令查看

2016-07-24 21:12:48 5956

转载 /bin,/sbin,/usr/sbin,/usr/bin 目录简介

/bin目录存放系统的一些普通的基本命令,例如:cat、cp、chmod、df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。/sbin一般是指超级用户指令,主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、 ifup、 ifdown、init、insmod、lilo、

2016-07-24 20:47:11 425

原创 linux系统的chroot作用

chroot用于改变应用程序的根目录,也就是通过该命令可将一个子目录设置为该应用程序的“/”,如果要正常执行命令和程序等,必须还将系统中/bin,/usr/bin ,/usr/lib 等目录拷贝到该“/”下。

2016-07-22 18:04:23 864

转载 Linux写时拷贝技术(copy-on-write)

COW技术初窥:      在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了“写时复制“技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。      那么子进程的物理空间没有代码,怎么去取指令执行exec系统调用呢?      在fork之后exec之前两个进程用

2016-07-22 15:18:17 304

原创 Linux进程创建:fork,vfork,exec,clone总结

Linux内核通过一个被称为进程描述符的task_struct结构体来管理进程,这个结构体包含了一个进程所需的所有信息,包括数据段,代码段,堆栈段的地址,当前进程的环境变量,文件的描述符等,在创建进程的时候,会为进程创建进程描述符。1.fork系统调用       fork用来创建子进程,fork调用一次返回两次,有三种不同的返回值,在父进程中返回值为子进程的PID,子进程中返回值为0,如

2016-07-22 14:42:41 1289

原创 openstack安装keystone过程中提示requires:PyYAML的解决方案

在根据openstack icehouse的官方文档安装keystone过程提示requirs:PyYAML,由于公司的yum源中没有相关的软件包,手动下载rpm进行安装,需要两个包libyaml-0.1.3-1.el6.x86_64.rpm和PyYAML-3.10-3.1.el6.x86_64.rpm下载地址:libyaml-0.1.3-1.el6.x86_64.rpm: http://

2016-07-13 19:02:09 897

原创 docker:安装问题总结

http://down.51cto.com/data/1903250

2016-07-13 13:15:07 409

原创 openstack安装过程中软件包缺失

http://download.csdn.net/download/zcsqni/7324629http://download.csdn.net/download/zcsqni/7324607

2016-07-13 13:06:45 910

原创 Java中throws与throw的区别

throws:            用在方法声明后面,跟的是异常类名。            可以跟多个异常类名,用逗号隔开。    可以抛出异常,由该方法的调用者来处理。    throws表示出现异常的一种可能性,并不一定会发生这些异常throw:            用在方法体内,跟的是异常对象名。    只能抛出一个异常对象名。    表示抛出异常,执行

2015-09-18 21:13:50 442

原创 关于JAVA中的权限修饰符

类中           同一包下的子类          不同包下的的子类            不同包下非子类 public 是     是  是是protected 是     是  是否 默认 是     是          否        否private 是     否          否否

2015-09-18 18:12:20 239

翻译 Hadoop中HDFS的设计目标

1.检测和快速恢复硬件故障:硬件故障是计算机常见的问题。整个HDFS系统由数百甚至数千个存储着数据文件的服务器组成。而如此多的服务器则意味着高故障率,因此故障的检测和快速自动恢复是HDFS的一个核心目标。2.流式的数据访问:HDFS使应用程序流式地访问它们的数据集。HDFS被设计成适合进行批量处理,而不是用户交互式处理。所以它重视数据吞吐量,而不是数据访问的反应速度。3.简化一致模型:大部

2015-09-17 18:46:11 1332

转载 静态变量和成员变量的区别

1.所属不同  静态变量属于类,所以也成为类变量。  成员变量属于对象,所以也成为实例变量。2.内存中的位置不同  静态变量位于方法区的静态区。  成员变量存储与堆内存。3.内存中出现的时间不同   静态变量随着类的加载而加载,随着类的消失而消失   成员变量随着对象的创建而存在,随着对象的消失而消失4.调用不同   静态变量可以通过类名调用,也可以通过对象

2015-09-12 22:50:56 382

原创 关于C++中的常量与指针的关系

1.指向常量的指针    在C++中用const修饰的常量并不是不可改变的,如果想要修改常量的值可以通过指向常量的指针对常量进行修改,例: const int i=10; cout<<"当前i的值为:"<<i<<endl; int *p=(int *)&i;//对其类型进行强制类型转换 cout<<"修改后i的值为:"<<i<<endl;//在这里值并不会发生改变,因为编译器在编译的

2015-09-08 20:37:37 312

原创 C++命名空间

1.命名空间的定义c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h,在C++采用命名空间可以将变量,函数,类很好的组织起来,避免冲突,命名空间实际上定义了一个范围。namespace user{        int  a(10);}2.命名空间的使用   ::域作用符      using namespace user;其作用域为该行代码

2015-09-02 20:28:50 354

转载 C语言中的数组名

这里我们先看看数组名代表的是什么,这个概念可能大家有所误解,认为数组名代表的就是数组的地址,当然,数组名代表的是一个地址,但是关键是,通过这个地址,我们关注的是它能取得多大空间的数据的值,例如对于一个char 类型的地址,我们能够取得一个字节的值,对于一个int型的地址,我们能够取得4个字节的值。 这里我们以整形数组为讲解:int  a[4];   a是一个地址,我们知道a其实

2015-08-11 22:28:10 836

转载 关于C语言中的字符指针和字符数组

1.字符指针可以指向一个字符串。我们可以用字符串常量对字符指针进行初始化。例如,有说明语句:char *str = "This is a string.";是对字符指针进行初始化。此时,字符指针指向的是一个字符串常量的首地址,即指向字符串的首地址。这里要注意字符指针与字符数组之间的区别。例如,有说明语句:char string[ ]="This is a string.";

2015-08-11 21:32:30 497

转载 关于一个程序占用的内存区

1、栈区(stack)由编译器自动分配释放 ,存放函数的参数值,局部变量的值等,内存的分配是连续的,类似于平时我们所说的栈,如果还不清楚,那么就把它想成数组,它的内存分配是连续分配的,即,所分配的内存是在一块连续的内存区域内.当我们声明变量时,那么编译器会自动接着当前栈区的结尾来分配内存.2、堆区(heap)一般由程序员分配释放, 若程序员不释放,程序结束时可能由操作系统回收.类似

2015-08-11 21:22:49 419

转载 关于C语言中的字符数组和字符指针

1.C语言中用于保存一个字符串有两种方式:   char *str="hello world"; //字符指针   char string[]="hello world";//字符数组 字符指针指向的是一个字符串常量的首地址,即指向字符串的首地址,str是一个变量,可以改变str使它指向不同的字符串,但不能改变str所指的字符串常量。string是一个数组,可以改变数组中保存的内容

2015-08-11 20:40:32 658

空空如也

空空如也

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

TA关注的人

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