自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(145)
  • 收藏
  • 关注

原创 远程链接服务器

sss

2022-07-07 18:18:46 118 1

原创 mybatis中的#{}与${}在原理上的区别

一、MyBatis中${}和#{}的区别1.1 ${}和#{}演示数据库数据:dao接口:List<User> findByUsername(String username);List<User> findByUsername2(String username);Mapper.xml:<!-- 使用#{} --><select id="findByUsername" parameterType="java.lang.String" result

2022-02-14 10:57:18 261

原创 世界宏观经济循环

经济大循环的收益方:美国建立世界结算货币体系,美元=世界认可的信用货币=美国的单级军事霸权。美元是世界的唯一交易货币,美元的价值保证(前期黄金、后期石油)操作流程:发展中国家接受发达国家的资本和技术生产商品赚取美元,美联储加息,一方面资本回流美国(购买美国政府债券的形式,外资在美国只能买美国政府债券)用这些美元买美国政府发行的高收益的政府债券,美国政府产生高负债(如何解决呢?)另一方面发展中国家缺少资本企业倒闭,核心资产价值降低,美联储实施量化宽松,增发美元,银行用银行债券换取增发的美元(俗称打白条,用

2022-01-20 11:37:40 355

原创 博弈论-共有知识与共同知识

在博弈论中,有如下两个概念:共有知识:每个人都知道的信息,只是共同知识的第一个层次共同知识(common knowledge):不但是每个人都知道的信息,而且每个人都知道别人也知道该信息。而且每个人都知道别人也知道其他人知道该信息。如有 A、B、C 三人:第一个层次,A、B、C 三人都知道某一知识;第二个层次,A 知道 B、C 也知道该知识,A 不确定 B、C 知道 A 已经知道 B、C 知道该知识了第三个层次,每个人都知道别人也知道其他人也知道该信息;此二者,差之毫厘,谬以千里。安徒生童话里

2021-12-24 11:39:47 1510

原创 博弈论5个入门结论

1、不要选择劣势策略.2、耶鲁大学的学生很自私(其实大多人的性格里都有自私的一面)。 3、理性选择导致次优的结果。(理性人选择最低风险,而不是控制风险)4、学会换为思考,站着别人的立场去分析对方想要得到的收益是什么,会做出怎样的选择,对方的优势策略与劣势策略是什么,当然做出选择的同时也要考虑到对方也回这样考虑你的立场,你的选择。5、汝欲得之,必先知之,如果你想得到什么,必先要明白自己的动机及收益是什么,了解自己的目的。...

2021-12-23 14:44:50 577

原创 行为经济学

损失厌恶:当量下人感觉到损失的厌恶,是获取同样的享受的俩倍才能替代。(当量的参照点是重点,人当时获取东西所付出的代价)损失厌恶商业化:给用户产品的试用期限,在用户享受到产品的优越感后再付款,比直接付款成交更容易。付出越多,人越难以放弃,损失厌恶。让用户更多参与产品的生产交易过程,让用户为产品付出更多非理性付出,用户更容易支付更高的交易价格。当人长期拥有一个东西,会与该东西产生感情依赖,产品会拥有感情溢价,其他人不会为此买单。处置效应:当人损失超过预期时,会拒绝交易。(参照物,最初目标是为了拥有还是

2021-12-22 18:09:43 2124

原创 linux命令总结

清屏 clear 、ctrl+l查看列表 ls : listls -a 查看隐藏文件(系统文件)ls -la 查看所有文件的详细信息(类型权限、引用计数、所有者、所属组、大小、操作时间、文件)人性化显示创建多个空文件夹循环建立文件目录mkdir -p 文件路径文件的路径 pwdrmdir 文件路径(删除空文件夹)cp -rp 复制的路径 目标路径-r 复制目录-p保留文件属性cp -rp 时,目标目录存在就是复制,不存在就是改名复制移动改名rm -rf 文件

2021-10-01 13:21:00 1556

原创 LoadingCache源码剖析之缓存加载实现

随着互联网的发展,数据量不断增长,用户对性能要求的不断提升,在开发项目中使用缓存已经是必不可少的一种手段了。我们会将一些很少或者较少变化,对及时性要求不高的数据存放在缓存中,以减少数据库的压力和负载。常用的缓存分为堆内缓存,堆外缓存,以及分布式缓存。而谈到堆内缓存,比较常用的就是Guava里提供的LoadingCache。本文中会从源码角度来分析LoadingCache中数据是如何被加载到缓存中,如何在多线程的场景下保证只有一个线程会去加载缓存数据。这一点在实际项目中是至关重要的,试想一下如果有100个线

2021-09-29 10:11:06 420

原创 vue框架学习

vue.js:下载<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><div id="app"> {{message}}</div><script src="../js/vue.js"></scr

2021-02-18 17:06:01 69

原创 想开公司没钱租用办公地,注册地址怎么办?

不少创业者在创业初期并没有租商铺或者写字楼当办公地址,一是业务才刚起步,自己经常在外面跑,在家办公就可以了。二是商铺或者写字楼每月房租价格比较高,对于创业者是笔不小的花费。更有不少人虽然租到房子,但是房东不肯提供房产证,导致实地注册无法进行。那么没有注册地址,公司还可以注册吗?国家为了鼓励创业,实行了一系列的政策,其中包括提供免费注册地址,意思就是由园区政府提供虚拟的注册地址,这个地址是被认可的,公司注册下来后可以在本市的任何地方经营,即使以后办公地搬迁,营业执照中的地址也不需要变更。此做法一是为了鼓励

2021-01-29 16:13:34 974

原创 linux初级命令行

redis-server.exe --maxheap 10240000启动zookeepercd /usr/local/zookeeper/binsh zkServer.sh startsh zkServer.sh state启动tomcatcd /usr/local/tomcat8/bin./startup.sh && tail -f ../logs/catalina.outsystemctl stop firewalld关闭zookeepercd /usr/lo

2020-11-21 10:31:25 89

原创 MYsql隔离级别问题和解决方案,Spring的七大传播机制

读未提交:所有在buffer pool 的数据可见读已提交:会发生前后读到的数据不一致:解决方案:加行锁的共享锁(读锁)MVCC,查到行记录的事务结束id不为空的数据。可重复读:会引起幻读,前面查到的范围数据,再次操作会报错,加间隙锁+行锁,mvcc,可查到在该事务开始时,已经完成事务(事务ID不为空)的数据。串行化...

2020-09-18 10:04:20 194

原创 MySql事务原理

MySQL执行过程先根据sql语句,如果该Sql不关联唯一索引和(insert、update、delete)都不涉及唯一索引,写多读少的业务(账单类、日志类)mysql会把sql 维护到 change buffer 池中,把changge buffer 加载到redo log buffer ,持久化到磁盘(顺序写-快)redo log,后台merge过程,待需要读时,或者必须唯一索引更新时,会把从磁盘读取到 buffer pool 中的数据结合change buffer ,提交事务,返回结果。根据sql

2020-09-17 13:42:16 107

原创 mysql查询参数

show global variables like '%binlog_format%';##查看版本select version();show engines;##默认数据库引擎show variables like '%engine%';##事务隔离级别show variables like '%TRANSACTION_isolation%';show global variables like "tx_isolation";##会话级别参数 ,是否自动提交show var

2020-09-16 16:34:07 182

原创 面试点

Java集合:Java集合:Connection顶级接口 { List接口ArrayList:动态扩容数组 初始化:10 扩容后1.5倍 查询快,一次读取连续数组到cpu内存。一次用户态和核心态的切换。 LinkedList:双向链表,头尾都可添加 ,添加、删除快-分拆链表代价小于数组复制。 有序Vector:动态扩容数组+synchronized (线程安全)初始化:10 扩容后2倍Set接口HashSet 初始化:16 扩容后2倍 底层调用HashMap的k

2020-09-04 15:41:17 133

原创 Mysql自定义Sequence-实现序列自增功能

CREATE TABLE `sequence` ( `name` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '序列的名字', `current_value` int(11) NOT NULL COMMENT '序列的当前值', `increment` int(11) NOT NULL DEFAULT '1' COMMENT '序列的自增值', PRIMARY KEY (`name`)) ENGINE=InnoDB DEFAULT CHARS

2020-08-19 09:57:02 211

原创 mysql事务原理

mysql间隙锁https://blog.csdn.net/suixinsuoyu12519/article/details/86505388mysql RR 与RC mvcchttps://www.cnblogs.com/digdeep/archive/2015/11/16/4968453.html

2020-08-05 15:18:03 110

原创 MySQL半一致性读导致语句级Binlog复制错误1111

MySQL事务的隔离级别为read committed(或以下),或者设置了innodb_locks_unsafe_for_binlog参数会启用半一致性读特性。半一致性读参考: http://www.linuxidc.com/Linux/2017-02/140844.htmMySQL官方文档refman-5.6-en.a4.pdf 1833页 关于innodb_locks_unsafe_for_binlog参数对于半一致性读,我感觉一个是违反两阶段锁,将不符合条件记录的行级锁提前释放。另一个是Upd

2020-08-05 14:32:20 351

原创 面试问题100

1、HashMap源码-多线程下的线程安全,扩容造成的回环,1.7与1.8实现的区别。2、Mysql索引,事务,锁,mvcc版本锁,行锁,表锁,B+树与b树,hash结构的区别。3、redis 常见数据

2020-07-22 09:12:39 98

原创 JVM调优01

程序计数器(线程私有):是当前线程锁执行字节码的行号治时期,每条线程都有一个独立的程序计数器,这类内存也称为“线程私有”的内存。正在执行java方法的话,计数器记录的是虚拟机字节码指令的地址(当前指令的地址)。如果是Natice方法,则为空(唯一不会OOM的区域)。java 虚拟机栈(线程私有)每个方法在执行的时候也会创建一个栈帧,存储了局部变量,操作数,动态链接,方法返回地址。每个方法从调用到执行完毕,对应一个栈帧在虚拟机栈中的入栈和出栈。通常所说的栈,一般是指在虚拟机栈中的局部变量部分...

2020-06-27 22:51:37 89

原创 synchronized锁升级过程详解

注:synchronized锁流程如下第一步,检查MarkWord里面是不是放的自己的ThreadId ,如果是,表示当前线程是处于 “偏向锁”第二步,如果MarkWord不是自己的ThreadId,锁升级,这时候,用CAS来执行切换,新的线程根据MarkWord里面现有的ThreadId,通知之前线程暂停,之前线程将Markword的内容置为空。第三步,两个线程都把对象的HashCode复制到自己新建的用于存储锁的记录空间,接着开始通过CAS操作,把共享对象的MarKword的内容修改为自己新建..

2020-06-26 22:17:54 2025 2

原创 AQS原理

以非公平锁为例子:package com.jmdf.redis.project.aqs;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class TestAQS { private static Lock lock = new ReentrantLock(); public static void main(String[] args)

2020-05-30 19:59:08 124

原创 多线程状态转换

(初始状态)Thread t = new Thread------t.start() --→Runnable(可运行状态,cpu分配时间片,等由cpu调度)------>运行状态------->①t.sleep(mins)---->当前线程持有锁资源进入阻塞状态-------->sleep 时间到,解除阻塞状态②t.join ---->其他线程进入阻塞状态--------->执行当前线程③t.wait------>当前线程释放锁资源,进入等待队列。----.

2020-05-30 19:57:49 181

原创 JDK动态代理运行期生成的字节码文件class,获取反编译方法

2,打开HSD进入E:\project\JDK\lib 打开cmd 输入java -cp .\sa-jdi.jar sun.jvm.hotspot.HSDB3,打开另一个cmd输入E:\project\JDK\bin>jps -l我们可以看到进程id 178564,点击ok5,打开类浏览器6,查找proxy类并点击create .class创建完成后我们可以在E:\project\JDK\lib\com\sun\proxy目录查看生成的类文件。7,用jd-gui-.

2020-05-27 17:59:52 669

原创 静态成员常量的初始化

package com.jmdf.redis.project.jvm;import java.util.UUID;/** 当一个常量的值并非编译器可以确定的,那么其值就不会被放到调用类的常量池中, 这时在程序运行时,会导致主动使用这个常量所在的类,鲜艳会导致这个类被初始化。 */public class MyTest2 { public static void main(String[] args) { System.out.println(MyParent2.s

2020-05-24 22:39:38 376

原创 jvm对类的加载、链接、初始化

package com.jmdf.redis.project;/** * 对于静态字段,只有直接定义了该字段的类才会被初始化 * 当一个子类初始化时要求其全部父类已经初始化完毕。 * -XX:+TraceClassLoading 用于追踪类的加载信息并且打印出来 * * -XX:+<option> 表示开启option选项 * -XX:-<option> 表示关闭option选项 * -XX:<option>=<value> 表示将optio

2020-05-24 17:12:38 220

转载 从源码角度彻底理解ReentrantLock(重入锁)

源码分析ReentrantLock

2020-05-20 13:14:55 109

原创 window10查看内存情况

win+Rjconsole

2020-05-19 17:28:51 938

原创 guava-Retryer失败重试

package com.jmdf.world;import com.github.rholder.retry.*;import com.google.common.base.Predicates;import java.util.concurrent.ExecutionException;import java.util.concurrent.TimeUnit;/** * 业务代码抛出异常,重试策略guava-Retryer */public class retryer { pu

2020-05-19 15:32:11 564

原创 redis游标删除

public static void hscandel(Jedis jedis,String bigkey){ // 分批删除 try { ScanParams scanParams = new ScanParams(); // 每次删除 500 条 scanParams.count(10000); String cursor = ""; while (!cursor.equals("0")){ Sca...

2020-05-18 14:12:08 512

原创 Java并发——Synchronized关键字和锁升级,详细分析偏向锁和轻量级锁的升级

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/tongdanping/article/details/79647337目录一、Synchronized使用场景二、Synchronized实现原理三、锁的优化1、锁升级2、锁粗化3、锁消除一、Synchronized使用场景Synchronized是一个同步关键字,在某些多线程场景下,如果不进行同步会导致数据不安全,而Synchr

2020-05-14 17:29:03 214

原创 count(1)与count(id)与count(*)效率,以及覆盖索引,索引下推

select count(*)和select count(1)的区别:一般情况下,Select Count (*)和Select Count(1)两着返回结果是一样的,假如表没有主键(Primary key), 那么count(1)比count(*)快,如果有主键的话,那主键作为count的条件时候count(主键)最快,如果你的表只有一个字段的话那count(*)就是最快的count(1) > count() > count(主键id) > count(带索引column) &g

2020-05-11 16:15:42 901

原创 linux查看日志

查看关键字附近上下5行cat log.log | grep -C 5 "关键字"查看关键字以上5行cat log.log | grep -B 5 "关键字"查看关键字以下5行cat log.log | grep -A 5 "关键字"查看关键字附近上下500行,输出到文件中 aaa.txtcat log.log | grep -C 500 "关键字" > aaa.txt查看关键字的行号cat -n nohup.out |grep "关键字"358699 产生异常:ja

2020-05-11 10:07:29 279

原创 redis实现可重入锁

package com.jmdf.world;import redis.clients.jedis.Jedis;import java.util.HashMap;import java.util.Map;/** * redis实现可重入锁,借助ThreadLocal */public class RedisWithReentrantLock { private Threa...

2020-05-06 14:21:57 347

原创 redis中HLL的使用hyperloglog

redis中HLL的使用这里给出官方文档(中文翻译版)连接,里面关于时间复杂度、返回值、命令方式、使用案例等等都有详细说明本文对每个命令都简介总结并个人案例展示pfadd 添加影响基数估值则返回1否则返回0.若key不存在则创建时间复杂度O(1)127.0.0.1:6379> pfadd m1 1 2 3 4 1 2 3 2 2 2 2(integer) 1pfcount ...

2020-04-26 18:59:13 778

原创 redis实现布隆过滤器

package com.jmdf.world;import com.google.common.hash.Funnels;import com.google.common.hash.Hashing;import org.springframework.context.annotation.Bean;import org.springframework.stereotype.Compone...

2020-04-26 18:06:56 186

原创 ThreadLocal、InheritableThreadLocal、TransmittableThreadLocal,线程变量副本

<dependency> <groupId>com.alibaba</groupId> <artifactId>transmittable-thread-local</artifactId> <version>2.2.0</version>...

2020-04-24 18:08:45 142

原创 自然语言处理Opennlp

http://opennlp.sourceforge.net/models-1.5/<!-- https://mvnrepository.com/artifact/org.apache.opennlp/opennlp-tools --><dependency> <groupId>org.apache.opennlp</groupId>...

2020-04-24 17:51:29 219

原创 多线程编程下单例模式与多例模式的使用总结

最近研究了一下多线程在单例、多例下的使用,以及安全问题,总结如下:1、先说一下什么是单例模式和多例模式。(1):单例模式:一个对象在内存中只有唯一个实例。它有两个主要的特点:构造函数私有,它的唯一实例必须由自身创建。如果我们要使用单例对象,不能通过new去创建,要通过该对象的getInstance()方法获取这个唯一的实例。(2):多例模式:一个对象有多个实例,通过new创建。2、在多线程...

2020-04-24 11:23:26 861

原创 springMVC的controller单例和多例下成员变量的问题

首先上测试代码import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.Re...

2020-04-24 10:35:13 797

空空如也

空空如也

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

TA关注的人

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