待兔 待兔
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是比较方便的。具体的定义和遍历方法,可以看下面的例子:
Stella981 Stella981
3年前
Android控件在xml中初始化
一、写在前面界面控件的初始化一般通过findViewByid来查找绑定再强制转换,这项工作只是个纯体力活没有任何营养,一般常用的是使用匿名内部类的方式:首先需要获取到layout中布局页面的Button控件中指定的Id:android:id"";之后为这样按钮绑定监听器,使用匿名内部类的方式,代码如下:
Easter79 Easter79
3年前
Springboot2 集成Swagger2,解决配置完成后不显示的坑
为新项目做准备重新搭建环境,决定使用Springboot2mybatis环境,使用shiro做权限管理,并搭配pagehelper,generator等。在配置Swagger2的时候出现访问时界面空白的坑,刚开始以为是配置的插件过多导致的不兼容,重新配置了其他环境,但问题依然存在,后来查找资料解决了问题。现在此作记录。目前使用Springboot版本为 
Wesley13 Wesley13
3年前
J2EE相关
很自然,J2EE环境中使用JNDI查找组件服务,如何指示JNDI到何处去找到组件是有个原则的,如果需要组件和被需要组件位于同一个虚拟机(当然这个虚拟机中运行着J2EE环境)中,则不必指定类似下面的属性:   ht.put(Context.INITIAL\_CONTEXT\_FACTORY,"weblogic.jndi.WLInitialContextF
Wesley13 Wesley13
3年前
Mysql 更新语句执行流程
我们来看看更新语句的执行流程与查询流程不一样的是,更新流程涉及两个重要的日志模块,redolog和binlogredolog如果每一次的更新操作都需要写进磁盘,然后磁盘也要找到对应的那条记录,然后再更新,整个过程IO成本、查找成本都很高Mysql使用WAL机制来进行数据更新,WAL的全称是WriteAh
Wesley13 Wesley13
3年前
Java核心技术 卷1 基础知识—Swing用户组件及JAR
《第12章Swing用户组件》Swing设计者采用了模型视图控制器(modelviewcontroller,MVC)模式来设计用户组件它限制了一个对象拥有的功能数量,在设计组件时一般实现三个独立的类:模型(model):存储内容,必须实现改变内容或者查找内容的方法,模型是完全不可见的视图(view):显示内容,即
Wesley13 Wesley13
3年前
Mysql事物锁等待超时 Lock wait timeout exceeded; try restarting transaction
工作中同事遇到此异常,查找解决问题时,收集整理形成此篇文章。问题场景问题出现环境:1、在同一事务内先后对同一条数据进行插入和更新操作;2、多台服务器操作同一数据库;3、瞬时出现高并发现象;不断的有一下异常抛出,异常信息:org.springframework.dao.CannotAcquireLockExc
京东云开发者 京东云开发者
8个月前
技术分享-日志链路追踪
1.背景简述在技术运维过程中,很难从某服务庞杂的日志中,单独找寻出某次API调用的全部日志。为提高排查问题的效率,在多个系统及应用内根据统一的TraceId查找同一次请求链路上的日志,根据日志快速定位问题,同时需对业务代码无侵入,特别是在高频请求下,也可以