自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 warning:incompatible implicit declaration of built-in function ‘bzero’ [enabled by default]

解决办法:#include <string.h>

2022-01-05 08:24:35 429

原创 LInux进程间通信

1 进程间通信进程间通信(IPC,InterProcess Communication)通信方式:管道(最简单)-- pipe信号(开销最小)–共享内存映射区(无需进程间有血缘关系)-- mmap本地套接字(最稳定)-- socket文件(已经过时),不会阻塞。2 管道2.1 基本概念管道是一种最基本的 IPC 机制,作用于血缘关系的进程之间,完成数据传递。调用 pipe 系统函数即创建一个管道。有如下特质:其本质是一个伪文件(实际是内缓冲区);由两个文件描述符引用,一

2020-06-15 22:39:14 132

原创 gdb 调试工具

gdb 调试工具常用命令g: 使用该参数编译可以得带可执行文件,得到调试表。list 100: 从第100行开始显示代码list或者l: 显示代码b 52: 在52行设置一个断点b 20 if i = 2:设置条件断点。一般用于循环中info b: 查看gdb调试表中的所有断点run或者r:执行程序,遇到断点停止n: 执行下一步,如果当前行是函数,不进入函数s: 执行下一步,如果当前行是函数,进入函数。如果该函数是系统函数,可能找不到这个系统函数进入,退出的方法是:until 16,

2020-06-12 18:00:38 156

原创 Linux 系统文件类型

Linux 系统文件类型普通文件:-目录文件:d字符设备文件:c块设备文件:b软连接:l管道文件:p套接字:s

2020-06-12 17:08:03 110

原创 存储映射I/o -- mmap

存储映射I/o – mmap概念:存储映射I/O(Memory-mapped I/O)使一个磁盘文件与存储空间中的一个缓冲区相互映射。于是当从缓冲区中数据,就相当于读文件中的相应内容。void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset)参数说明:addr: 指定映射区的首地址。通常传NULL,表示系统自动分配length: 共享内存映射区的大小。<=文件大小。pro: 共享内存

2020-06-11 16:54:57 149

原创 函数 wait waitpid 和 waitid

1. 进程 A 调用 wait 和waitpid 会发生什么如果 A 的所有紫金城都还在运行,则 A 阻塞如果一个子进程终止了,正在等待父进程获取其终止状态,则取得该子进程的终止状态立即返回;如果 A 没有任何子进程,则立即出错返回。2. wait 和 waitpid 的区别在一个子进程终止之前,wait 使其调用者阻塞,而 waitpid 有一个选项,可以使调用者不阻塞;waitpid 并不等待在其调用之后的第一个终止的子进程,它有若选项,可以控制它所等待进程。3. waitid

2020-06-08 16:34:05 187

原创 Linux(Ubuntu)下 下载和安装Tomcat

一、登录http://tomcat.apache.org网站,下载合适的版本,不建议下载安装文件,因为安装文件看不到启动和运行时控制台的输出,不利于开发者使用。解压刚下载的文件,文件结构如下:二、配置Java运行环境,因为tomcat是Java实现的,所以运行需要Java运行环境。不会的可以百度三、启动tomcat,进入上图中的bin/目录下,运行./startup.sh即

2017-11-01 16:47:15 1368

原创 数据库索引

索引的作用:加速一个或者多个属性上对特定值的查询。 顺序文件:对关系中的元组按主键进行排序而生成的文件。关系中的元组按照这个次序分布在多个数据块中。稠密索引:数据文件中的每个记录在索引文件中都设有一个索引项。稀疏索引:数据文件中只有一些记录在索引文件中表示出来,通常为每个数据块在索引文件中设一个索引。主索引:能确定记录在数据文件中的位置,而非辅助索引不能。辅助索引:总是

2017-10-29 10:43:19 164

原创 Java 中 Static class 与non static class的区别

外部类只能使用public、final、abstract修饰,不能使用private、protected、static修饰,但是内部类可以。非静态内部类不能拥有静态成员。内部类的作用:①不允许同包的其他类访问该类;②内部类成员可以直接访问外部类私有数据;③匿名内部类适合用于创建那些仅需要使用一次的类。非静态内部类可以访问外部类的private成员,但非静态内部类的成员不能被外部类直接使用,

2017-10-27 19:41:47 3621

原创 Java 中 Interface与abstract类的区别和相同点

相同点:(1).都不能实例化(2).都包含抽象方法区别:(1).设计目的不同,接口作为系统和外界交互的 窗口,体现的是一种规范;抽象类作为系统中多个子类的共同父类,体现的是一种模板设计。(2).接口中只包含默认方法和抽象方法。抽象类可以包含普通方法。(3).接口只能定义静态常量;抽象类可以定义普通成员变量。(4).接口不能定义静态方法,抽象类可以定义静态方法。(

2017-10-27 19:41:12 224

原创 Override和Overload的含义去区别

重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding) 。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型或有不同的参数次序

2017-10-27 19:39:01 220

原创 Java面向对象的三个特征与含义

封装是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其它对象。在Java中能使用private、protected、public三种修饰符或不用(即默认defalut)对外部对象访问该对象的属性和行为进行限制。继承是子对象可以继承父对象的属性和行为,亦即父对象拥有的属性和行为,其子对象也就拥有了这些属性和行为。这非常类似大自然中的

2017-10-25 08:50:21 737

原创 try catch finally,try里有return,finally还执行么

try语句没有被执行到,如在 try 语句之前就返回了,这样finally 语句就不会执行,这也说明了finally 语句被执行的必要而非充分条件是:相应的try 语句一定被执行到。在 try块中有 System.exit(0);这样的语句,System.exit(0);是终止Java 虚拟机jvm 的,连 jvm都停止了,所有都结束了,当然fina

2017-10-25 08:27:35 282

原创 Collection包结构,与Collections的区别

Collection是集合类的上级接口,子接口主要有Set 、List、Deque。Collections是针对集合类的一个帮助类,提供了操作集合的工具方法:一系列静态方法实现对各种集合的搜索、排序、替换和线程安全化等操作。

2017-10-25 08:26:44 736

原创 TreeMap、HashMap、LindedHashMap的区别

LinkedHashMap 是HashMap的一个子类,如果需要输出的顺序和输入的相同,那么用LinkedHashMap可以实现,它还可以按读取顺序来排列,像连接池中可以应用。TreeMap就是一个红黑树的结构,每个key-value对作为红黑树的一个节点。存储key-value对的时候要根据key对节点进行排序。TreeMap可以保证key-value对处于有序状态。WeakHashMa

2017-10-24 11:25:22 404

原创 HashMap和Hashtable的区别

HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。HashMap把Hashtable的contains方法去掉了,Hashtable和ConcurrentHashMap除了contains,还有containsvalue和containsKey。

2017-10-24 11:24:40 165

原创 Map、Set、List、Queue、Stack的特点与用法

集合类和数组的区别是:集合只能存放对象,不能存放基本数据类型。Map的实现类用于保存具有映射关系的数据(key-value)。key不可重复。Set的实现类不包含重复元素的集合,set中最多包含一个null元素。只能用Iterator实现单项遍历,Set中没有同步方法。List的实现类有序的可重复集合。 可以在任意位置增加删除元素。 用Iterator实现单向遍历,也可用ListIte

2017-10-24 11:24:13 312

原创 String、StringBuffer与StringBuilder的区别

String是字符串常量,StringBuffer和StringBuilder是字符串变量。StringBuffer是线程安全的,StringBuilder不是线程安全的,String是常量,所以是线成安全(因为String是只能被读,不能被写)。如果程序不是多线程的,那么使用字符串变量时,StringBuilder效率高于StringBuffer。

2017-10-24 08:49:04 121

原创 ArrayList、LinkedList、Vector的区别

ArrayList, LinkedList不是线程安全的,而Vector是线程安全的。ArrayList和Vector都是使用Object的数组形式来存储的,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项前后项即可,插入数据较快。对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList

2017-10-22 18:45:56 240

原创 Java的四种引用,强弱软虚,用到的场景

强引用:代码之中普遍存在,类似“Object obj = new Object()”这类的引用,只要强引用存在,垃圾收集器永远都不会回收这类引用的对象。软引用:用来描述一些还有用但是并非必须的对象。 如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。

2017-10-22 18:44:20 175

原创 Java中 Object类有哪些公用方法?

1) clone(): 返回这个对象的一个副本。2) equals(Object obj): public boolean equals(Object obj) {//①首先判断是不是同一个对象if (this == obj) {return true;}//②其次判断是不是属于同一个类if (obj != null && Person.cl

2017-10-22 18:38:45 419

原创 java中equals()与==的区别

==:判断的是基本数据类型的数值是否相等,或者引用类型的数据的地址是否相等。Equals()方法是Object类中的方法,所有类都继承了Object类,如果有需求这个类可以重写equals()方法。重写equal()方法必须满足一下四个条件:自反、对称、传递、一致。

2017-10-21 08:33:19 152

原创 Java中 Switch能否用string做参数?

从Java7开始支持。

2017-10-21 08:31:19 572

原创 Java中 八种基本数据类型的大小,以及他们的封装类

数据类型占用空间(byte)byte1short2int4long8char2float4double8boolean1

2017-10-21 08:29:58 1538

原创 Python获取当前文件所在路径

Python获取当前正在执行的文件所在路径#! /usr/bin/env pythonimport osfilepath = __file__realpath = os.path.realpath(filepath)current_path = os.path.dirname(realpath)print(filepath)print(realpath)print(curr

2017-03-21 20:29:21 2531

原创 if __name__ == '__main__':的作用

要了解if __name__ == '__main__':的作用,首先要了解__name__是什么。首先,直接执行以下脚本demo.py:#! /usr/bin/env pythondef main(): print(__name__)main()执行结果如下:$ python demo.py __main__其次,在另外一个模块demo2.p

2017-03-21 19:33:20 636

原创 String.format(*args, **kwargs)用法

执行一个字符串格式化操作。待被格式化的字符串中含有文本字符串个和用大括号{}中的将被替换的部分(replacement fields )。每一个将被替换的部分都有一个在索引或者关键字参数。返回结果是原有字符串中被替换的部分被替换之后的字符串。如:>>> "The sum of 1 + 2 is {0}".format(1+2)'The sum of 1 + 2 is 3'repl

2017-03-21 18:57:25 1797

原创 更改Linux鼠标指针大小

现在的笔记本屏幕分辨率都比较高,所以鼠标指针显得有点小。可以通过以下两种方法更改鼠标指针大小。sudo apt-get install dconf-tools打开dconf Editor软件在如下选项中设置即可:/org/gnome/desktop/interface/cursor-size 48或者在命令行中直接运行如下命令:dconf write /

2017-03-21 10:42:48 8176 1

原创 数组和链表的优缺点

数组优点:1.可以随机读取数据,读取效率高。缺点:1.数组的大小创建之后就固定了,不能改变。2.数组在插入和删除元素时,需要进行数据移动,效率比较低。链表优点:1.插入删除方便,无需移动数据。2.可以更改大小缺点:1.读取数据必须从链表头开始向后查找,不能进行随机读取。

2017-03-04 11:06:04 320

原创 python object() takes no parameters

源码如下:class Student(object): def _init_(self, name, score): self.name = name self.score = score def print_score(self): print('%s: %s' % (self.name, self.score))错误:Traceback (most recen

2016-11-17 14:20:23 421

空空如也

空空如也

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

TA关注的人

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