<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[TheDevice的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/TheDevice</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; TheDevice]]></copyright><item><title><![CDATA[SpringBoot的配置 和 日志文件]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/126030473</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/126030473</guid><author>TheDevice</author><pubDate>Thu, 28 Jul 2022 11:43:05 +0800</pubDate><description><![CDATA[properties是以key=value的形式配置的键值类型的配置文件，而yml使用的是类似json格式的树形配置方式进行配置的，yml层级之间使用换行缩进的方式配置，key和value之间使用“”英文冒号加空格的方式设置，并且空格不可省略。properties为早期并且默认的配置文件格式，但其配置存在一定的冗余数据，使用yml可以很好的解决数据冗余的问题。......]]></description><category></category></item><item><title><![CDATA[Spring Boot]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/126029592</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/126029592</guid><author>TheDevice</author><pubDate>Thu, 28 Jul 2022 10:59:10 +0800</pubDate><description><![CDATA[我们之前了解过了Spring，我们知道Spring的诞生是为了简化Java程序的开发。而SpringBoot则是为了简化Spring程序开发。层层递进的关系。
一、Spring Boot的优点
二、Spring Boot的创建
使用Spring Assistant插件，但是目前有问题，只能使用更复杂的方式创建。......]]></description><category></category></item><item><title><![CDATA[Spring的读取和存储对象]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/125884607</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/125884607</guid><author>TheDevice</author><pubDate>Wed, 20 Jul 2022 12:18:29 +0800</pubDate><description><![CDATA[首先要明确的是这一步是非常重要的。只有被配置的包下的所有类，添加了注解才能被正确的识别并保存到Spring中。想要将对象存储在Spring中，有两种@Bean我们还要认识的是方法注解@Bean这块要注意的是如果我们单单使用Bean注解的话，要想获取Bean对象中的值，我们会发现获取不到。......]]></description><category></category></item><item><title><![CDATA[【EE进阶】Spring]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/125850785</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/125850785</guid><author>TheDevice</author><pubDate>Mon, 18 Jul 2022 18:59:54 +0800</pubDate><description><![CDATA[1.学习框架相当于从“小作坊”到“工厂”的升级，小作坊什么都要自己做，工厂是组件式装配，特点就是高效。2.框架更加易用、简单且高效第三方框架使用也越来越多，几乎所有的java项目都会使用的基础框架，叫做javaee框架；.基于这些框架，对比之前的servlet、jdbc，灵活性，易用性，扩展性有很大提升。使用框架，主要要学习更多的注解；框架代码执行流程/顺序，与servlet相似，需要根据约定，先执行某个符合约定的类中哪个符合约定的方法，然后再执行其他哪个。......]]></description><category></category></item><item><title><![CDATA[JVM相关的知识点]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/125815983</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/125815983</guid><author>TheDevice</author><pubDate>Sat, 16 Jul 2022 12:48:32 +0800</pubDate><description><![CDATA[当这块内存需要进行垃圾回收时，会将此区域还存活着的对象复制到另一块上面，然后再把已经使用过的内存区域一次清除掉。内存泄漏线程生命周期太长，导致始终只用一些不常使用的数据（这些数据gc无法正常回收），随着时间越来越长，最终导致OOM；概念遵循双亲委派机制的类加载，类加载不直接加载，认识委派给父类的加载器，以此类推，达到从上到下加载的方式。某个线程，调用方法，创建方法栈帧，入栈，如果栈中的栈帧超过jvm规定的数量，就会报这个异常。对象进入那个区域，哪个区域内存不足，哪个区域就触发该区域的gc。......]]></description><category></category></item><item><title><![CDATA[总结 HTTPS 的加密流程]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/125473011</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/125473011</guid><author>TheDevice</author><pubDate>Sun, 26 Jun 2022 19:16:48 +0800</pubDate><description><![CDATA[总结 HTTPS 的加密流程]]></description><category></category></item><item><title><![CDATA[HTTP 协议的基本格式和 fiddler 的用法]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/125472658</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/125472658</guid><author>TheDevice</author><pubDate>Sun, 26 Jun 2022 18:45:46 +0800</pubDate><description><![CDATA[HTTP 协议的基本格式和 fiddler 的用法
1. 使用Chrome开发者工具来进行抓包，观察我们的HTTP协议。
2. 使用Fiddler进行抓包]]></description><category></category></item><item><title><![CDATA[UDP 的报文结构和注意事项]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/125471527</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/125471527</guid><author>TheDevice</author><pubDate>Sun, 26 Jun 2022 16:51:50 +0800</pubDate><description><![CDATA[UDP 的报文结构和注意事项]]></description><category></category></item><item><title><![CDATA[从输入URL到展示出页面“ 这个过程发生了什么]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/125471419</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/125471419</guid><author>TheDevice</author><pubDate>Sun, 26 Jun 2022 16:45:25 +0800</pubDate><description><![CDATA[从输入URL到展示出页面" 这个过程发生了什么]]></description><category></category></item><item><title><![CDATA[TCP协议相关特性]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/125469762</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/125469762</guid><author>TheDevice</author><pubDate>Sun, 26 Jun 2022 16:10:52 +0800</pubDate><description><![CDATA[1.确认应答机制（安全机制）
2.超时重传机制（安全机制）
3.连接管理机制（安全机制）
4.滑动窗口（效率机制）
5.流量控制（安全机制）
6拥塞控制（安全机制）
7.延迟应答（效率机制）
8.捎带应答（效率机制）
9.粘包问题
---UDP和TCP的区别？以特点为基础。
--- 基于传输层UDP协议，设计一个可靠是数据传输。或者，基于传输层UDP协议，设计一个可靠是数据传输
--- 啥样的场景中适合使用TCP，啥用的场景中适合使用UDP？......]]></description><category></category></item><item><title><![CDATA[File 和 InputStream, OutputStream 的用法]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/125410069</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/125410069</guid><author>TheDevice</author><pubDate>Wed, 22 Jun 2022 17:27:26 +0800</pubDate><description><![CDATA[File 和 InputStream, OutputStream 的用法
文件路径分为 绝对路径 和 相对路径 两种。]]></description><category></category></item><item><title><![CDATA[【概念】锁策略, cas 和 synchronized 优化过程]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/124964135</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/124964135</guid><author>TheDevice</author><pubDate>Wed, 25 May 2022 14:13:11 +0800</pubDate><description><![CDATA[一 . 常见的锁策略

1. 乐观锁和悲观锁

2. 读写锁

3. 重量级锁 vs 轻量级锁

4 自旋锁

5.公平锁 vs 非公平锁

6 可重入锁 vs 不可重入锁

二、CAS

1. 实现原理

2.CAS 有哪些应用

1) 实现原子类

2) 实现自旋锁

3 CAS 的 ABA 问题

三、Synchronized 原理

基本特点

优化过程：

1. 锁消除
2. 锁粗化]]></description><category></category></item><item><title><![CDATA[网络中的一些基本概念]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/124844504</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/124844504</guid><author>TheDevice</author><pubDate>Wed, 18 May 2022 16:15:07 +0800</pubDate><description><![CDATA[1. IP地址


IP地址主要用于标识网络主机、其他网络设备（如路由器）的网络地址。简单说，IP地址用于定位主机的网络地址。


格式
IP地址是一个32位的二进制数，通常被分割为4个“8位二进制数”（也就是4个字节），如：
01100100.00000100.00000101.00000110。

通常用“点分十进制”的方式来表示，即 a.b.c.d 的形式（a,b,c,d都是0~255之间的十进制整数）。如：100.4.5.6

特殊IP127.*的IP地址用于本机环回(loop back)测试，通常]]></description><category></category></item><item><title><![CDATA[线程安全问题的原因和解决方案]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/124844017</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/124844017</guid><author>TheDevice</author><pubDate>Wed, 18 May 2022 15:56:32 +0800</pubDate><description><![CDATA[如果多线程环境下代码运行的结果是符合我们预期的，即在单线程环境应该的结果，则说这个程序是线程安全的。


线程安全问题的原因

1. 修改共享数据


static class Counter {
public int count = 0;
void increase() {
count++;
}
}
public static void main(String[] args) throws InterruptedException {
final Counter counter =...]]></description><category></category></item><item><title><![CDATA[wait和sleep有什么区别]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/124843154</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/124843154</guid><author>TheDevice</author><pubDate>Wed, 18 May 2022 15:24:54 +0800</pubDate><description><![CDATA[wait和sleep的概念：

sleep：

他是让我们的线程休眠一段时间，在等待是时间结束后继续执行当前线程。


public class ThreadDemo {
public static void main(String[] args) throws InterruptedException {
System.out.println(System.currentTimeMillis());
Thread.sleep(3 * 1000);
System.out.prin...]]></description><category></category></item><item><title><![CDATA[线程池的执行流程和拒绝策略]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/124842626</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/124842626</guid><author>TheDevice</author><pubDate>Wed, 18 May 2022 15:10:07 +0800</pubDate><description><![CDATA[1. 线程池的执行流程

当任务来了之后，线程池的执行流程是：先判断当前线程数是否大于核心线程数？如果结果为 false，则新建线程并执行任务；如果结果为 true，则判断任务队列是否已满？如果结果为 false，则把任务添加到任务队列中等待线程执行，否则则判断当前线程数量是否超过最大线程数？如果结果为 false，则新建线程执行此任务，否则将执行线程池的拒绝策略。

2 线程池的拒绝策略

当任务过多且线程池的任务队列已满时，此时就会执行线程池的拒绝策略，线程池的拒绝策略默认有以下 4 种：


	Abo]]></description><category></category></item><item><title><![CDATA[【JavaEE】java线程的几种状态]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/124540341</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/124540341</guid><author>TheDevice</author><pubDate>Mon, 02 May 2022 14:43:50 +0800</pubDate><description><![CDATA[【JavaEE】java线程的几种状态
我们先来看看Java线程状态的一幅图：
1. New状态：初始状态，即安排了工作, 还未开始行动；
2. Runnable状态：运行状态，这面还包含了就绪，运行等状态；
3. Waiting状态：等待状态，就是在等待运行；
4. Time_Waiting状态：超时等待，就是在等待运行；
5. Blocked状态：阻塞状态，就是在等待运行；
6. Terminated状态：终止状态。工作完成了。...]]></description><category></category></item><item><title><![CDATA[【JavaEE】Thread 类的基本用法]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/124539852</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/124539852</guid><author>TheDevice</author><pubDate>Mon, 02 May 2022 13:57:47 +0800</pubDate><description><![CDATA[【JavaEE】Thread 类的基本用法
1. 线程创建
2. 线程中断
3. 线程等待
4. 线程休眠
5. 获取线程实例
]]></description><category></category></item><item><title><![CDATA[【JavaEE】进程和线程的区别与联系]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/124532495</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/124532495</guid><author>TheDevice</author><pubDate>Sun, 01 May 2022 21:11:53 +0800</pubDate><description><![CDATA[线程我们在前文已经解释过了，那什么又是线程，

线程（英语：thread）是操作系统能够进行运算调度的最小单位。它被包含在进程之中，是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流，一个进程中可以并发多个线程，每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程（lightweight processes），但轻量进程更多指内核线程（kernel thread），而把用户线程（user thread）称为线程。

我们可以看出进程包含线程，那么他两有什么叙.]]></description><category></category></item><item><title><![CDATA[【JavaEE初阶】进程调度的过程]]></title><link>https://blog.youkuaiyun.com/TheDevice/article/details/124531456</link><guid>https://blog.youkuaiyun.com/TheDevice/article/details/124531456</guid><author>TheDevice</author><pubDate>Sun, 01 May 2022 20:53:57 +0800</pubDate><description><![CDATA[什么是进程调度？

进程调度是指操作系统按某种策略或规则选择进程占用CPU进行运行的过程。无论是在批处理系统还是分时系统中，用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外，系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略，动态地把处理机分配给处于就绪队列中的某一个进程，以使之执行。

那么我们先来看看进程的一个状态----》



当计算机系统处于就绪状态的用户进程数多于CPU数时，就会产生多个进程或线程同时竞争CPU的结果。假设现在只有一个CPU可用，那么操作系统就必须选择下]]></description><category></category></item></channel></rss>