- 浏览: 26211 次
- 性别:
- 来自: 广州
最新评论
文章列表
局域网设备的基本常识
- 博客分类:
- 网络编程
局域网设备的基本常识:
中继器:共享传输介质 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中,由于链表无法随机访问,每次 ...