- 博客(14)
- 收藏
- 关注
转载 找出栈上的指针/引用
识别jvm堆栈中一个数据类型是否为为引用类型,目前虚拟机实现中是如何做的?ps:对于存储在内存中的reference类型为4个字节与int类型相同调用栈里的引用类型数据是GC的根集合(root set)的重要组成部分;找出栈上的引用是GC的根枚举(root enumeration)中不可或缺的一环。==================================================要看JVM选择用什么方式。通常这个选择会影响到GC的实现。保守式GC如果JVM选择不记录任何这种
2020-07-16 21:56:27
391
原创 在linux中安装snort框架
snort框架简介Snort是轻量级的网络入侵检测开源框架,作用于链路层,包含数据包嗅探器、预处理插件、检测引擎、日志输出这四大模块Snort有嗅探器、数据报记录器、网络入侵检测系统三种模式嗅探器:从网络上读取数据包显示在终端上数据报记录器:把数据报记录在硬盘上网络入侵检测模式:是根据一定的规则来检测结果,根据结果采取一定的动作。其中规则是可以配置的snort安装snort安装需要依赖的很多,而在snort的tar.gz中没有涵盖进去,所以我们需要自己安装依赖的包daqsnort
2020-07-13 18:00:30
1054
转载 snort与dap
简介snort从2.9.0版本开始引入了daq(packet acquisition), 该模块实际上是一个抽象层专门为报文处理服务。分析以往的snort如下图所示,在报文获取上与主体代码混在一起造成了以下问题:分层不明显,不便于改写只能编译控制中决定报文获取与处理方式,对于同一个平台只能保留一种处理方式。加入daq后,将报文获取的具体细节和主体代码分离,有如下好处层次清晰便于继续开发报文获取的模块可以保留多个,snort可以根据用户配置以及具体平台进行动态加载。并将从
2020-07-13 14:39:17
461
原创 面向对象的三大特性:封装、继承、多态
面向对象设计一切皆对象,软件系统的运行就是依靠对象和对象之间传递消息来推进,所以设计软件,就是设计对象和对象之间的关系。而对象是一组状态和一系列行为的组合体。状态是对象的内在特性,行为是对象的外在特性。通过类来描述一类对象。封装我们将数据和方法包装到一个类中,并隐藏具体的实现称为封装。封装的结果是同时带有特征和行为的数据类型。java中对封装的支持:访问控制修饰符(public、prote...
2019-10-31 14:31:18
243
原创 对Java中对象、类、抽象类、接口的理解
对Java中对象、类、抽象类、接口的理解类和对象先有对象还是先有类抽象是有层次的抽象类的形成抽象类的构成抽象类和普通类接口的意义接口和抽象类接口的构成类和对象一个对象对应一个实体,用代码来描述实体的状态和行为。而如果一切皆对象,那么由什么来决定某一类的对象的外观和行为呢,也就是对象的类型(Type)。也就是说,类是对一类具有相同外观和行为的对象的抽象。先有对象还是先有类看似是先有鸡还是先有...
2019-10-23 15:03:06
347
原创 关于idea的java.lang.ClassNotFoundException: org.apache.ibatis.io.Resources错误
检测到out中没有mybatisjar包,所以我们要导入该jar包在ProjectStructure中将jar包导入,然后重启服务器即可我们看到Mybatisjar包导入进来了
2019-08-31 17:09:40
4742
1
原创 单链表相关操作
实现单链表的反转1.最简单暴力的方法,遍历链表,并创建节点采用头插法即可,时间复杂度为O( n),空间需要创建n个节点。2.采用指针转向方法我们知道单链表只能单向顺序遍历,不能往回倒着走。那么,如何实现单链表的反转呢,我们可以借助引用(指针)将链表分成相互隔离的两个部分,前面部分是已经逆好序的链表,而后一部分是未遍历的部分,由于指针的单向性,我们必须确保两个部分都有指针指向,否则就会导致链表...
2019-04-14 22:59:55
801
原创 用java实现模拟聊天室
本案例模拟聊天室,有着群发和私聊的功能,一切都在console中进行,没有界面,采用oop思想,封装操作代码如下:服务器端:服务端需要连接多个客户端,因此需要循环监听,每次连接一个客户端创建一个Channel线程,然后再次阻塞式监听。package com.chatroot.java;import java.io.DataInputStream;import java.io.Da...
2019-03-31 16:46:17
619
原创 算法导论7.1
7.1-1 略 7.1-2 第一个问很明显,如果元素都相同,那么记录指针随着循环都会+1直到循环结束,返回的就是r。 第二个问就是第一个问的扩展,很明显若是元素都相同,那么循环结束时,记录指针i一定指向r-1。那么我们只要判断i+1是否与A[r]相同即可。相同则返回(p+r)/2;(若是所有元素都小于最后一个元素上述情况也成立) 7.1-3查看基本操作,n各...
2019-01-04 22:40:36
580
原创 二叉树的高度和深度的区别
高度和深度是相反的表示,深度是从上到下数的,而高度是从下往上数。我们先来看看高度和深度的定义,某节点的深度是指从根节点到该节点的最长简单路径边的条数,而高度是指从该节点到叶子节点的最长简单路径边的条数。注意:这里边的条数是规定根节点的深度和叶子节点的高度是0;所以树的深度和高度是相等的,而对其他节点来说深度和高度不一定相等。 如 B和C节点深度都为1,因为从根节点到到该节点...
2018-12-28 21:55:49
81968
13
原创 算法导论6.2
6.2-4 当i>A.heap-size/2时,有2*i>A.heap-size,超出了数组的边界范围,执行MAX-HEAPIFY(A,i)时元素将不会发生任何调动。 6.2-5 代码如下MAX-HEAPIFY(A,i) while(true) l=LEFT(i) r=RIGHT(i) largest=i ...
2018-12-28 20:53:49
393
原创 ## 算法导论6.1练习题
6.1-1 在高度为h的堆中,元素个数最多和最少分别是多少?本题有一点需要注意,算法导论中对堆的高度定义和数据结构中不一样,算法导论中堆的高度是从根节点到叶节点的最长简单路径上边的数目。最少元素个数是最后一层只有一个节点: 2^0+2 ^1+2 ^2 +…+ 2 ^(h-1)+1=2 ^h。最多元素个数是一颗满二叉树: 2^0+2 ^1+2 ^2 +…+ 2 ^(h-1)+2 ^h=2 ...
2018-12-27 22:19:34
734
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人