<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[be_a_hacker的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/be_a_hacker</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; be_a_hacker]]></copyright><item><title><![CDATA[组合]]></title><link>https://blog.youkuaiyun.com/be_a_hacker/article/details/116230799</link><guid>https://blog.youkuaiyun.com/be_a_hacker/article/details/116230799</guid><author>be_a_hacker</author><pubDate>Wed, 28 Apr 2021 12:06:12 +0800</pubDate><description><![CDATA[定义类，就是新建了一种类型(type)。有了类，我们接着构造相应类型的对象。更进一步，每个类型还应该有一个清晰的接口(interface)，供用户使用。我们可以在一个新类的定义中使用其他对象。这就是组合(composition)。组合是在Java中实现程序复用(reusibility)的基本手段之一。
组合是继承的另外一种形式，组合大于继承。
//一般情况继承
class A extends B{


}
//组合
class A{
    public B b;
}

组合优先、继承其次。具体依赖抽象，无]]></description><category></category></item><item><title><![CDATA[Lambda表达式#代码简化]]></title><link>https://blog.youkuaiyun.com/be_a_hacker/article/details/116230710</link><guid>https://blog.youkuaiyun.com/be_a_hacker/article/details/116230710</guid><author>be_a_hacker</author><pubDate>Wed, 28 Apr 2021 12:04:11 +0800</pubDate><description><![CDATA[Lambda表达式也可以称为闭包，Lambda表达式是在Java8新增的一种重要的新特性。
Lambda允许把函数作为一个方法的参数（函数作为参数传递进方法中）。
//格式一般如下
(parameters)-&gt;expression;//表达式
//或
(parameters)-&gt;{statements;};//语句

//eg:多线程中实现Runnable接口的线程创建。
new Thread(()-&gt;System.out.println("这就是Lambda表达式")).start();]]></description><category></category></item><item><title><![CDATA[CSS3选择器大全，详细介绍，有例子]]></title><link>https://blog.youkuaiyun.com/be_a_hacker/article/details/113785816</link><guid>https://blog.youkuaiyun.com/be_a_hacker/article/details/113785816</guid><author>be_a_hacker</author><pubDate>Wed, 10 Feb 2021 21:18:18 +0800</pubDate><description><![CDATA[CSS样式由两部分组成：选择器（Selector）和声明块（Declaration Block），声明块中包含属性和属性值，属性和属性值之间由冒号隔开，声明块被一对{}括起起来，花括号之间可以包含多个声明，多个声明被分号（;）隔开。
选择器 {属性:属性值;属性:属性值;……}

eg:
p{
  color:red;
  text-align:center;
  font-size:27px;
}

根据选择器的用途可以把选择器分为标签选择器、类选择器、id选择器、伪类选择器等。
1.通用选择器
它对网页]]></description><category></category></item><item><title><![CDATA[互联网的核心部分(电路交换，分组交换)]]></title><link>https://blog.youkuaiyun.com/be_a_hacker/article/details/113530445</link><guid>https://blog.youkuaiyun.com/be_a_hacker/article/details/113530445</guid><author>be_a_hacker</author><pubDate>Mon, 01 Feb 2021 21:51:40 +0800</pubDate><description><![CDATA[互联网的核心部分
在网络核心部分起特殊作用的是路由器（router），它是一种专用计算机（但不叫做主机）。路由器是实现**分组交换（packet switching）**的关键构件，其任务是转发收到的分组，这是网络核心部分最重要的功能。问了弄清楚分组交换，下面介绍电路交换的基本概念。
1.电路交换
在电话问世不久之后人们就发现，要让所有的电话两两相连是不现实的。若连接N部电话就需要N（N-1）/2对电线。当电话机的数量很大时，这种连接方式需要的电线数量就太大了（与电话机的数量的平方成正比）。于是出现了分组交]]></description><category></category></item><item><title><![CDATA[互联网的边缘部分（客户服务器方式C/S和对等方式P2P）]]></title><link>https://blog.youkuaiyun.com/be_a_hacker/article/details/113484609</link><guid>https://blog.youkuaiyun.com/be_a_hacker/article/details/113484609</guid><author>be_a_hacker</author><pubDate>Sun, 31 Jan 2021 20:45:03 +0800</pubDate><description><![CDATA[互联网的边缘部分
处在互联网边缘的部分就是链接在互联网上的所有主机。这些主机又称为端系统（endsystem）。端系统的拥有者可以是个人，也可以是单位（如学校、企业、政府机关等），当然也可以是某个ISP（ISP不仅仅是向端系统提供服务，它也可以拥有一些端系统）。
边缘部分利用核心部分所提供的服务使众多主机之间能够互相通信并交换或共享信息。
“主机A和主机B进行通信”，实际上指“运行在主机A上的某个程序和运行在主机B上的另一个程序进行通信”。由于“进程”是指“运行中的程序”，也就是说“主机A的某个进程和主机B]]></description><category></category></item><item><title><![CDATA[HTTP请求与响应]]></title><link>https://blog.youkuaiyun.com/be_a_hacker/article/details/113107544</link><guid>https://blog.youkuaiyun.com/be_a_hacker/article/details/113107544</guid><author>be_a_hacker</author><pubDate>Mon, 25 Jan 2021 18:38:11 +0800</pubDate><description><![CDATA[HTTP简介
HTTP，超文本传输协议（Hypertext Transfer Protocol）是一个简单的请求-响应协议，它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出；而消息内容则具有一个类似MIME的格式。
HTTP是一个基于TCP/IP通信协议来传递数据（HTML 文件, 图片文件, 查询结果等）。
HTTP是应用层协议，是为了实现某一类具体应用的协议，并由某一运行在用户空间的应用程序来实现其功能。
HTTP是一种协议规]]></description><category></category></item><item><title><![CDATA[C语言条件编译]]></title><link>https://blog.youkuaiyun.com/be_a_hacker/article/details/112720882</link><guid>https://blog.youkuaiyun.com/be_a_hacker/article/details/112720882</guid><author>be_a_hacker</author><pubDate>Sat, 16 Jan 2021 18:31:28 +0800</pubDate><description><![CDATA[条件编译就是在编译源程序时，对源程序中的部分语句有选择性地进行编译。符合条件的部分或没有限制条件的部分参与编译，不符合条件的那部分不参与编译。
条件编译命令的三种形式：
第一种：
#ifdef 标识符
  程序段1
#else
  程序段2
#endif

该预处理命令的功能时判断标识符是否在前面用#define定义过，若定义过，则程序段1参加编译；否则，程序段2参加编译。其中，命令中的#else及其后的程序段2可以省略。
第二种：
#ifndef 标识符
  程序段1
#else
  程序段2
#endi]]></description><category></category></item><item><title><![CDATA[C语言文件包含]]></title><link>https://blog.youkuaiyun.com/be_a_hacker/article/details/112720707</link><guid>https://blog.youkuaiyun.com/be_a_hacker/article/details/112720707</guid><author>be_a_hacker</author><pubDate>Sat, 16 Jan 2021 18:30:11 +0800</pubDate><description><![CDATA[一个C语言程序由若干源程序文件组成，而一个源文件还可以将另一个源文件的全部内容包含进来，即将指定的源文件包含在当前文件中。
例如：下有两个源文件file1.c和file2.c
file1.c
int max(int x, int y)
{
    int z;
    if(x&gt;y) z=x;
    else z=y;
    return z;
}

file2.c
#include&lt;stdio.h&gt;
#include "file1.c"
void main()
{
    int a]]></description><category></category></item><item><title><![CDATA[宏定义（无参，有参，宏函数）（详细介绍）]]></title><link>https://blog.youkuaiyun.com/be_a_hacker/article/details/112688113</link><guid>https://blog.youkuaiyun.com/be_a_hacker/article/details/112688113</guid><author>be_a_hacker</author><pubDate>Fri, 15 Jan 2021 21:27:14 +0800</pubDate><description><![CDATA[以符号“#”开头的命令，如：
#define N 10;
#define &lt;stdio.h&gt;

这些命令不是C语言本身的组成部分，而是由C编译系统提供的。在通常的编译（词法和语法分析、代码生成、优化等）之前，编译系统要预先对这些命令进行处理，因此称为“编译预处理”命令。编译预处理可以改善程序设计环境，提高编程效率，有助于编写易移植、易调试的程序，是C语言的特色内容之一。
C编译系统的预处理功能主要包括宏的处理、文件包含的处理、条件编译的处理三种。所有预处理命令均以“#”开始，末尾不加分号，以区别]]></description><category></category></item><item><title><![CDATA[内存的分配与释放（实用解释）malloc,calloc,realloc,free]]></title><link>https://blog.youkuaiyun.com/be_a_hacker/article/details/112674793</link><guid>https://blog.youkuaiyun.com/be_a_hacker/article/details/112674793</guid><author>be_a_hacker</author><pubDate>Fri, 15 Jan 2021 16:22:35 +0800</pubDate><description><![CDATA[下列函数的原型在&lt;stdlib.h&gt;中。
1.malloc()
原型：
void *malloc(unsigned long);

它只有一个参数，是unsigned long类型，即一个无符号长整数类型。该参数用来指定所分配内存空间的字节数；若分配成功，则返回分配空间的起始地址，否则返回值为NULL。
例如：
指针名=（数据类型 *）malloc（要分配内存空间的大小）
int *p;
p = (int *)malloc(10*sizeof(int));

这段代码的作用是分配一个大小为10个]]></description><category></category></item><item><title><![CDATA[线性表顺序存储及相关操作（创建，插入，删除，遍历）]]></title><link>https://blog.youkuaiyun.com/be_a_hacker/article/details/112605894</link><guid>https://blog.youkuaiyun.com/be_a_hacker/article/details/112605894</guid><author>be_a_hacker</author><pubDate>Thu, 14 Jan 2021 14:48:21 +0800</pubDate><description><![CDATA[线性表类型的定义
线性表是由同类数据元素构成的有序序列的线性结构

表中元素个数（n&gt;=0）称为线性表的长度,n=0时称为空表。
在复杂线性表中，一个数据元素可以由若干个数据项（item）组成。这种情况下，常把数据元素称为记录（record），含有大量记录的线性表称为文件（file）。

线性表中的数据元素可以是各种各样的，但是同一线性表中元素必定具有相同的特性，即统一数据对象相邻元素之间存在着序偶关系。
抽象数据类型线性表的定义：
ADT List{
    数据对象:D={ai|ai∈ElemSe]]></description><category></category></item><item><title><![CDATA[JavaScript数据类型]]></title><link>https://blog.youkuaiyun.com/be_a_hacker/article/details/112547409</link><guid>https://blog.youkuaiyun.com/be_a_hacker/article/details/112547409</guid><author>be_a_hacker</author><pubDate>Tue, 12 Jan 2021 21:09:28 +0800</pubDate><description><![CDATA[数据类型
JavaScript中的数据类型主要包括三类：

简单数据类型：JavaScript中常用的三种数据类型：数值数据类型（Number）、文本数据类型（String）和布尔数据类型（Boolean）。
复合数据类型：复合数据类型主要用来保存一组相同或不同数据类型数据的数组；用来保存一段可在JavaScript中反复被调用的函数；用来保存一组不同的类型的数据和函数等对象。
特殊数据类型：特殊数据类型主要包括没有值存在的空数据类型null;没用进行定义的无数据类型undefined。

1.基本数据类型]]></description><category></category></item><item><title><![CDATA[区块链原理通俗说明]]></title><link>https://blog.youkuaiyun.com/be_a_hacker/article/details/112547139</link><guid>https://blog.youkuaiyun.com/be_a_hacker/article/details/112547139</guid><author>be_a_hacker</author><pubDate>Tue, 12 Jan 2021 20:53:44 +0800</pubDate><description><![CDATA[通俗讲解区块链

区块链是一个记录数据的一个共享数据库，具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征，根据其具体实现的差异可以实现不同的功能，例如数字货币（Bitcoin），智能合约等。

例子（转载《白话区块链》）：

早些时候，农村一般都会有个账房先生，村里人出个工或者买卖些种子肥料等，都会 依靠这个账房先生来记账，大部分情况下其他人也没有查账的习惯，那个账本基本就是这 个账房先生保管着，到了年底，村长会根据账本余额购置些琐碎物件给村里人发发， 以来也都是相安无事，谁也没有怀疑]]></description><category></category></item><item><title><![CDATA[Linux 常用命令（kali）]]></title><link>https://blog.youkuaiyun.com/be_a_hacker/article/details/112533226</link><guid>https://blog.youkuaiyun.com/be_a_hacker/article/details/112533226</guid><author>be_a_hacker</author><pubDate>Tue, 12 Jan 2021 16:21:17 +0800</pubDate><description><![CDATA[Linux 常用命令（kali）
*查看帮助
命令 --help eg:ifcpnfig --help 使用help获取bash的内部命令帮助
man [OPTION] eg:man ifconfig 使用man命令获得手册页帮助
info [OPTION] eg:info ifconfig 使用info命令获得texinfo文档帮助
-w 打印Info文件在系统中的位置
-o, --output=FileName 将选中节点输出至FileName文件中
pinfo [参数] [OPTION] eg:pin]]></description><category></category></item></channel></rss>