动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录

代码小兵221 

程序员

Ta的文章
简析类加载的过程

一、加载加载(loading)阶段是“类加载”(ClassLoading)过程的一个阶段,在加载阶段,虚拟机需要完成以下三件事情:通过一个类的全限定名来获取定义此类的二进制字节流。将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构在Java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的访问入口。虚拟机规范这三点并不具体,因此虚拟机实现与具体应用的灵活度相当大。加载方式很多:从zip包中读取,日后发展为JAR,...

代码小兵221
880浏览 0推荐 2021-04-20 20:39:18
Redis分布式锁的正确实现方式

分布式锁一般有三种实现方式:1.数据库乐观锁;2.基于Redis的分布式锁;3.基于ZooKeeper的分布式锁。本篇将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的内容,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇将详细介绍如何正确地实现Redis分布式锁。首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:互斥性。在任意时刻,只有一个客户端能持有锁。不会发生死锁。即使有一个客户端在持有锁的期间崩...

代码小兵221
836浏览 1推荐 2021-04-20 20:22:41
细看Java序列化机制

1.概况在程序中为了能直接以Java对象的形式进行保存,然后再重新得到该Java对象,这就需要序列化能力。序列化其实可以看成是一种机制,按照一定的格式将Java对象的某状态转成介质可接受的形式,以方便存储或传输。其实想想就大致清楚基本流程,序列化时将Java对象相关的类信息、属性及属性值等等保存起来,反序列化时再根据这些信息构建出Java对象。而过程可能涉及到其他对象的引用,所以这里引用的对象的相关信息也要参与序列化。Java中进行序列化操作需要实现Serializable或...

代码小兵221
1024浏览 0推荐 2021-04-20 20:08:14
线程死锁分析

什么是线程死锁?死锁是指两个或者两个以上的线程在执行过程中,因为争夺资源而造成的互相等待的现象。如果没有外力作用下,这些线程会一直互相等待而无法继续运行下去。比如说线程A持有资源1,等待资源2。线程B持有资源2,等待资源1。且双方都不愿意放弃自己所持有的资源。死锁的四个条件:互斥条件:资源只能同时被一个线程占用,如果此时有其他线程想要获取资源,则必须等待,直到占有资源的线程释放该资源请求并持有条件:指一个线程已经持有了至少一个资源,但是又提出了新的资源请求,而新资源已被其他线...

代码小兵221
929浏览 0推荐 2021-04-13 18:21:10
DBUtils框架的使用(下)

刚才讲了使用QueryRunner插入、修改、更新数据,现在来学习一下使用QueryRunner进行数据库表查询。通过QueryRunner类的query()方法即可完成数据库表的查询操作,但是在查询的时候需要实现ResultSetHandler接口来将结果集封装成对象。可以通过自己实现接口,但很显然,我们应该使用DBUtils工具包提供的实现类来实现封装。在DBUtils框架中,共提供了九个ResultSetHandler的实现类。ArrayHandler:把结果集中的第一...

代码小兵221
935浏览 1推荐 2021-04-13 18:12:50