自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 java中的位运算

原码:符号位+数值反码:正数的反码就是原码,负数的反码是符号位不变,其他部分取反补码:正数的反码就是原码,负数的反码是符号位不变,其他部分取反+1计算机的数值相加,补码+补码=补码,得到原码还需要进一步运算java中的位运算:与运算符号:&或运算符号:|异或运算符号:^ 例子: 不同的为1,相同的位0取反符号:~左移运算符:<<设x为被位移值,y为本次位移的位数,z为x所属类型的最大存储位数:x << y = x <&...

2022-02-20 22:38:06 218

原创 Zookeeper学习记录

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务linux上安装:官网下载地址:Apache Downloads1.下载下来选择自己的目录解压,tar -zxvf 压缩包2.解压以后,直接在bin的目录下执行 ./zkServer.sh 启动会失败,因为conf下缺少zoo.cfg文件3.将conf下的zoo_sample.cfg改为zoo.cfg# zookeeper时间配置的基本单位tickTime=2000# follower允许初始化连接lead.

2022-02-13 15:10:56 1168

原创 ThreadLocal、InheritableThreadLocal和TransmittableThreadLocal

因为项目里需要用到线程变量共享,首选使用了ThreadLocal,但是项目里对大数据量处理转了异步操作,所以需要子线程拿到父线程的变量,于是使用了InheritableThreadLocal进行测试,然后发现了一个问题,InheritableThreadLocal必须要线程初始化的时候将inheritableThreadLocals这个变量放到子线程的inheritableThreadLocals这个变量上,但是我们的项目异步又是用得线程池,导致线程复用,线程不会每次都初始化,使用了阿里的Transmitt

2022-01-17 00:17:29 500

原创 10 | MySQL为什么有时候会选错索引?

mysql的表支持多索引,但是如果没有指定使用的索引,将由mysql确定使用哪个索引。执行的很快的语句,由于MySQL选错了索引,导致执行速度变得很慢?CREATE TABLE `t` ( `id` int(11) NOT NULL, `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `a` (`a`), KEY `b` (`b`))select * from t where a

2022-01-12 01:28:01 203

原创 09 | 普通索引和唯一索引,应该怎么选择?

从性能的角度考虑,你选择唯一索引还是普通索引呢?查询分析:由于是用的B+树,从树根找到叶子节点,也就是数据页,数据页内使用二分法来定位记录普通索引:找到满足条件的记录,继续向下查,知道碰到不满足条件的记录唯一索引:找到一个满足条件的记录,停止检索由于InnoDB的数据是按数据页来读写的,也就是说读取时是将一页数据读取进内存,数据页默认大小是16kb,所以在数据唯一的情况下,普通索引也就多做了一次判断,只需要一次寻址和计算。除非是在不同数据页中,操作会复杂些,但是对于整型字段,一个数据

2022-01-10 01:46:19 350

原创 08 | 事务到底是隔离的还是不隔离的?MVCC

思考:首先,事务在可重复读的隔离级别下,同一事务读的值不会改变,那么在发生行锁竞争等待中,别的事务进行了数据修改,结果如何?此处Q1读到的值是3,而Q2读到的值是1原因:主要是因为mvcc(多版本并发控制)mvcc基本概念:undo log:记录数据库的操作版本链:存储的记录中除了本身数据,还有两个字段trx_id(事务id,自增),roll_pointer(回滚指针),回滚指针形成版本链readview: 快照,在版本链中找到合适的版本假设: 1. 事务 A 开始前

2022-01-09 00:32:28 253

原创 07行锁功过:怎么减少行锁对性能的影响?

行锁是由引擎层实现,MyISAM不支持,InnoDB支持,行锁可以提高并发度两阶段锁说起:两阶段锁协议:InnoDB事务中,行锁在需要的时候才添加,并不是不需要的时候释放,而是在事务提交时才释放因此假如事务中需要锁多个行,要把最可能出现锁冲突的锁放在最后,因为这样可以减少锁等待的时间,提高并发度这样解决了行锁占用时间过长的问题,但是还是有可能发生死锁?死锁构建:事务A 需要id =1 和2 的锁 ,事务B需要id=2 和1 的锁 ,事务A拿到1的锁等待2的锁,事务B拿到2的锁等待1的锁

2022-01-08 20:34:09 230

原创 git正确回滚代码(idea操作)

本地:选择要回滚的分支版本,reset设置即可Reset Type 有三种:mixed 默认方式,只保留源码,回退commit和index信息soft 回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commithard 彻底回退,本地源码也会变成上一个版本内容远程:1、(不推荐)git push -f 版本号 ;不合适,远程的是删掉了,但是别人的分支已经存在回滚的代码,再次提交依然会提交上去2、(推荐)右键分支,找到Revert,然

2022-01-06 14:32:06 1048

原创 06-全局锁和表锁

全局锁:就是对整个数据库实例加锁全局读锁命令:flush tables with read lock数据库全局读锁情况下,其他操作都不可以使用场景:全库逻辑备份若全库逻辑备份中不加全局锁,可能导致数据不正常Mysql自带逻辑备份工具mysqldump,使用single-transaction参数,导数据之前会开启一个事务,保证拿到一致性视图,又因为mvcc的支持,整个过程可以进行数据更新。一致性读这么好,为什么还要全局读锁?一致性视图要求支持事务和特定的隔离级别,对于不支持事务.

2022-01-06 01:13:52 466

原创 Java Web中文编码问题

计算机中存储的基本单元是字节,1字节=8bit,能表示的字符范围是0~255编码方式:ASCLL码:总共128个,1字节的低7位表示,0~31是控制字符,如换行回车删除;32~126是打印字符,可以输入并显示ISO-8859-1:包含大部分西欧语言字符,仍然是单字节编码,可表示256个字符GBK:汉字内码规范,可表示21003个汉字UTF-16:用两个字节来表示Unicode的转化格式,采用定长的表示方法,不论什么字符都可以用两个字节表示,两个字节就是16bit,两个字节可以表示一个字符

2022-01-04 23:28:46 227

原创 web请求过程

一个http请求跟建立一个Socker连接区别不大,只不过outputStream.write写的二进制字节数据格式符合http格式手动发起请求的方式:代码:httpclient命令:curl + url浏览器缓存机制:ctrl + F5强制刷新,直接到服务器访问,原因:请求头携带Pragma:no-cache 和Cache-Control:no-cacheDNS域名解析过程:1.先在浏览器缓存里找到这个域名对应的解析的IP地址2.浏览器缓存中没有,则在操作系统缓存中找D

2022-01-03 22:53:12 490

原创 并发编程的挑战

1.1 上下文切换单核处理器也支持多线程,通过给每个线程分配时间片实现,感觉像是多个线程同时执行,时间片一般几十毫秒线程获取时间片,到结束,记录当前任务的状态,到下次获取 时间片执行该任务的过程叫上下文切换,会影响多线程的执行效率。可以通过vmstat 1 查看线程的执行 cs列为线程切换的频率,普通的都是1秒切换上千次如何减少上下文切换的?无锁并发编程,多线程竞争锁时,引发上下文切换,可以利用一些办法避免使用锁,如将数据的ID按照Hash取模分段,不同线程处理不同段的数据CAS算法,Atomi

2021-11-09 22:25:09 51

原创 深入分析ClassLoader工作机制

classLoader:类加载器类加载器的作用:将class加载进jvm;审查类是由哪个类加载器加载的;将类字节码重新解析成JVM统一的对象格式ClassLoader是个抽象类,一般实现自己的ClassLoader,会继承URLClassLoaderClassLoader的等级加载机制:类加载器 加载目录 继承自 启动类加载器(BootstrapClassLoader) %JRE_HOME%\lib 本身是顶级加载器 扩展类加载器(ExtensionClass

2021-10-27 21:56:00 844

原创 Servlet工作原理解析

一个context对应着一个web工程一个wrapper对应一个servlet1.1 Servlet容器启动过程tomcat7以后支持嵌入式功能,可直接通过构建一个tomcat对象,调用start方法启动。添加一个web应用会调用addWebapp方法,创建一个standardContext容器,addWebapp(Host host,String url,String path)host:context的上层容器url:应用的访问路径path:应用的实际路径Tomca...

2021-10-24 11:55:08 447

原创 tomcat学习记录

Tomcat两大组件:Connector 和 Container一个Container 可以对应多个Connector ,然后他们一起组成一个service,service只是在他们外面包了一层,把他们组装到一起,对外提供服务Server:一个Server管理多个Service,Server可以管理Service的生命周期,控制Server的是Tomcat的startup,Server会继续调用Service的startService:标准实现类是StandService,它不仅实现了S...

2021-10-19 23:48:39 91

原创 Rabbitmq入门5

5.1 rabbitmq常用命令rabbitmqctl 工具的标准语法如下( []表示可选参数, {}表示必选参数):vhost: 每一个vhost都可以看做一个rabbitmq服务器创建一个vhost: rabbitmqctl add_vhost 名称查看所有vhost: rabbitmqctl list_vhosts 删除一个vhost: rabbitmqctl delete_vhost 名称添加用户:rabbitmqctl add_user...

2021-10-17 15:30:41 189

原创 Rabbitmq入门4

4.1 channel.basicPublish中的mandatory 和immediate 详解mandatory :为true,消息无法发送到队列时,会将消息返回给客户端;为false,会丢弃消息。判断消息是否路由成功:通过channel.addReturnListener加returnKListener监听器channel.basicPublish(EXCHANGE_NAME , "", true, MessageProperties.PERSISTENT_TEXT_PLAIN...

2021-10-14 23:16:46 654

原创 RabbitMq入门3

3.1 Rabbitmq连接1 用来在给定的参数(l 地址、端口号、用户名、密码等)ConnectionFactory factory = new ConnectionFactory(); factory.setUsername(USERNAME); factory.setPassword(PASSWORD); factory.setVirtualHost(virtualHost) ; factory.setHost(IP ADDRESS); factory . setPort(PORT) ;

2021-10-11 01:25:55 137

原创 RabbitMq入门二

2.1 rabbitmq整体上是一个生产者消费者模型,主要负责接受存储转发消息2.2 RabbitMq相关概念Producer: 生产者,就是投递消息的一方。 消息一般包含两个部分: 消息体(payload):真正的消息内容 标签(label):路由key和交换机名称Consumer: 消费者 就是接收消息的一方。只会消费消息体Broker:消息服务器的节点,也可以看做是Rabbitmq服务器...

2021-10-08 22:42:23 125

原创 RabbitMq入门了解

1.1 什么是消息中间件?消息队列中间件 (Message Queue Middleware ,简称为 MQ) 是指利用高效可靠的消息传递 机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。个人理解:就是将消息放在第三方服务器,然后再处理1.2消息中间件的作用?异步解耦:适用于不想立刻处理的任务可以放在消息队列里慢慢处理,比如注册需要绑定邮箱,可以放队列里慢慢处理顺序保证:可以保证任务执行有序削峰

2021-10-08 13:34:25 89

原创 VM上部署springboot前后端分离项目

前提在虚拟机上安装mysql 和nginx使用若依项目作为测试项目,版本是2.3.0修改项目的数据库地址,标红处是虚拟机地址,替换上自己的虚拟机地址,可以在虚拟机上使用 ipconfig 命令查看在数据库中创建连接自己虚拟机地址的数据库,创建一个ry-vue数据库(与自己上面的配置一致)将项目中的数据库文件导入,导入完成数据库会自动创建一些表修改自己的redis配置为虚拟机地址,配置自己的密码修改日志配置,日志输出位置为自己的地址,在encoder下增加字...

2021-10-08 01:15:39 650

转载 jakson的使用

https://juejin.cn/post/6844904166809157639

2021-04-27 00:03:23 123

原创 docker安装

安装docker:yum包更新到最新:yum update(很耗时间,提前准备)安装需要的软件包:yum install -y yum-utils device-mapper-persistent-data lvm2设置yum源为阿里云:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装docker: yum install docker-ce -y检

2021-03-10 23:46:30 43

原创 记录一下小小的sql:找出每个班级里身高最高的人,并按班级排序

-- 导出 表 test.tbl_middle_class 结构CREATE TABLE IF NOT EXISTS `tbl_middle_class` ( `id` int(11) NOT NULL, `name` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;-- 正在导出表 test.tbl_middle_class 的数据:~3 rows (大约)DE.

2021-03-05 23:00:12 870 1

原创 nginx初学,nginx启动成功,浏览器访问失败

1.查看防火墙状态ststemcal status firewald2.停止防火墙ststemcal stop firewald3.重新访问

2020-11-29 16:12:24 243

转载 配置eclipse调试和idea调试play项目

eclipse:https://www.cnblogs.com/Chaos/archive/2011/04/16/2018444.htmlidea:https://www.iteye.com/blog/wen66-1397677idea配置注意:参数之间是两个空格

2020-08-17 16:40:48 167

原创 计算任选 3个 (1 到 9 )的自然数,他们能通过 加 减 乘 除 运算组合 形成 24 。例如 , 1,3,8 就能 通过 1X3X8 这样的运算 得到 24. 或者 7+8 +9 = 24

记录某面试题答案如下:方法复杂,大佬勿喷public class cfb { public static void main(String[] args) { Set<String> set = new TreeSet<>(); /*String s1=compare(9,4,9); System.out.println(s1);*/ String s1 = null; for(int

2020-07-30 11:03:57 1525 2

原创 简单算法:把一个数分解成几个数之和

小白记录,大佬勿喷!!/**分析 2 1+1; 3 1+2,1+1+1 4 1+3,2+2,1+1+2,1+1+1+1 5 1+4,2+3,1+1+3,1+2+2,1+1+1+2,1+1+1+1+1 6 1+5 2+4 3+3 1+1+4 1+2+3 1+1+1+3 1+1+2+2 1+1+1+1+2 1+1+1+1+1+1 *代码实现 * 1.定义一个外部变量(用来记录递归的次数) * 2.定义一个静态方法,进行调用 * 3.两种情况分别为a为奇数和偶数的情况 * (1)a为偶

2020-07-02 00:54:30 3860

原创 springBoot初学出现问题 {dataSource-1} inited

网上大部分意见:1、清理缓存 2.清除断点我试了都不行我的意见:1、检查是否能进入要使用的路径, 2、若能进入,应该是数据库配置的url有问题 3、若url没问题,重新创表即可...

2020-05-06 10:09:21 2644

原创 配置域名解析为地址

1.找到记事本,右击用管理员身份运行2.点击左上角的文件,选择打开3.若没有文档,查看右下角的将文本文档换成所有文件4.双击hosts文件,进入编辑;例如:192.xxx.xxx.xxx sell.com,(记得ctrl+s保存)5.可以cmd,进入本机,ping+上面地址对应的域名,查看是否成功...

2020-03-25 21:29:17 212

转载 强制停止 yum update,安装docker,报错Another app is currently holding the yum lock; waiting for it to exit...

https://blog.csdn.net/testcs_dn/article/details/48711805

2020-03-20 08:46:29 343

原创 安装成功centos,输入ip addr却不出现ip

1.启动centos ,进入,输入命令 vi /etc/sysconfig/network-scripts/ifcfg-ens332.将ONBOOT权限改为yes,保存退出,按Esc,输入:wq3.重启网络服务sudo service network restart提示:若重启失败,报错让你查看network.service 的状态,(1).输入命令systemctl ...

2020-03-19 20:11:43 170

原创 k8s: pod已经运行了,浏览器访问不到

1.在虚拟机上curl 命令:curl http://192.168.11.129:30001/(后面地址是你要访问的地址)如果访问不到,可能是安装运行的错误可以用命令 : kubectl describe pod pod的name 这个是用来查询pod的详情,里面有提示,可以根据提示找错误,我的错误就是配置文件的镜像名写错了,浪费了一下午,重装卸载,如果...

2020-03-18 18:35:31 2675 1

转载 kubectl get pods一直显示ContainerCreating

来自https://blog.csdn.net/lileihappy/article/details/80444192两个小问题:1.dockerpull 复制需要注意要分开变成 docker pull2. 他的:rpm2cpiopython-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout...

2020-03-18 10:31:17 475

原创 彻底卸载secureCRT,并重装

1. win+r 进入cmd ,输入regedit进入注册表,删除HKEY_CURRENT_USER和HKEY_LOCAL_MACHINA两个根键下的SOFTWARE子键中的VanDyke删除即可,HKEY_CURRENT_USER保存的是当前用户配置,HKEY_LOCAL_MACHINA是当前计算机配置信息,务必将两个根键下的vandyke同时都删除。2.进行重装...

2020-03-17 16:37:35 12786 1

原创 docker安装报错

1.--> 处理 1:docker-ce-cli-19.03.8-3.el7.x86_64 与 docker 的冲突--> 处理 1:docker-ce-cli-19.03.8-3.el7.x86_64 与 docker-io 的冲突--> 处理 3:docker-ce-19.03.8-3.el7.x86_64 与 docker 的冲突--> 处理 3:docker-...

2020-03-16 17:09:48 545

原创 k8s入门tomcat走过的坑

1.Get https://192.168.2.119/v2/: dial tcp 192.168.2.119:443: connection : connection refused连接不上,查看自己的容器是不是没打开。2.剩下的看这个大哥的https://www.cnblogs.com/spll/p/10075781.html第一次写,见谅见谅...

2020-03-16 16:04:01 272

Android studio

Android studio 好用  

2018-06-26

空空如也

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

TA关注的人

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