<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Muskok的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Muskok</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Muskok]]></copyright><item><title><![CDATA[JWT介绍]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/135448712</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/135448712</guid><author>Muskok</author><pubDate>Mon, 08 Jan 2024 09:09:31 +0800</pubDate><description><![CDATA[是一个开放标准(RFC 7519),它定义了一种紧凑的,自包含的方式,用于在各方之间以json对象安全地传输信息,此信息可以验证和信任.因为它是数字签名的,jwt可以使用加密算法(使用HMAC 算法) 或使用RSA或ECDSA 的公钥/私钥进行签名.通俗的讲:JWT就是通过json格式作为Web应用程序中的令牌,用于在各方之间安全地将信息以JSON的形式传输,在数据传输过程中.还可以对数据进行加密,签名等相关处理.]]></description><category></category></item><item><title><![CDATA[SpringBoot加载配置的6种方式]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/135329087</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/135329087</guid><author>Muskok</author><pubDate>Mon, 01 Jan 2024 21:21:40 +0800</pubDate><description><![CDATA[Value注解是Spring框架提供的用于注入配置属性值的注解，它可用于类的成员变量、方法参数和构造函数参数上， 在应用程序启动时，使用@Value注解的Bean会被实例化。@PropertySources注解的实现原理相对简单，应用程序启动时扫描所有被该注解标注的类，获取到注解中指定自定义配置文件的路径，将指定路径下的配置文件内容加载到Environment中，这样可以通过@Value注解或 Environment.getProperty()方法来获取其中定义的属性值了。去加载配置文件中的属性。]]></description><category></category></item><item><title><![CDATA[synchronized关键字的详解]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/135192012</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/135192012</guid><author>Muskok</author><pubDate>Mon, 25 Dec 2023 09:53:47 +0800</pubDate><description><![CDATA[具体来说，当一个线程访问一个对象的 synchronized 方法或代码块时，它会试图获取该对象的监视器锁。在方法上修饰的synchronized表示对整个方法进行同步，而在代码块上修饰的synchronized表示对该代码块进行同步，使用的锁对象通常是方法所属对象或指定的对象。当持有锁的线程执行完synchronized方法或代码块后，它会释放锁，即将对象头中的锁状态置为无锁状态，并唤醒等待队列中的一个线程，使其获取锁并继续执行。当多个线程访问这个方法时，只有一个线程能够执行该方法的代码，其他线程将被。]]></description><category></category></item><item><title><![CDATA[IOC和DI的理解]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/135054358</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/135054358</guid><author>Muskok</author><pubDate>Mon, 18 Dec 2023 19:02:14 +0800</pubDate><description><![CDATA[IOC（Inversion of Control）即控制反转，它是一种设计模式，用于解耦组件之间的依赖关系。在传统的程序设计中，组件之间的依赖关系是由组件自己控制的，即组件向外部请求所需的资源或依赖，而IoC则是将这种控制权反转，由外部容器控制组件之间的依赖关系。传统的java SE程序设计，我们直接在对象内部new进行创建对象，是程序主动去创建对象，而IOC有专门的容器来创建这些对象，即由IOC容器来控制对象的创建；谁控制谁？当然是IOC容器控制对象，控制什么？]]></description><category></category></item><item><title><![CDATA[HashMap和Hashtable的相同点和区别]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/134934904</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/134934904</guid><author>Muskok</author><pubDate>Mon, 11 Dec 2023 19:53:01 +0800</pubDate><description><![CDATA[1、都实现了map、Cloneable（可克隆）、Serializable（可序列化）这三个接口，因此它们都可以用于存储键值对，并提供了一些常用的操作方法，如get、put、remove等。和Hashtable是Java中常用的哈希表实现，它们都是基于哈希表的键值映射工具类。本文将介绍它们的相同点和不同点，并给出示例代码。2、提供了常用操作方法：HashMap和Hashtable都提供了一些常用的操作方法，如size()方法用于获取键值对的数量，isEmpty()方法用于判断是否为空等。]]></description><category></category></item><item><title><![CDATA[连接池总结（作用、对比、参数含义、以及讲解）]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/134795571</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/134795571</guid><author>Muskok</author><pubDate>Mon, 04 Dec 2023 22:35:36 +0800</pubDate><description><![CDATA[如果达到就按设定的最大等待时间进行等待，如果超出了最大等待时间，则抛出异常给客户，当客户释放数据库连接时，先判断该连接的引用次数是否超过了规定值，如果超过就从连接池中删除该连接，否则保留等待再次使用。当这个线程使用完了这个连接，它将返回到连接池中（连接池会自动收回连接，当然我们也可以用完以后释放），这样就可以被其它想使用它的线程使用。相反，连接池允许闲置的链接被其它需要的线程使用。：是连接池能申请的最大连接数，如果数据库连接请求超过次数，后面的数据库连接请求将被加入到等待队列中，这会影响以后的数据库操作。]]></description><category></category></item><item><title><![CDATA[java中的四种引用类型（强引用，软引用，弱引用，虚引用）]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/134636907</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/134636907</guid><author>Muskok</author><pubDate>Mon, 27 Nov 2023 08:55:20 +0800</pubDate><description><![CDATA[引用的本质是指针常量，对于我们这篇文章来说，我们只需要知道引用是一种特殊的指针就行了。下面是Java中典型的声明和创建对象的代码，其中o就是我们的引用。前面的Object是引用类型，后面的new Object()是Java对象。o指向了new Object()，也就是o引用了new Object()对象。]]></description><category></category></item><item><title><![CDATA[SpringMVC模式简介和流程]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/134496441</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/134496441</guid><author>Muskok</author><pubDate>Sun, 19 Nov 2023 21:57:47 +0800</pubDate><description><![CDATA[如果前端请求参数是json数据, Servlet只能通过Request的请求输入流读取json数据, 把json转换为java对象,如果前端需要json数据, Servlet需要手动把对象转换为json字符串, 通过Response的响应输出流写给客户端。对ResultFul风格的url的数据, Servlet只能获取URL, 通过字符串的截取获取数据。SpringMVC基于MVC设计模式的框架, web层框架, 基于请求与响应的模型。Servlet获取参数一个一个的获取, 需要手动把参数封装成一个对象。]]></description><category></category></item><item><title><![CDATA[Java单例模式介绍和简单代码实现]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/134327348</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/134327348</guid><author>Muskok</author><pubDate>Sun, 12 Nov 2023 21:20:49 +0800</pubDate><description><![CDATA[单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时，为了防止频繁地创建对象使得内存飙升，单例模式可以让程序仅在内存中创建一个对象，让所有需要调用的地方都共享这一单例对象。单例模式有 3 个特点单例类只有一个实例对象；该单例对象必须由单例类自行创建；单例类对外提供一个访问该单例的全局访问点；]]></description><category></category></item><item><title><![CDATA[Mybatis的Dao开发]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/134256924</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/134256924</guid><author>Muskok</author><pubDate>Mon, 06 Nov 2023 23:12:24 +0800</pubDate><description><![CDATA[原始Dao开发中存在以下问题：Dao方法体存在重复代码：通过SqlSessionFactory创建SqlSession，调用SqlSession的数据库操作方法调用sqlSession的数据库操作方法需要指定statement的id，这里存在硬编码，不得于开发维护。]]></description><category></category></item><item><title><![CDATA[HttpSession接口简介和工作原理]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/134123995</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/134123995</guid><author>Muskok</author><pubDate>Mon, 30 Oct 2023 17:29:05 +0800</pubDate><description><![CDATA[来自于Servlet规范中接口。其实现类由Http服务器提供，tomcat提供的实现类在于servlet-api-jar。如果两个Servlet为同一个用户/同一个浏览器提供服务。此时这两个Servlet可以使用当前用户的HttpSession对象进行数据共享，开发人员习惯于将HttpSession对象称为【会话作用域对象】http服务器如何将用户与关联起来————————通过cookieCookie与HttpSession区别？]]></description><category></category></item><item><title><![CDATA[JDBC基本概念以及简单应用]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/133950841</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/133950841</guid><author>Muskok</author><pubDate>Sun, 22 Oct 2023 14:10:54 +0800</pubDate><description><![CDATA[JDBC（Java DataBase Connectivity）就是Java数据库连接，说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库，JDBC是用Java语言向数据库发送SQL语句。]]></description><category></category></item><item><title><![CDATA[工厂模式简单介绍]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/133842250</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/133842250</guid><author>Muskok</author><pubDate>Sun, 15 Oct 2023 14:31:23 +0800</pubDate><description><![CDATA[定义一个创建对象的接口，让其子类自己决定实例化哪一个工厂类，工厂模式使其创建过程延迟到子类进行。主要解决接口选择的问题。我们明确地计划不同条件下创建不同实例时。让其子类实现工厂接口，返回的也是一个抽象的产品。创建过程在其子类执行。1、您需要一辆汽车，可以直接从工厂里面提货，而不用去管这辆汽车是怎么做出来的，以及这个汽车里面的具体实现。2、Hibernate 换数据库只需换方言和驱动就可以。1、一个调用者想创建一个对象，只要知道其名称就可以了。2、扩展性高，如果想增加一个产品，只要扩展一个工厂类就可以。]]></description><category></category></item><item><title><![CDATA[MYSQL的多表查询（join多表连接与子查询）]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/133649788</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/133649788</guid><author>Muskok</author><pubDate>Sat, 07 Oct 2023 19:18:42 +0800</pubDate><description><![CDATA[连接查询内连接外连接左外连接右外连接自连接子查询dept表。]]></description><category></category></item><item><title><![CDATA[数据库概念与SQL基本操作]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/133239632</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/133239632</guid><author>Muskok</author><pubDate>Sun, 24 Sep 2023 15:08:36 +0800</pubDate><description><![CDATA[QL（Structured Query Language）是“结构化查询语言”，它是对关系型数据库的操作语言。它可以应用到所有关系型数据库中，例如：MySQL、Oracle、SQL Server等。SQ标准（ANSI/ISO）有：SQL-92：1992年发布的SQL语言标准；SQL:1999：1999年发布的SQL语言标签；SQL:2003：2003年发布的SQL语言标签；这些标准就与JDK的版本一样，在新的版本中总要有一些语法的变化。不同时期的数据库对不同标准做了实现。]]></description><category></category></item><item><title><![CDATA[反射的定义与用法]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/132948329</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/132948329</guid><author>Muskok</author><pubDate>Sun, 17 Sep 2023 18:44:31 +0800</pubDate><description><![CDATA[JAVA反射机制是在运行状态中，对于任意一个类，都能够知道这个类的所有属性和方法；对于任意一个对象，都能够调用它的任意一个方法和属性；这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象总之，反射就是把java类中的各种成分映射成一个个的Java对象。]]></description><category></category></item><item><title><![CDATA[IO流基本概念和操作]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/132791444</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/132791444</guid><author>Muskok</author><pubDate>Sun, 10 Sep 2023 16:20:26 +0800</pubDate><description><![CDATA[IO指的是Input/Output，IO流：输入输出流。统称为数据流。在Java程序中，对于数据的输入 / 输出操作以流的方式进行；流是从起源到接收的有序数据。JDK提供了各种各样的流类，用以获取不同种类的数据；简单来说IO流是存储和读取数据的解决方案可以用windows自带的记事本打开并且能读懂的文件如txt md iml文件。]]></description><category></category></item><item><title><![CDATA[position定位与子绝父相]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/132626025</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/132626025</guid><author>Muskok</author><pubDate>Fri, 01 Sep 2023 16:59:05 +0800</pubDate><description><![CDATA[position属性指定一个元素（静态的，相对的，绝对或固定）的定位方法的类型。]]></description><category></category></item><item><title><![CDATA[Flex box 弹性盒子常用方法]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/132548492</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/132548492</guid><author>Muskok</author><pubDate>Mon, 28 Aug 2023 22:11:23 +0800</pubDate><description><![CDATA[弹性盒子（flex box）是 CSS3 的一种新的布局模式。CSS3 弹性盒（ Flexible Box 或 flexbox），是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间。]]></description><category></category></item><item><title><![CDATA[内间距padding和外间距margin]]></title><link>https://blog.youkuaiyun.com/Muskok/article/details/132396943</link><guid>https://blog.youkuaiyun.com/Muskok/article/details/132396943</guid><author>Muskok</author><pubDate>Sun, 20 Aug 2023 22:23:54 +0800</pubDate><description><![CDATA[这些默认的内外间距一定程度上会影响我们的自定义布局，所以在编写前端时通常会清除这些默认内外间距，清除方法只需在css里加入如下代码。此时，文字内容与盒子边缘的间距为0，当我们使用padding属性时，可以看到如下画面。运行如上代码，我们可以得到两个紧贴在一起的盒子，此时两个盒子的外间距为0。当我们使用外间距margin属性时，可以看到两个盒子分开了50px。比如：body标签默认有margin：8px。定义：设置边框以外，盒子与盒子之间的距离。定义：内间距---元素和内容之间的间距。属性名：margin。]]></description><category></category></item></channel></rss>