<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Tableau1的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Tableau1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Tableau1]]></copyright><item><title><![CDATA[无基础如何学习C语言？C语言入门经验分享]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/98617800</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/98617800</guid><author>Tableau1</author><pubDate>Tue, 06 Aug 2019 14:54:01 +0800</pubDate><description><![CDATA[C语言是面向过程的，而C++是面向对象的 C和C++的区别：
　　C是一个结构化语言，它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程，对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。
　　C++，首要考虑的是如何构造一个对象模型，让这个模型能够契合与之对应的问题域，这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在...]]></description><category></category></item><item><title><![CDATA[redis使用案例]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/98501462</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/98501462</guid><author>Tableau1</author><pubDate>Mon, 05 Aug 2019 17:25:29 +0800</pubDate><description><![CDATA[1.计数器 string
单线程，避免并发问题，保证不会出错，毫秒级性能
命令：INCRBY incrby
2.队列 list 简单消息队列、用户第几个访问、新闻列表排序
由于redis把数据添加到队列是返回添加元素在队列的第几位，所以可以做判断用户是第几个访问这种业务
新闻列表页面最新的新闻列表，redis的 LPUSH命令构建List
3.在线状态、签到（大数据处理）
几亿用户系统的签到，去重...]]></description><category></category></item><item><title><![CDATA[Python—三目运算]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/98501301</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/98501301</guid><author>Tableau1</author><pubDate>Mon, 05 Aug 2019 17:23:52 +0800</pubDate><description><![CDATA[Python 可通过 if 语句来实现三目运算的功能，因此可以近似地把这种 if 语句当成三目运算符。作为三目运算符的 if 语句的语法格式如下：
(True_statements) if (expression) else (False_statements)
三目运算的规则是：先对逻辑表达式 expression 求值，如果逻辑表达式返回 True，则执行并返回 True_statements...]]></description><category></category></item><item><title><![CDATA[Python基础day12飞机大战]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/98498936</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/98498936</guid><author>Tableau1</author><pubDate>Mon, 05 Aug 2019 16:59:09 +0800</pubDate><description><![CDATA[飞机大战代码：搭建界面

#coding=utf-8
import pygame
‘’’
1. 搭建界面，主要完成窗口和背景图的显示
‘’’
def main():
#1. 创建一个窗口，用来显示内容
screen = pygame.display.set_mode((480,852),0,32)

#2. 创建一个和窗口大小的图片，用来充当背景
background = pygame.image...]]></description><category></category></item><item><title><![CDATA[java线程池常见面试题]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/98498699</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/98498699</guid><author>Tableau1</author><pubDate>Mon, 05 Aug 2019 16:54:10 +0800</pubDate><description><![CDATA[什么是线程池？
线程池是一种多线程处理形式，处理过程中将任务提交到线程池，任务的执行交由线程池来管理。
如果每个请求都创建一个线程去处理，那么服务器的资源很快就会被耗尽，使用线程池可以减少创建和销毁线程的次数，每个工作线程都可以被重复利用，可执行多个任务。
为什么要使用线程池？
创建线程和销毁线程的花销是比较大的，这些时间有可能比处理业务的时间还要长。这样频繁的创建线程和销毁线程，再加上业务工作线...]]></description><category></category></item><item><title><![CDATA[springboot日志]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/98497925</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/98497925</guid><author>Tableau1</author><pubDate>Mon, 05 Aug 2019 16:46:02 +0800</pubDate><description><![CDATA[A.日志框架
1. 引入

我在开发阶段通过 System.out.print("") 进行测试，上线之后把日志输出到一个日志里记录运行情况
我们可以自定义一个框架，用于记录运行时的一些信息

改进：将日志进行过滤功能，异步模式，自动归档…
改进：新框架出来了，要改代码替换之前的框架

面向接口编程
日志抽象层
向项目中导入不同的日志实现





2. 市面上的日志框架

JUL, JCL, J...]]></description><category></category></item><item><title><![CDATA[springmvc整合]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/98497636</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/98497636</guid><author>Tableau1</author><pubDate>Mon, 05 Aug 2019 16:44:05 +0800</pubDate><description><![CDATA[一、快速搭建SpringMVC环境
1、搭建思路
1）、创建web项目及controller包 2）、导入坐标
3）、创建spring-mvc核心配置文件 4）、配置web.xml
5）、编写controller及业务方法 6）、启动服务进行测试 2、具体开发 1）、创建web项目及controller包
1.1、创建项目过程此处省略… 1.2、注意事项
1.2.1、项目结构如下图，注：web包在...]]></description><category></category></item><item><title><![CDATA[TreeSet两种自然比较方法]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/98497039</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/98497039</guid><author>Tableau1</author><pubDate>Mon, 05 Aug 2019 16:36:52 +0800</pubDate><description><![CDATA[一:1.用TreeSet集合存储自定义对象，无参构造方法使用的是自然排序对元素进行排序的自然排序，
2.就是让元素所属的类实现Comparable接口，重写compareTo(T o)方法
3.重写方法时，一定要注意排序规则必须按照要求的主要条件和次要条件来写
public class Student implements Comparable {
@Override    public int ...]]></description><category></category></item><item><title><![CDATA[分布式ID生成解决方案]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/98496751</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/98496751</guid><author>Tableau1</author><pubDate>Mon, 05 Aug 2019 16:35:04 +0800</pubDate><description><![CDATA[1.2.1 UUID
常见的方式。可以利用数据库也可以利用程序生成，一般来说全球唯一。
优点：
1）简单，代码方便。
2）生成ID性能非常好，基本不会有性能问题。
3）全球唯一，在遇见数据迁移，系统数据合并，或者数据库变更等情况下，可以从容应对。
缺点：
1）没有排序，无法保证趋势递增。
2）UUID往往是使用字符串存储，查询的效率比较低。
3）存储空间比较大，如果是海量数据库，就需要考虑存储量的...]]></description><category></category></item><item><title><![CDATA[分布式缓存系统Memcached入门]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/98063576</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/98063576</guid><author>Tableau1</author><pubDate>Thu, 01 Aug 2019 15:47:01 +0800</pubDate><description><![CDATA[维基百科上对 Memcached 的介绍是一个分布式的缓存系统， 但是 Memcachd 到底是什么意思，有什么作用呢？缓存一般用来保存一些经常被存取的数据和资源（例如：浏览器会将访问过的网页会话缓存起来），因为通过缓存来存取数据要比从磁盘存取同样的数据要快得多。所以 Memcached 顾名思义，意味着 “内存缓存”，所有缓存的内容都在服务器的内存中。内存中的这些缓存数据可以通过 API 的方式...]]></description><category></category></item><item><title><![CDATA[Web开发中如何解决中文乱码问题]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/98062681</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/98062681</guid><author>Tableau1</author><pubDate>Thu, 01 Aug 2019 15:19:25 +0800</pubDate><description><![CDATA[乱码问题永远是Web初学者的一个拦路虎，如果要避免乱码问题。需要了解乱码问题的成因。首先介绍几种常见的编码。
UTF-8（8-bit Unicode Transformation Format）
UTF-8 是一种针对Unicode的可变长度字符编码，也是一种前缀码。它可以用来表示Unicode标准中的任何字符，且其编码中的第一个字节仍与ASCII兼容，这使得原来处理ASCII字符的软件无须或只须...]]></description><category></category></item><item><title><![CDATA[hbase调优详解（1）服务器参数调优]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/98060887</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/98060887</guid><author>Tableau1</author><pubDate>Thu, 01 Aug 2019 15:06:22 +0800</pubDate><description><![CDATA[一、服务器参数调优
1、hbase.regionserver.handler.count：增加服务器的处理线程数
hbase.regionserver.handler.count：该设置决定了处理RPC的线程数量，默认值是10。这样设置的目的是防止服务器在某些情况吓出现内存耗尽的情况。
如果服务器上的可用内存较少，就应该将该属性设置为较低的值。如果每个请求只需要一点点的内存，但是每秒TPS却很高，...]]></description><category></category></item><item><title><![CDATA[使用 Docker 搭建你自己的 RSS 服务（Miniflux）]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/98060176</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/98060176</guid><author>Tableau1</author><pubDate>Thu, 01 Aug 2019 15:00:09 +0800</pubDate><description><![CDATA[使用 Docker 搭建你自己的 RSS 服务（Miniflux）
在算法推荐满天飞的世界里，定制获取信息就显得比较另类了，但是它可能是更高效的手段。
本篇是我之前提到的三种常规的 RSS 服务搭建方式的第三篇，Miniflux。
如果你有阅读过我之前写的文章，那么参考本篇文章将文章搭建起来，应该只需要3分钟或者更少，如果你没有看过，那么可以点击本文相关的文章标签，阅读过往的文章。
关于 Mini...]]></description><category></category></item><item><title><![CDATA[轻松搞定python中模板和包的使用]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/98059407</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/98059407</guid><author>Tableau1</author><pubDate>Thu, 01 Aug 2019 14:46:04 +0800</pubDate><description><![CDATA[模块
1.1 模块的概念
模块是 Python 程序架构的一个核心概念

每一个以扩展名 py 结尾的 Python 源代码文件都是一个 模块
模块名 同样也是一个 标识符，需要符合标识符的命名规则
在模块中定义的 全局变量 、函数、类 都是提供给外界直接使用的 工具
模块 就好比是 工具包，要想使用这个工具包中的工具，就需要先 导入 这个模块
1.2 模块的两种导入方式
1）import 导入...]]></description><category></category></item><item><title><![CDATA[csrf和xss攻击]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/98058826</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/98058826</guid><author>Tableau1</author><pubDate>Thu, 01 Aug 2019 14:41:01 +0800</pubDate><description><![CDATA[什么是csrf攻击?
跨站请求伪造
csrf攻击的原理
1,登陆正常网站A
2,返回cookie存储到用户C
3,用户C没登出访问B
4,B伪造请求发送给A
5,A不能判断请求的来源,处理了B的请求达到攻击针对csrf攻击进行防护
a.验证 HTTP Referer 字段;
b.在请求中添加 token 并验证;
c.在 HTTP 头中自定义属性并验证;
什么是xss攻击?
跨站脚本攻击
xss攻...]]></description><category></category></item><item><title><![CDATA[数据库优化]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/98058470</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/98058470</guid><author>Tableau1</author><pubDate>Thu, 01 Aug 2019 14:39:20 +0800</pubDate><description><![CDATA[1、MySQL优化综合性技术
表的设计合理化（符合3NF，有时也要进行反三范式操作）
添加适当索引
分表技术（水平分割、垂直分割）
主从复制，读写分离
存储过程（模块化编程，可以提高速度）
对MySQL配置优化（配置最大并发数my.ini，调整缓存大小）
系统应用优化等
服务器的硬件优化
2、索引分类
单值索引
一个索引只包含单个列,一个表可以有多个单值索引,一般来说, 一个表建立索引不要超过5个...]]></description><category></category></item><item><title><![CDATA[Mysql相关优化建议]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/97394077</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/97394077</guid><author>Tableau1</author><pubDate>Fri, 26 Jul 2019 16:08:48 +0800</pubDate><description><![CDATA[数据库优化总结
1.对查询进行优化，要尽量避免全表扫描，首先应考虑在 where 及 order by 涉及的列上建立索引。
2.应尽量避免在 where 子句中对字段进行 null 值判断，否则将导致引擎放弃使用索引而进行全表扫描，如：
select id from t where num is null
最好不要给数据库留NULL，尽可能的使用 NOT NULL填充数据库.
备注、描述、评论之...]]></description><category></category></item><item><title><![CDATA[CAS的详细登录流程]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/97393811</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/97393811</guid><author>Tableau1</author><pubDate>Fri, 26 Jul 2019 16:03:48 +0800</pubDate><description><![CDATA[上图是3个登录场景，分别为：第一次访问www.qiandu.com、第二次访问、以及登录状态下第一次访问mail.qiandu.com。
下面就详细说明上图中每个数字标号做了什么，以及相关的请求内容，响应内容。
2.1、第一次访问www.qiandu.com
标号1：用户访问http://www.qiandu.com，经过他的第一个过滤器（cas提供，在web.xml中配置）Authenticat...]]></description><category></category></item><item><title><![CDATA[7 个有用JavaScript技巧]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/97393294</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/97393294</guid><author>Tableau1</author><pubDate>Fri, 26 Jul 2019 15:53:33 +0800</pubDate><description><![CDATA[数组去重
var arr = [1, 2, 3, 3, 4];
console.log(…new Set(arr))
&gt;&gt; [1, 2, 3, 4]
数组和布尔
有时我们需要过滤数组中值为 false 的值. 例如(0, undefined, null, false), 你可能不知道这样的技巧
var myArray = [1, 0 , undefined, null, false];...]]></description><category></category></item><item><title><![CDATA[HTML自学路线]]></title><link>https://blog.youkuaiyun.com/Tableau1/article/details/97392988</link><guid>https://blog.youkuaiyun.com/Tableau1/article/details/97392988</guid><author>Tableau1</author><pubDate>Fri, 26 Jul 2019 15:47:15 +0800</pubDate><description><![CDATA[1、实例解析
l   声明为 HTML5 文档
l   元素是 HTML 页面的根元素
l   元素包含了文档的元（meta）数据，如  定义网页编码格式为 utf-8。
l   元素描述了文档的标题&lt;br/&gt;
l   元素包含了可见的页面内容&lt;br/&gt;
l  &lt;h1&gt; 元素定义一个大标题&lt;br/&gt;
l  &lt;p&gt; 元素定义一个段落&lt;...]]></description><category></category></item></channel></rss>