自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(648)
  • 资源 (34)
  • 问答 (1)
  • 收藏
  • 关注

原创 FutureTask的测试使用和方法执行分析

唤醒下一个线程,并从等待队列中移除掉。FutureTask类图如下。run方法执行逻辑如下。

2023-10-15 15:09:11 181

原创 Aqs独占/共享模式

表示结点等待在Condition上,当其他线程调用了Condition的signal()方法后,CONDITION状态的结点将从等待队列转移到同步队列中,等待获取同步锁。如果线程T对数据A加上排他锁后,则其他线程不能再对A加任何类型的锁。如果线程T对数据A加上共享锁后,则其他线程只能对A再加共享锁,不能加排它锁。当timeout或被中断(响应中断的情况下),会触发变更为此状态,进入该状态后的结点将不会再变化。:共享模式下,前继结点不仅会唤醒其后继结点,同时也可能会唤醒后继的后继结点。

2023-09-23 22:19:20 420

原创 Java Semaphore使用例子和流程

CAS操作消耗一个信号量;如果没有信号量可消耗了,就死循环等待了。release增加信号量;acquire减少信号量。semaphore.acquire()的反向操作。输入如下:可以看到同时最多只有2个线程能得到执行。

2023-09-19 22:52:44 207

原创 CountDownLatch 使用例子和代码流程

当每个被计数的线程完成任务后,计数器值减一,当计数器的值为0时,表示所有线程都已经完成了任务,然后在CountDownLatch上等待的线程就可以恢复执行。join方法的本质调用的是Object中的wait方法实现线程的阻塞,即有monitor锁的概念。输出如下: main线程只等待业务线程的业务逻辑结束就行。如下,main线程和其它线程运行时序不定,达不到其它线程都结束后main县城再结束的效果。A线程中执行 B.join(),则A线程阻塞住,直到线程B完成,A线程才能再继续。单词2: latch。

2023-09-17 10:10:24 104

原创 Java ReentrantLock锁源码走读

Java ReentrantLock锁源码

2023-09-16 17:09:11 135

原创 读余华小说《兄弟》

李光头利用偷看女人屁股的谈资给母亲李兰弄到了板车,椅子等等,让李兰生命的最后感到对这个儿子的欣慰。宋钢对苏妈说“你会有善报的” ,而苏妈也被戴高帽批斗了。宋凡平为看妻子李兰履行承诺,最终被活活打死。李光头、宋钢捉虾做饭,吃大白兔奶糖。孙伟父亲把钉子扣进了脑袋自杀而亡。宋凡平直接跳进粪坑背出刘山峰。上部读完的一些笔记和思考。: 文革前,文革,文革后。李兰为宋凡平七年不洗头发。宋凡平小腿折断塞进棺材。

2023-09-03 15:21:33 242

原创 Java复习重写equals方法必须重写hashcode方法

A对象在业务上看来是一个对象,相等的;但是equals方法和hashcode方法都没有重写,实际是不等的,hashcode也不同;即每次业务都是合理的,某个对象只有一个存储到map中,以最后的更新值为准,不会出现什么意外。只重写了equals方法,两个对象相等,但是hashcode不同,在HashMap中是两个key存储, 取出来不同;综合上述的例子,也就说明了为什么重写equals方法必须重写hashcode方法。那么只重写equals方法,两个相等对象会出现一样的hashcode产生误解吗;

2023-08-19 16:10:30 103

原创 Spring循环依赖-实践&三级缓存的再次理解

Areturn b;this.b = b;Breturn a;this.a = a;return c;this.c = c;Creturn a;this.a = a;关于理解为什么需要三级缓存以及三级缓存的作用,通过本文实际例子是可以充分说明的。只有A,B的相互依赖,二级缓存就够了;只需要存储一个中间对象:A 创建依赖B, B创建依赖A,从这个中间缓存取就能完成创建B, 那么A也创建完成了,这样之后A,B都加入到一级缓存singletonObjects中,很完美。

2023-08-12 16:55:32 195

原创 负载均衡概念理解和相关算法

负载均衡(Load balance,LB),是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。通俗点理解有点类似于常说的一句话,一碗水端平。如果我们只有一个碗,那么无论有多少水,那么我们只能装一碗水。在单服务器的应用场景,碗就是服务器,而水就是流量。所以我们知道,一旦水(流量)过大时,一个碗肯定是不够用的。这时候就需要多来几个碗(服务器)来支撑更多的水(流量)。

2023-08-02 22:50:29 1355

原创 网络基础-认识每层的设备和每层的特点用途

有了MAC地址。数据链路层工作在局域网中的,以帧为单位进行传输和处理数据。

2023-08-01 22:11:49 208

原创 HTTPS概念&wireshark分析

第一,发送方在发送信息前,需先与接收方联系,同时利用公钥加密信息,信息在进行传输的过程当中一直是处于密文状态,包括接收方接收后也是加密的,确保了信息传输的单一性,若信息被窃取或截取,也必须利用接收方的私钥才可解读数据,而无法更改数据,这也有利保障信息的完整性和安全性。第二,数字证书的数据签名类似于加密过程,数据在实施加密后,只有接收方才可打开或更改数据信息,并加上自己的签名后再传输至发送方,而接收方的私钥具唯一性和私密性,这也保证了签名的真实性和可靠性,进而保障信息的安全性。私钥是不公开的,解密时使用。

2023-07-18 23:15:36 1446

原创 HTTP1.1 wireshark分析

本地springboot启动一个简单的服务,然后请求测试tcpdump 本地回环网卡。

2023-07-15 15:43:43 680

原创 wireshark抓包实践

r,从后面接的文件将数据包数据读出来。那个「文件」是已经存在的文件,并且这个「文件」是由 -w 所制作出来的。-X,可以列出十六进制 (hex) 以及 ASCII 的数据包内容,对于监听数据包内容很有用。-i,后面接要「监听」的网络接口,例如 eth0, lo, ppp0 等等的接口。-A,数据包的内容以 ASCII 显示,通常用来捉取 WWW 的网页数据包资料。-c,监听的数据包数,如果没有这个参数, tcpdump 会持续不断的监听,-q,仅列出较为简短的数据包信息,每一行的内容比较精简。

2023-07-09 18:20:22 273

转载 Java ClassLoader类loadClass/findClass

符号引用就是我们运行时数据区在类加载阶段,还未对类进行布局时,我们通过符号引用访问class文件中数据的实际内存地址,加载进运行时数据区进行布局。准备阶段不分配类中的实例变量的内存,实例变量将会在对象实例化时随着对象一起分配在 Java 堆中。* 字节码验证:是整个验证过程中最复杂的一个阶段,通过验证数据流和控制流的分析,确定程序语义是否正确,主要针对方法体的验证。* 文件格式验证:验证字节流是否符合 Class 文件的规范,如主次版本号是否在当前虚拟机范围内,常量池中的常量是否 有不被支持的类型.

2023-07-08 15:42:52 613

原创 OSGI-Bundle:概念和入门

简单的来说就是平台应用和bundle应用,如何将平台应用和bundle应用整个的运行起来,其中最关键的就是对bundles的控制,包括bundle安装、开启、关闭、更新和卸载。: bundle 是以 jar 包形式存在的一个模块化物理单元,里面包含了代码,资源文件和元数据(metadata),并且jar包的物理边界也同时是运行时逻辑模块的封装边界。实际工作中可以理解为bundle是一个小应用,一般是业务扩展方维护这个应用,里面有各种自身的业务逻辑和对平台应用的扩展。

2023-07-01 09:43:30 293

原创 规则引擎--规则集:规则集合的组织和执行

规则集的组织抽象

2023-06-23 20:03:27 619

原创 规则引擎--函数式编程和and/or操作符的设计

如果第一个结果是false,那么直接返回该结果(因为 r.equals(shortcut) 这句会满足),如果第一个结果是true,那么直接返回该结果(因为 r.equals(shortcut) 这句会满足),即只要有一个False就是false, 为执行未知和异常情况单独处理,否则返回true。即只要有一个True就是true, 为执行未知和异常情况单独处理,否则返回false。上面解释了and ,or的Combiner都是正确的,再来看其执行。, 重点分析一下And, Or操作符的设计。

2023-06-23 11:46:04 337

原创 规则引擎--规则逻辑形如“1 & (2 | 3)“的抽象设计

规则下逻辑表达和条件的抽象对于任何一个规则,包括多个条件,都可以抽象成如下的json形式1,2,3分别代表3个条件,这个规则如何执行,则是"1 & (2 | 3)"

2023-06-22 18:05:29 398

原创 规则引擎--QLExpress: 数据和操作符的抽象

继续回顾QLExpress,深入了解里面的一些设计。

2023-06-22 10:30:40 1330

转载 规则引擎 -- rete算法

Not节点等,Join节点包括两种输入,左部输入事实列表,称为元组(Tuple),右部输入一个事实对象,对象与元组在Join节点按照类型间约束进行Join操作,将符合的事实加入到元组中,并继续传入下一个beta节点。Type节点:又叫ObjectType节点,就是我们的Fact,也就是我们规则所用到的POJO,用于选择事实的类型,即针对事实进行类型检查,引擎只让匹配该类型的对象到达后续节点,将符合本节点类型的事实向后继的Alpha节点进行传播,一个Fact对应一个Type节点;

2023-06-14 22:07:52 217

原创 规则引擎--QLExpress:ql的一些使用场景

*** 定义连加的操作符int r = 0;} return r;} }使用//定义表达式,相当于1+2+3+4 String exp = "addN(1,2,3,4)";//定义方法addN,其实现为AddNOperator runner . addFunction("addN" , new AddNOperator());Assert . assertEquals("操作符执行错误" , 10 , r);" + "};

2023-06-11 12:55:13 955

原创 规则引擎--QLExpress:普通表达式的运行

特别说明:代码执行过程中会有各种缓存,避免指令的重复生成,可提高运行效率。

2023-06-10 12:31:11 2796

原创 规则引擎-穿插知识点

即符合了LRU(Least Recently Used),即最近最少使用,即选择最近最久未使用的予以淘汰。访问者模式的优点是增加操作很容易,因为增加操作意味着增加新的访问者。访问者模式将有关行为集中到一个访问者对象中,其改变不影响系统数据结构。若系统数据结构对象易于变化,经常有新的数据对象增加进来,则不适合使用访问者模式。代理类都继承了Proxy, 由于java的单继承,所以要想扩展一个类,则必须基于接口;访问者模式把数据结构和作用于结构上的操作解耦合,使得操作集合可相对自由地演化。

2023-06-05 23:10:21 63

原创 规则引擎架构-基于aviator

aviator 规则引擎

2023-06-03 13:34:21 1166

原创 规则引擎架构-基于easy-rules

来看,就是一个一个的对象组成了事实)。(只要在规则条件真正执行前,能明确这些事实就行)事实简单就是key、value对, 某个事实的名称,和事实的属性特征(以。在规则执行的过程中,可以做各种操作。可以看成规则的扩展点。:一个功能强大的基于Java应用程序的表达式语言。注解构造的规则是使用RuleProxy构造的。默认的规则引擎直接遍历规则去执行,如果。,你买到了酒就装包里走人,:Spring表达式语言。去酒店买酒,需要判断。,成年人才能购买酒,执行命中后,则去执行。

2023-05-27 13:52:42 1953

原创 mysql join语句在线练习

sql join预发实践

2023-02-25 17:20:42 128

原创 java lambda之方法句柄&invokedynamic指令

理解java 方法句柄 和 invokedynmic指令

2022-10-29 15:51:22 680

原创 线程池中某个线程执行有异常,该如何处理?

java 线程池异常处理

2022-10-22 16:58:23 2386

原创 Mac vsCode快捷键&插件总结

mac vscode快捷操作和实战

2022-09-17 11:21:49 644

原创 随笔:想写一本数据结构的书

写技术书的想法

2022-06-29 22:32:31 244

原创 java.lang.IncompatibleClassChangeError 常见错误

最近开发中遇到类冲突报错 java.lang.IncompatibleClassChangeError,遂了解并复现一些casejava.lang.IncompatibleClassChangeError 解释错误解释package java.lang;/** * Thrown when an incompatible class change has occurred to some class * definition. The definition of some class, on w

2022-05-02 10:32:09 2109

原创 抽样随机算法

水塘抽样/蓄水池抽样算法(Reservoir Sampling)问题:对一个数量未知的样本,希望只经过一次遍历就完成随机抽样,即时间复杂度O(n)。因为样本数量未知,因此就不能通过random函数直接随机抽样。解法:我们总是选择第一个对象,以1/2的概率选择第二个,以1/3的概率选择第三个,以此类推,以1/m的概率选择第m个对象。当该过程结束时,每一个对象具有相同的选中概率,即1/n第m个对象最终被选中的概率P=选择m的概率*其后面所有对象不被选择的概率,即选择m的概率 : 1 / mm后某个

2022-04-25 22:54:15 1234

原创 Java Function & Supplier 的实际例子对比感受抽象和懒加载

Supplier以 人使用交通工具出行为例, 如下:很自然的代码,没有任何问题interface Vehicle { void drive();}class Car implements Vehicle { public Car() { System.out.println("new Car()"); } @Override public void drive() { System.out.println("car...

2021-11-28 16:43:23 980

原创 Java日常编码小知识点

LinkedHashMap日常工作通常都是HashMap,有时候与前端对接返回,按顺序显示map结果,这时需要考虑有序;而java.util中提供了LinkedHashMap, 可参考学习:linked_hash_map反射的小应用属性类,json存到数据库中,可能有增减; 与前端对接时,希望一个json传递过来设置,而后端也最好不用麻烦的写个中间DO转换设置import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray

2021-10-06 13:56:20 114

原创 Java类加载器不同导致SPI加载报错: Provider ... not a subtype

如下图整段代码如下,当注释掉myThread.setContextClassLoader(myClassLoader);后才正常运行package com.hotload;import java.util.ServiceLoader;class MyThread extends Thread{ @Override public void run() { try{ ServiceLoader<A> serviceLoader

2021-09-25 16:31:35 3675 1

原创 java new对象的类加载器是谁?

关于java new 对象使用的流程我们都知道如下图所示但是究竟是谁(即那个类加载器)完成【加载】的呢?如下两个类:Testpackage com.hotload;/** * @Author mubi * @Date 2020/7/27 08:49 */public class Test { public Test() { } public String hello(String msg){ return "hello:" + msg;

2021-09-25 16:01:56 781

原创 类加载器不同导致类型强制转换报错:java.lang.ClassCastException

直接看如下错误例子com.hotload.Test cannot be cast to com.hotload.Test,因为com.hotload.Test的类加载器是MyComOtherClassLoader,而非默认的 sun.misc.Launcher$AppClassLoader如下则正常

2021-09-25 15:24:26 1687

原创 maven plugin 简单介绍和实战 (2021-05-29)

maven plugin 开发: https://maven.apache.org/plugin-developers/index.html什么是plugin?“Maven” is really just a core framework for a collection of Maven Plugins. In other words, plugins are where much of the real action is performed, plugins are used to: create

2021-05-29 14:54:55 1122

原创 Mockito 动态代理 & ByteBuddy

现在说动态代理:总是想到Spring AOP的JDK动态代理(基于反射) & Cglib代理(当然这两种都是新增一个新的class)完成动态代理;其实各种mock也有不少使用的动态代理技术的,比如Mockitomock例子public interface HelloService { String say(String what);}import com.example.service.HelloService;import org.junit.Assert;import

2021-03-14 16:40:48 1408

原创 Java 双亲委派问题&解决实战(三)

本文主要对上两篇文章进行总结,同时结合过去工作说一些感想Java 双亲委派问题&解决实战(一)Java 双亲委派问题&解决实战(二)首先通过上两篇文章的讲解和代码实战,对JAVA类加载的双亲委派是有了进一步认识,比纸上谈兵更有体会。其次,其实工作中的确是经常遇到依赖问题,版本升级问题;比如业务依赖了rpc中间件,数据库中间件, 而这两个都依赖fastjson,但是是不同版本;还有比如经常有fastjson安全漏洞,要全员业务升级,比较糟糕的做法就是每个业务组,每个项目都人工一个

2021-03-13 20:30:15 254

android 图灵机器人2

android图灵机器人聊天第二版,发现了上一版的小问题,还是待完善.zip

2016-01-04

socket通信

android socket通信例子见图书《Android游戏编程之从零开始》

2015-12-31

C++ STL程序员开发指南

C++ STL程序员开发指南,此书写的很不错,可以学习下

2015-08-23

c++ 编程开发帮助文档

c++帮助文档,有助于学习c++ lib 各种函数

2015-08-15

ACM代码模版

ACM代码库,优秀的acm模版图书,基本的算法都有 .

2015-08-11

程序设计导引及在线实践

《程序设计导引及在线实践》,算法学习图书

2015-08-11

[数据结构(C语言版)].严蔚敏_吴伟民.扫描版

[数据结构(C语言版)].严蔚敏_吴伟民.扫描版

2015-08-11

mvc servlet jdbc web框架

经典的web mvc 开发模式, 使用了servlet 拼sql语句的模式,可以学习jsp,servlet 为日后学习新的web框架打下基础

2015-06-26

ssh-web框架

sprig struts hibernate web框架, 可以JUnit测试方法,bootstrap前端js css

2015-06-25

ssh web 框架 非注解的

ssh web开发框架,包括前台显示 用了jquery,网页bootstrap

2015-06-24

android百度地图开发详细操作文档

android 开发中使用百度地图的一步步操作和注意点

2015-06-20

android adapter

android adapter(listview gridview等的)学习建议和一些注意点

2015-06-12

mybatis学习文档

mybatis-generator学习例子 和mybatis学习的相关说明

2015-06-10

mybatis 学习工具资料

mybatis generator 学习的jar包 , mybaitis学习的文档等

2015-06-10

mob.com 短信验证码 android 开发

android 短信验证码之使用mob.com的第三方平台,简单的介绍和使用

2015-06-08

百度地图开发

百度地图 android的开发操作,网上和代码操作,以及一些注意点

2015-06-08

c语言 float double数据类型的内存中的存储和验证

c语言中的float , double 等数据类型的存储,如何计算 , 如何用vc vs查看内存

2015-06-07

C 最大子序列算法

C 最大子序列问题的几中算法-分治-联机算法

2015-03-14

java自定义规则引擎源代码

java自定义规则引擎源代码

2024-03-17

nginx lua示例代码

nginx lua示例代码,基于open resty,参考http://www.iteye.com/blogs/subjects/nginx-lua

2016-08-08

maven project

参考开涛博客,nginx-lua开发chapter6 ,包含了真个项目,和示例,以及发布成的war文件

2016-08-08

wireshark tcp三次握手

ubuntu下自己写tcp协议(server.c,client.c,Makefile),通过tcpdump生成 .cap文件后,利用wireshark分析tcp三次握手的整个过程

2016-08-03

cocos2d-lua 贪吃蛇

cocos2d-x lua 创建的贪吃蛇游戏,有些问题,还要优化

2016-07-07

JavaScript基础教程

在主流计算平台全面转向Web的今天,JavaScript理所当然地成为广大开发人员必须熟练掌握的一项基本技术。, 本书是已被奉为经典的JavaScript入门书,以易学便查、图文并茂、循序渐进和善于用常见任务讲解语言知识而著称,讲述JavaScript编程的必知必会知识同时,兼顾了DOM、XML、Ajax等重要的相关技术内容。多年来,本书不断重印改版,原版累计销售已经超过150 000册。第6版中文版出版后也多次重印,广受国内读者好评。, 第7版增加了更多Ajax设计示例和现代编程技巧,以YUI为例讲述了如何高效运用JavaScript库,并在主流浏览器的最新版本中测试了全书示例。通过本书,你可以轻松而迅速地掌握JavaScript Web开发的基本技能,并掌握Web开发的最佳实践,领悟其中真谛。

2016-02-05

仿慕课网 几米简介

按照慕课网视频教程自己动手敲出来的 几米简介首页 静态的web页面

2016-01-27

cfx bean list

cfx处理JavaBean类型与List的集合类型,工程师utf-8编码

2016-01-19

apache-cxf-2.4.0

apache-cxf-2.4.0.zip , cxf webservice开发用

2016-01-18

eclipse svn

eclispe 配置svn 需要安装的文件,包括汉化包

2016-01-13

sublime 安装

sublime的安装包,包括了汉化文件,如何安装激活,汉化可自行百度

2016-01-11

android下雪

androd 实现下雪,eclipse上的一个小项目

2016-01-09

ksoap2 android

ksoap2-android-assembly-2.5.4-jar-with-dependencies.jar ,webservice用

2016-01-03

android 图灵机器人

android图灵机器人聊天,挺简单的,就是利用http协议,自己可以注册图灵机器人账号,在此基础上修改.zip

2016-01-03

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除