- 博客(69)
- 资源 (8)
- 收藏
- 关注
原创 ConstantPool::allocate记录
刚开始看的时候,反复对了参数,看这个重载方法怎么多个size参数,查看资料才明白这个new的关键字的函数原型为operator new(size_t size);这个size为sizeof(类)计算出来类的大小,这里c++默认给你做了处理,至此对new运算符更新了认识,其他初学者也会犯这种低级的错误,原因在于没有仔细了解过new的运算符重载。此处的new为运算符重载查看父类new的重载方法。
2023-10-26 21:57:17 166
原创 岐黄之问-表里对应
在窍为耳,在味为咸,在志为恐。在体为筋,在藏为肝,在色为苍,在音为角,在声为呼,在变动为握,在窍为目,在味。地为火,在体为脉,在藏为心,在色为赤,在音为征,在声为笑,在变动为忧,在窍为。地为土,在体为肉,在藏为脾,在色为黄,在音为宫,在声为歌。在地为金,在体为皮毛,在藏为肺,在色为白,在音为商,在声为哭。帝曰,余闻上古圣人,论理人形,列别藏府,端络经脉,会通六合,各从其经,气。歧伯对曰,东方生风,风生木,木生酸,酸生肝,肝生筋,筋生心。南方生热,热生火,火生苦,苦生心,心生血,血生脾,心主舌。
2023-08-29 08:19:56 127
原创 globals.hpp记录
可以看到与平台相关的宏定义在这的具体实现为MATERIALIZE_PD_PRODUCT_FLAG。因为我现在是编译的server的又是64位的系统所以这里找c2_globals_x86.hpp。这个globals.hpp是个定义的文件,它的具体实现在globals.cpp中。再拿globals.hpp中的一个变量定义来举例,其他的都是一个道理。上面的COMPILER1 COMPILER2是在哪里定义的呢。下面的宏定义决定了编译时候引用的hpp文件。这个也在globals.hpp中定义了。
2023-07-14 22:00:15 485
原创 pthread_create的默认栈大小为什么是8M
通过反向查找发现是__pthread_initialize_minimal_internal这个方法初始化__default_stacksize的。是因为这个宏的原因 给pthread_create和__pthread_create_2_1牵线搭桥的。可以看到这里初始化的大小为8M,这就验证了在linux上默认的栈大小为8M,那么这个宏定义跟谁有关系呢。__pthread_create_2_1函数,这是为什么呢。把关注点放到__pthread_create_2_1上。以linux2.6.0源码来说。
2023-07-04 12:38:14 344
原创 readlink方法实验
可见通过readlink /proc/self/exe 可以获取当前可执行文件的全路径,在没有/proc文件的平台上使用argv [0]去获取当前可执行文件的路径。
2023-07-02 14:07:04 240
原创 为什么 Thread.stop 被废弃,了解过么
主要就是把ThreadDeath异常抛出去,在抛出去之前看了看是不是当前线程执行的,不是的话给vm thread 在安全点执行。其实注释中也写了,只不过很少有人看,大部分的人都是从八股文中得知,只知其一未知其二,因为它本质上是不安全的。停止线程会导致它解锁已锁定的所有显示器 原文链接在下。具体的实现就是上面的,那么废弃的原因是啥。为什么 Thread.stop 被弃用?native方法直接找对应的jni。现在就先来看看它的实现干了啥。
2023-04-24 16:34:33 135
原创 关于Java_java_lang_ClassLoader_00024NativeLibrary_load的思考
跟踪发现是com.sun.tools.javac.jvm.JNIWriter类中的writeMethods方法中的私有内部类Mangle的mangleMethod中的mangleChar方法搞的鬼?肯定有规范,计算机的尽头就是规范!实验步骤,自定义个类,类中添加个内部类,内部类添加个native方法。javac之后通过javah生成头文件观察之。于是找到了 JNI的规范文档。为什么是00024?
2023-04-23 14:06:36 190
原创 java中为什么非守护线程在main方法线程后不会退出vm
在Threads::destroy_vm()函数中会见while检测Threads::number_of_non_daemon_threads() 是否>1 即非守护的线程数是否大于1,大于的情况下会阻塞在。这个函数指针是谁给它赋值的。那么在哪里会调用Threads::destroy_vm()方法呢,我猜测在jvm的调用main方法执行完后会调用这个方法,那就从java.c找找。上面是java.c的main方法的入口,它回去调用java的class中的main方法,在这个方法的最后的会调用LEAVE();
2023-04-23 08:06:09 531
原创 unsafe类的getAndSetInt方法探索
起因:了解java层面的unsafe类跟unsafe.cpp是如何对应的getAndSetInt类的方法为 public final int getAndSetInt(Object var1, long var2, int var4) { int var5; do { var5 = this.getIntVolatile(var1, var2); } while(!this.compareAndSwapInt(var1,
2022-03-30 14:27:42 1547
原创 spring cloud gateway漏洞修改前后代码对比
修改部分:对于3.0.4版本和3.0.7版本主要修改是org.springframework.cloud.gateway.supportShortcutConfigurable类中的static Object getValue(SpelExpressionParser parser, BeanFactory beanFactory, String entryValue) { Object value; String rawValue = entryValue; if (rawValue !
2022-03-04 18:03:55 507
原创 mybatis流式导出大数据excel
void selectStream(Vo vo,ResultHandler<Vo> resultHandler);mapper.java代码<select id="selectStream" resultMap="VoResult" resultSetType="FORWARD_ONLY" fetchSize="-2147483648">select * from table1</select>mapper.xml代码resultSetType=...
2021-04-30 15:33:18 1366 1
原创 判断坐标点是否在区域内java
前提:坐标点需要有序,顺时针或逆时针(多边形) public static boolean pnpoly2(Point point,List<Point> polygon){ int h = polygon.size(); boolean n = true; int j = 0; double g = 2e-10; Point s, q; Point e = point; s
2021-04-27 10:13:21 1870
原创 netty源码探索一
DefaultEventExecutorChooserFactory类的newChooser(EventExecutor[] executors)方法中的isPowerOfTwo(int val)方法含义:判断val是否是2的次方(val & -val) == val 详解用 2 来举例说明2的二进制是00000000 00000000 00000000 00000010表示-2的二进制用11111111 11111111 11111111 11111110表示过程 负.
2021-03-30 21:05:02 144
原创 Navicat导出导入sql文件慢
1、一般情况下导出mysql的sql文件的时候是直接右击数据库--》转储sql-》结构和数据的,但是在数据量大的时候会导致导出的sql语句导入很慢解决办法:navicat -》 工具 -》数据传输 从这里进行导入目标库或者目标文件中,快的原因在于完整插入语句是一条一条的,插入100W数据得一个个插入 扩展插入语句时一批一批的插入,类似批处理,所以速度上就会很快了...
2021-03-23 10:59:49 8673 1
原创 安装docker-compose
系统centos 7 x64#极速curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose#赋予可执行权限sudo chmod +x /usr/local/bin/docker-compose
2021-03-12 21:02:37 118
原创 centos 7 docker安装教程
系统:centos 7 x64最新 可选择版本安装 19.03.5yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装指定版本查看Docker版本:yum list docker-ce --showduplicates..
2021-03-12 19:44:02 91
原创 RXTX for java在arm上的使用
因为rxtx for java在http://fizzed.com/oss/rxtx-for-java上提供的so文件为amd架构下编译生成的所以它不能应用到arm架构下的系统中所以只能自己编译 基于jetson的ubuntu系统 aarch641、下载rxtx2.2源码http://rxtx.qbang.org/pub/rxtx/rxtx-2.2pre2.zip2、修改version.h头文件3、下载最新的config.guess和config.subwget 'http://g
2020-11-22 17:04:21 1684 9
原创 video.js播放rtmp流
video.js version>=6 的版本 不包含videojs-flash package模块详情见https://docs.videojs.com/tutorial-faq.html#q-how-can-i-play-rtmp-video-in-videojs6之前的版本是内置到video.js中的可以正常使用
2020-11-20 08:46:47 355
原创 springboot使用sqlserver使用访问多个库
以前真没有注意同一个数据源下的所有库都可以访问jdbc-url后面的数据库只是个默认值,默认使用的是当前数据库,可以在写sql的时候进行多库中多表的关联查询操作,select top 10 dbd.* from "数据库1".dbo.表1 dbdLEFT JOIN "数据库2".dbo.表2 darON dbd.ID = dar.ID长知识了...
2020-10-27 10:28:45 647 3
原创 LVS+Keepalived
就目前自己所知负载均衡分为两类:一类是硬件的负载均衡,一类是软件负载均衡,因为是做软件的,所以只谈谈对软件负载均衡软件的一些了解。软件方面的负载均衡常见有的ngxin、LVS、LVS+keepalived、HAProxy,目前自己了解的有这几个做负载均衡的软件,简单的说一下它们的区别:nginxnginx是专门用来处理http请求的一个基于反向搭理后的负载均衡应用软件。LVSLVS是国人开发的一款针对于网络传输控制层的负载均衡软件。只能在linux上使用,集成在linux2.6内核及之后
2020-10-18 19:54:28 177 1
原创 基于netty的ngrok
编写目的:1、ngrok1.0是开放源码的,2.0闭源,公有的ngrok安全未知,且1.0还需要自己编译后才能运行,不太方便,故用netty写一个java版的ngrok2、参考https://github.com/ztgreat/proxy3、上面的项目可以把内网的端口映射出来,通过域名或者端口匹配指定的客户端配置,然后去请求连接,传输数据,写的也不错,很完善。4、我这个为单一http请求转发给内网的某个ip的端口上5、gitee上路径是https://gitee.com/orange_
2020-09-29 22:53:43 251
原创 netty编写ngrok之HttpResponse编码(二)
上篇说到netty帮我们实现好的一个请求响应编解码器,比如我们需要做个代理服务器去转发收到的请求发送给真实的服务器,那怎么把来的请求进行手动的编码呢?在做netty ngrok的我知道是继承个HttpRequestEncoder但是不知道怎么去用它,不知道大家有这种感受么,那没办法只能百度去看看别人是怎么做的,学习下经验代码如下public class MyHttpRequestEncoder extends HttpRequestEncoder { @Override
2020-09-27 07:37:19 181
原创 netty编写ngrok之HttpResponse编码(一)
使用netty处理http请求的时候,一般都使用HttpRequestDecoder HttpResponseEncoder这个两个类,一个是解析解码request的一个是对response进行编码的后来又出来一个类把这两个类的功能给替代了的类HttpServerCodec这个类包含请求的解码和响应的编码,是个二合一的功能类在我们真正要处理的handler之前加上这个就可以出来上面解析请求的类了像这样 b.childHandler(new Chan
2020-09-27 07:21:29 378
原创 netty 100w连接进行测试
服务器配置8核 15Gnetty服务端 和 客户端连接代码均在同一个服务器上,因为如果通过网络来测试的话,带宽会影响连接数,我这边带宽是5M,导致客户端连接数到达6W多的时候 就上不去了。netty服务端需要把内核参数修改下,才能支持百万的连接,未修改之前 只能到26w,然后就会报连接超时错误。1.vi/etc/sysctl.confnet.ipv4.tcp_syncookies=1net.core.somaxconn=8192net.core.rmem_default...
2020-08-27 11:49:19 832 2
原创 java实现IEEE745字节数组转单精度浮点(解决自动四舍五入问题)
public static void testIEEE745(){ int data1=0x42; int data2=0xe3; int data3=0x22; int data4=0x82; int data = data1<<24|data2<<16|data3<<8|data4; int nSign; //获取最高位 1bit S ...
2020-07-24 10:22:52 681
原创 eureka动态更新metadata自定义数据记录
localhost:8761/eureka/apps/{spring.application.name}/{服务实例名}/metadata?pro=value通过这个配置ribbon可以做灰度发布实现思路:自定义服务的ribbon rule即实现自定的IRule数据库中配置用户对应的服务版本信息,(header中传token来识别用户并查询他是用的服务版本来决定是用哪个版本的服务)规则策略中读取metadata map中的自定义控制属性,跟访问用户的版本控制进行匹配分发服务...
2020-07-10 21:32:11 1725 1
原创 ueditor使用非百度的依赖导致的问题
<dependency> <groupId>com.gitee.qdbp.thirdparty</groupId> <artifactId>ueditor</artifactId> <version>1.4.3.4</version...
2020-03-09 09:50:19 520
C10KClient.java
2020-08-27
空间直角坐标系七参数求解
2019-11-15
mavenAndQRcode.zip
2019-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人