
源码阅读
文章平均质量分 67
一个java开发
这个作者很懒,什么都没留下…
展开
-
easyexcel源码分析
在CSVFormat aDefault = CSVFormat.DEFAULT;这行代码中,指定了后续读取CSV文件的一些规则,比如分隔符(delimiter)是逗号,每行数据的分隔符(recordSeparator)是CRLF(\r\n)。往后用了org.apache.commons.csv中的CSVParser来读取excel。所以直接再写个org.apache.commons.csv的demo。原创 2023-07-22 18:34:12 · 306 阅读 · 0 评论 -
openjdk==HSDB工具使用,查看子类class文件指向的地址
console查看mem查看虚拟表中存的地址是哪些,并发现子类中存的方法的具体地址:没重写过的存的是父类中方法的地址,重写过的存的是重写后的方法的地址。inspector查看class对象的具体参数,并查看存放方法地址的虚拟表的长度,并计算出虚拟表的起始地址。class brower工具查看class文件对应JVM中生成的instanceKlass地址。原创 2023-02-18 11:29:14 · 229 阅读 · 1 评论 -
openjdk源码==类加载过程
/读取JDK自己的rt.jar中class的地址并保存地址。//从上面的地址中加载解析JDK自己的class文件到内存。原创 2023-02-17 17:01:59 · 770 阅读 · 0 评论 -
c语言学习5==TCP和socket
* address family: AF_INET 协议 */socket是一个伪文件,分成两个部分:读缓冲区和写缓冲区。所以socket一旦建立就会在PCB中对应生成一个文件描述符fd。我们需要指定的就是协议 IP 端口,将这三个东西封装成一个结构体。TCP特点:出错重传,每次发送数据对方都会回ACK,可靠。大小端:小端,低位存低地址,高位存高地址。socket实现不同服务器上的进程间的通信。原创 2022-09-04 14:59:32 · 777 阅读 · 0 评论 -
c语言学习4==聊天服务器线程版pthread_t
包裹函数warp.c warp.h。原创 2022-08-31 21:47:34 · 438 阅读 · 0 评论 -
C语言学习3==文件描述符、系统调用操作文件
打开现存文件或新建文件时,系统(内核)会返回一个文件描述符,文件描述符用来指定已打开的文件。这个文件描述符相当于这个已打开文件的标号,文件描述符是非负整数,是文件的标识,操作这个文件描述符相当于操作这个描述符所指定的文件。需要说明的是,当一个进程终止时,内核对该进程所有尚未关闭的文件描述符调用close关闭,所以即使用户程序不调用close,在终止时内核也会自动关闭它打开的所有文件。在程序运行起来后打开其他文件时,系统会返回文件描述符表中最小可用的文件描述符,并将此文件描述符记录在表中。......原创 2022-08-29 23:13:27 · 662 阅读 · 0 评论 -
C语言学习2==线程pthread_create()
线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。进程,直观点说,保存在硬盘上的程序运行以后,会在内存空间里形成一个独立的内存体,这个内存体有自己的地址空间,有自己的堆,上级挂靠单位是操作系统。进程号在整个系统中是唯一的,但线程号不同,线程号只在它所属的进程环境中有效。进程有自己的地址空间,线程使用进程的地址空间,也就是说,进程里的资源,线程都是有权访问的,比如说堆啊,栈啊,静态存储区什么的。.....原创 2022-08-28 13:24:11 · 2232 阅读 · 1 评论 -
C语言学习1==gcc 创建动态库
目前库文件是放在/opt/clearn目录下,不是在标准库目录/usr/lib或者/lib下,所以可以建立软连接,将实际在/opt/clearn目录下的libtest.so文件映射到/usr/lib/libtest.so,就等于直接将文件拷贝到了/user/lib目录下。1) 如果共享库文件安装到了/lib或/usr/lib目录下, 那么需执行一下ldconfig命令。编译测试代码,需要制定引入的库文件路径、库文件头文件路径、库名称,生成a.out可执行文件。再执行a.out依然可以找到库文件。...原创 2022-08-28 11:01:43 · 489 阅读 · 0 评论 -
openjdk8 JVM源码阅读==windows¢os Clion debug openJDK8
然后在windos上用clion 的configuration新建一个remote debug,连接到centos暴露的端口进行远程debug,更改Test.java的代码后,重新编译,然后启动gdb server,然后clion重新开启debug即可。然后在clion里找到main.c,路径是在jdk/src/share/bin/main.c,然后打上断点。打开IDEA,新建一个java项目,并将项目使用的jdk设置为编译好的JDK即可。同时centos上等待的server发现了来自远程的连接。.....原创 2022-08-27 21:20:03 · 1018 阅读 · 2 评论 -
编译openjdk8==centos7.9编译openjdk8
7-在openjdk的build目录下cd到linux-x86_64-normal-server-fastdebug/jdk/bin, 可以看到熟悉的JDK的目录结构了。2-下载CentOS-7-x86_64-Minimal-2207-02.iso,用VMware安装。选择下载的源码压缩包,上次后解压,得到openjdk目录。之前用vbuntu编译过,这次用centos编译。4-安装openjdk 1.8.0_342。5-下载openjdk8u42的源码。3-彻底删除原有JDK。..............原创 2022-08-25 18:15:22 · 807 阅读 · 0 评论