- 博客(30)
- 收藏
- 关注
原创 Linux内核宏Container_Of
container_of宏的作用是通过结构体内某个成员变量的地址和该变量名,以及结构体类型。找到该结构体变量的地址。这里使用的是一个利用编译器技术的小技巧,即先求得结构成员在结构中的偏移量,然后根据成员变量的地址反过来得出主结构变量的地址。
2022-09-11 18:49:43 402 1
原创 谨慎使用多线程中的 fork !!!!
Linux 中,fork 的时候只复制当前线程到子进程,也就是说除了调用 fork 的线程外,其他线程在子进程中 “蒸发” 了, 这就是多线程中 fork 所带来的一切问题的根源所在了
2022-08-28 00:10:52 503
原创 Linux内核空间内存申请函数kmalloc、kzalloc、vmalloc的区别
kmalloc()、kzalloc()、vmalloc()的区别是kzalloc是强制清零的kmalloc操作;(以下描述不区分kmalloc和kzalloc)kmalloc分配的内存大小有限制(128KB),而vmalloc没有限制;kmalloc可以保证分配的内存物理地址是连续的,但是vmalloc不能保证...
2022-07-22 12:06:26 627
原创 tombstone问题追踪与分析
闪退一般是由于调用so库出错导致,像类似非法地址访问等,此时会生成/data/tombstones/tombstone_x文件,通过此文件分析崩溃后的错误信息 这种方法则主要是分析程序崩溃之后产生的错误信息相关文件来确定产生 Bug 的原因和位置。tombstone 文件它主要由下面几部分组成:信...
2022-06-19 09:40:02 3704
原创 linux内核学习笔记-struct vm_area_struct
vm_area_structlinux 内核使用 vm_area_struct 结构来表示一个独立的虚拟内存区域,由于每个不同地址的虚拟内存区域功能和内部机制都不同,因此 一个进程使用多个vm_area_struct结构来分别表示不同类型的虚拟内存区域,包括虚拟内存的起始和结束地址,以及内存的访问权限等 。各个vm_area_struct结构使用链表或者树形结构链接,方便进程快速访问,如下图所示:Linux内核中,关于虚存管理的 最基本的管理单元 应该是 struct vm_area_struct 了
2022-02-14 20:34:00 1085
原创 浅析Linux下的task_struct结构体
参考:https://www.jianshu.com/p/691d02380312https://blog.csdn.net/npy_lp/article/details/7292563https://blog.csdn.net/gatieme/article/details/513832721.首先什么是进程?1.1进程可以这样描述:进程是程序的一个执行实例;进程是正在执行的程序;进程是能分配处理器并由处理器执行的实体。按内核观点来谈进程:它担当分配系统资源(CPU时间,内存)的实体。
2022-02-12 15:07:55 882
原创 Linux 内存映射函数 mmap()函数详解
mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。mmap在用户空间映射调用系统中作用很大。头文件 <sys/mman.h>函数原型void* mmap(void* start,size_t length,int prot,int flags,int fd,off_t offset);int munmap(void* start,size_t length);mmap()[1] 必须以PAGE_SI
2022-02-07 18:09:40 2517
原创 内核基础设施——hlist_head/hlist_node结构解析
原文: http://linux.laoqinren.net/kernel/hlist/数据结构hlist_head 和 hlist_node 用于散列表,分别表示列表头(数组中的一项)和列表头所在双向链表中的某项,两者结构如下:include/linux/types.h(line 190)struct hlist_head { struct hlist_node *first;};include/linux/types.h(line 194)struct hlist_node { st
2022-02-07 17:52:58 1168
原创 pgsql 重置所有按规则命名的序列
pgsql 重置所有按规则命名的序列因为在项目中使用hibernate使用注解进行映射,使用序列获取id值,但是数据库迁移后序列并没有迁移,导致程序启动后,自动创建序列进行查询时,对于有多条记录的表,序列仍从1开始,向表中插入数据,仍会出现很多错误,因此参考了其它文章代码改动,进行序列重设需要根据情况更改逻辑do $body$declare seq_name text; table_and_id_string text; table_name text; id_na
2020-12-13 14:47:41 396
原创 IDEA的使用和配置
文章目录初次安装和下载需要进行的相关配置IDE外观配置好Java的版本配置构建工具文件编码格式优化使用配置ignore file添加模板文件File and Code templatesJava类序列号自动生成在使用IDEA的过程中,需要配置好,能够使IDE使用更顺手,也会提高开发效率初次安装和下载需要进行的相关配置IDE外观目前只会更换颜色,如果追求美观,还可安装插件配置好Java的版本配置构建工具Maven配置避免初次使用默认配置,会把所有的东西都下载到C盘避免构建Maven
2020-07-16 10:52:25 271
原创 equals和hashcode改写
文章目录equals()什么时候不需要重写什么时候需要重写重写equals时的规范约定如何正确改写equals()hashCode()什么时候重写java.lang.Object规范中,hashcode的约定:如何改写equals()什么时候不需要重写一个类的每个实例本质上就是不可以相同的。例如Thread不需要关心一个类是否"逻辑相等"超类已经改写并且超类的行为对于子类来说也是合适的...
2020-03-29 14:38:12 386
原创 Java类的加载机制
文章目录类的加载机制什么是类的加载类的加载过程加载连接验证准备解析初始化JVM初始化步骤类初始化时机类加载器Java语言系统自带有三个类加载器:类加载的三种方式双亲委派原则自定义类加载器类的加载机制首先,认识类加载机制,然后,详细介绍类加载的过程。最后,介绍了类加载器,还有双亲委派原则。什么是类的加载[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pl...
2020-03-27 10:22:54 288
原创 maven Spring项目启动报错
在使用maven构建项目的过程中,有时出现各种各样的启动错误:今天在使用启动nacos服务提供者的时候,报错: Error processing condition on org.springframework.cloud.netflix.ribbon.Ribboon…度了一下只能搜到有关euraka和rabbion的使用报错解决和原因是版本冲突问题的回复, 而且官方文档显示“Nacos Di...
2020-03-22 11:40:58 976
原创 nginx讲解
正向代理VS反向代理负载均衡配置文件说明文件整体结构从图中我们可以看出主要包含以下几大部分内容:__main(全局设置)__:设置的指令将影响其他所有设置;__server(主机设置)__:指令主要用于指定主机和端口、__upstream(负载均衡服务器设置)__:指令主要用于负载均衡,设置一系列的后端服务器__location(URL匹配特定位置的设置)__:用于匹配网页位置...
2020-03-21 13:43:42 201
原创 docker nacos集群部署
参考Nacos高可用集群解决方案-Docker版官方https://nacos.io/zh-cn/docs/quick-start-docker.htmlhttps://github.com/nacos-group/nacos-docker我的 nacos安装前环境 :ubunt16.04LTS 云服务器两台docker 已部署好( docker安装 )docker...
2020-03-17 15:22:39 1399
原创 docker安装配置mysql
查找镜像:docker search mysql获取镜像:docker pull mysql:版本号 / 查找的镜像名创建容器如果您只想设置必需的环境变量而不将数据库存储在主机目录中,请执行以下命令:docker run -d --name app_mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:版本号/…如果...
2020-03-17 14:46:04 162
原创 Bean named 'xx' is expected to be of type 'xx' but was actually of type 'com.sun.proxy.$Proxy29'
当要诸如一个接口的实现类时:使用接口来进行类对象转换_UserService bean = ac.getBean(“UserServiceImpl”,UserService.class); // UserServiceImpl bean = ac.getBean("UserServiceImpl",UserServiceImpl.class);多个不同的实现,根据添加name属性来查找...
2019-11-26 21:26:59 1328
原创 算法题解题过程
写代码之前,一定要理清自己解决问题的思路,在算法方面,一定要通过画图的方法,采用分情况讨论或其他解题思路,当使用这些方法,得到解时,理清理清思路,在敲代码当实在没有思路,或者自己的解题方法不能理清时,首先自己去网上找一些看上去比较靠谱的博客看一下,有时候网上写的不是那么清楚的时候,可以问问自己身边的人有没有已经写好的代码,拿来参考一下,学习一下别人的思路,和自己的思路对比,找出自己的解题...
2019-09-28 14:23:33 646
原创 怎样自己实现一个native本地方法呢?
自己最近在复习Java基础, 因为学的时间不久,而且很粗糙,自己还有很多不会的知识。唉…当看到native时,突然想要自己实现一下,然后就在网上找了一个教程,但是因为自己粗枝大叶,在这个过程中每一步都出错,因此记录下来。创建一个test类文件,如下:package com.d.test;public class NativeTest { public native void pr...
2019-09-25 11:37:07 683
原创 windows本机连接虚拟机hadoop配置
基本配置如官方文档中的配置步骤使用Ifconfig查看虚拟机中的网址192.168.242.128在core-site.xml中需要给fs.defaultFS节点的value值配置为hdfs://192.168.242.128:8020同时slaves文件,因为是伪分布式/单节点 只有一个主机 不写localhoast,也修改为192.168.242.128虚拟机中网络连接方式为 NAT...
2019-09-17 09:34:09 958
转载 bash: sqlplus: command not found 解决方法
bash: sqlplus: command not found 解决方法转载:https://shiguanghui.iteye.com/blog/19390541: bash: sqlplus: command not found 解决方法查看环境.bash_profile 配置 [root@localhost ~]# find -name .bash_profile ./...
2019-06-22 15:07:37 51017 3
原创 javaWeb项目 打印日志
关于日志打印的几点建议以及非最佳实践日志的打印在软件开发过程中必不可少,一般分为两个大类:操作日志系统日志操作日志,主要针对的是用户,例如在Photoshop软件中会记录自己操作的步骤,便于用户自己查看。系统日志,主要针对的是软件开发人员(包括测试、维护人员),也就是说这部分的日志用户是看不到的,也就是我们通常所说的debug日志。在大学中所谓的实践项目或者老师布置的作用中,通常是...
2019-06-17 11:09:52 9131 1
原创 IDEA tomcat启动成功但无法访问页面
tomcat启动成功无报错,确认项目中的访问资源的路径正确,这个问题普遍都是打war包的时候配置有一定的问题导致的。参考 https://www.cnblogs.com/Survivalist/p/8979929.html 配置部署项目部署成功的项目可以在C:\Users\xx\.IntelliJIdea2019.1\system\tomcat 目录下看到以下文件目录...
2019-06-16 10:11:22 34157
原创 2-3树
和2-3-4树相同,2-3树每个节点也存储多个数据项,是多叉树,仅仅数据项和子节点的个数不同,因此导致2-3树的分裂也有很大的区别,同时2-3树的插入也有所不同,2-3树只在叶子节点插入,遇到满街后向上分裂。因此,2-3树比2-3-4树的空间利用率更高。插入 分裂分类时两种情况:根节点满子节点满因为一个节点最多会有三个节点,因此分裂的子节点有三种位置,因此父节点连接分裂结点时最多...
2019-03-28 12:04:54 555
原创 2-3-4树(java实现)
什么是2-3-4树?每个节点最多包含三个数据项,4个子节点数据项按顺序排列子节点的数据项,按此节点数据项按顺序寻找并按顺序插入到子节点查找和二叉树不同的是,每一个节点含有三个数据项,因此每到一个节点都会进行1-3次比较,因此查找的效率是m*log(N+1), m是每个节点的平均数据项的个数插入但在插入过程中遇到满结点时,就需要产生分裂,分裂后再继续向下查找到叶子节点并插入分裂...
2019-03-25 16:11:42 601
原创 二叉树的遍历(java实现)
package Data.BinaryTree.structure;public class TestTree { public static void main(String[] args) { Tree t = new Tree(); t.insert(5, 5); t.insert(1, 1); t.insert(2, 2); t.insert(0, 0...
2019-03-18 15:57:10 2896
原创 matplotlib 画箭头的两种方式
def drawArrow(A, B): fig = plt.figure(figsize=(5, 5)) print("xasxcsasdc") ax = fig.add_subplot(121) # fc: filling color # ec: edge color """第一种方式""" ax.arrow(A[0], A[1], ...
2019-03-16 11:32:28 26119
原创 mysql的安装windows10
下载到官网下载压缩包 https://dev.mysql.com/downloads/mysql/解压到 D盘或其他位置安装使用管理员身份运行 cmd初始化在mysql目录下添加初始化文件my.ini[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录basedir=D:\DataBase\mysql-8.0.15-winx64 #...
2019-03-11 15:09:50 163
原创 关系代数运算
关系代数运算 关系运算的参与对象是关系,运算后结果也是关系。在数据库中,关系就是一张张的表。在离散数学中,关系是做为一个个的集合来进行运算的。代数运算的分类:传统的集合运算:并、差、交、笛卡儿积、笛卡儿积的逆运算(除)专门的的关系运算:选择、投影、连接(等值连接、自然连接)五种基本运算:并、差、笛卡儿积、选择、投影五种基本操作经过有限次复合的式子称为关系代数表达式关...
2019-02-01 15:55:18 10105
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人