<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[听说的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u014484873</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014484873]]></copyright><item><title><![CDATA[websocket集群部署遇到的一些事]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/142528408</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/142528408</guid><author>u014484873</author><pubDate>Wed, 25 Sep 2024 17:21:00 +0800</pubDate><description><![CDATA[结果一发布到测试环境，gg了，进度条时好时坏，一开始还没查出来问题，没有往集群的方面想，还以为是哪里不小心自动关闭了websocket，查了n久之后，突然顿悟了，有集群啊，多台服务器，前端链接之后，session是保持了，但是一开始链接的可能是服务器A，后续的请求可能就到服务器B了，那就拿不到客户的session，就无法发送消息了。方法二 改网关的负载均衡策略，因为原来的负载均衡策略是均衡分发，改到源地址策略，就会固定ip请求到同一服务器了，和nginx ip_hash类似，但是也行不通，不能改策略。]]></description><category></category></item><item><title><![CDATA[mysql mvcc实现原理]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/124059785</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/124059785</guid><author>u014484873</author><pubDate>Sat, 09 Apr 2022 14:45:20 +0800</pubDate><description><![CDATA[mysql innodb mvcc]]></description><category></category></item><item><title><![CDATA[redis java实现秒杀]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/123837091</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/123837091</guid><author>u014484873</author><pubDate>Wed, 30 Mar 2022 10:50:12 +0800</pubDate><description><![CDATA[java 使用redis实现秒杀，delayQueue]]></description><category></category></item><item><title><![CDATA[格雷编码算法实现]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/122377657</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/122377657</guid><author>u014484873</author><pubDate>Sat, 08 Jan 2022 11:27:55 +0800</pubDate><description><![CDATA[数字序列范围为0-2^n-1,且第一位数字为0，每个数字只出现一次。

相邻两个数字的二进制编码只有一位不一样，首尾两个数字的二进制编码也是只有一位不一致，即“首尾相连”，因此又称循环码或反射码

代码实现逻辑，求n长度的格雷序列，前n-1的序列沿用原来n-1的格雷序列，后n-1长度的序列由前n-1对称转换，并加上2^n-1即可。

由于后n-1是由前n-1对称而来，相邻关系和前n-1一致，前n-1的首位末尾正好是后n-1的首位，前n-1的首位即是后n-1的末尾，加上2^n-1刚好相差一位。

java代码]]></description><category></category></item><item><title><![CDATA[二分查找(查找相等元素或者查找最接近元素)]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/121891395</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/121891395</guid><author>u014484873</author><pubDate>Sun, 12 Dec 2021 18:57:39 +0800</pubDate><description><![CDATA[二分查找，查找相等元素和最接近的元素]]></description><category></category></item><item><title><![CDATA[hashMap put方法]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/108502752</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/108502752</guid><author>u014484873</author><pubDate>Wed, 09 Sep 2020 21:33:27 +0800</pubDate><description><![CDATA[工作中有这样的场景，需要判断hashMap中是否包含某个key，如果不包含，则put该key进map，包含则再做对应的操作。

判断是否包含一般都用containsKey或者get!=null。

今天刷了一道算法题，然后去瞅了一眼hashMap的put方法的源码，发现put方法如果存在该key值，会返回旧的value值，不存在返回null,所以可以直接一步操作，直接用map.put(key,value)进行判断，不为null做xx操作，存在做xx操作。

map.put(key,map.getOrDefa]]></description><category></category></item><item><title><![CDATA[mysql技术内幕 innodb存储引擎第二版 第二章小结]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/103032496</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/103032496</guid><author>u014484873</author><pubDate>Tue, 12 Nov 2019 16:32:11 +0800</pubDate><description><![CDATA[2.1 概述



innodb存储引擎支持行锁，mvcc，外键，一致行非锁定读。

Mvcc：多版本并发控制。

一致性非锁定读：当读取的数据被加上x锁时，读取数据不会阻塞，读取的是该数据的快照，rc隔离级别下读取的是最新的一份快照，rr下读取的是事务开始时的快照。

如果要支持一致性锁定读，可以通过两种方式 1 select … for update 2 select ... lock in...]]></description><category></category></item><item><title><![CDATA[mysql技术内幕 innodb存储引擎第二版 第一章小结]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/102659220</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/102659220</guid><author>u014484873</author><pubDate>Mon, 21 Oct 2019 10:39:00 +0800</pubDate><description><![CDATA[一 mysql 体系结构和存储引擎



1.1 数据库和实例



数据库是指代存储数据的各种文件

实例就是数据库的后台线程以及一个共享内存区组成，也就是一个进程，可以用ps -ef|grep mysqld 查看实例进程的详细信息。

linux上读取配置文件的顺序 /etc/my.cnf-&gt;/etc/mysql/my.cnf-&gt;/usr/local/mysql/etc/my....]]></description><category></category></item><item><title><![CDATA[笔记]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/101062366</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/101062366</guid><author>u014484873</author><pubDate>Tue, 08 Oct 2019 17:11:28 +0800</pubDate><description><![CDATA[对象比较，使用java.util.Objects的equals方法

方法的实现是(a==b)||(a!=null&amp;&amp;a.equals(b))

如果a==b，直接返回true，如果对象不相等，则先判断a是否为null，再用equals与b比较，防止抛出a为null的异常

包装类值比较，使用equals方法，不要使用==，Integer类型的值在-128到127是在Intege...]]></description><category></category></item><item><title><![CDATA[CHECKSUM TABLE 语法（翻译自mysql官方文档）]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/99298615</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/99298615</guid><author>u014484873</author><pubDate>Mon, 12 Aug 2019 14:32:21 +0800</pubDate><description><![CDATA[CHECKSUM TABLE tbl_name [, tbl_name] ... [QUICK | EXTENDED]


check table is reports a table checksum

check table 命令提供了表的checksum。


this statement requires theselect privilege for the table

此语句需...]]></description><category></category></item><item><title><![CDATA[Integer创建小于128与大于128，创建的区别]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/89317085</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/89317085</guid><author>u014484873</author><pubDate>Mon, 15 Apr 2019 17:47:50 +0800</pubDate><description><![CDATA[Integer a = 1,等价于Integer a = Integer.valueOf(1);

Integer类内部维护了一个IntegerCache类，用数组维护-128到127之间的Integer值，除非显示声明了java.lang.Integer.IntegerCache.high的值,具体怎么声明，还没有找到。。。

一开始加载Integer类的时候，就初始化了IntegerCache...]]></description><category></category></item><item><title><![CDATA[spring集成dubbo简单使用,maven管理]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/88415823</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/88415823</guid><author>u014484873</author><pubDate>Tue, 12 Mar 2019 10:30:53 +0800</pubDate><description><![CDATA[dubbo配置

provider生产者需要配置注册中心,应用名称,协议方式,暴露的服务

consumer消费者需要配置注册中心,应用名称,引用服务

在配置注册中心,zookeeper注册中心

配置这些基本就能启动一个简单的dubbo应用,



spring和dubbo配置,maven构建项目,引入需要的jar包,pom.xml如下


 &amp;lt;dependencies&amp;gt;
   ...]]></description><category></category></item><item><title><![CDATA[jdk1.8 List接口默认方法说明]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/85563915</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/85563915</guid><author>u014484873</author><pubDate>Tue, 01 Jan 2019 22:44:36 +0800</pubDate><description><![CDATA[
int size();

返回list的长度。


boolean isEmpty();

判断list是否为空。


boolean contains(Object o);

判断list是否包含指定对象。


Iterator&amp;lt;E&amp;gt; iterator();

以适当的顺序返回列表中元素的迭代器


Object[] toArray();

将list中的元素以Object数组的形...]]></description><category></category></item><item><title><![CDATA[ArrayList jdk1.8源码分析]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/81638038</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/81638038</guid><author>u014484873</author><pubDate>Mon, 13 Aug 2018 22:06:28 +0800</pubDate><description><![CDATA[
ArrayList父类关系


ArrayList继承AbstractList抽象类，实现了List，RandomAccess，Cloneable，Seriazable四个接口。

RandomAccess，Cloneable，Seriazable是标记接口，本身没有内容。

RandomAccess用于标明实现该接口的List支持快速随机访问，主要目的是使算法能够在随机和顺序访问的list中表...]]></description><category></category></item><item><title><![CDATA[java学习（10-14）]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/78232460</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/78232460</guid><author>u014484873</author><pubDate>Sat, 14 Oct 2017 10:25:37 +0800</pubDate><description><![CDATA[一 Number类以及方法
Byte,Short,Interger,Long,Float,Double包装类均是Number类的子类,Number类位于java.util包内。

Integer x = 1;
      x =  x + 1;//相当于 Integer x=Integer.valueOf(1) ;x=Integer.valueOf(x.intValue()+1);只不过编译]]></description><category></category></item><item><title><![CDATA[linux下java获取ip]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/78200949</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/78200949</guid><author>u014484873</author><pubDate>Wed, 11 Oct 2017 10:37:57 +0800</pubDate><description><![CDATA[InetAddress.getLocalHost().getHostAddress().toString()]]></description><category></category></item><item><title><![CDATA[linux 下启动关闭oracle数据库以及oracle相关知识]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/78179812</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/78179812</guid><author>u014484873</author><pubDate>Mon, 09 Oct 2017 10:11:34 +0800</pubDate><description><![CDATA[1  以oracle用户登录服务器，命令为 su - oracle
2 进入sqlplus控制台，命令为 sqlplus /nolog
3 管理员身份登录,命令为 connect  /  as sysdba
4 启动数据库,命令为 startup,关闭命令为 shutdowm immediate
5 退出sqlplus控制台,命令为exit
6 进入监听器控制台,命令为 lsnrctl]]></description><category></category></item><item><title><![CDATA[java算24点]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/77503467</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/77503467</guid><author>u014484873</author><pubDate>Wed, 23 Aug 2017 11:05:05 +0800</pubDate><description><![CDATA[package test;

public class Ershisidian {

	static double array[] = { 2, 3, 8,13 };//需要算的数
	static String yunsuan[] = { "+", "-", "*", "/" };

	public static void main(String args[]) {
		for (int i = ]]></description><category></category></item><item><title><![CDATA[git学习]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/73730281</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/73730281</guid><author>u014484873</author><pubDate>Sun, 25 Jun 2017 22:23:55 +0800</pubDate><description><![CDATA[一、安装（Install）
1.Linux系统


从git官网上下载源码，解压，依次输入: 1./config 2 make 3 sudo make install


2.Windows系统


从https://git-for-windows.github.io下载，直接安装即可。


在开始菜单中找到Git bash，即说明安装成功，这个时候还需要一步操作。双击G]]></description><category></category></item><item><title><![CDATA[eclipse使用技巧]]></title><link>https://blog.youkuaiyun.com/u014484873/article/details/71081933</link><guid>https://blog.youkuaiyun.com/u014484873/article/details/71081933</guid><author>u014484873</author><pubDate>Tue, 02 May 2017 15:39:38 +0800</pubDate><description><![CDATA[一  文件被外部修改自动刷新
window->preference->general->workspace
有两个选择
1 refresh on access   这个应该是每次打开的时候刷新
2 refresh using native hooks or polling  这个应该是轮询刷新吧(不知道对不对，找不到中文介绍，先记着)
自己感觉用第一种好点，如果第二种是轮询刷新的话，比较]]></description><category></category></item></channel></rss>