`
文章列表
局域网设备的基本常识:   中继器:共享传输介质   2个端口   信号增强与复制   工作在物理层   集线器(hub): 共享传输介质  2个及以上端口   改进网络拓扑结构(总线型-->星型)   信号增强与复制   也工作在物理层   是一个多端口的中继器        网桥(bridge) : 2个端口    工作在数据链路层    一定的存储转发功能(根据自身MAC转发表)   用来连接多个LAN   交换机(二层交换机): 2个及以上端口   工作在数据链路层  是一个多端口的网桥   路由器: 2个及以上端口   工作在IP层  功能更加强大   ...
这已经是N+1次出现这个问题了:   [guowenxue@centos6 mtd-utils-1.4.9]$ make   CHK     include/version.h   LD      ftl_format /usr/bin/ld: cannot find -lc collect2: ld returned 1 exit status make: *** [/usr/local/apps_src/mtd_utils/mtd-utils-1.4.9/ftl_format] Error 1   主要原因是,在安装Linux时,如果哦选择开发环境,会默认安装需要的动态库 ...
  转自  http://www.myhack58.com/Article/60/63/2014/44763.htm   Heartbleed漏洞 自从Heartbleed漏洞曝光以来,网上能看到很多相关的文章,但大部分都是写的云里雾里,本文尝试直观明了的对漏洞原理进行说明及模拟。   OpenSSL是SSL协议以及一系列加密算法的开源实现,使用C语言编写。OpenSSL采用Apache开源协议,可以免费用于商业用途,在很多linux发行版和服务器中得到广泛应用。OpenSSL出现漏洞造成的影响是巨大的,Heartbleed漏洞被称作“历史上最为严重的网络安全漏洞”。  Hear ...
读者-写者问题 1、读不阻塞其他读 2、读阻塞其他写 3、写阻塞其他读与其他写   问题分为三种:读者优先、写者优先、公平竞争   读者优先:如果当前运行为读线程,则后续的读线程可以不阻塞,直接读                  如果当前运行未写线程,则随机选择阻塞的读或写线程,进行执行 写者优先:无论当前为读、写线程运行,优先选择阻塞的写线程                  只有当无阻塞的写线程时,阻塞的读线程才获取执行机会 公平竞争:读写线程按照先来后到的顺序(FIFO),依次执行,需要用到队列数据结构    java来解决该问题有很多常用的方法,包括使用 ...
最经典的死锁问题当属  哲学家进餐问题。
有几种实现方法,一种是通过临界缓冲区的wait和notify来协调多个线程的并发,一种可以借用jdk 1.5+自带的BlockingQueue来实现,还有一种可以通过jdk1.5+的信号量机制来控制并发。   jdk1.5- 采用Object的wait 和notify方法来实现: package com.xx.concurrent.commonUse; import java.util.LinkedList; import java.util.Queue; import java.util.concurrent.CountDownLatch; import com.fa ...
thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。t.join();      //当前线程中加入线程t,当t执行完成后,当前线程才继续进行。t.join(1000);  //等待 t 线程,等待时间是1000毫秒,无论t是否执行完,主线程1000s后都将会执行。   应用一 : 实现多个线程的串行化调度。代码如下:   package com.xx.concurrent.commonUse; public class SerialThread ...
Young氏矩阵    一个m*n的Young氏矩阵是一个m*n的矩阵,其中每一行的数据都从左到右排序,每一列的数据都从上到下排序。Young氏矩阵中会有一些∞数据项,表示不存在的元素。Young氏矩阵可以存放m*n个有限的数。常见Young氏矩阵的相关操作包括: 1、向一个不满的Young氏矩阵中插入一个元素x,并保持Young氏矩阵的性质 2、根据一个数组,构建一个m*n的Young氏矩阵 3、移除Young氏矩阵中最小的元素,并保持Young氏矩阵的性质 4、判断Young氏矩阵为空或满 5、使用n*n的Young氏矩阵来对n^2个数进行排序,运行时间复杂度为O(n^3) ...
常见的字符串运算的各种算法: 1、字符串的逆转 2、给定字符串s1,s2判断s2是否是s1的子串 3、给定字符串s1,s2求解s1和s2的最长公共子序列 4、给定字符串s1,s2,删除s1中所有s2的子串 5、字符串的通配符匹配 6、求解字符串s中符合指定规则的子串数量    
N皇后问题使用stack的非递归实现   package com.xx.dataStructure.stack; class Point { int x; int y; int value; Point(int x ,int y){ this(x,y,0); } Point(int x ,int y,int value){ this.x = x; this.y = y; this.value = value; } @Override public String toString(){ return ...
  问题: 求解N皇后问题的所有可能的解   package com.xx.dataStructure.stack; //求解N皇后问题的所有解 public class Queen { private int solution = 0; private int n; public Queen(int n){ assert(n > 0); this.n = n; this.solution = 0; } public static void main(String [] args){ solveProb ...
  迷宫问题,一般采用回溯法,利用stack节点探测,算法复杂度O(n^2),好像采用队列也可以实现,下片日志再使用队列试试。   package com.xx.dataStructure.stack; enum Direction { east, south, west, north, nothing } class Position { int x; int y; boolean isInPath = false; Direction nextPosDirection; private Position(int x, int y, bool ...
    栈就是一种可以实现“先进后出(或者叫后进先出)”的线性数据结构,是普通线性结构的一个子集。他的特殊性在于他的操作受限,他只能够在表尾进行插入和删除操作的线性表,是数据“后进先出LIFO”,last in first out。      本文简单的实现了stack的基本操作,并写了一个数制转换的代码。        stack 代码     package com.xx.dataStructure.stack; public class Stack<T> { static final int defaultSize = 10; privat ...
1, 最简单的方法, 用一个指针遍历链表, 每遇到一个节点就把他的内存地址(java中可以用object.hashcode())做为key放在一个HashMap中. 这样当HashMap中出现重复key的时候说明此链表上有环. 这个方法的时间复杂度为O(n), 空间同样为O(n)。 2, 使用反转指针的方法, 每过一个节点就把该节点的指针反向,如果单链表存在环,那么遍历指针会回到头节点,可以通过判断遍历指针来判断。这个算法的时间复杂度是O(n),空间为O(1)。但是缺点是会破坏原来的链表结构。 3、使用快慢指针追逐,快指针每次遍历前进2步,慢指针每次前进1步,如果单链表存在环,那么快指针 ...
     这个是《编程之美》里面的一个题目,给出两个单项链表的头指针,h1、h2判断这2个链表是否相交?    【解法一】直观的想法     循环遍历h1的每一个节点,判断是否存在一个节点在h2中,由于链表无法随机访问,每次 ...
Global site tag (gtag.js) - Google Analytics