待兔 待兔
3年前
ThreadLocal源码分析
最近在学多线程并发的知识,发现好像ThreadLoca还挺重要,决定看看源码以及查找各方资料来学习一下。ThreadLocal能够提供线程的局部变量,让每个线程都可以通过set/get来对这个局部变量进行操作,不会和其它线程的局部变量进行冲突,实现了线程的数据隔离。首先是ThreadLocal的结构:每个Thread维护一个ThreadLocalMap,这个
Wesley13 Wesley13
3年前
java中的HashMap和TreeMap
HashMap和TreeMap两者都是Map,java中的Map以键值对来存储数据,通过键key来索引值value。HashMap通过hashcode对其内容进行快速查找,其结果时无序的;TreeMap中的所有元素都默认进行了排序,所以当需要一个有序的结果时,使用TreeMap是比较方便的。具体的定义和遍历方法,可以看下面的例子:
不怕天黑 不怕天黑
3年前
发现Kotlin一个神奇的bug
1、前言本文将会通过具体的业务场景,由浅入深的引出Kotlin的一个bug,并告知大家这个bug的神奇之处,接着会带领大家去查找bug出现的原因,最后去规避这个bug。2、bug复现现实开发中,我们经常会有将Json字符串反序列化为一个对象问题,这里,我们用Gson来写一段反序列代码,如下:kotlinfun<TfromJson(js
Stella981 Stella981
3年前
Spring Cloud Gateway 接口文档聚合实现
​在微服务架构下,通常每个微服务都会使用Swagger来管理我们的接口文档,当微服务越来越多,接口查找管理无形中要浪费我们不少时间,毕竟懒是程序员的美德。​由于swagger2暂时不支持webflux走了很多坑,完成这个效果感谢@dreamlu@世言。文档聚合效果通过访问网关的host:port/swaggerui.
Stella981 Stella981
3年前
Android控件在xml中初始化
一、写在前面界面控件的初始化一般通过findViewByid来查找绑定再强制转换,这项工作只是个纯体力活没有任何营养,一般常用的是使用匿名内部类的方式:首先需要获取到layout中布局页面的Button控件中指定的Id:android:id"";之后为这样按钮绑定监听器,使用匿名内部类的方式,代码如下:
Wesley13 Wesley13
3年前
J2EE相关
很自然,J2EE环境中使用JNDI查找组件服务,如何指示JNDI到何处去找到组件是有个原则的,如果需要组件和被需要组件位于同一个虚拟机(当然这个虚拟机中运行着J2EE环境)中,则不必指定类似下面的属性:   ht.put(Context.INITIAL\_CONTEXT\_FACTORY,"weblogic.jndi.WLInitialContextF
可莉 可莉
3年前
21.Shiro在springboot与vue前后端分离项目里的session管理
1.前言当决定前端与后端代码分开部署时,发现shiro自带的session不起作用了。然后通过对请求head的分析,然后在网上查找一部分解决方案。最终就是,登录成功之后,前端接收到后端传回来的sessionId,存入cookie当中。之后,前端向后端发送请求时,请求Head中都会带上这个sessionid。后端代码通过对这个se
Stella981 Stella981
3年前
IE下Userdata本地化存储
这两天看了下Discuzx2发帖的实时保存机制,涉及到本地化存储,所以上网查了下,Firefox等支持HTML5的浏览器使用window.localStorage或window.sessionStorage存储,比较简单,所以我特别关注了一下IE下的本地化存储,以下是在网上查找的资料,作为笔记。 在InternetExplorer5中,Mi
Wesley13 Wesley13
3年前
Mysql 更新语句执行流程
我们来看看更新语句的执行流程与查询流程不一样的是,更新流程涉及两个重要的日志模块,redolog和binlogredolog如果每一次的更新操作都需要写进磁盘,然后磁盘也要找到对应的那条记录,然后再更新,整个过程IO成本、查找成本都很高Mysql使用WAL机制来进行数据更新,WAL的全称是WriteAh
京东云开发者 京东云开发者
7个月前
技术分享-日志链路追踪
1.背景简述在技术运维过程中,很难从某服务庞杂的日志中,单独找寻出某次API调用的全部日志。为提高排查问题的效率,在多个系统及应用内根据统一的TraceId查找同一次请求链路上的日志,根据日志快速定位问题,同时需对业务代码无侵入,特别是在高频请求下,也可以