<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Can96的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Can96</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Can96]]></copyright><item><title><![CDATA[一个很好用的简历网站]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/140692827</link><guid>https://blog.youkuaiyun.com/Can96/article/details/140692827</guid><author>Can96</author><pubDate>Thu, 25 Jul 2024 16:08:45 +0800</pubDate><description><![CDATA[全面简历]]></description><category></category></item><item><title><![CDATA[令牌桶算法]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/127623893</link><guid>https://blog.youkuaiyun.com/Can96/article/details/127623893</guid><author>Can96</author><pubDate>Mon, 31 Oct 2022 21:34:25 +0800</pubDate><description><![CDATA[漏桶算法直接强制限制了请求的速率，无论多大的并发请求数，都会以恒定的速率出现。当一个系统的请求处理速率大于漏桶算法的限制速率时，面对突发的大流量，将会出现大量请求被拒绝，而系统利用率低的情况，在这个时候，漏桶算法就不合适了。此时，就要用令牌桶算法。令牌桶在容量固定，在请求量平缓且低于令牌生成速率（令牌生成速率及令牌桶容量要根据系统的处理能力设置）时，令牌桶是满的，面对突发的大流量，令牌桶容量大小的请求数能获取到令牌，降低流量峰值的同时，避免大量请求被丢弃。请求流量平缓进入系统，直到与令牌生成速率持平。]]></description><category></category></item><item><title><![CDATA[java远程IP及端口连通性]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/127060908</link><guid>https://blog.youkuaiyun.com/Can96/article/details/127060908</guid><author>Can96</author><pubDate>Mon, 26 Sep 2022 21:19:29 +0800</pubDate><description><![CDATA[Java的远程机器网络状态监听]]></description><category></category></item><item><title><![CDATA[mysql之concat]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/123373855</link><guid>https://blog.youkuaiyun.com/Can96/article/details/123373855</guid><author>Can96</author><pubDate>Thu, 10 Mar 2022 17:09:53 +0800</pubDate><description><![CDATA[concat() 函数
MySQL 的 concat()函数可用于多个字段及字符串的连接，返回连接后的字符串。
Ps:
1. 多个字段或字符串之间用逗号隔开，字段中任何一个参数为NULL ，则返回值为 NULL；
2. 所有参数均为非二进制字符串，则结果为非二进制字符串；字段的值中含有任一二进制字符串，则结果为一个二进制字符串，此时需要cast显式转换成非二进制字符串CAST(int_col AS CHAR)。
实例


...]]></description><category></category></item><item><title><![CDATA[使用PLSQL远程连接Oracle]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/121544512</link><guid>https://blog.youkuaiyun.com/Can96/article/details/121544512</guid><author>Can96</author><pubDate>Thu, 25 Nov 2021 19:40:16 +0800</pubDate><description><![CDATA[1. 场景：
工作中碰到一个场景，某些业务需要查询第三方的Oracle数据库视图，该数据库部署在远程的内网中，现在需要在办公环境连接数据库查询数据。
2. 准备：
根据小伙伴的推荐，安装了PLSQL（我的版本是 PLSQL Developer 13 (64 bit)），下载Instant Client (我这下载了 12.1.0.2.0 版)
2.1 PLSQL 安装 
2.2 Instant Client配置 InstantClient可以放置任意位置，后续设置好环境变量就好了，比较重要的是tnsname]]></description><category></category></item><item><title><![CDATA[tomcat启动失败 Exception fixing docBase for context]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/120883259</link><guid>https://blog.youkuaiyun.com/Can96/article/details/120883259</guid><author>Can96</author><pubDate>Thu, 21 Oct 2021 11:53:10 +0800</pubDate><description><![CDATA[问题描述：
在服务器部署java程序时，向服务器上传了war包，程序自启动失败，手动启动失败，查看程序业务日志，发现没有启动信息，没有启动成功；随即，查看tomcat启动日志 catalina.out 发现启动报错，分析后发现是war包解压失败或war包不存在。去查看war存放目录，好家伙，发现多了一个 空的*.war ！立马把它删了，再次启动，启动成功。
在tomcat启动准备前会到war存放目录下扫描war并进行解压。 这种多了一个空的war包，在准备阶段，解压报错，或者解压错了war包，启动自然不..]]></description><category></category></item><item><title><![CDATA[yyyy-MM-dd hh:mm:ss与 yyyy-MM-dd HH:mm:ss 的区别]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/120218072</link><guid>https://blog.youkuaiyun.com/Can96/article/details/120218072</guid><author>Can96</author><pubDate>Fri, 10 Sep 2021 11:18:59 +0800</pubDate><description><![CDATA[HH 表示24小时制
hh 表示12小时制
在Java中，如果使用yyyy-MM-dd hh:mm:ss
2021-09-09 12:56:32 被转换成 2021-09-09 00:56:32
2021-09-09 13:00:00 ~ 2021-09-09 23:59:59 将不会被转换
mm与m，区别为否有前导零：H,m,s表示非零开始，HH,mm,ss表示从零开始。
比如 凌晨一点零一分 HH:mm显示为01:01，H:m显示为1:2

...]]></description><category></category></item><item><title><![CDATA[线程池框架-Executor]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/119988360</link><guid>https://blog.youkuaiyun.com/Can96/article/details/119988360</guid><author>Can96</author><pubDate>Mon, 30 Aug 2021 02:07:37 +0800</pubDate><description><![CDATA[1. 什么是线程池？
在我们程序存在并发任务时，每个任务都需要分配一个线程执行。当存在大量并发任务时，每个任务都创建一个新的线程，在任务结束时进行销毁，这种情况下，极其消耗系统的资源，线程的创建及销毁占了其生命周期的大部分时间。同时，存在突发并发任务时，容易导致降低系统的稳定性。线程池的出现，解决了这种问题。我们可以将线程的创建，管理，销毁交给线程池管理。
1.1 通过固定同一时间存在的线程数量，避免无休止创建线程导致系统资源消耗过大；
1.2 通过给新任务分配已创建的线程，减少了线程创建的时间。任务结束后]]></description><category></category></item><item><title><![CDATA[Java对象头]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/119722301</link><guid>https://blog.youkuaiyun.com/Can96/article/details/119722301</guid><author>Can96</author><pubDate>Mon, 16 Aug 2021 00:55:28 +0800</pubDate><description><![CDATA[在学习Java的多线程与并发时，会涉及到锁的概念。在对java的锁机制进行了解之后，我们会发现，一个Java对象的锁状态是保存在其对象头中的。
什么是对象头
对象头是一个对象用于保存对象自身状态的区域，他包括了标记字段（Mark Word）和类型指针（Class Pointer)两部分。如果是数组对象，除了标记字段，类型指针外，还有数组长度（Length）。

对象头布局
下面以64位Mark Word 为例：


锁标记位（lock）：
01 ： (无锁、偏向锁)
00 ： (轻量级锁)
01 ： (重量]]></description><category></category></item><item><title><![CDATA[mysql的锁]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/119091580</link><guid>https://blog.youkuaiyun.com/Can96/article/details/119091580</guid><author>Can96</author><pubDate>Mon, 26 Jul 2021 01:18:00 +0800</pubDate><description><![CDATA[1. MySQL的锁机制
数据库锁定机制是数据库为了保证数据的一致性，使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说，具备相应的锁定机制十分必要。
MySQL数据库由于其自身架构的特点，存在多种数据存储引擎，每种存储引擎所针对的应用场景特点都不太一样。为了满足各自特定应用场景的需求，每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计，所以各存储引擎的锁定机制也有较大区别。
MySQL各存储引擎使用了三种类型（级别）的锁定机制：表级锁定，行级锁定和页级锁定。
1.表级锁定（]]></description><category></category></item><item><title><![CDATA[ApplicationContext]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/118657586</link><guid>https://blog.youkuaiyun.com/Can96/article/details/118657586</guid><author>Can96</author><pubDate>Sun, 11 Jul 2021 19:27:08 +0800</pubDate><description><![CDATA[1. ApplicationContext
ApplicationContext是spring的一个核心接口或容器，允许容器通过应用程序上下文环境创建、获取、管理bean。
ApplicationContext接口继承了ListableBeanFactory，HierarchicalBeanFactory，MessageSource，ApplicationEventPublisher，ResourcePatternResolver等接口，所以，也具备相应接口的能力。

ListableBeanFactory]]></description><category></category></item><item><title><![CDATA[Spring及SpringBoot常用注解学习]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/116135095</link><guid>https://blog.youkuaiyun.com/Can96/article/details/116135095</guid><author>Can96</author><pubDate>Sun, 25 Apr 2021 19:01:50 +0800</pubDate><description><![CDATA[1.  @SpringBootApplication
spring boot项目的启动注解，平时我们在创建spring boot项目后，会自动默认加在主类上

@SpringBootApplication 的功能可由 @Configuration、@EnableAutoConfiguration、@ComponentScan 三个注解替代。

@Configuration ：允许在 Spring 上下文中注册额外的 bean 或导入其他配置类
@EnableAutoConfiguration ：允许启用 S]]></description><category></category></item><item><title><![CDATA[Java定时任务]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/115842781</link><guid>https://blog.youkuaiyun.com/Can96/article/details/115842781</guid><author>Can96</author><pubDate>Mon, 19 Apr 2021 01:02:43 +0800</pubDate><description><![CDATA[当程序的某些功能在需要特定时间触发执行时，通过定时任务就很好解决。定时任务随着技术的发展，也向功能更强大，实用性，使用更简单的方向发展。
1. Timer
这是Java自带的定时任务实现类，使用方便，无需任何其他的配置，通过重写TimerTask 类的run方法，可实现定时任务的具体执行任务。但是Timer在有多个定时任务时，如果定时任务执行时间长于任务定时间隔，将会影响其他任务的定时执行时间；同时，程序某个定时任务出现异常后，将影响所有定时任务。

Java的Timer详细学习

public class]]></description><category></category></item><item><title><![CDATA[热部署]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/115404862</link><guid>https://blog.youkuaiyun.com/Can96/article/details/115404862</guid><author>Can96</author><pubDate>Mon, 05 Apr 2021 20:18:55 +0800</pubDate><description><![CDATA[热部署，是指在不关闭或重启服务的情况下，更新Java类文件或配置文件，实现修改内容生效；通过热部署，可提高开发效率，节省程序打包重启的时间，同时，可实现生产环境中需要不停机或重启的服务的升级。
1.热部署实现原理
对于Java应用程序，热部署就是程序运行时实现Java类文件更新。要实现程序在运行中进行程序更新，就需要让java虚拟机在检测到Java类文件发生变化时，把原来的类文件卸载，并重新加载新的类文件。总的来说，热部署的本质是让jvm重新加载新的class文件。

...]]></description><category></category></item><item><title><![CDATA[springCloud初窥]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/115059955</link><guid>https://blog.youkuaiyun.com/Can96/article/details/115059955</guid><author>Can96</author><pubDate>Mon, 22 Mar 2021 01:29:54 +0800</pubDate><description><![CDATA[springCloud初窥
什么是SpringCloud
spring cloud 是一系列框架及组件的集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发，如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等，都可以用 spring boot 的开发风格做到一键启动和部署。spring cloud 并没有重复制造轮子，它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来，通过 spring boot 风格进行再封装屏蔽掉了复杂的配置和实现原理，]]></description><category></category></item><item><title><![CDATA[logback学习]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/109710366</link><guid>https://blog.youkuaiyun.com/Can96/article/details/109710366</guid><author>Can96</author><pubDate>Sun, 15 Nov 2020 22:22:11 +0800</pubDate><description><![CDATA[1. 什么是logback
Logback是作为流行的log4j项目的继承者，继承log4j遗留下来的地方。它的体系结构非常通用，可以适用于不同的环境。目前logback分为logback-core、logback-classic和logback-access三个模块。其中,Logback-core模块为其他两个模块奠定了基础。logback-classic是log4j的一个改进版本。而且，logback-classic完整的实现了SLF4J API，这样我们可以很方便的切换日志打印系统，如log4j,jd]]></description><category></category></item><item><title><![CDATA[log4j及log4j2学习]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/109566913</link><guid>https://blog.youkuaiyun.com/Can96/article/details/109566913</guid><author>Can96</author><pubDate>Sun, 08 Nov 2020 23:31:56 +0800</pubDate><description><![CDATA[log4j
1.	log4j简介

定义每一条日志信息的级别，更加细致地控制日志的生成过程；
控制每一条日志的输出格式；
控制日志信息输送的目的地是控制台、文件等。

log4j包含三个组件,分别是 Loggers(记录器-区分日志类别)、Appenders(输出源-日志输出的地方)、Layouts(日志布局-日志的输出形式)

Loggers：负责产生日志，能够对日志进行筛选，控制什么样的日志可以被输出，什么样的日志应该被忽略。可分为五个级别：DEBUG、INFO、WARN、ERROR、FATAL，从左到]]></description><category></category></item><item><title><![CDATA[maven的setting.xml配置详解]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/109353623</link><guid>https://blog.youkuaiyun.com/Can96/article/details/109353623</guid><author>Can96</author><pubDate>Thu, 29 Oct 2020 17:16:12 +0800</pubDate><description><![CDATA[maven的setting.xml文件一般会存在两个地方：
1. 在maven安装目录（全局）：…/conf/setting.xml
2. 在用户安装目录下（当前用户下）：${user.home}.m2\settings.xml
当两者都存在，它们的内容将被合并，特定于用户的settings.xml文件占主导地位。
1. setting.xml文件模板
&lt;settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://]]></description><category></category></item><item><title><![CDATA[git介绍及常用命令]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/109329876</link><guid>https://blog.youkuaiyun.com/Can96/article/details/109329876</guid><author>Can96</author><pubDate>Wed, 28 Oct 2020 14:16:49 +0800</pubDate><description><![CDATA[git介绍及常用命令
1. 什么是git
Git 是一个开源的分布式版本控制系统，用于敏捷高效地处理任何或小或大的项目。
2. git 与 svn
2.1	Git 是分布式的, Svn是非分布式的；
2.2	Git 把内容按元数据方式存储，而 SVN 是按文件；
2.3	Git 分支和 SVN 的分支不同：分支在 SVN 中就是版本库中的另外一个目录；
2.4	Git 没有一个全局的版本号；
2.5	Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性，确保在遇到磁盘故障和网络问题时降]]></description><category></category></item><item><title><![CDATA[微信小程序学习]]></title><link>https://blog.youkuaiyun.com/Can96/article/details/103564144</link><guid>https://blog.youkuaiyun.com/Can96/article/details/103564144</guid><author>Can96</author><pubDate>Mon, 16 Dec 2019 17:51:18 +0800</pubDate><description><![CDATA[1.小程序的入口

聊天页面下拉；
发现=》小程序；
线下扫码进入；
好友分享进入小程序页面

2.小程序具备哪些开放能力？

实现了应用的触手可及，只需要通过扫描二维码、搜索或者是朋友的分享就可以直接打开，加上优秀的体验，小程序使得服务提供者的触达能力变得更强。
小程序框架本身所具有的快速加载和快速渲染能力，加之配套的云能力、运维能力和数据汇总能力，使得开发者不需要去处理琐碎的工作，可以把精力放...]]></description><category></category></item></channel></rss>