<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Sqrt1230的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Sqrt1230</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Sqrt1230]]></copyright><item><title><![CDATA[Executor框架的使用]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/123540874</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/123540874</guid><author>Sqrt1230</author><pubDate>Thu, 17 Mar 2022 02:50:39 +0800</pubDate><description><![CDATA[//为每一个任务创建一个新线程的缺点：
//①线程的创建与销毁开销很大
//②大量的线程将占据大量的资源，比如内存空间，容易造成服务器资源耗尽而崩溃
//③可创建的线程数量受到操作系统等因素的限制，如果破坏了这些限制，可能抛出异常

//使用Executor将任务的提交与执行解耦，提高程序的并发度，由此获得并发性，并且避免了为每一个任务创建一个新线程产生的问题
class ExecutorTest{
    private static final Executor executor =  Executor]]></description><category></category></item><item><title><![CDATA[NIO缓冲区]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/122403009</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/122403009</guid><author>Sqrt1230</author><pubDate>Mon, 10 Jan 2022 07:51:05 +0800</pubDate><description><![CDATA[NIO缓冲区概述缓冲区的分类缓冲区的四个重要属性Buffer类的主要API缓冲区的填充和释放缓冲区的压缩缓冲区的比较缓冲区的复制字节缓冲区字节顺序视图缓冲区
概述
Buffer类位于java.nio包中，Bufffer类及其子类的UML图如下

缓冲区的分类



操作系统在内存区域中进行I/O操作，由于在操作系统看来内存是一个巨大的字节序列，因此只有字节缓冲区能够参与I/O操作。字节缓冲区要么是直接的，要么是非直接的，如果是直接的，JVM会尽最大努力直接在此缓冲区上进行本机I/O操作，避免用户缓冲区与内核]]></description><category></category></item><item><title><![CDATA[常见排序算法]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/122226038</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/122226038</guid><author>Sqrt1230</author><pubDate>Fri, 31 Dec 2021 14:27:26 +0800</pubDate><description><![CDATA[常见内部排序算法概述插入类排序直接插入排序折半插入排序希尔排序交换类排序冒泡排序快速排序选择类排序简单选择排序堆排序归并排序基数排序
概述

插入类排序
直接插入排序
public class SF{
    public int[] sortArray(int[] nums) {
        for(int i = 1;i &lt; nums.length;i++){  //初始时nums[0]为有序序列，因此从1开始遍历待插入记录
            int temp = nums[i];  /]]></description><category></category></item><item><title><![CDATA[路由选择算法]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/121660544</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/121660544</guid><author>Sqrt1230</author><pubDate>Fri, 03 Dec 2021 22:40:56 +0800</pubDate><description><![CDATA[因特网中的路由选择协议路由选择的工作及路由选择算法的作用路由选择算法的分类
路由选择的工作及路由选择算法的作用


默认路由器：主机通常直接与一台路由器相连接，该路由器称为主机的默认路由器，又称为该主机的第一跳路由器
源路由器 ：源主机的默认路由器
目的路由器 ：目的主机的默认路由器



路由选择的工作 ：路由选择的工作是确定从源主机到目的主机的路径，可以归结为确定从源路由器到目的路由器的路径
路由选择算法的作用 ：路由选择算法在网络路由器中运行、交换和计算信息，用这些信息配置路由器的转发表


路由选择]]></description><category></category></item><item><title><![CDATA[网络层概述]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/121634362</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/121634362</guid><author>Sqrt1230</author><pubDate>Wed, 01 Dec 2021 01:06:59 +0800</pubDate><description><![CDATA[网络层概述网络层的主要功能网络层的类型虚电路网络数据报网络路由器的硬件体系结构
网络层的主要功能
前面我们了解了运输层协议只在端系统中工作，在发送主机中，运输层协议将来自应用程序的报文移动到网络层；在目的主机中，运输层协议将来自网络层的报文段交付给在主机上运行的适当应用程序进程。而网络层的主要职责就是将报文段从一台主机发送到另一台主机。 为此，网络层需要具备以下两个重要功能



转发 ：当一个分组到达路由器的一条输入链路时，路由器必须将该分组移动到适当的输出链路。关注的重点是分组在单一的路由器中从一条入链]]></description><category></category></item><item><title><![CDATA[具体的运输层协议---UDP和TCP]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/121353732</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/121353732</guid><author>Sqrt1230</author><pubDate>Wed, 17 Nov 2021 17:59:23 +0800</pubDate><description><![CDATA[具体的运输层协议---UDP和TCP概述TCP协议TCP协议概述TCP协议的可靠数据传输（可靠性）三次握手与四次挥手（TCP连接的创建与断开）
概述
前面我们总体介绍了运输层协议的作用（参考我的另一篇文章运输层协议概述），知道了运输层仅在端系统中工作，而不出现在中间网络元素中（如路由器等），现在我们来具体看两种运输层协议TCP协议和UDP协议
TCP协议
TCP协议概述

TCP是一种面向连接的、可靠数据传输的、具有拥塞控制机制的运输层协议（这三个特点我们稍后一一解释），既然是运输层协议，那么它的职责就是：]]></description><category></category></item><item><title><![CDATA[运输层协议概述]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/121332132</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/121332132</guid><author>Sqrt1230</author><pubDate>Mon, 15 Nov 2021 14:15:52 +0800</pubDate><description><![CDATA[运输层运输层协议的理解多路分解和多路复用具体的运输层协议对应的多路分解和多路复用的区别
运输层协议的理解
前面我们介绍了应用层协议（HTTP、SMTP等等），应用层的主要作用是定义了运行在不同端系统上的应用程序进程之间如何相互传递报文（主要是定义了应用进程的数据报文类型、语义等等，但是没有定义报文在不同端系统之间如何运输，运输的问题要依靠下层协议来完成）。

接下来我们看一下运输层的基本原理
为了准确的了解运输层，我们将运输层和网络层对比起来看

运输层：为运行在不同主机上的应用进程之间提供了逻辑通信功能（]]></description><category></category></item><item><title><![CDATA[可靠数据传输原理详细图解]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/121269131</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/121269131</guid><author>Sqrt1230</author><pubDate>Sat, 13 Nov 2021 16:55:39 +0800</pubDate><description><![CDATA[可靠数据传输原理概述rdt1.0rdt2rdt2.0rdt2.1rdt2.2rdt3.0流水线可靠数据传输协议为什么使用流水线流水线对可靠数据传输协议带来的影响流水线协议中恢复差错的两种方法回退N步协议（GBN协议、滑动窗口协议）选择重传协议（SR协议）
概述
我们都知道TCP协议是一种可靠的运输层协议，它可以保证HTTP报文无差错、无损失且有序地从客户端到达服务器。那么这种可靠性是怎样实现的呢？这便是本文要讨论的重点


可靠数据传输（rdt）为其上层提供这样一种服务——数据可以通过一条可靠的信道进行传输]]></description><category></category></item><item><title><![CDATA[hosts文件]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/121132464</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/121132464</guid><author>Sqrt1230</author><pubDate>Thu, 04 Nov 2021 00:39:49 +0800</pubDate><description><![CDATA[hosts文件
前面我们讲解了DNS域名解析的流程以及原理（详见DNS解析），可以了解到DNS服务器最大的作用便是存储着域名到IP地址的映射，以便用户在通过浏览器请求某个页面时，将用户输入的域名解析为对应的IP地址。
接下来我们通过一次域名解析的完整流程来认识hosts文件（下图是一次域名解析的完整过程，对[MY PC]框图以外不理解的可以参考DNS解析）

接下来我们对上图进行一个较为深刻的解读

假定我们在请求www.oracle.com站点
当我们在浏览器导航栏输入一条域名并按下回车时，域名解析的过程]]></description><category></category></item><item><title><![CDATA[HTTP与HTTPS]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/120946300</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/120946300</guid><author>Sqrt1230</author><pubDate>Mon, 25 Oct 2021 15:59:29 +0800</pubDate><description><![CDATA[HTTP和HTTPS
HTTP(超文本传输协议)—Web的应用层协议


HTTP使用客户-服务器体系结构
Web浏览器实现了HTTP的客户端
Web服务器（用于存储Web对象）实现了HTTP的服务器端
HTTP定义了Web客户向Web服务器请求Web页面的方式，以及Web服务器向Web客户传送Web页面的方式

HTTP使用TCP作为它的支撑运输协议，套接字是应用层和运输层之间的接口。也就是说HTTP请求报文由Web浏览器生成，经套接字发向运输层，紧接着HTTP请求报文由TCP传输向Web服务器，Web服]]></description><category></category></item><item><title><![CDATA[DNS解析]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/120912843</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/120912843</guid><author>Sqrt1230</author><pubDate>Sat, 23 Oct 2021 14:46:34 +0800</pubDate><description><![CDATA[DNS—域名系统
前言：人们喜欢用便于记忆的主机名来标识主机，而路由器则喜欢定长的、有着层次结构的IP地址。为了折衷这些不同的偏好，我们需要一种能进行主机名到IP地址转换的目录服务。这就是域名系统DNS的主要任务。
DNS的定义


DNS是一个由分层的DNS服务器实现的分布式数据库
一个使得主机能够查询分布式数据库的应用层协议（DNS协议运行在UDP之上）


DNS提供的服务


主机别名： 有着复杂主机名的主机可能一个或者多个别名。在有别名的情况下，有一个规范主机名，主机别名一般比规范主机名更加容易记]]></description><category></category></item><item><title><![CDATA[JAVA多线程基础--------并发编程三大特性（原子性、可见性、有序性）]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/119730814</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/119730814</guid><author>Sqrt1230</author><pubDate>Mon, 16 Aug 2021 19:38:11 +0800</pubDate><description><![CDATA[并发编程三大特性（原子性、可见性、有序性）
并发编程三大特性的定义和由来

凡事有因才有果，有果必有因，并发编程的三大特性也如此，人们不会莫名其妙定义出并发编程的三大特性。接下来我们探讨下为什么会有并发编程这三大特性？

简单地说，并发编程这三大特性就是为了在多个线程交替执行任务的过程中保证线程安全性（点此跳转）。那么为什么会出现线程不安全的现象呢？接下来我们从这三个特性切入来介绍线程不安全的原因。以下涉及到的主内存和工作内存相当于主存和cpu缓存，详见Java内存模型


原子性：一组操作要么全部执行，要]]></description><category></category></item><item><title><![CDATA[JAVA多线程基础--------volatile变量]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/119699011</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/119699011</guid><author>Sqrt1230</author><pubDate>Sat, 14 Aug 2021 16:09:15 +0800</pubDate><description><![CDATA[Java多线程之Volatile变量目录JAVA内存模型（JMM）主内存和工作内存的交互Volatile变量的特性及使用场景Volatile变量两个特性的底层实现原理
目录
JAVA内存模型（JMM）

要想深入地了解Volatile变量必须先了解Java内存模型。因此在介绍volatile变量之前，我们先简单的了解下Java内存模型。在此我们将物理机（共享内存多核系统）的内存模型和JMM对比起来看，因为二者之间有很强的相似性。
物理机内存模型

我们知道基于高速缓存的存储交互很好的解决了处理器与内存速度之]]></description><category></category></item><item><title><![CDATA[JAVA多线程基础--------线程安全性]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/119604604</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/119604604</guid><author>Sqrt1230</author><pubDate>Wed, 11 Aug 2021 23:19:58 +0800</pubDate><description><![CDATA[线程安全性
一个对象是否需要是线程安全的，取决于它是否被多个线程访问，而不取决于对象要实现的功能

什么是线程安全的代码
------------------------------------------------------------------------------------------------
核心：对 共享的 和 可变的 状态的访问进行管理。防止对数据发生不受控的并发访问。
何为对象的状态？
状态是指存储在对象的状态变量（例如实例或静态域）中的数据。还可能包括 其他依赖对象 的域。
e]]></description><category></category></item><item><title><![CDATA[JSP页面代码到源代码的转换]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/119062192</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/119062192</guid><author>Sqrt1230</author><pubDate>Sat, 24 Jul 2021 18:32:05 +0800</pubDate><description><![CDATA[jsp页面生成的源代码一般是通过浏览器来查看的
转换过程中，jsp页面中的html元素在源代码中被原样保留，只有jsp代码会发生改变
jsp页面代码
&lt;%@ page language="java" import = "java.util.*" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%&gt;
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta char]]></description><category></category></item><item><title><![CDATA[JSP运行机制]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/118925976</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/118925976</guid><author>Sqrt1230</author><pubDate>Tue, 20 Jul 2021 09:12:49 +0800</pubDate><description><![CDATA[JSP运行机制
JSP页面： JSP页面是对静态页面的扩展，可以包括HTML中定义的所有标签
&lt;%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%&gt;     &lt;!-- page指令主要用于设置整个JSP页面范围内有效的相关信息，pageEncoding表示jsp文件存储时的编码方式，contentType表示jsp文件生成内容（根据模板生成的HTML部分）的编码方式]]></description><category></category></item><item><title><![CDATA[基本sql语句及细节记录]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/118648442</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/118648442</guid><author>Sqrt1230</author><pubDate>Sun, 11 Jul 2021 03:59:00 +0800</pubDate><description><![CDATA[基本sql语句及细节记录
空了可以慢慢看
use  Test
go
--创建基本表
--实体完整性
create table student(
  sno char(9) primary key,   --列级实体完整性
  sname char(20) not null,
  sex char(2),
  sage smallint,
  sdept char(20)
);

create table sc(
  sno char(9) not null,
  cno char(4) not null,
]]></description><category></category></item><item><title><![CDATA[继承/动态绑定/继承中的构造方法/常见修饰符的常见用法]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/114295188</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/114295188</guid><author>Sqrt1230</author><pubDate>Wed, 03 Mar 2021 12:19:53 +0800</pubDate><description><![CDATA[继承
定义： 子类从它的父类中继承 可访问 的数据域和方法，还可以添加新的数据域和方法，即对父类进行扩展。
关键字： extends
class SuperA{
..........
}
class A1 extends SuperA{
..........
}
class A2 extends SuperA{
..........
}



java不允许多继承（eg：A extends SuperA1 &amp;&amp; A extends SuperA2）


定义中说到 可访问的 ，那么子类到底继]]></description><category></category></item><item><title><![CDATA[面向对象/传值和传引用/java字符串长度限制因素]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/114260322</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/114260322</guid><author>Sqrt1230</author><pubDate>Mon, 01 Mar 2021 17:36:32 +0800</pubDate><description><![CDATA[一.面向对象程序设计
定义：把现实世界中的事物抽象为 “对象” 进行程序设计
面向过程到面向对象的转变：编程的终极目标是解决问题，解决现实生活中的问题，人们一开始编程是对 基本数据类型 进行操作，但是有时候需要将几个数据项进行统一操作，例如一个学生的姓名，学号等数据，人们希望对每个学生的姓名学号进行统一操作，于是出现了C语言中的结构体，这相对于单纯的操作基本数据类型方便了许多，但是这还不够方便，人们不但把多个数据项集成在一起，而且还把对这些数据项的操作结合起来，这样极大的提高了代码的可重用性，也极大地降低了]]></description><category></category></item><item><title><![CDATA[矩阵快速幂＜leetcode笔记＞]]></title><link>https://blog.youkuaiyun.com/Sqrt1230/article/details/113754935</link><guid>https://blog.youkuaiyun.com/Sqrt1230/article/details/113754935</guid><author>Sqrt1230</author><pubDate>Mon, 08 Feb 2021 13:26:21 +0800</pubDate><description><![CDATA[矩阵快速幂

问题描述： 爬楼梯需要n阶可爬到楼顶，每次只能爬1或2阶，问共有多少种爬法。
动态规划： 由于每次只能爬1或2阶，故阶数为n的总方案数为最后一步爬1阶（即阶数为n-1阶的总方案数）加上最后一步爬2阶（即阶数为n-2阶的总方案数）。
可得，状态转移方程：     f(n) = f(n - 1) + f(n -2);  &lt;斐波那契数列&gt;
边界条件： f(0) = 1,f(1) = 1;
对此状态转移方程，可使用递归或迭代法：
递归：
class Solution{    //超出时间.]]></description><category></category></item></channel></rss>