自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

代码大湿的专栏

代码大湿

  • 博客(43)
  • 资源 (2)
  • 问答 (4)
  • 收藏
  • 关注

原创 LINUX命令文本处理——sed

sed命令的功能是处理文本字符。这里以文件/etc/passwd为例进行实例演示,具体功能如下:1 显示某行的字符 显示第3行的字符内容,command:nl /etc/passwd|sed -n '3p'result: 3 bin:x:2:2:bin:/bin:/usr/sbin/nologin打印命令如果不加参数-n,则会打印所有行。2 添加字符在文件第2行后面添加字符,command: n

2017-03-26 11:15:25 524 1

原创 设计模式系列 1——StaticFactory(静态工厂),AbstractFactory(抽象工厂)

本文出自 代码大湿 代码大湿1 静态工厂静态工厂介绍:静态工厂模式可以实现接口封装隔离的原则。在客户端只知接口而不知实现的时候可以使用静态工厂模式。源码请点击我角色:Product:客户端需要使用的接口。 ConcreteProduct:Product的具体实现。Factory:拥有静态方法的工厂类,返回ConcreteProduct实例。Client:只知到Product。但是并不知道具体实

2016-09-04 18:56:21 495

原创 多线程同步的三大神器

本文出自 代码大湿 代码大湿实现多个线程同步一般有三种方式(CountDownLatch,CyclicBarrier,Semaphore) 1:CountDownLatch一般用于一个线程等待其他多个线程的同步。其countDown方法将计数器减1。await方法在计数器不为0的时候都是阻塞状态(await不改变计数器的值)。 2:CyclicBarrier的await将计数器值加1,其值不为构

2016-08-30 16:40:32 402

原创 轻松突击ThreadLocal

ThreadLocal是用来保存线程的本地变量,每个线程都有一个自己的变量(包括static变量)。看个实际场景。我们要设计一个序列号生成器,每个线程之间对序列号的获取是是隔离的。初始我们可能会这样设计。使用一个static变量。首先有一个序列号生成器的接口package ThreadLocal;/* *2016年8月28日 下午2:48:17 *@Author Pi

2016-08-28 16:46:25 515

原创 轻松搞定技术面系列 1——基础篇

以下收录了多年面试的经典题目,包括答案。有段时间没有更新新文章了,接下来想把文章的更新速度放慢点,主要是想写出更高质量的文章,最近收录了2 调度和运行:线程是进程的实体,是系统调度的基本单位,线程的调度要依赖进程,不能单独运行。线程的上下文切换更快。2 谈谈Vector和ArrayList3 谈谈HashMap和HashTab

2016-08-17 18:41:14 1070

原创 详解 jupyter notebook 集成 spark 环境安装

来自: 代码大湿 代码大湿1 相关介绍 jupyter notebook是一个Web应用程序,允许你创建和分享,包含活的代码,方程的文件,可视化和解释性文字。用途包括:数据的清洗和转换、数值模拟、统计建模、机器学习和更多。支持40多中语言。python ,R,go,scala等。 Spark是UC Berkeley AMP lab所开源的类Hadoop MapRed

2016-07-03 15:05:09 13971

原创 Java——泛型(最易懂的方式阐述泛型)

来自: 代码大湿 代码大湿写在前面:只要认真看过,基本能很熟悉泛型的特性。泛型是JDK1.5之后出现的,比如JDK1.5之前,但是会出现2个问题1:向ArrayList当中添加对象,添加String和Date都可以,但我们的本意是添加String,编译器不会检查错误,会导致不可预知的错误。2:get()方法得到一个元素的时候要进行强制类型转换。 所以泛型的引入很好的解决了这2个

2016-06-02 21:08:02 450

原创 Java8新特性 1——利用流和Lambda操作集合

Java8中可以用简洁的代码来操作集合,比如List,Map,他们的实现ArrayList。以此来实现Java8的充分利用CPU的目标。流和Lambda表达式都是Java8中的新特性。流可以实现对集合的遍历,过滤,聚合,求和以及求平均值等操作。文章力求好懂的基础上写得简洁,达到看完就能用的效果。1:利用流和Lambda来遍历集合public class Main { public static

2016-05-31 22:17:44 3985

原创 JAVA——利用wait和notify实现生产者和消费者

经典的消费者和生产者的的实现:注意事项:  1:在循环里面用wait(),因为当线程获得了锁,但是有可能还没有满足其他条件:  2:公用的缓冲池要用锁机制:  1 package demo; 2 3 import java.util.Vector; 4 5 public class Main { 6 7 public static vo

2016-05-23 22:33:18 313

原创 JAVA——装箱和拆箱

Java  将某些基本数据类型自动转换为包装类型的过程称为装箱,相反自动将包装类型转换为基本数据类型的过程称为拆箱。  Integer integer_1=1;  //装箱  int i=integer_1;  //拆箱  装箱会调用  Integer.valueOf(int)  函数:  拆箱会调用  Integer.intValue(Integer)  函数  几个面试

2016-05-22 23:01:34 323

原创 数据结构——红黑树

红黑树是二叉排序树的改进, 红黑树有几个特点:  1:节点只有2中颜色,红色和黑色。  2:根节点一定是黑色节点。  3:红色节点的子节点一定是黑色节点。  4:黑色高度(根节点到每个叶子节点的路径长度包含相同的黑色节点)相等。    规定的插入的节点一定是红色节点,红黑树的插入节点后需要调整的规则,插入节点需要调整的情况有3种:  情况1:插入的节点的父节

2016-05-21 21:32:51 308

原创 环境——LINUX上 JDK 的安装

LINUX环境下的基本的JDK环境安装要点[LINUX jdk 64 位的下载链接] (http://pan.baidu.com/s/1dEOY10H)下载后的文件是 jdk-7u67-linux-x64.tar.gz 放到指定目录后解压,如解压后的文件是 jdk1.7.0_67配置环境变量,几个主要的环境变量:在对应的用户的.bash_profile文件中加入:1:export $J

2016-05-20 21:36:37 269

原创 LINUX——查看操作系统/CPU/内存信息

CPU信息在操作系统加载时放到了 /proc/cpuinfo 文件中cat /proc/cpuinfoCPU信息信息说明:processor: 逻辑CPU idphysical id: 物理CPU idcpu cores: 一个物理封装的CPU里面的核心个数siblings: 一个物理封装的CPU里面的逻辑CPU个数cpu MHz: CPU主频查看系统发行版本cat /et

2016-05-19 20:53:49 692

原创 LINUX——sort命令

sort是实现文本内容排序的commandcat test:cat test|sort:将第一个字符排序cat test|sort -r(reverse)降序排序cat test|sort -t ":" -k 2将test按“:”为分隔符然后取出第二个字段来排序cat test|sort -n将文件用数字大小来排序cat test|sort -u去掉重复行(unique命令也可以

2016-05-18 21:38:26 412

原创 华为OJ平台——求解立方根

***牛顿迭代法***

2016-05-16 22:08:28 821

原创 LINUX——cut命令(管道命令)

cut是处理具有固定格式的文件的命令:echo $PATH如下 如图cut -d 分割符 -f 获取的字段 EXAMPLE:echo $PATH|cut -d “:” -f 4 得到如下结果 以 “:”作为分隔符,获取第4个字段

2016-05-15 21:20:20 2535

原创 华为OJ平台——在字符串中找出连续最长的数字串

题目如下:答案(C++):#include<iostream>#include<string>#include<vector>using namespace std;int main(){ string str; getline(cin,str); //每次统计的数字的个数 int maxCount=0; //存储每个连续的字符串 vector

2016-05-14 23:10:33 844

原创 LINUX——文件查找1

文件查找的几个命令

2016-05-13 21:04:28 393

原创 Java观察者模式编程

观察者模式(订阅/发布模式)Java中观察者模式中主要是Observerable接口(被观察者),和Observer类(观察者)。 @

2016-05-11 22:02:59 364

原创 Java定时器

说下Java中简单的定时器的使用方法, 如下

2016-05-10 21:42:57 309

原创 Java线程池——FutureTask

* *FutureTask(一般继承一个Callable)可以在Future和Runnable中间转换,在线程想要得到一个结果的时候,使用FutureTask非常方便。**

2016-05-02 22:47:32 423

原创 面试1——TCP和UDP区别

TCP和UDP区别

2016-05-01 20:36:56 836 1

原创 二叉排序树

今天介绍下二叉排序树的建立与查找,很简单,主要是递归的思想

2016-04-29 21:44:26 337

原创 Java多线程编程-线程池的使用

创建线程池一般有一下几种方法:

2016-04-28 21:55:03 474

原创 Java多线程编程-生产者,消费者

来个生产者消费者的事例。说明:利用Object的wait(),notify()或者notifyAll()进行生产者和消费者的同步。

2016-04-28 21:22:36 486

原创 Java网络编程-UDP编程

DatagramSocket是利用UDP进行通讯,数据传输是不可靠的。//服务器线程

2016-04-27 21:35:57 208

原创 Java的网络编程-Socket编程

Socket是使用TCP协议,此协议发送数据前会建立连接,保证数据的可靠性,下面是个客户端和服务器端Socket通信 的模版:

2016-04-27 19:56:02 255

原创 插入排序

插入排序主要有直接插入排序和希尔排序希尔排序是直接插入排序的威力增强版。将列表元素分成若干组,,如下图{0,8,3,4,5,6,2,4,40,3}

2016-04-26 22:47:45 218

原创 Java集合排序

比如将一个List排序,则有两种方式: 1:Student实现Comparable接口: 2:给排序方法传递一个Comparator参数:请看下面的举例: Student类:package demo;//Student实现Comparable,需要实现compareTo方法public class Student implements Comparable<Student>{

2016-04-25 22:59:22 423

原创 选择排序

选择排序主要是直接选择排序和堆排序,直接选择排序时间复杂度为O(n*n),不稳定的算法。堆排序时间复杂度为O(n*logn),稳定的算法C++实现(代码已经测试过):#include<iostream>using namespace std;class SelectSort{public: //直接选择排序,不稳定,O(n*n) void selectSort(int a[],i

2016-04-25 19:38:40 266

原创 交换排序

交换排序一般包括冒泡排序,时间复杂度为O(n*n),快速排序,最好情况和平均情况时间复杂度是O(n*logn),最坏情况是O(n*n)。快速排序可以看我之前专门有一章是扎un们讲快速排序的

2016-04-25 15:16:54 274

原创 基数排序

***基数排和归并排序一样是稳定的排序算法,时间复杂度,平均情况和最坏情况下为O(d(r+n)),最坏情况为O(d(dr+n))***

2016-04-23 23:05:16 299

原创 归并排序

归并排序三种情况下时间复杂度均是O(n*log(n)).是一种稳定的排序。详解:归并排序是利用递归和分而治之的技术将数据序列划分成为越来越小的半子表,再对半子表排序,最后再用递归步骤将排好序的半子表合并成为越来越大的有序序列,归并排序包括两个步骤,分别为: 1)划分子表 2)合并半子表 首先我们来讨论归并算法,归并算法将一系列数据放到一个向量中,索引范围为[first,last],这个序列由两

2016-04-22 16:20:56 184

原创 TCP的三次握手和四次挥手

今天介绍下TCP协议的三次握手和四次挥手

2016-04-21 13:22:19 347

原创 头插法建立链表

介绍下头插法建立链表C++实现。 说明:头插法建立的链表元素顺序是和输入的顺序相反的,如果要顺序保持一致,建议用尾插法。

2016-04-20 17:43:41 1148

原创 各个排序算法的比较

各个排序算法的说明如下:

2016-04-18 17:00:08 279

原创 堆排序

堆排序是不稳定的排序算法,算法时间复杂度,三种情况下均是O(nlog(n))。步骤和C++(大顶堆)实现如下:1:根据初始数组构建初始堆: ![这里写图片描述](http://jingyan.baidu.com/album/5225f26b057d5de6fa0908f3.html?picindex=1) 调整过程如下: ![这里写图片描述](http://jingyan.bai

2016-04-18 16:50:02 290

原创 快速排序

快速排序在最坏情况下和冒泡排序一样时间复杂度O(N*N).平均时间复杂度为O(NlogN).C++代码如下/快速排序/includeusing namespace std;void quitSort(int a[],int left,int right){ if(left>=right){ return; } int i=left,j=right;

2016-04-16 14:21:52 275

原创 环境——卸载redhat6.5的yum,安装centos6的yum,配置第三房yum源

**redhat的yum在线更新是收费的,如果没有注册的话不能使用,如果要使用,需将redhat的yum卸载后,重启安装其他yum源,再配置其他源.** 本文包括配置本地源及第三方源。第三方源包括:网易,epel,repoforge ,rpmfusion 以下为详细过程:1.删除redhat原有的yum rpm -aq|grep yum|xargs rpm -e –nodeps2.下载yum安装文

2016-04-15 20:15:58 942

原创 卸载redhat6.5的yum,安装centos6的yum,配置第三房yum源

**redhat的yum在线更新是收费的,如果没有注册的话不能使用,如果要使用,需将redhat的yum卸载后,重启安装其他yum源,再配置其他源.**本文包括配置本地源及第三方源。第三方源包括:网易,epel,repoforge ,rpmfusion 以下为详细过程: 1.删除redhat原有的yum rpm -aq|grep yum|xargs rpm -e –node

2016-04-15 19:56:19 553

httpd服务的配置文件

httpd服务的配置文件,路径/etc/httpd/conf/httpd.conf

2018-03-07

linux版本的git客户端

2016-04-22

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

TA关注的人

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