自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

西瓜shine

当你计划去做一件事时,不能把别人的帮助考虑在内

  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 C语言 - 字符串操作

strncpystrncatstrncmpstrnlen是较为安全的字符串函数int main(void){char *src = "zhouxudong"; char dst[] = "huawei"; strncat(dst, src, strnlen(src, 5)); printf("%s\n", dst); strncpy(dst, src, strlen(src...

2019-10-07 12:05:14 233

原创 Linux内核数据结构skb(socket buffer)

struct sk_buff_head { /* These two members must be first. */ struct sk_buff *next; // 双向链表 struct sk_buff *prev; __u32 q...

2019-08-04 14:34:48 1802

原创 Linux内核数据结构映射-idr

映射是实现(key,value)绑定的一种数据结构。也称为关联数组。可以视为由唯一key组成的集合。每个key对应这一个value。常规的映射实现有hash表和二叉树,以及二叉树的变种。差异hash表具有相对较好的平均时间复杂度。二叉树有着更好的最坏时间复杂度。hash表通过hash函数能够映射不同类型的key。二叉树没有hash,更多用于同类key。hash表中的key经过h...

2019-07-21 16:55:09 1140 1

原创 Linux内核数据结构—List

Linux内核中的list采用的思想是,将链表嵌入在数据结构中。而非将数据结构嵌入到链表中。(include\linux\list.h)链表嵌入在数据结构fox中: 图1 linux内核list图示数据结构fox嵌入到链表中:...

2019-07-16 08:50:53 403

原创 Linux内核数据结构队列-kfifo

前言kfifo巧妙的运用了无符号变量和位运算的特点。使得代码巧妙。数据结构struct kfifo { unsigned char *buffer; /* 存放数据的buff */ unsigned int size; /* 分配到的buff的大小 */ unsigned int in; /* data写入时的偏移量 (in % size) */ unsigned int...

2019-07-14 17:56:57 586

原创 Redis in action 第七章java版代码注释

https://download.csdn.net/download/m0_37128231/10971158 有疑问可以直接留言一起探讨,作者本人上传注释。第一次写注释给别人看,难免有看不懂的地方,写的不好不对的地方...

2019-02-24 11:03:52 162

原创 Java - ByteBuffer字节数组缓冲器。读取数据和写入数据执行flip和clear的原理

ByteBuffer继承于Buffer。使用一个字节数组作为缓冲器。读取的数据和发送的数据会放入字节数组hb中。当数组达到一定大小,一次性写入通道或者读取。避免每次操作都要进行读写操作。public abstract class ByteBuffer extends Buffer implements Comparable<ByteBuffer>{ final by...

2019-01-23 12:12:54 4050

原创 Java - FilenameFilter和FileFilter的区别

 FilenameFilter和FileFilter接口都是用于文件的筛选。但是方法的参数有所不同: FilenameFilter 接口:boolean accept(File dir,String name); 其中dir为当前目录,name是文件名。 FileFilter接口:boolean accept(File pathname);pathname则为文件 到此我们只能看出...

2019-01-10 11:40:25 2410

原创 Java - Class对象、反射、动态代理学习

         Java是一个动态链接语言。Java中的类在需要时才会被加载,这个类我们可以视为一个Class对象(xxx.class)。管理这些Class对象的类则就是Class类。         这里有点拗口,对于初学者来说(比如:笔者),需要仔细的理解一下。我们知道.java文件在编译之后会生成一个.class文件。比如Student.java,该文件里存放着Student类的定义。...

2018-12-28 19:47:55 237

原创 C - 实验课检查日期是否合法

水贴一张。给老师代课时写的代码。来骗波访问量。根据输入的年月日,来判断是否合法。(代码没有判断输入的月份为负数、大于12等等情况)。主要思想:判断是否为闰年,确定2月的日期范围。                 根据月份,判断日期的范围。#define _CRT_SECURE_NO_WARNINGS#include "stdio.h"#include "stdbool.h"...

2018-12-27 11:19:20 791 1

原创 Java源码 - Exceotion异常类的基类Throwable分析

常用的异常有:Error、Exception,这两个类的基类都是Throwable。其中Error是用来表示编译时和系统的错误,这一类问题,基本不需要我们关心。Exception就是我们常见的异常。由源码可知,Exception类自身并没有什么重要的东西,它只是Throwable类的一个子类。public class Exception extends Throwable { ...

2018-12-25 15:21:55 925

原创 C - 不传参数修改函数外面的变量pass()

今天一朋友给我看了一道题,很是鬼畜的题目。虽然知道应该没有人会这么写代码,但是这里面的逻辑还是很值得了解学习的。代码填空:填写pass()函数。要求输出:456#include "stdio.h"void pass(){}int main(){ int x = 123; pass(); printf("%d\n",x); getchar();}刚看到这道题,心里...

2018-11-26 16:39:20 727

原创 Intellij Idea - 导入本地插件,python为例

今天给intellij idea导入python插件时。发现在Search in repositories 中找不到插件。之后找了许多资料,有人说是因为更新的问题。我查看了一下,确实是在intellij更新消息提醒之后发生的bug。第一个解决方案是:在configure->Setting->Appearance&Behavior->System Setti...

2018-11-18 14:39:24 14215 1

原创 Python - 保留了默认2.6,安装python3之后如何使用pip3并导入模块到python3,pyperclip为例

很多人在刚学python时就被告知python2在2020年之后就不会被维护了,所以大家都会选择python3。我也是。安装python3的时候,又害怕删除原有的默认python2版本会影响系统。所以我选择了安装python3,并保留python2。以上是没有什么问题。但是今天看书,遇到一个问题为:导入pyperclip模块。当我执行pip install pyperclip时,发...

2018-10-23 17:23:39 1466

原创 Oracle - 连接发生 ERROR: ORA-12560: TNS: 协议适配器错误

今天使用Java连接Oracle时,程序抛出SQLException:java.sql.SQLException: Listener refused the connection with the following error:ORA-12514, TNS:listener does not currently know of service requested in connect d...

2018-10-14 09:33:09 6131

原创 C语言 - while循环体内变量重新声明,陷入死循环。

今天写一个实验代码时,用到了while(exp)循环。发现exp已经为false。但是依然死循环下去。float T = (float)work[srcNode] / (workAll/6); int consume = 0; float flag = 1.5; while( T > flag ){ consume += (work[srcNode] - work[dict...

2018-09-30 16:09:50 3879

原创 Java - comparable和comparator的区别和用法

最近遇到一个问题、需要对List中的对象进行排序。无脑写代码的解决方案是:取出来排序。当然这不符合我们程序员的追求。Java中有两个接口专门用于排序、比较。它们就是comparable和comparator。也有人称之为内部比较器和外部比较器。内部比较器 comparable:它重要用在创建类时实现,如果一个类需要用到排序,则可以实现这个接口。外部比较器comparator:它更像是一...

2018-09-21 13:55:59 338

原创 Java - 对象复制,cloneable与序列化复制的区别

当需要对同一个类,生成多个对象时。一般有三种方法:new()、clone()、以及序列化复制new和clone的区别,简单的说一下:new的操作为 分配内存。程序执行到new操作符时, 首先去看new操作符后面的类型,因为知道了类型,才能知道要分配多大的内存空间。分配完内存之后,再调用构造函数,填充对象的各个域,这一步叫做对象的初始化,构造方法返回后,一个对象创建完毕,可以把他的引用(地址...

2018-08-21 19:46:45 1160

原创 Java1.8 关于Lambda表达式序列化问题

Lambda表达式是1.8特别重要的一个新增内容。之前学习的时候,只注意了书上关于它的使用,语义等。直到前几天有个面试官问我:问:Lambda表达式知道吗?答:知道啊。(心里活动:问我问我,这个我前几天刚看过)问:使用了Lambda表达式的对象可以序列化吗?为什么?答:WTF???404 not find。您的问题超出了我的知识储备。今天特地对这个问题进行了实验,顺便把La...

2018-08-18 19:41:39 3484

原创 Intellij IDEA - XXX are not supported at language level ‘1.x’ ;usage API documented as @Since1.x +.

在使用intellij IDEA时,出现了编译不成功,但是代码没有问题的情况。出错信息为XXX are not supported at language level ‘1.x’ 。(注:usage API documented as @Since1.x +. 同样的解决方法)一开始肯定会认为莫名其妙,明明自己安装的jdk1.8的。怎么就不能用1.7的东西呢?鄙人陋见:intell...

2018-07-18 16:20:46 702

原创 Java- Stack与LinkedList实现。

我们都知道栈有两种实现方式。一个用Stack类。一个用LinkedList类实现。那么它们之间有什么不同呢?我们先用一段代码显示一下。public static LinkedList<String> stack;public static Stack<String> stack1;public static LinkedList<String>...

2018-07-18 15:47:59 8254 1

原创 Intellij IDEA-Connected to the target VM, address: '127.0.0.1:3556', transport: 'socket';Disconnecte

作为一个intellij Idea 小白。今天写java代码的时候,发现运行程序多出了两行关于:连接vm,ip:port的字样而之前并没有这样的显示。代码直接用javac运行也没有任何问题。后来发现是自己的包名,首字母用了大写。修改包名。重新运行。链接vm的显示信息消失...

2018-07-18 14:38:44 31786 3

原创 Java - RandomAccessFile.writeChars、writeChar使字符串长度扩展一倍的原因分析

RandomAccessFile是一个随机读写流。    今天在使用该流写入数据时,发现写入的数据读出来之后与源数据比较,结果是不相等。代码如下:while((s=rw.readLine())!=null){ System.out.println("s:"+s); System.out.print("s:长度"+s.length()+"\n"); String[...

2018-06-26 19:50:59 1470

原创 Redis - 解决reshard 出现的bug :Syntax error ,try CLIENT (LIST|KILL|GETNAME|SETNAME|PAUSE|REPLY)

    在自己做实验准备迁移 有key-value的槽的时候,(执行指令是redis-trib.rb reshard)发现会出现报错:报错内容为:Syntax error ,try CLIENT (LIST|KILL|GETNAME|SETNAME|PAUSE|REPLY)    但是迁移没有key-value的槽的时候就会执行成功。 这就说明问题出在了存不存在key-value上       我...

2018-06-21 09:56:30 12709 2

原创 Java源码 - ArrayList与LinkedList(以及堆栈)

 ArrayList是使用数组实现的,能够自动扩展大小以适应存储元素的不断增加。首先看到ArrayList的继承关系。可以看出它是一个List,可clone,可序列化。public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Clonea...

2018-06-17 17:06:28 431

原创 Java源码-Thread 线程.类

    Thread 线程类其实是一个实现了Runable接口的类。该类调用了许多底层的方法。所以下面你们会看到许多native的方法。native修饰的方法:是指用其他语言(C/C++...)实现的方法。由此可见,底层语言是C/C++。    Thread 主要成员变量:        target(当前的Runable),ID (线程号),name(名称),        以及...

2018-06-17 16:29:11 270

原创 Java源码 - Timer 定时器

    Timer,定时器,一个功能强大的类。    线程通过它来安排以后需要在线程中执行的任务。该任务可以执行一次,也可以周期重复执行。    Timer类中 包含了一个线程TimerThread、一个任务数组类TaskQueue。工作原理是 TimerThread不停的循环执行TaskQueue中的任务(TimerTask、定时任务)。    重要的成员变量:public class Time...

2018-06-17 15:38:50 221

原创 Java - 编写自己的类库

    许多程序代码我们先用到以后的开发中。比如:排序算法等。避免每次使用都要重新写一遍这些代码。如果可以像调用jdk一样的方法来调用我们自己写的代码块。那么该多好。    万幸,有。废话不多说。talk is cheap,show me your code。第一步:创建文件夹mylib,用于存放你自己的lib。    作者路径:D:\Java\jdk\mylib第二步:设置你的CLASSPATH...

2018-06-17 14:26:28 4747 2

redis in action 第七章代码注释

redis in action Redis实战的第七章代码注释,java版本

2019-02-22

空空如也

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

TA关注的人

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