<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[java_cch的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/java_cch</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; java_cch]]></copyright><item><title><![CDATA[理想汽车校招内推--大量hc等你来]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/135026087</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/135026087</guid><author>java_cch</author><pubDate>Fri, 15 Dec 2023 22:08:08 +0800</pubDate><description><![CDATA[投递链接: 欢迎大家投递。]]></description><category></category></item><item><title><![CDATA[理想汽车社招内推--大量招人]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/135026046</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/135026046</guid><author>java_cch</author><pubDate>Fri, 15 Dec 2023 22:05:54 +0800</pubDate><description><![CDATA[投递链接: https://li.jobs.feishu.cn/referral/m/position?理想汽车社招内推码: 2WC2NTG。]]></description><category></category></item><item><title><![CDATA[redis单线程模型阻塞问题浅析]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/124081710</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/124081710</guid><author>java_cch</author><pubDate>Sun, 10 Apr 2022 17:22:58 +0800</pubDate><description><![CDATA[redis知识速览
解决问题很好的一个方式就是先建立起“系统观”。这也就是说，如果我们想要深入理解和优化 Redis，就必须要对它的总体架构和关键模块有一个全局的认知，然后再深入到具体的技术点。
redis6.0之后就是多线程版本的了。
好久没写了，今日就浅分享一下我的第一次在公司的技术分享吧，拿走吧，拿这个和面试官过招。
两大维度和三大主线

redis常见问题图

举个例子，如果你遇到了 Redis 的响应变慢问题，对照着这张图，你就可以发现，这个问题和 Redis 的性能主线相关，而性能主线又和数据结]]></description><category></category></item><item><title><![CDATA[秋招面试上岸经验分享]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/121825820</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/121825820</guid><author>java_cch</author><pubDate>Thu, 09 Dec 2021 15:37:22 +0800</pubDate><description><![CDATA[欢迎有理想的你]]></description><category></category></item><item><title><![CDATA[七牛云面经1]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/120594747</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/120594747</guid><author>java_cch</author><pubDate>Sun, 03 Oct 2021 15:05:31 +0800</pubDate><description><![CDATA[三次握手



第一次握手
客户端向服务端发送连接请求报文段SYN=1。该报文段中包含自身的数据通讯初始序号seq=x。请求发送后，客户端便进入 SYN-SENT 状态。
第二次握手
服务端收到连接请求报文段后，如果同意连接，则会发送一个应答ACK=1，该应答中也会包含自身的数据通讯初始序号seq=y，发送完成后便进入 SYN-RECEIVED 状态。
第三次握手
当客户端收到连接同意的应答后，还要向服务端发送一个确认报文ACK=1。客户端发完这个报文段后便进入 ESTABLISHED 状态，服务端收到这.]]></description><category></category></item><item><title><![CDATA[spring循环依赖解决方案浅显易懂版]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/120445078</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/120445078</guid><author>java_cch</author><pubDate>Thu, 23 Sep 2021 22:50:08 +0800</pubDate><description><![CDATA[spring循环依赖



关于Spring bean的创建，其本质上还是一个对象的创建，一个完整的对象包含两部分：当前对象实例化和对象属性的实例化。


在Spring中，对象的实例化是通过反射实现的，而对象的属性则是在对象实例化之后通过一定的方式设置的。


那么我们要解决循环引用也应该从初始化过程着手，对于单例来说，在Spring容器整个生命周期内，有且只有一个对象，所以很容易想到这个对象应该存在Cache中，Spring为了解决单例的循环依赖问题，使用了三级缓存。



解决办法 三级缓存


s.]]></description><category></category></item><item><title><![CDATA[面试总结1]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/120407104</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/120407104</guid><author>java_cch</author><pubDate>Tue, 21 Sep 2021 23:44:59 +0800</pubDate><description><![CDATA[转转一面



你了解线程池吗？都有哪几种线程池？线程池初始化都有哪些参数？有几种拒绝策略？默认是哪一种？



1、newCachedThreadPool（），它是用来处理大量短时间工作任务的线程池，具有几个鲜明特点：它会试图缓存线程并重用，当无缓存线程可用时，就会创建新的工作线程；如果线程闲置时间超过60秒，则被终止并移除缓存；长时间闲置时，这种线程池，不会消耗什么资源。其内部使用SynchronousQueue作为工作队列。
2、newFixedThreadPool（int nThreads），重用指]]></description><category></category></item><item><title><![CDATA[移动面试总结]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/120401037</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/120401037</guid><author>java_cch</author><pubDate>Tue, 21 Sep 2021 13:48:29 +0800</pubDate><description><![CDATA[移动一面

1.Hashmap原理



Hashtable 是早期Java类库提供的一个哈希表实现，本身是同步的，不支持 null 键和值，由于同步导致的性能开销，所以已经很少被推荐使用。


HashMap与 HashTable主要区别在于 HashMap 不是同步的，支持 null 键和值等。通常情况下，HashMap 进行 put 或者 get 操作，可以达到常数时间的性能，所以它是绝大部分利用键值对存取场景的首选。


TreeMap 则是基于红黑树的一种提供顺序访问的 Map，和 HashMap]]></description><category></category></item><item><title><![CDATA[百度测开面试3]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/119879784</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/119879784</guid><author>java_cch</author><pubDate>Mon, 23 Aug 2021 23:02:41 +0800</pubDate><description><![CDATA[百度测开3


自我介绍


了解数据库吗，怎么登录数据库


在登录前要先启动MySQL服务，命令为net start mysql


登录命令为mysql -h hostname -u username -p
-h后面的参数是服务器的主机地址，-u后面的参数是登录数据库的用户名，-p后面是登录密码。


怎么查询数据库的前五条数据、更新数据表中的一条数据、删除一个数据库


select * from table_name limit 5,10


UPDATE table set username=‘]]></description><category></category></item><item><title><![CDATA[百度测开面试]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/119859903</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/119859903</guid><author>java_cch</author><pubDate>Sun, 22 Aug 2021 23:16:05 +0800</pubDate><description><![CDATA[百度测开
一面面经38min
问项目
get和post区别

Get是不安全的，因为在传输过程，数据被放在请求的URL中；Post的所有操作对用户来说都是不可见的。
Get传送的数据量较小，这主要是因为受URL长度限制；Post传送的数据量较大，一般被默认为不受限制。
Get限制Form表单的数据集的值必须为ASCII字符；而Post支持整个ISO10646字符集。
Get执行效率却比Post方法好。Get是form提交的默认方法。

说一下索引，索引底层实现，索引的缺点有哪些


1.索引的创建与维护索引]]></description><category></category></item><item><title><![CDATA[百度2021面试]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/119813263</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/119813263</guid><author>java_cch</author><pubDate>Thu, 19 Aug 2021 23:18:02 +0800</pubDate><description><![CDATA[百度面试


自我介绍（比较短，一直不知道怎么自我介绍）


问项目


Redis为什么快（基于内存，IO多路复用，单线程，使用C语言并有很多优化）
1. 纯内存操作，肯定快
数据存储在内存中，读取的时候不需要进行磁盘的 IO
2. 单线程，无锁竞争损耗
单线程保证了系统没有线程的上下文切换
使用单线程，可以避免不必要的上下文切换和竞争条件，没有多进程或多线程引起的切换和 CPU 的消耗，不必考虑各种锁的问题，没有锁释放或锁定操作，不会因死锁而降低性能；
3. C 语言实现，更接近底层操作
Redis 是]]></description><category></category></item><item><title><![CDATA[2021秋招腾讯一面附答案]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/119791239</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/119791239</guid><author>java_cch</author><pubDate>Wed, 18 Aug 2021 23:16:44 +0800</pubDate><description><![CDATA[腾讯一面


自我介绍


TCP三次握手，四次挥手过程


首先Client端发送连接请求报文，Server段接受连接后回复ACK报文，并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文，并分配资源，这样TCP连接就建立了。


总结三次握手过程：

第一次握手：起初两端都处于CLOSED关闭状态，Client将标志位SYN置为1，随机产生一个值seq=x，并将该数据包发送给Server，Client进入SYN-SENT状态，等待Server确认；
第二次握手：Serv]]></description><category></category></item><item><title><![CDATA[异步asyncore实现多人聊天室以及struct的基本创建与使用]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/119571024</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/119571024</guid><author>java_cch</author><pubDate>Tue, 10 Aug 2021 15:31:09 +0800</pubDate><description><![CDATA[struct

udp_struct客户端

udp_socket是面向无连接的不可靠的通信，所以建立通信比较简单

建立连接  socket
绑定连接  bind
发送信息  sendto(str,(ip,port))
关闭连接  close

# 1创建一个套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 2绑定一个本地信息
localaddr = ("", 7788)
udp_socket.bind(localadd]]></description><category></category></item><item><title><![CDATA[python安装PysimpleGUI报错解决方案]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/119358076</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/119358076</guid><author>java_cch</author><pubDate>Tue, 03 Aug 2021 20:12:26 +0800</pubDate><description><![CDATA[python安装PysimpleGUI报错解决方案

问题描述



点开details如下

PackagesNotFoundError: The following packages are not available from current channels:


解决方案

在终端打开安装

执行pip install PySimpleGUI


]]></description><category></category></item><item><title><![CDATA[TCP与三次握手四次挥手的恩怨情仇]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/119082132</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/119082132</guid><author>java_cch</author><pubDate>Sun, 25 Jul 2021 15:04:12 +0800</pubDate><description><![CDATA[Tcp重传：



报文重传是tcp最基本的错误恢复功能，它的目的是防止报文丢失


报文丢失的原因有很多：比如应用故障、路由设备过载、或者服务器宕机


重传机制在保证传输质量的同时也影响了传输的效率：

因为重传时间过短会引起网络阻塞问题，过长会造成资源浪费
针对以上问题，tcp设置了超时传播机制，该机制规定了当发送方给接受方发送数据包时，开启时长为RTO的重传定时器，如果在这个时间内没收到收到方的ack确实信息，则会重传
最大重传次数windows默认5次，linux默认15次



超时重传：当长.]]></description><category></category></item><item><title><![CDATA[分享一下今天公司组长给我们出的两个算法题]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/118905602</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/118905602</guid><author>java_cch</author><pubDate>Mon, 19 Jul 2021 17:37:42 +0800</pubDate><description><![CDATA[1求s=a+aa+aaa+aaaa+aa…a的值，其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加)，几个数相加有键盘控制。


我的思路：


首先是想到要用到循环，循环的次数等于相加的个数（5），然后是要用的输入的数字num(2)乘10的i次方再相加得到每一项的值：


Python代码实现

count = int(input("please input count:"))
num=int(input("please input num"))
#当输入两位数的时候取余.]]></description><category></category></item><item><title><![CDATA[2021校招一面题目及答案]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/118864261</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/118864261</guid><author>java_cch</author><pubDate>Sat, 17 Jul 2021 23:08:45 +0800</pubDate><description><![CDATA[1.String类型的几种存储方式，是否是线程安全的，两个字符串相加是否是新的实例？


有二种存储方式：

String str=“test”，这是第一种创建的“test”保存在（方法区）字符串常量池中，string是final修饰的，所以只能一次赋值不能改变，所以字符串不能改变
String str=new String(“test”),第二种方式在堆中开辟空间，当调用new()方法时，jvm将会调用String的构造函数，同时引用常量池中的test字符串，在堆中创建一个string对象，并返回堆中的.]]></description><category></category></item><item><title><![CDATA[python与Java不同的总结二（java转Python的给我看完）]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/118812833</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/118812833</guid><author>java_cch</author><pubDate>Fri, 16 Jul 2021 17:52:34 +0800</pubDate><description><![CDATA[类型工厂函数


Python2.2统一了类型和类，所有的内建类型现在也都是类，像内建函数int(),type(),list()现在都成成了工厂函数，但本质上他们还是类，当调用他们时，实际上是生成了该类的一个实例，就像工厂生产货物一样
所谓工厂函数，就是指这些内置函数都是类对象，当调用他们时，实际上是创建了一个类实例
所有的Python容器都能够存储不同的数据类型


类型分类


可变不可变分：

可变类型：列表和字典
不可变类型：数字、字符串和元组


tips:数字和字符串看似可变，实际上是创建了一.]]></description><category></category></item><item><title><![CDATA[python与Java不同的总结一（java转Python的给我看完）]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/118760124</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/118760124</guid><author>java_cch</author><pubDate>Thu, 15 Jul 2021 15:17:49 +0800</pubDate><description><![CDATA[好久没发博客了，最近一直在忙着入职的事，刚到公司没想到就让Python语言，作为java的资深小迷弟，怎能不更java相关的呢，java转Python的看过来

else


在 python 中，for … else 表示这样的意思，for 中的语句和普通的没有区别，else 中的语句会在循环正常执行完（即 for 不是通过 break 跳出而中断的）的情况下执行，while … else 也是一样。


pass



pass 一般用于占位置。
在 Python 中有时候会看到一个 def 函数:
d]]></description><category></category></item><item><title><![CDATA[hash冲突与java gc（面试精简浓缩版）]]></title><link>https://blog.youkuaiyun.com/java_cch/article/details/118532745</link><guid>https://blog.youkuaiyun.com/java_cch/article/details/118532745</guid><author>java_cch</author><pubDate>Tue, 06 Jul 2021 23:54:33 +0800</pubDate><description><![CDATA[是什么？


任意长度的输入，经过hash算法都会变成固定长度的输出，所以不同的输入，可能会存在相同的输出，这就是hash冲突


解决方法


再hash法：构造多个hash函数，产生冲突，用另外一个hash函数计算，直到不冲突
建立公共溢出区：把冲突的都放在另外一个地方
链地址法：将所有hash值相同的都链接到同一个链表中，java中的hashmap就是这么实现的
开放地址法：为产生冲突的求得一个地址序列

java GC

是什么


Java gc采用了分代思想，将java堆分成了新生代、年老代、.]]></description><category></category></item></channel></rss>