pigLoveRabbit的博客

pigLoveRabbit的博客

C language

动态链接库和静态链接库

静态链接库会在编译时包含到可执行文件中,这样的程序虽然没有依赖问题,但是可执行文件体积较大,包含相同的公共代码,非常浪费内存。
动态链接库的好处就是节省内存空间,还有将一些程序升级变得简单。用户只需要升级动态链接库,而无需重新编译链接其他原有的代码就可以完成整个程序的升级。
在windows下动态链接库是以.dll后缀的文件,静态链接库是以.lib的文件
而在Linux中,动态链接库是以.so作后缀的文件,静态链接库是以.a(archive的缩写)的文件。
本文中,我们的链接库来自于ftplib,这是一个用C语言实现的跨平台FTP库,我们将会用它生成的动态链接库写个简单的程序(连接ftp服务器,然后查询当前目录)。

阅读全文 »

简介

管理网络流量是系统管理员必需处理的最棘手工作之一,我们必需规定连接系统的用户满足防火墙的传入和传出要求,以最大限度保证系统免受攻击。iptables正是这样的工具。

其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的"安全框架"中,这个"安全框架"才是真正的防火墙,这个框架的名字叫netfilter

阅读全文 »

Elasticsearch

Elasticsearch是一个基于Lucene的搜索服务器(Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库)。Elasticsearch使用Java编写并使用Lucene来建立索引并实现搜索功能,但是它的目的是通过简单连贯的RESTful API让全文搜索变得简单并隐藏Lucene的复杂性。

阅读全文 »

Python曲线拟合

本文环境: * OS:Ubuntu 18.04.4 LTS * Python版本:3.6.9

曲线拟合

现在我们有一组数据,表达的含义是在不同的时间点的充值金额,反映在坐标上就是一系列的散点,我们希望选择适当的曲线类型(如y = a*x^2 + b)“最佳”地逼近或拟合已知数据,这便是曲线拟合(curve fitting)。当然,变量间未必都是线性关系,我们可能会用到指数函数、对数函数、幂函数等。

阅读全文 »

upload successful

本文环境: * OS:Ubuntu 18.04.4 LTS * Java版本:1.8.0_221

Java Web

虽然我们现在会用SpringBoot快速创建一个Web Demo,但是基础不能忘(SpringBoot或者SpringMVC都是封装后的产物),下面就让我们回顾一下一个最基本的Java Web项目。

阅读全文 »

docker logo

本文环境: * OS:Ubuntu 18.04.4 LTS * Golang版本:1.12.13

什么是Linux Cgroups

Linux Cgroups(Control Groups)提供了对一组进程及将来的子进程的资源限制、控制和统计的能力,这些资源包括CPU、内存、存储、网络等。本质上来说,Cgroups 是内核附加在程序上的一系列钩子(hook),通过程序运行时对资源的调度触发相应的钩子以达到资源追踪和限制的目的。

阅读全文 »

upload successful

GC

GC就是垃圾回收(Garbage Collection),如果你写过C++或者C程序的,你就会知道new一个数据后,就需要delete它的内存,这就是手动管理内存,但这样如果你粗心点的话,就容易造成内存泄露,所以就有了自动垃圾回收,也就我们这里所讨论的GC。Java的GC会对JVM(Java Virtual Machine)中的内存进行标记,并确定哪些内存需要回收,根据一定的回收策略,自动的回收内存,永不停息(Nerver Stop)的保证JVM中的内存空间,防止出现内存泄露和溢出问题。
其实GC很早就有了,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。

阅读全文 »

docker logo

本文环境: * OS:Ubuntu 18.04.4 LTS * Golang版本:1.12.13

Golang

Go语言是Google开发的一种静态类型、编译型的高级语言,它设计的蛮简单的,学过C的话,其实上手Go很快的,当然相比于C的话,Go有垃圾回收和并发支持,所以写起来心智负担更低一点。
对于Go的安装和配置,我以前写过一篇文章——go语言基本配置,我这里就不在赘述了。Go1.11增加了go modules,使用它的话,就没必要一定要把代码放到GOPATH下面啦(≧▽≦)/go modules详细 使用请参考go mod 使用

阅读全文 »
0%