<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Key_finger的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Key_finger</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Key_finger]]></copyright><item><title><![CDATA[pytorch 安装配置教程-MAC系统 M 系列芯片]]></title><link>https://blog.youkuaiyun.com/Key_finger/article/details/136951063</link><guid>https://blog.youkuaiyun.com/Key_finger/article/details/136951063</guid><author>Key_finger</author><pubDate>Fri, 22 Mar 2024 20:28:45 +0800</pubDate><description><![CDATA[打开一个试运行的 pytorch 项目，此处需要配置解释器，选择刚才创建好的 anaconda 环境，如下图。安装完毕后如果找不到 anaconda 的应用图标，执行以下命令。此步按照自己所需要的依赖包即可，此处 install 几个常用的。这步注意选择与之相对应芯片的版本。创建 Anaconda 运行环境。]]></description><category></category></item><item><title><![CDATA[Golang解析JSON]]></title><link>https://blog.youkuaiyun.com/Key_finger/article/details/128473022</link><guid>https://blog.youkuaiyun.com/Key_finger/article/details/128473022</guid><author>Key_finger</author><pubDate>Wed, 28 Dec 2022 19:34:54 +0800</pubDate><description><![CDATA[golang解析json]]></description><category></category></item><item><title><![CDATA[MySQL存储过程，表名作变量实例]]></title><link>https://blog.youkuaiyun.com/Key_finger/article/details/122546744</link><guid>https://blog.youkuaiyun.com/Key_finger/article/details/122546744</guid><author>Key_finger</author><pubDate>Mon, 17 Jan 2022 19:43:05 +0800</pubDate><description><![CDATA[1、首先创建存储过程
delimiter $$
DROP procedure IF EXISTS getDataByDbName $$ 
CREATE procedure getDataByDbName(in dbName VARCHAR(20))
BEGIN
SET @STMT =CONCAT("SELECT * from ",dbName,";"); 
PREPARE STMT FROM @STMT; 
EXECUTE STMT; 
end$$
delimiter;

2、然后给变量赋值
SET @na]]></description><category></category></item><item><title><![CDATA[ZooKeeper的总结]]></title><link>https://blog.youkuaiyun.com/Key_finger/article/details/119808598</link><guid>https://blog.youkuaiyun.com/Key_finger/article/details/119808598</guid><author>Key_finger</author><pubDate>Thu, 19 Aug 2021 19:01:48 +0800</pubDate><description><![CDATA[一、引言


在分布式环境下，如果舍弃SpringCloud，使用其他的分布式框架，那么注册心中，配置集中管理，集群管理，分布式锁，队列的管理想单独实现怎么办。

二、Zookeeper介绍


Zookeeper本身是Hadoop生态圈的中的一个组件，Zookeeper强大的功能，在Java分布式架构中，也会频繁的使用到Zookeeper。


三、Zookeeper安装
docker-compose.yml
version: "3.1"
services:
  zk:
   image: daoclou]]></description><category></category></item><item><title><![CDATA[Java架构的演进]]></title><link>https://blog.youkuaiyun.com/Key_finger/article/details/119739313</link><guid>https://blog.youkuaiyun.com/Key_finger/article/details/119739313</guid><author>Key_finger</author><pubDate>Mon, 16 Aug 2021 18:57:15 +0800</pubDate><description><![CDATA[一、Web1.0&amp;Web2.0阶段
1.1、Web1.0阶段
在Web1.0阶段，由于带宽不足，这时的项目大多是内容少，用户量也不多，甚至有一些项目不需要对外开放，对安全性和稳定性的要求是不高的。
单体架构就足以应对。

1.2、Web2.0阶段
随之到来的Web2.0阶段，实现了ADSL拨号上网，宽带提速，最高可以达到8M，用户量也就不断增加，一些门户网站也开始活跃，项目就需要考虑安全性和稳定性。
在基于上面的单体架构图中，无法满足Web2.0对项目的需求。
在单体架构的基础上去搭建集群。
在搭建]]></description><category></category></item><item><title><![CDATA[java常用的集合和方法]]></title><link>https://blog.youkuaiyun.com/Key_finger/article/details/119332073</link><guid>https://blog.youkuaiyun.com/Key_finger/article/details/119332073</guid><author>Key_finger</author><pubDate>Mon, 02 Aug 2021 19:16:18 +0800</pubDate><description><![CDATA[1.Collection集合
1.1为什么使用集合

数组在使用时：
​	1.要定义容器的大小，超了直接报异常
​	2.数组操作的方法很少，没有专门的封装方法
​	3.数据类型也比较单一
期望有一个java方式，把之前讲的操作数组的方法封装到一起，供程序员使用。
​	Collection集合【它是一个接口】完成了一系列增删改查的操作

1.2.集合类的结构

Collection java中所有集合的总接口
–|List 是Collection下面的子接口【特征：无序的，不可重复的】
–|--|ArrayL]]></description><category></category></item><item><title><![CDATA[git指令大全]]></title><link>https://blog.youkuaiyun.com/Key_finger/article/details/119331874</link><guid>https://blog.youkuaiyun.com/Key_finger/article/details/119331874</guid><author>Key_finger</author><pubDate>Mon, 02 Aug 2021 19:11:21 +0800</pubDate><description><![CDATA[Git指令大全
git基础配置
(只配置一次就行了)
git config --global user.name "DFAGFSG" 
git config --global user.email "li702536568@163.com" 

git config -l


创建仓库/初始化仓库 git init

一个工程/文件夹  只能 初始化一次 生成.git 文件夹
 git init

将当前文件夹下所有的文件 提交到到暂存区
 git add .

将暂存区的代码提交 对应的分支（版本库中）
]]></description><category></category></item><item><title><![CDATA[mybatis总结]]></title><link>https://blog.youkuaiyun.com/Key_finger/article/details/119331798</link><guid>https://blog.youkuaiyun.com/Key_finger/article/details/119331798</guid><author>Key_finger</author><pubDate>Mon, 02 Aug 2021 18:59:41 +0800</pubDate><description><![CDATA[一，概述：
就是对jdbc数据库操作进行封装，使用户开发者只用关注sql语句。通过xml或者注解的方式，将要执行的各种sql语句配置起来，并通过Java对象和statement中的sql语句映射生成最终的sql语句，最后由mybatis框架执行sql语句，并将结果映射成Java对象返回。
二. 工作原理：
1，分层：
a，接口层：接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理
b，数据处理层：SQL查找、SQL解析、SQL执行和执行结果映射处理
c，基础支撑层：功能支撑，包括连接管理、事务管理]]></description><category></category></item><item><title><![CDATA[token简析]]></title><link>https://blog.youkuaiyun.com/Key_finger/article/details/119331664</link><guid>https://blog.youkuaiyun.com/Key_finger/article/details/119331664</guid><author>Key_finger</author><pubDate>Mon, 02 Aug 2021 18:52:46 +0800</pubDate><description><![CDATA[背景：
token是客户端频繁向服务端请求数据，服务端频繁去数据库查询用户名和密码并进行对比，判断用户名和密码正确与否，这样的话服务器的压力，数据库的压力是比较大的，于是token便应运而生。
定义：
token是服务端生成的一串字符串，作为客户端进行请求的一个令牌。当第一次登录后，服务器生成一个token便将此token返回给客户端，以后客户端只需带上这个token来请求数据即可，无需再次带上用户名和密码。
意义：
减轻了服务器的压力，减少频繁的查询数据库，使服务器更加健壮
使用：
1、用设备号/设备ma]]></description><category></category></item><item><title><![CDATA[代理模式总结]]></title><link>https://blog.youkuaiyun.com/Key_finger/article/details/118313444</link><guid>https://blog.youkuaiyun.com/Key_finger/article/details/118313444</guid><author>Key_finger</author><pubDate>Mon, 28 Jun 2021 22:08:46 +0800</pubDate><description><![CDATA[代理模式

代理模式 ：客户端 不直接 访问目标对象，而是通过代理访问目标对象
作用：


客户端不想直接访问实际的对象，或者访问实际的对象存在困难


原程序代码的前提下，对功能进行扩充


使用场景：
​    1.可以记录日志 目标对象 时长
​    2.可以拦截
​    3.事务控制 权限控制
代理模式：
​    静态代理 ：一个代理只能代理 一个目标对象
​    动态代理：一个代理 可以代理多种对象（     jdk cglib 这两种）

静态代理

静态代理主要包括以下几个主要部分
接]]></description><category></category></item><item><title><![CDATA[反射浅析]]></title><link>https://blog.youkuaiyun.com/Key_finger/article/details/117332394</link><guid>https://blog.youkuaiyun.com/Key_finger/article/details/117332394</guid><author>Key_finger</author><pubDate>Thu, 27 May 2021 16:47:17 +0800</pubDate><description><![CDATA[为什么要使用反射呢

一般情况下的程序对象是自己new的，程序相当于写死了给jvm去跑。但是，如果一个服务器上突然遇到某个请求哦要用到某个类，哎呀但没加载进jvm，是不是要停下来自己写段代码，new一下，启动一下服务器，（脑残？）！
反射是什么呢？当我们的程序在运行时，需要动态的加载一些类这些类可能之前用不到所以不用加载到jvm，而是在运行时根据需要才加载，这样的好处对于服务器来说不言而喻，举个例子我们的项目底层有时是用mysql，有时用oracle，需要动态地根据实际情况加载驱动类，这个时候反射就有用了，]]></description><category></category></item><item><title><![CDATA[匿名内部类简析]]></title><link>https://blog.youkuaiyun.com/Key_finger/article/details/114891626</link><guid>https://blog.youkuaiyun.com/Key_finger/article/details/114891626</guid><author>Key_finger</author><pubDate>Tue, 16 Mar 2021 17:57:56 +0800</pubDate><description><![CDATA[匿名内部类
顾名思义，匿名内部类是没有名字的类，不是声明的时候没有类名，实例化的时候咱们可以不写变量的名字。
基于abstract的匿名内部类
/**
 * 匿名内部类：没有名字的类，不是声明的时候没有类名，实例化的时候咱们可以不写变量的名字
 */
abstract class AbstractTest{
    abstract public void testInner();
}
class TestA extends AbstractTest{
    @Override
    public vo]]></description><category></category></item><item><title><![CDATA[泛型浅析]]></title><link>https://blog.youkuaiyun.com/Key_finger/article/details/114832671</link><guid>https://blog.youkuaiyun.com/Key_finger/article/details/114832671</guid><author>Key_finger</author><pubDate>Mon, 15 Mar 2021 14:40:24 +0800</pubDate><description><![CDATA[1.泛型
1.1为什么要使用泛型

在实际的开发中，对于数据一致化的要求是比较重要的
例如：
​		ArrayList list = new ArrayList();//构建了一个容器  int[] arr = new int[10];
​		如果咱们对可以保存到ArrayList中的数据类型没有进行约束的话，就是导致你容器里面放了各式各样的数据
​		如果需要取数据的话，有可能需要强制类型转换。浪费时间浪费执行效率甚至数据丢失。
为了解决这样的数据乱的情况，咱们要使用泛型里面的数据约束。
​		Array]]></description><category></category></item></channel></rss>