- 博客(32)
- 收藏
- 关注

原创 JVM实战
.class文件交给JVM(类加载机制)#装载(loading)首先得找到类文件所在位置(全路径)类加载器寻找类(ClassLoader.find(String name))怎么确保装载的类只有一份:不同区域对应不同区域的装载器现在需要装载java.lang.String CustomClassLoader逐级找App ClassLoader是否已装载 否再逐级找 Extension ClassLoader 是否已装载 否 再逐级找Bootstrap ClassLoader是否已装载 ..
2020-08-09 17:45:35
449
1

原创 Amazon RDS For mysql And Amazon RDS For Aurora
直接上demo:配置文件:server: port: 8889spring: datasource: master: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://auroradatasource.cluster-cjhlzjielcdr.us-west-2.rds.amazon...
2019-09-25 21:39:30
533

原创 Amazon DynamoDb使用说明
学习参考资料链接[Server Endpoint][https://docs.aws.amazon.com/zh_cn/general/latest/gr/rande.html] 设置比如我们的DynamoDb使用的区域是:这里我们选用的是Amazon DynamoDB用的Endpoint这里我使用的是dynamodb.us-west-2.amazonaws.com,协议选择的HT...
2019-09-25 21:01:51
1878

转载 Class.forName()的作用与使用总结
链接:https://blog.youkuaiyun.com/fengyuzhengfan/article/details/38086743
2019-05-09 19:44:08
295

原创 手写一个完整的ORM框架,项目中上手可用
链接:https://pan.baidu.com/s/1f8s-ui_X4SX9IARYd1uO2g提取码:8jfn
2019-05-06 16:42:55
786

原创 深入分析Spring源码第二篇
五、 Spring 源码解读 5.1、什么是IOC/DI?IOC(Inversion of Control )控制反转:所谓控制反转,就是把原来我们代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现。那么必然的我们需要创建一个容器,同时需要一种描述来让容器知道需要创建的对象的关系,这个描述最具体表现就是我们可配置的文件。 DI(Dependency Injection...
2018-12-30 00:07:59
645
1

原创 深入分析Spring源码第一篇
Spring是什么? Spring就是要简化开发轻量级零配置编程,API使用简单面向Bean只需要编写非常普通的Bean松耦合充分利用AOP思想万能胶与主流框架无缝集成设计模式将Java中经典的设计模式运行的彻底 Spring采用了四个关键策略1.基于POJO的轻量级和最小侵入性编程;侵入性:代码的嵌套的使用;...
2018-12-26 17:08:57
2179
8

原创 Netty原理及实现
Netty底层实现是由NIO实现的;以下实现基于版本:Maven 3.3Netty 4.1.22Netty是什么?异步事件驱动框架,用于快速开发高性能服务端和客户端; 封装了JDK底层BIO和NIO模型,提供高度可用的API; 自带编码解码器解决拆包粘包问题,用户只需要关心业务逻辑; 精心设计的Reactor线程模型支持高并发海量连接; 自带协议栈,无需用户关心;...
2018-12-16 13:43:27
2561

转载 Etag与HTTP缓存机制
转载:https://blog.youkuaiyun.com/kikikind/article/details/6266101Etag - Last-Modified和Etags如何帮助提高性能?把Last-Modified和ETags请求的http报头一起使用,这样可利用客户端(例如浏览器)的缓存。因为服务器首先产生Last-Modified/Etag标记,服务器可在稍后使用它来判断页面是否已经被修...
2018-12-11 11:15:32
222

原创 Mysql优化专题(转)
MySQL优化原理:https://www.iteye.com/news/32381数据库的原理参考: http://blog.jobbole.com/100349MySQL索引原理及慢查询优化: https://tech.meituan.com/mysql_index.html
2018-12-10 17:38:24
240

转载 从实际案例聊聊Java应用的GC优化
https://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651747273&idx=1&sn=7f947064a41eeecb6816a5d0838581ae&chksm=bd12aa848a65239289d5c39264e89bd175f377f6554bfe93b37ad6498cf13deff356333...
2018-12-08 18:35:03
418

原创 javap指令集(转)
栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入栈iconst_2 将int类型常量2压入栈iconst_3 将int类型常量3压入栈iconst_4 将int类型常量4压入栈iconst_5 将int类型常量5压入栈...
2018-12-08 16:42:13
175

原创 高并发场景下的限流对策
TCC 事务解决方案本质上是一种补偿的思路,它把事务运行过程分成 Try、 Confirm/cancel 两个阶段,每个阶段由业务代码控制,这样事务的锁力度可以完全自由控制。需要注意的是,TCC 事务和 2pc 的思想类似,但并不是 2pc 的实现,TCC 不再是 两阶段提交,而只是它对事务的提交/回滚是通过执行一段 confirm/cancel 业务逻辑来实现,并且也并没有全局事务来把控整个...
2018-11-23 11:49:53
724

原创 并发编程第四篇
JUC中提供了几个比较常用的并发工具类,比如CountDownLatch、CyclicBarrier、Semaphore。CountDownLatchcountdownlatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完毕再执行。从命名可以解读到countdown是倒数的意思,类似于我们倒计时的概念。countdownlatch提供了两个方法:一个是coun...
2018-11-22 22:58:54
172

原创 并发编程第三篇
同步锁我们知道,锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源, 在Lock接口出现之前,Java应用程序只能依靠synchronized关键字来实现同步锁的功能,在java5以后,增加了JUC 的并发包且提供了Lock接口用来实现锁的功能,它提供了与synchroinzed关键字类似的同步功能,只是它比 synchronized更灵活,能够显示的获取和...
2018-11-22 16:54:30
157

原创 并发编程第二篇
并发编程的实现原理2在多线程并发编程中synchronized一直是元老级角色,很多人都会称呼它为重量级锁。但是,随着Java SE 1.6对 synchronized进行了各种优化之后,有些情况下它就并不那么重了,Java SE 1.6中为了减少获得锁和释放锁带来的 性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。我们仍然沿用前面使用的案例,然后通过 synchronized关键...
2018-11-22 10:35:50
258

原创 并发编程第一篇
目录多线程的发展历史线程的应用并发编程的基础线程安全问题什么情况下应该使用多线程线程出现的目的是什么?解决进程中多任务的实时性问题,其实简单来说,也 就是解决“阻塞”的问题;阻塞:就是程序运行到某个函数或过程后等待某些事件发生而暂时停止 CPU 占用的情况,也就是说会使得 CPU 闲置。多线程的运用在一些场景如:如对于一个函数中的运算逻辑的性能问题:我们可以通过多线程...
2018-11-21 18:01:56
211

原创 分布式通信架构之RMI
RMI虽然不用了,但是它对分布式发展奠定了基础 ,说RMI首先讲是RPC;什么是RPC : Remote procedure call protocal 远程过程调用协议,客户端在不知道调用细节的情况下,去调用计算机远程的对象的某个方法,这样的一个调用过程就像调用本地方法一样,能够非常方便的进行远程传输,RPC协议其实就是一个规范,包含Dobbo, Thrif,RMI,WebService,He...
2018-10-29 16:39:43
573
1

原创 ConcurrentHashMap与HashTable的区别
HashTable:并行转换为串行,并行访问时只有一个线程能进来访问HashTable,下一个线程才能进来,效率非常低下,它还存在一些复合操作上的问题,比如说,不存在则添加,若存在则删除,代码中体现类似于!table.contains(),若不存在则添加put操作,contains(),put()方法都有可能有自己独立的锁,但是它们拆分开来了,这时第一个线程抢到了contains()的锁,第二...
2018-10-12 14:31:58
2705
1

原创 智能合约转换为java代码
web3j 创建代币 java1、构建私有网络geth --rpc --rpccorsdomain “*” --datadir “D:\data\eth\ethPrivate” --port “30303” --rpcapi “db,eth,net,web3” --networkid 100000 console2、(1)安装solc,用于solidity智能合约编译(编译(https://...
2018-09-27 19:49:45
1032

原创 java基于web3j 玩转eth
1.查询ETH钱包余额:private static final String URL = “http://127.0.0.1:8545/”;Web3j web3 = Web3j.build(new HttpService(URL));EthGetBalance ethGetBalance = null;try {// 通过账户地址查询余额ethGetBalance = web3j....
2018-09-27 19:49:21
3993
4

原创 以太坊转账之java
ETH账户之间的转账public class EthUtil {private static final String URL = “http://127.0.0.1:8545/”;public static final String KEYSTOREPATH = “C:\Users\Administrator\AppData\Roaming\Ethereum\keystore”;pu...
2018-09-27 19:48:40
2954

原创 区块链学习资料相关链接
https://web3j.readthedocs.io/en/latest/smart_contracts.html?highlight=Observable -----Smart Contracts API2.https://www.cnblogs.com/beyang/p/8469227.html-------------------------------------------以...
2018-09-27 17:41:57
302

原创 web3j之java三个依赖
<dependency> <groupId>org.web3j</groupId> <artifactId>core</artifactId> <version>3.4.0</version> </dependency>
2018-09-27 16:43:52
1025
原创 分布式事务
分布式事务一. 概述Spring事务、MySQL事务都属于本地事务,它们底层都是通过数据库实现的,ACID四大特性,对于单台服务器保证本地事务即可;对于微服务,本地事务解决不了问题,只能通过分布式事务解决(数据一致性)分布式事务中CAP理论, 要么保证AP(Availiable Persistence)即高可用性、分区容错性(它仍然要保证数据最终一致型,只不过它没有强一致性)要么保证CP(数据一致性和分区容错性),一般保证CP最多用到的是2PC(保证强一致性)协议,2PC协议用的最多的就是S
2022-03-31 23:16:02
1417
原创 Sentinel进阶(二)
一、Sentinel的原理(源码分析)源码入口Entry entry = SphU.entry(resourceName);围绕两点展开:寻找入口SphU.entry()初始化流控规则的入口自动装配:最核心的配置类: com.alibaba.cloud.sentinel.SentinelWebAutoConfiguration...
2022-03-30 14:28:42
1028
原创 Sentinel的基本概念与使用(一)
一、概述?1.1 在实际开发过程中,能用起来!1.2 常遇到的一些问题解答1.2.1 sentinel是什么?1.2.2 sentinel类似的产品有哪些?hystrix1.2.3 限流算法?优点? 缺点?1.2.4 sentinel默认的限流算法?特性?滑动窗口1.2.5 sentinel能解决突发流量吗?不能,为什么? 因为它底层是滑动窗口1.2.6 sentinel的阀值应用类型? QPS, 线程数,调用关系1.2.7 sentinel可以做集群限流吗? 可以1.2.8 Se
2022-03-30 11:18:27
1453
转载 Cloneable接口源码分析与技术细节
https://blog.youkuaiyun.com/u013916933/article/details/51590332
2019-04-03 21:08:19
221
转载 JDK8新特性:函数式接口@FunctionalInterface的使用说明
https://blog.youkuaiyun.com/aitangyong/article/details/54137067
2018-12-18 18:01:27
359
转载 数据库主从复制
1.当主数据库发送更新操作时,就会将信息写入二进制日志文件中(二进制日志文件默认是关闭的)2.从机数据库不断的监听主机的二进制日志文件,如果有更新操作,则会读取信息的日志文件3.将新读取的二进制文件信息写入到中继日志中4.从机的数据库会读取中继日志文件,执行数据的读和写的操作。...
2018-10-13 10:57:46
142
原创 PL/SQL提高应用程序的运行性能呢?
例如传统的操作数据的方法,所有的sql语句是写在程序里面的,首先要操作数据库要得到一个链接,不管是用jdbc方式还是连接池的方式得到这个连接的,这个链接传递给数据库,数据库拿到这个sql语句之后要对这个sql语句进行翻译,数据库拿到这个sql语句之后要对这个sql语句进行翻译,数据库读不懂要重新再编译一次,编译成数据库能识别的数据代码,编译完了之后开始执行,但是编译要花时间的,一次花的时间并不多,...
2018-10-13 10:02:22
293
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人