- 博客(131)
- 资源 (15)
- 收藏
- 关注
转载 函数指针入门使用方法以及回调函数
*定义函数指针*/在定义一个函数之后,在编译后,系统会为函数分配一段存储空间。,而函数指针也是一样,只不过保存的是函数存储空间的。/*函数指针赋值*/函数指针也可以当作参数在函数之间传递。如何在C语言中使用函数指针。/*函数指针使用*/............
2022-08-14 17:44:26
277
转载 C中main函数传参
在进行C语言编程时,有时候需要使用命令行传参,下面对其进行一个分析。int argc 命令行参数个数(包含文件名)const char* argv[] 指针数组:将命令行参数首地址作为元素,加上const关键字的意思是数组中的内容是不能修改的,很明显,我们进行传参的时候,里面的内容是不需要修改的,这就是const关键字的真正含义!{}...
2022-08-14 10:30:27
1849
转载 Linux命令之chown命令
一、命令简介Linux chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令,chown 需要超级用户 root 的权限才能执行此命令。chown更改每个给定文件的用户和/或组所有权。如果只提供了所有者(用户名或数字用户ID),则该用户将成为每个给定文件的所有者,并且不会更改文件组。如果所有者后跟冒号和组名(或数字组ID),且两者之间没有空格,则文件的组所有权也会更改。如果用户名后面有冒号,但没有组名,则该用户将成为文件的所有者,并且文件组将更改为该用户的登录组。...
2022-08-10 17:11:18
9957
转载 chmod命令原理及用法详解(转)
chmod u+rwx, g+rwx, o+rwx filename 改命令说明对filename文件, 赋予user、group、other均有read、write、excute的权限。赋予group用户read、write权限。数字法:chmod 777 文件名 字母法: chmod u+rwx, g+rwx, o+rwx 文件名。000 无任何权限。...
2022-08-10 16:36:49
7711
转载 linux进程和进程结构内存分布
这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读,某些架构也允许代码段为可写,即允许修改程序。BSS段属于静态内存分配。执行程序时,系统首先在内核空间中创建一个进程,为这个进程申请PCB(进程控制块task_struct)用于管理整个进程的所有资源,其中mm_struct成员用来管理与当先进程相关的所有内存资源。对和栈的其实地址默认是随机产生的,其目的是避免安全漏洞,但是可以指定堆中申请的起始地址。1.代码段,数据段,bss段,直接从磁盘拷贝到当前的内存空间,大小相等。...
2022-07-22 11:24:13
552
原创 结构体基本用法和字节对齐
*此处sizeof(数组名)就是数组所占空间的大小,sizeof(structstudent)就是一个结构体的长度,注意记得加struct*/printf("学生%s,成绩%d\n",stu_point2[i]->name,stu_point2[i]->score);4.如果嵌套了结构体,嵌套的结构体对齐到自己最大对齐数的整数倍处,结构体的整体大小就是所有所有最大的对齐数的整数倍(包含嵌套结构体的对齐数)。/*输出的是8个字节*/printf("请输入第%d个学生的成绩\n",i+1);...
2022-07-21 16:16:26
369
转载 iptables命令和防火墙规则的顺序
网络故障排查中,经常要抓包,windows有wireshark,linux最常用的是tcpdump,其中被问得最多的一个问题"iptables限制后,tcpdump还能抓到包吗?显而易见,数据包到达网卡后,tcpdump有能力直接捕获到,不受iptables的影响,此时数据包还没有到达iptables的。链,到达APP后,处理完报文从iptables出去,出去最终要走到。链再到tcpdump,所以此时受到iptables的。...
2022-07-21 16:03:42
1023
转载 libevent定时器设置
#include <event.h>struct event ev;struct timeval tv;void time_cb(int fd, short event, void *argc){ printf("timer wakeup\n"); event_add(&ev, &tv); // reschedule timer}int main(){ struct event_base *base = event_init();//初始化e...
2021-11-11 14:29:02
263
转载 Wireshark抓包以及tcpdump抓包
tcpdump抓包命令tcpdump 的抓包保存到文件的命令参数是-w xxx.cap抓eth1的包 tcpdump -i eth1 -w /tmp/xxx.cap 抓 192.168.1.123的包 tcpdump -i eth1 host 192.168.1.123 -w /tmp/xxx.cap 抓192.168.1.123的80端口的包 tcpdump -i eth1 host 192.168.1.123 and port 80 -w /tmp/xxx.cap 抓192.168.
2021-09-01 19:13:15
5776
原创 C语言中static关键字和extern关键字
一.static关键字1.先来介绍它的第一条也是最重要的一条:隐藏。被static修饰的全局变量和函数,仅在当前文件可见。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = 'A'; // global variablevoid msg() { printf("Hello\n"); }下面是main.c的内容i
2021-08-29 19:15:39
831
1
原创 指针,字符,字符串,函数指针,总结
1.整型整型赋值 int a1 = 100;负数赋值 int a2 = -2;指针赋值 int *a3 = &a1; note:这种方式会让人感觉是把a1的地址传给了 *a3,其实是传的值是a3,好一点的写法,int *a3=NULL; a3 =&a1;数组赋值 int a3[5] = {1,2,3,4,5};其中的a3是数组a3的起始地址;printf("a3 = %p",a3)可以打出a3的地址,用*a3可以打出数组a3第一个值a3[0].printf("a3=%p",.
2021-08-25 21:33:18
276
转载 Linux下CMake简明教程
C程序组成:1.可执行文件;2.包含文件(include);3.依赖的库文件(.so / .a)操作系统功能:1.命令解释;2.进程管理;3.内存管理;4.输入/输出和外围设备管理;5.文件管理关机重启指令:shutdown -h now 关机;shutdown -r now 重启。Linux系统结构:硬件->内核->shell->外层应用程序...
2021-08-17 20:44:33
893
2
原创 LINUX系统操作笔记
linux 查看网卡是否有网线连接ethtool eth0[root@test ~]# ethtool eth0Settings for eth0: Current message level: 0x00000007 (7) Link detected: yes(表示插线), No(表示未插线)
2021-08-09 19:20:07
275
原创 MAKEFILE学习使用
1.MAKEFILE概述想要成为专业程序员,mekefile必须懂 !尤其是在Linux下进行软件编译,makefile就不得不自己写。因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计其数,并且按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个 Shell脚本一样,其中也可以执行操作系统的命令。...
2021-08-06 15:21:32
428
转载 GCC编译原理
4 链接4.1 链接的基本描述链接是将各种代码和数据片段收集并组合成一个单一文件的过程,该文件可被加载到内存并执行。链接可以执行与编译时,在源代码翻译成机器代码时;也可执行与加载时,也就是在程序被加载器加载到内存并执行时;还可以执行与运行时,也就是由应用程序来执行。链接器在软件开发中扮演一个关键的角色,它们使得分离编译成为可能。我们不用将一个大型的应用程序组织为一个巨大的源文件,而是可以把它分解为更小、更好管理的模块,可以独立的修改和编译这些模块。当我们改变这些模块中的一个时,只需简单的重新编译它,并重新
2021-08-05 19:32:46
1073
转载 (转)深度好文:Linux系统内存知识详解
Linux 内存是后台开发人员,需要深入了解的计算机资源。合理的使用内存,有助于提升机器的性能和稳定性。本文主要介绍Linux 内存组织结构和页面布局,内存碎片产生原因和优化算法,Linux 内核几种内存管理的方法,内存使用场景以及内存使用的那些坑。从内存的原理和结构,到内存的算法优化,再到使用场景,去探寻内存管理的机制和奥秘。走进Linux 内存1、内存是什么?1) 内存又称主存,是 CPU 能直接寻址的存储空间,由半导体器件制成2) 内存的特点是存取速率快2、内存的作用
2021-08-04 16:33:14
1435
转载 Java的Integer和int有什么区别(转)
Java是面向对象的编程语言,一切都是对象,但是为了编程的方便还是引入了基本数据类型,为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换,对应如下:原始类型:boolean,char,byte,short,int,long,f...
2018-09-09 22:08:08
2491
转载 协议号与端口号详解
IP是网络层协议,IP头中的协议号用来说明IP报文中承载的是哪种协议(一般是传输层协议,比如6 TCP,17 UDP;但也可能是网络层协议,比如1 ICMP;也可能是应用层协议,比如89 OSPF)。TCP/UDP是传输层协议,TCP/UDP的端口号用来说明是哪种上层应用,比如TCP 80代表WWW,TCP 23代表Telnet,UDP 69代表TFTP。目的主机收到IP包后,根据IP协议号确...
2018-09-03 10:13:28
7004
转载 三次握手(Three-way Handshake)和四次挥手
相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助.而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:-)。有时上午面试前强调这个问题,并重复讲一次,下午几乎每一个人都被问到这个问题。因此在这里详细解释一下这两个过程。TCP三次握手...
2018-09-03 09:52:33
2407
原创 KMP(看毛片算法)Next数组的求法
博住看大话数据结构里的Next数组求法,看的云里雾里。看了大量帖子,然后根据网上帖子,以大话数据结构的思路,总结出Next数组的求法。如有错误请指正。先明确什么是部分匹配值?"部分匹配值"就是"前缀"和"后缀"的最长的共有元素的长度。以"ABCDABD"为例, - "A"的前缀和后缀都为空集,共有元素的长度为0; - "AB"的前缀为[A],后缀为[B],共有元素
2018-07-24 20:29:01
2085
转载 Java集合类: Set、List、Map、Queue使用场景梳理
Java集合类: Set、List、Map、Queue使用场景梳理本文主要关注Java编程中涉及到的各种集合类,以及它们的使用场景 相关学习资料http://files.cnblogs.com/LittleHann/java%E9%9B%86%E5%90%88%E6%8E%92%E5%BA%8F%E5%8F%8Ajava%E9%9B%86%E5%90%88%E7%B1%BB%E8...
2018-07-17 22:12:50
344
转载 Java数据顺序存储结构于单链表的效率分析
顺序存储结构的效率分析 通过上述的分析,我们对顺序表的实现已有了比较清晰的认识,接下来看一下顺序表的执行效率问题,主要针对获取、插入、修改、删除等主要操作。前面分析过,由于顺序表内部采用了数组作为存储容器,而数组又是随机存取结构的容器,也就是说在创建数组时操作系统给数组分配的是一块连续的内存空间,数组中每个存储单元的地址都是连续的,所以在知道数组基地址后可以通过一个简单的乘法和加法运算即可计...
2018-07-17 19:59:42
709
转载 java Comparable 和Comparator详解及 区别(附代码)(转)
java中,对集合对象或者数组对象排序,有两种实现方式。即:(1)对象实现Comparable 接口 (2)定义比较器,实现Comparator接口。下面会简要介绍这两种方法的区别,并附上实现代码,供大家参考。 Comparable介绍Comparable是在集合内部定义的方法实现的排序,位于java.lang下。Comparable 接口仅仅只包括一个函...
2018-07-16 20:49:07
324
转载 Java泛型的本质
一、泛型的本质泛型是参数化类型的应用,操作的数据类型不限定于特定类型,可以根据实际需要设置不同的数据类型,以实现代码复用。二、Java泛型Java 泛型是Java1.5新增的特性,JVM并不支持。实现原理:Java源代码里面类型提供实现泛型功能,而编译后Class文件类型就变成原生类型(即类型被擦除掉),而在引用处插入强制类型转换以实现JVM对泛型的支持。本质是Java泛型只是Java提供的一个语...
2018-07-13 10:16:53
1860
转载 Java堆内存设置
堆内存设置原理JVM堆内存分为2块:永久空间和堆空间。永久即持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。Heap = {Old + NEW = {Eden,from,to}},Old即年老代(Old Generation),New即年轻代(Young Generation)。年老代和年轻代的划分对垃圾收集影响比较大。...
2018-07-12 22:41:24
13943
1
转载 Java虚拟机详解02----JVM内存结构
主要内容如下:JVM启动流程JVM基本结构内存模型编译和解释运行的概念 一,JVM启动流程:JVM启动时,是由Java的命令/ javaw进程命令来启动的。二,JVM基本结构:JVM基本结构图:“深入理解的Java虚拟机(第二版)”中的描述是下面这个样子的: 的Java中的内存分配:Java的程序在运行时,需要在内存中的分配空间。为了提高运算效率,就对数据进行了不同空间的划分,因为每一片区域都有特...
2018-07-11 23:02:08
241
转载 深入理解java反射机制
一,java的核心机制java有两种核心机制:java虚拟机(JavaVirtual Machine)与垃圾收集机制(Garbage collection): Java虚拟机:是运行所有Java程序的抽象计算机,是Java语言的运行环境,在其上面运行Java代码编译后的字节码程序,java虚拟机实现了平台无关性。 Java垃圾回收(Garbage Collection):自动释放不...
2018-07-11 15:49:33
194
转载 【剑指offer】Java版代码(完整版)
一,引言“剑指提供”可谓是程序猿面试的神书了,在面试中帮了我很多,大部分面试的算法题都会遇到原题或者是类似的题。但是书上的代码都是Ç版的,我在这里整理了一份的Java版的代码供大家学习参考,这些代码我都是在OJ上跑过全交流的,所以正确性你大可放心。二,目录赋值运算函数单例设计模式二维数组中查找目标值替换字符串中的空格从尾到头打印链表由前序和中序遍历重建二叉树用两个栈实现队列求旋转数组的最小数字斐波...
2018-07-05 11:18:21
2408
原创 动态代理案例代码注解
import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;//动态代理的使用,体会反射是动态语言的关键interface Subject { void action(); int action1();}// 被代理类class RealSubje...
2018-07-04 20:33:38
299
转载 Java不可变类机制
不可变类(不可变类):所谓的不可变类是指这个类的实例一旦创建完成后,能改变就不其成员变量值如。 JDK 内部自带的很多不可变类:基于整数,龙和字符串等。可变类( Mutable Class ):相对于不可变类,可变类创建实例后可以改变其成员变量值,开发中创建的大部分类都属于可变类。不可变类的特性对 JAVA 来说带来怎样的好处?1 )线程安全:不可变对象是线程安全的,在线程之间可以相互共享,不需要...
2018-07-02 15:09:17
722
转载 Java5、6、7、8、9的新特性
Java5中Java5中是很重要的一个版本,有泛型,枚举,自动装箱/拆箱,可变参数,注解,的foreach循环,静态导入,新的线程模型等等更新。具体参考 Java5的的新特性的Java6鸡肋的版本,有JDBC4.0更新,Complier API,WebSevice支持的加强等更新。Java6 的新特性Java7java7有一些比较重要的更新,如异常处理增加了被抑制的异常,捕获多异常,尝试与-资...
2018-06-28 19:40:49
660
转载 详细介绍序列化
如果你只知道实现 Serializable 接口的对象,可以序列化为本地文件。那你最好再阅读该篇文章,文章对序列化进行了更深一步的讨论,用实际的例子代码讲述了序列化的高级认识,包括父类序列化的问题、静态变量问题、transient 关键字的影响、序列化 ID 问题。在笔者实际开发过程中,就多次遇到序列化的问题,在该文章中也会与读者分享。引言 将Java对象序列化为二进制文件的 Java 序列化技...
2018-06-26 19:26:25
322
转载 java中finally语句块的深度解析(try catch finally的执行顺序)
1、除了以下2种情况外,不管有木有出现异常,finally块中代码都会执行;①程序未进入try{}块的执行,如在try之前出现运行时异常,程序终止。②程序进入到try{}和catch{}块的执行,但是在try{}或者catch{}块碰到了System.exit(0)语句,jvm直接退出。finally{}块不会执行2、当try和catch中有return时,finally仍然会执行;3、final...
2018-06-25 22:42:21
776
转载 finally语句块选择题
有关finally语句块说法正确的是( )正确答案: A B C D 你的答案: A C D (错误)不管catch是否捕获异常,finally语句块都是要被执行的在try语句块或catch语句块中执行到System.exit(0)直接退出程序finally块中的return语句会覆盖try块中的return返回finally 语句块在 catch语句块中的return语句之前执行1、不管有木...
2018-06-25 22:24:39
2231
转载 为什么this super不能用在static方法中??
为什么this super不能用在static方法中??2016年07月28日 20:54:29阅读数:2499[java] view plain copyclass Fu { int a; } class Zi extends Fu { int b; static void test(){ this.b; super.a;...
2018-06-25 22:20:45
1709
1
转载 java 泛型详解
泛型之前在面向对象编程语言中,多态算是一种泛化机制。例如,你可以将方法的参数类型设置为基类,那么该方法就可以接受从这个基类中导出的任何类作为参数,这样的方法将会更具有通用性。此外,如果将方法参数声明为接口,将会更加灵活。在Java增加泛型类型之前,通用程序的设计就是利用继承实现的,例如,ArrayList类只维护一个Object引用的数组,Object为所有类基类。[java] view plai...
2018-06-24 14:50:08
235
转载 原 深入java 定义正则表达式
本文分为3大部分正则表达式的通用定义规则正则表达式定义的例子附加常用的匹配例子正则表达式的通用定义规则使用正则表达式我们只要关心一个类即可:java.util.regex.Pattern 摘抄自官方API文档。 指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher 对象,依照正则表达式,该对象可以与任意字符序列匹配。执行匹配所涉及的所有状态都驻留在匹配器...
2018-06-23 16:16:29
347
转载 java中Object... 的用法是什么意思?
@SuppressWarnings("unchecked") public List<T> findByConditions(String hql,Object... conditions) throws Exception{ Session session = getSessionFactory().getCurrentSession(); ...
2018-06-23 15:56:04
27909
向日葵软件,官方直接安装版,附带安装使用教程
2021-06-30
GlobalTourism.zip
2019-08-28
2019年华为网络技术大赛笔记
2019-08-28
endnote软件
2018-05-21
华为网络技术大赛2018真题以及资料
2018-05-07
vlc-32播放软件
2018-04-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人