<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[墨柔千城的博客]]></title><description><![CDATA[Java爱好者]]></description><link>https://blog.youkuaiyun.com/WHEeeee</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; WHEeeee]]></copyright><item><title><![CDATA[JUC包下的常见类]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/119716462</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/119716462</guid><author>WHEeeee</author><pubDate>Sun, 15 Aug 2021 17:13:34 +0800</pubDate><description><![CDATA[JUC：

可重入锁ReentrantLock：


lock写在try之前
使用完锁之后，一定要在finally进行unlock


信号量Semaphore：用来控制锁的数量，实现限流


acquire（）：尝试获取锁，获取到，执行后面的业务逻辑，获取不到，则进入阻塞等待状态
release（）：释放锁，发布的意思


计数器CountDownlatch：



await（）：当线程数量不满足计数器的数量时，执行此方法就会阻塞等待，直到数量满足之后，才继续执行


countDown：计数器操作-1]]></description><category></category></item><item><title><![CDATA[JVM常见知识点总结]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/119716372</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/119716372</guid><author>WHEeeee</author><pubDate>Sun, 15 Aug 2021 17:11:54 +0800</pubDate><description><![CDATA[1.概念
1.1JVM概念
JVM（Java Virtual Machine）：Java虚拟机，JVM是一种用于计算设备的规范，他是一个虚构出来的计算机。
问题：Java语言如何实现跨平台（与平台无关性）？
答：引入JVM后，Java语言在不同平台上运行时不需要重新编译。Java语言使用JVM屏蔽了与具体平台相关的信息，使得Java语言编译程序只需生成在JVM上运行的目标代码（字节码），这样每个平台应用其对应的JVM来执行字节码文件。特点：一次编译，多次运行。
1.2常见虚拟机
常见的虚拟机：JVM、VMw]]></description><category></category></item><item><title><![CDATA[2021-8-8百度面经（一二三面）]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/119572329</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/119572329</guid><author>WHEeeee</author><pubDate>Tue, 10 Aug 2021 16:34:12 +0800</pubDate><description><![CDATA[Java研发岗位，一天之内，三面全部过完，就是不知道结果如何。
约的9点一面

自我介绍。
三道编程题（可用在线工具写或IDEA写）
题目：快排、股票最大利润、两个数的和；快排和最大利润没啥说的，两个数的和会问你还有没有其他方法，例如：哈希值计算，主要想问你最优方法。
操作系统的进程和线程的状态，进程和线程的区别。
希尔排序的原理。
MySQL事物的隔离级别，事物引发的问题，幻读与不可重复读的区别。
MySQL解决事物问题的操作，MVCC添加版本号。
MySQL读锁和写锁，功能。这里问道平常有没有使用过读写]]></description><category></category></item><item><title><![CDATA[七大常见排序算法]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/118073401</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/118073401</guid><author>WHEeeee</author><pubDate>Sun, 20 Jun 2021 18:48:12 +0800</pubDate><description><![CDATA[排序算法1.直接插入排序1.1思路1.2代码实现1.3复杂度分析1.4稳定性2.希尔排序2.1思路2.2代码实现2.3复杂度分析2.4稳定性3.直接选择排序3.1思路3.2代码实现3.3复杂度分析3.4稳定性4.冒泡排序4.1思路4.2代码实现4.3复杂度4.4稳定性5.堆排序5.1思路5.2代码实现5.3复杂度分析5.4稳定性6.快速选择排序6.1思路6.2代码实现6.3复杂度分析6.4稳定性7.归并排序7.1代码实现
1.直接插入排序
1.1思路
直接插入排序是以当前节点为起始点，向前遍历，并找到自己自]]></description><category></category></item><item><title><![CDATA[Java多线程高阶——锁的策略]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/117668552</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/117668552</guid><author>WHEeeee</author><pubDate>Mon, 07 Jun 2021 17:15:55 +0800</pubDate><description><![CDATA[目录1.死锁1.1造成死锁的4个条件（缺一不可）1.2死锁解决方案1.3死锁排除工具2.锁的策略2.1乐观锁2.1.1CAS（compare and swap，比较并且交换）2.1.2CAS实现原理2.1.3乐观锁的实现Atomic*2.1.4ABA问题叙述：转账（多线程并发引起的问题）2.2悲观锁2.3共享锁/非共享锁（独占锁）2.4公平锁2.5自旋锁2.6可重入锁3.面试题：你是怎么理解乐观锁/悲观锁的，具体怎么实现4.单例模型4.1饿汉模型4.2懒汉模型4.3单例模式注意问题5.自定义阻塞队列
1.死]]></description><category></category></item><item><title><![CDATA[Java开发需知的网络知识]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/117667234</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/117667234</guid><author>WHEeeee</author><pubDate>Mon, 07 Jun 2021 16:52:04 +0800</pubDate><description><![CDATA[目录1.协议2.网络模型2.1OSI2.2TCP/IP2.3TCP/IP网络分层模型中，各层常见协议及端口号：3.UDP3.1特点3.2协议头内容3.3使用场景4.TCP4.1协议头内容4.2TCP十大特性4.2.1确认应答4.2.2超时重传4.2.3链接管理4.2.4滑动窗口4.2.5流量控制4.2.6拥塞控制4.2.7延迟应答4.2.8捎带应答4.2.9面向数据流4.2.10TCP异常处理机制5.IP6.MAC7.面试题：当输入一个URL之后，会发生什么？
1.协议
概念：用于保证网络传输双方能正常通讯]]></description><category></category></item><item><title><![CDATA[MySQL知识点总结]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/117624566</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/117624566</guid><author>WHEeeee</author><pubDate>Sun, 06 Jun 2021 13:01:36 +0800</pubDate><description><![CDATA[目录1.基础使用1.1数据库操作1.2表操作1.3新增数据1.4数据查询1.5数据查询（进阶）1.5.1.内联查询1.5.2.外联查询1.5.3.子查询2.索引2.1普通索引2.2主键索引2.3唯一索引2.4组合索引2.5查询索引2.6删除索引2.7索引注意事项2.8最左匹配原则3.事务3.1事务的特性（ACID）3.2并发事存在的问题3.3事物的隔离级别（四个）4.执行引擎/日志5.表的约束6.表的关系
1.基础使用
1.1数据库操作
查询所有的数据库：show databases;
删除数据库：dele]]></description><category></category></item><item><title><![CDATA[Java线程池看懂这一篇就够了！]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/117589997</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/117589997</guid><author>WHEeeee</author><pubDate>Sat, 05 Jun 2021 11:22:02 +0800</pubDate><description><![CDATA[线程池1.概念2.为什么要使用线程池？2.1线程的缺点2.2使用线程池的原因3.线程池的创建方法3.1创建固定个数的线程3.2创建带缓存的线程池3.3创建能执行定时任务的线程池3.4创建单个执行定时任务的线程池3.5创建单个线程的线程池3.6根据当前工作环境（CPU核心数、任务量）异步线程4.Executors创建线程池的问题5.开发中使用的线程池技术6.线程池特征
1.概念
概念：使用池化技术来管理和使用线程的技术，就叫做线程池。
线程池里面包含的重要内容：

线程
任务队列

2.为什么要使用线程池？
]]></description><category></category></item><item><title><![CDATA[Java必备知识——多线程]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/117476777</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/117476777</guid><author>WHEeeee</author><pubDate>Wed, 02 Jun 2021 17:45:42 +0800</pubDate><description><![CDATA[进程与线程一、进程1.什么是进程？2.进程ID3.并发与并行4.进程与线程概念区分4.1进程可以共享的资源：4.2进程不可共享的资源：5.进程管理模块PCB结构体5.1何为PCB6.进程调度及进程状态6.1进程状态6.2进程调度二、线程1.线程概念2.线程的创建方式2.1继承Thread类实现线程创建（2种）2.2实现Runnable接口的方式（3种）2.3实现Callable接口的方式（一种）3.线程的休眠3.1线程的通讯机制3.2wait和sleep区别4.线程的属性4.1线程构造方法4.2线程的常用属]]></description><category></category></item><item><title><![CDATA[使用git绿色、红色图标不显示的问题]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/117092741</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/117092741</guid><author>WHEeeee</author><pubDate>Thu, 20 May 2021 22:09:08 +0800</pubDate><description><![CDATA[安装好Git之后建立本地仓库，然后发现没有图标，其实也可以用。
修改了电脑属性-高级系统设置-性能里面，还是没图标，然后找到这个解决方法：
解决过程：
1.win+r，regedit.exe,打开注册表 按照文件的层次关系依次找到
HKEY_LOCAL_MACHINE\Software\Microsoft\windows\CurrentVersion\Explorer;
修改键名 Max Cached Icons (最大缓存图标) 的值为 2000 （没有这个键，可以新建）
重启电脑
-----------]]></description><category></category></item><item><title><![CDATA[maven项目部署至阿里云服务器]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/115769071</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/115769071</guid><author>WHEeeee</author><pubDate>Fri, 16 Apr 2021 18:41:43 +0800</pubDate><description><![CDATA[项目部署一、云服务器二、使用XShell连接服务器三、配置服务器四、使用XFTP来将maven项目生成的war包上传
最近做了一个《个人博客》的项目，并且将其部署到了直接的服务器上，下面我总结一下，项目部署到服务器的基本操作。
一、云服务器
我的服务器是阿里云的，给大家看一下相关的配置

这里要注意一定要是centos 7.5的服务器，其他版本的情况不清楚，并且给自己的服务器快速添加一个安全组。

并且需要记住自己的公网IP，后面我们需要用到
二、使用XShell连接服务器
1.创建连接
打开xshell，]]></description><category></category></item><item><title><![CDATA[Scanner类中next()和nextLine()方法的区别]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/115608229</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/115608229</guid><author>WHEeeee</author><pubDate>Sun, 11 Apr 2021 22:34:41 +0800</pubDate><description><![CDATA[目录Scanner中next()的用法Scanner中nextLine()的用法值得一提的是！

最近做牛客的题，根据题目要求，我们需要自己准备IO接口，这时候我们需要使用Scanner类来进行实现，但是在做题中发现同样的代码，使用next（）方法可能会造成一部分的测试用例不通过，而nextLine（）方法则可以完美通过，今天研究了一下，找到了答案。

Scanner中next()的用法
		Scanner sc = new Scanner(System.in);
        System.out.pr]]></description><category></category></item><item><title><![CDATA[MySQL安装教程]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/115286833</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/115286833</guid><author>WHEeeee</author><pubDate>Sun, 28 Mar 2021 20:51:55 +0800</pubDate><description><![CDATA[MySQL安装教程一、打开MySQL官网进行安装包的下载二、本地安装三、运行MySQL
一、打开MySQL官网进行安装包的下载
在搜索的时候找到有官方字样的链接然后打开
链接：MySQL官网

进入官网后，找到download页面

将页面下拉找到如下链接

接着找到适用于windows的版本

此时，如果你想下载最新版本–8.0则直接点击下载即可

如果你想下载5.7版本，则需点击右上角链接进行版本切换

进入如下页面下载即可


注意进行后端开发我们选择下面的community版本！！！

二、本地安装]]></description><category></category></item><item><title><![CDATA[关于CMD打不开MySQL服务的问题]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/115286563</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/115286563</guid><author>WHEeeee</author><pubDate>Sun, 28 Mar 2021 20:23:43 +0800</pubDate><description><![CDATA[使用CMD直接访问MySQL服务
今天遇到了cmd不能访问mysql的问题，在cmd中输入mysql字样，显示不能识别此命令，查询了一些资料，最后发现是环境变量配置的问题。
下面说一下具体操作：
1.右键我的电脑，点击属性，找到高级系统设置

2. 点击环境变量进行配置

3. 在系统变量中找到Path变量，点击编辑

4. 新建环境变量，将mysql安装路径下的bin路径添加至此（路径可以参考下图路径去查找），点击确认即可

5.效果展示
在cmd中输入如下命令，即可直接访问mysql服务
mysql -]]></description><category></category></item><item><title><![CDATA[浏览器输入一个http协议的url，如何定位服务资源？(一次完整的HTTP请求过程)]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/115209424</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/115209424</guid><author>WHEeeee</author><pubDate>Thu, 25 Mar 2021 15:46:17 +0800</pubDate><description><![CDATA[执行过程介绍URL请求流程一、域名解析二、TCP三次握手三、建立TCP连接后发起http请求四、服务器收到请求并响应HTTP请求五、浏览器解析htm代码,并请求htm代码中的资源(如js、css图片等)六、断开TCP连接
介绍URL

由图片可知URL的组成成分，首先判断是那种协议HTTP或者HTTPS等，接着会进行登录信息的判断，这里根据使用的GET或POST方法，来决定是否在URL上显示用户相关信息，接着是服务器地址加端口号，服务器地址必须得是正确的，端口号可以不写，如果不写代表着使用默认的端口号，接着]]></description><category></category></item><item><title><![CDATA[github和gitee同步上传的方法]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/115073617</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/115073617</guid><author>WHEeeee</author><pubDate>Mon, 22 Mar 2021 13:30:46 +0800</pubDate><description><![CDATA[Gitee与GitHub关于gitee的一些配置gitee添加SSHKey设置TortoiseGit
最近github网页是越来越难登录了，于是想转战Gitee但是又舍不得自己的仓库，也舍不得之前积攒的绿点，所以今天将git仓库全部转移到了gitee里面，并且通过配置TortoiseGit实现本地操作同时上传两个平台。
关于gitee的一些配置
首先就是注册了，这没什么好说的，正常注册或者直接用github账号登录


推荐使用github账号直接登录，因为登陆完后，网页会提示你，是否克隆仓库，之后按照网页]]></description><category></category></item><item><title><![CDATA[Java——String字符串总结（下）]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/113849983</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/113849983</guid><author>WHEeeee</author><pubDate>Thu, 18 Feb 2021 17:22:37 +0800</pubDate><description><![CDATA[StringBuilder和StringBuffer总结一、如何创建StringBuilder和StringBuffer对象(1) StringBuilder构造方法(2) StringBuffer构造方法二、String，StringBuilder和StringBuffer的区别
一、如何创建StringBuilder和StringBuffer对象
(1) StringBuilder构造方法

根据JDK手册查看
2.代码示例

StringBuilder sb = new StringBuilder("]]></description><category></category></item><item><title><![CDATA[Java——String字符串总结（上）]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/113796995</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/113796995</guid><author>WHEeeee</author><pubDate>Fri, 12 Feb 2021 21:35:00 +0800</pubDate><description><![CDATA[String字符串总结一、什么是字符串二、字符串的创建1.第一种创建方式2.第二种创建方式3.第三种创建方式三、字符串的比较四、字符串的转换及拼接1. 转换2.拼接五、String指向的内容不可修改！
一、什么是字符串
百度百科是这样介绍的

字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n&gt;=0)。它是编程语言中表示文本的数据类型。在程序设计中，字符串（string）为符号或数值的一个连续序列，如符号串（一串字符）或二进制数字串（一串二进制数字]]></description><category></category></item><item><title><![CDATA[JDK安装教程（超详细，超简单！）]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/110528081</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/110528081</guid><author>WHEeeee</author><pubDate>Thu, 03 Dec 2020 13:55:22 +0800</pubDate><description><![CDATA[一、JDK简介

JDK : Java SE Development Kit Java开发工具
JRE : Java Runtime Environment Java运行环境
如果要进行编程则需要安装JDK，如果是运行Java程序则只需要安装JRE就可以满足需求。
注意：JDK本身就内置有JRE！

二、JDK的下载
JDK下载地址：JDK下载地址
在oracle官网进行下载。

进入官网后，在右上角找到如下图标，进行点击。

点击图标后，进入如下页面进行操作。

如果想安装其他版本，只需要将页面下滑，在该]]></description><category></category></item><item><title><![CDATA[LeetCode——删除排序数组中的重复项（Java实现）]]></title><link>https://blog.youkuaiyun.com/WHEeeee/article/details/109504532</link><guid>https://blog.youkuaiyun.com/WHEeeee/article/details/109504532</guid><author>WHEeeee</author><pubDate>Thu, 05 Nov 2020 10:43:57 +0800</pubDate><description><![CDATA[文章目录一、题目描述二、题目分析方法一：“投机取巧”方法二：双指针三、代码分析方法一方法二四、完整代码方法一方法二
一、题目描述
给定一个排序数组，你需要在 原地 删除重复出现的元素，使得每个元素只出现一次，返回移除后数组的新长度。
不要使用额外的数组空间，你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
示例1：

给定数组 nums = [1,1,2],
函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。
你不需要考虑数组中超出新长度后面的元素。
]]></description><category></category></item></channel></rss>