- 博客(195)
- 资源 (1)
- 收藏
- 关注
原创 阿里云OSS搭建图床并配置Typora自动上传
因为有使用typora写笔记的习惯,而且发现除从网络上复制的图片外 图片存储的位置都为本地,有可能丢失或移动,所以要上传到Oss上让其更保险。创建一个Bucket,要注意读写权限设置为功能读,鉴于图片的访问不会太频繁存储类型选择成了低频访问存储,这块不懂的同学可以花一会儿时间参考oss的官方文档入个门下载PicGo : 项目地址,根据Typora文档的说明大致了解到中文版用户可以下载app版本,就是带UI的版本,这是我的下载链接,运行并配置Oss。To use with Typora, we
2021-02-16 21:53:23
655
原创 无意间发现的Idea舒心小功能:复制代码到包下自动创建类
之前无意间触发过这一功能,本以为是什么快捷键,后来发现直接在一个包下粘贴就行了,貌似2019的部分版本和20版的才能这样玩,发现应该是idea识别出了class 和interface然后就自动创建了文件,比起之前先创建类再粘贴代码要舒服的多...
2021-01-28 12:17:12
1329
3
原创 记一次开发中遇到的问题:限制线程执行的数量
现有一个接口,每次请求后他会单独开启一个线程去处理业务,这个线程执行完大概要耗时1小时以上,并会在执行的过程中消耗一定的硬件资源,如果10秒钟内有10个请求过来就将有10个线程同时执行,这无疑会对服务器造成一定压力,所以现在要进行限制。实现方式这里首先想到的就是使用是否可以使用CountDownLatch 进行解决,初始化为零,然后A线程开始执行的时候把值设成1,执行完了就设置成0,在A还没结束的时候来了线程B就要进行等待。但是会有两种意外情况,第一种是两个线程同时获得CountDownLatch 的
2021-01-14 11:15:37
485
原创 使用navicat模型功能 快速理清表间关系
在看某个项目的数据库的时候发现表比较多,且都是和用户相关的,又涉及到租户、站点等,表关系有点小复杂,而且都是虚拟外键,于是自己来创建模型来方便缕清表之间关系。使用的工具为NavicatPremium15 ,12应该也差不了太多
2020-11-05 16:29:34
19908
2
原创 oauth2授权码登录:无法跳转到授权页面
浏览器访问下面的连接进行授权码登陆,注意此时的ip是192.168.43.183http://192.168.43.183:8301/auth/oauth/authorize?response_type=code&client_id=code&redirect_uri=http://www.baidu.com跳转到登陆页面后 发现,ip变成了网关地址如下:然后因域名不同就会导致session丢失 , 故不能跳转到授权页面,具体原因可参考:踩坑并且我尝试用代码 获取ip地址pub
2020-10-12 11:38:57
6610
4
原创 redisTemplate工具类分享
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.stereotype.Component;import org.springframework.util.CollectionUtils;import java.util.Collection;import
2020-09-14 09:01:28
252
原创 SpeedMent入门&集成SpringBoot&Stream常见操作
当您熟悉 Streams 的操作时,您可能已经注意到与 SQL 构造的相似之处。 它们中的一些或多或少直接映射到 Stream 操作,例如 LIMIT 和 COUNT。开源项目 Speedment 利用这种相似性,使用纯 Java 对任何关系数据库提供类型安全的访问。
2020-09-08 14:24:57
1228
原创 NIO实现服务器和客户端简单通讯与群聊系统
参考相关API汇总public abstract class Buffer { //JDK1.4时,引入的api public final int capacity( )//返回此缓冲区的容量 public final int position( )//返回此缓冲区的位置 public final Buffer position (int newPositio)//设置此缓冲区的位置 public final int limit( )//返回此缓冲区的限制 pub
2020-09-06 15:47:18
278
原创 坑,使用Powershell运行Jar包出错:找不到或无法加载主类
要运行的命令带了一些参数,百思不得姐的是会报如下的错误使用cmd则不会出现上述情况发现了下面这篇文章 【坑】【maven】在PowerShell窗口下执行maven命令行报错:Unknown lifecycle phase “.test.skip=true”.于是在这条命令上也加了单引号 命令变成了问题成功解决...
2020-08-23 16:48:35
2177
原创 Zookeeper应用实例:配置中心&生成分布式唯一Id&分布式锁
配置中心案例工作中有这样的一个场景: 数据库用户名和密码信息放在一个配置文件中,应用读取该配置文件,配置文件信息放入缓存。若数据库的用户名和密码改变时候,还需要重新加载缓存,比较麻烦,通过ZooKeeper可以轻松完成,当数据库发生变化时自动完成缓存同步。设计思路:连接zookeeper服务器读取zookeeper中的配置信息,注册watcher监听器,存入本地变量当zookeeper中的配置信息发生变化时,通过watcher的回调方法捕获数据变化事件重新获取配置信息在zookee
2020-08-04 18:13:50
447
原创 Redis笔记(四)初识Redis Cluster & 深入Redis Cluster & 缓存设计与优化
第9章 初识Redis ClusterRedis Cluster是Redis 3提供的分布式解决方案,有效解决了Redis分布式方面的需求,同时它也是学习分布式存储的绝佳案例。本章将针对Redis Cluster的数据分布,搭建集群进行分析说明。9-1 本章目录9-2 呼唤集群9-3 数据分布概论9-4 节点取余分区9-5 一致性哈希分区9-6 虚拟槽哈希分布9-7 基本架构9-8 原生安装9-9 原生安装-1.准备节点9-10 原生安装-2.节点握手9-11 原生安装-3.分配槽
2020-07-05 16:27:12
591
原创 Redis笔记(四)实验部分:redisCluster的原生安装与官方工具安装
原生安装通过原生安装虽然步骤繁琐但可以 达到理解架构的目的,安装主要分为以下四个步骤:配置开启节点cluster-enabled yes cluster-config-file nodes-${port}.conf使用六个配置启动:redis-server redis-7000.confredis-server redis-7001.confredis-server redis-7002.confredis-server redis-7003.confredis-server r
2020-07-05 16:26:46
260
原创 Redis笔记(三)常见的持久化开发运维问题 & Redis复制的原理与优化 & Redis Sentinel
第6章 常见的持久化开发运维问题本章探讨了常见的持久化问题进行定位和优化,最后结合Redis常见的单机多实例部署场景进行优化6-1 常见问题目录fork操作进程外开销AOF追加阻塞单机多实例部署6-2 fork同步操作与内存量息息相关:内存越大,耗时越长(与机器类型有关)info:latest_fork usec #查询 上一次持久化所消耗的时间改善fork优先使用物理机或者高效支持fork操作的虚拟化技术控制Redis实例最大可用内存:maxmemory合理配置Lin
2020-06-28 22:19:25
305
原创 day16飞机大战项目
飞机大战项目pygame.sprite.Sprite在游戏开发中通常把显示图片的对象叫做精灵可以 创建子类继承 Sprite类 四个游戏精灵共同属性image 我们加载的图片对象rect 图像显示的初始位置update()刷新游戏精灵的位置pygame.sprite.Groupupdate()调用精灵组中所有精灵的update()方法draw()将精灵组中所有精灵绘制到屏幕上add()将游戏精灵添加到精灵组当中游戏框架的搭建一个文件写游戏精灵的子类一个文件作为游戏的
2020-06-28 22:10:48
223
原创 游戏编程与基础day15
面向对象特性封装 继承 多态 抽象封装1. 任何对象都有明确的边界,将属性保护在边界之内 -- 可以将数据进行隐藏2. 封装的粒度 粒度过小: 对象过于简单,过程过于复杂 粒度过大: 对象过于复杂,不利于各司其职分门别类封装的好处 简化了编程模型,更容易记忆,调用封装的内容。 体现了代码可重用性继承性1. 类与类之间的关系2. 父类(更加抽象的类) 与 子类(相对具象的类)3. 语法规范 class 子类类名(父类的类名): pass 继承的特点:
2020-06-28 22:09:43
164
1
原创 游戏编程基础day13-14
编程思想面向对象 以对象为核心,根据需求 实现一个个对象面向过程 以动作为核心 根据需求 以流水账的形式进行书写类与对象的关系抽象的概念类就是对象的模板 图纸对象就是客观事物在人脑中的主观反应 小孩--动物园类是对象共性的抽象 猫 狗 马 -- 动物的特点 会动,会跑,会叫类的创建class 类名(首字母大写): pass class A: name = A: tedian1 = huijiao tedian2 = huipao tedian3 = huidong
2020-06-28 22:09:12
176
原创 游戏编程基础day12贪吃蛇进阶版
贪吃蛇进阶版1. 增加音效 开场背景音乐 得分音效。 游戏结束音效。2. 增加游戏玩法 加速 1. 通过时间来对游戏进行加速 2. 通过分数(通过蛇的长度) 3. 通过用户控制进行加速(事件) 增加障碍物 增加什么形状的障碍物,以及障碍物碰撞检测 人机对战 特殊道具 总得分 3. 增加游戏模式 事件挑战 闯关模式 皮肤选择 双人游戏...
2020-06-28 22:08:41
249
原创 游戏编程基础day11贪吃蛇
贪吃蛇思路1. 主角 矩形绘制 三个矩形2. 蛇的食物 随机生成, 避免食物出现的位置与主角重合3. 通过键盘事件 控制主角蛇移动 注意 贪吃蛇无法直接向反方向移动 移动时 蛇身体的矩形同时向移动方向偏移 移动时 头部先动 当 吃掉一个食物时 蛇的尾部要增加一个矩形 头部不能碰到蛇的身体 头不能超出游戏窗口4. 蛇一直自己移动 朝蛇头的方向移动代码# pygame游戏库,sys操控python运行的环境import pygame ,sys ,random# 这
2020-06-28 22:08:10
381
原创 游戏编程基础day10
键盘事件pygame.KEYUP 按键抬起event.keyevent.modpygame.KEYDOWN 按键按下键盘事件对象 只有属性没有方法event.key event.modevent.unicode生成事件pygame .event .post(一个事件类型)uevent = pygame.event.Event(pygame.QUIT)...
2020-06-28 22:07:38
146
原创 游戏编程基础day9
事件事件的概念用户与游戏进行的交互事件的类型MOUSEBUTTONDOWN 鼠标按下 pos 属性 记录鼠标当前的坐标 button属性 记录鼠标按键状态 鼠标按键 一般是有5个(左键,右键,滚轮按键,向上滚轮键,向下滚轮键,有侧键)MOUSEMOTION 鼠标移动 rel 属性 鼠标相对运动距离 相对于上一次鼠标移动事件 pos 属性 记录鼠标当前的坐标MOUSEBUTTONUP 鼠标弹起 pos 属性 记录鼠标当前的坐标 button属性 记录鼠标按键抬
2020-06-28 22:07:02
191
原创 游戏编程基础day8
Rect类拥有的方法clamp() 将矩形移动到另一个矩形当中move(x,y) 移动矩形 xy 支持数字类型使用方法跟属性 目的:为了简便我们对图形进行操作第一个小游戏—动感火车import pygameimport timeimport mathpygame.init()screen_obj = pygame.display.set_mode((600,700))screen_obj.fill((255,255,255))pygame.display.set_caption('无
2020-06-28 22:06:31
135
原创 游戏编程基础day7
pygame.ColorColor 类主要用于色彩表达,使用RGB或者RGBA的色彩模式Color可以使用色彩的名字,RGBA,HTML色彩格式Color('red') Color(190,190,255,255) 一千六百多万种颜色Color(‘#BEBEBEFF’) 十六进制的值white 255,255,255 白色black 0,0,0 黑色grey 190,190,190 灰色dargreen 0,100,0 深绿色gold 255,215,0 金色purple 160
2020-06-28 22:05:56
106
原创 游戏编程基础day6
画圆pygame.draw.circle(画在哪,线的颜色,圆心的坐标,半径,线宽=0(颜色全部填充))画矩形pygame.draw.rect(画在哪,线的颜色,矩形范围(x,y,w,h),线宽=0(颜色全部填充))画多边形pygame.draw.polygon(画在哪,线的颜色,多边形多个顶点坐标列表,width=0)画椭圆pygame.draw.ellipse(画在哪,线的颜色,矩形范围(x,y,w,h),线宽=0画一条弧线pygame.draw.arc(画在哪,线的颜色,矩形
2020-06-28 22:05:32
104
原创 Redis笔记(三)实验部分:Redis Sentinel的配置与安装&Java客户端连接 Redis Sentinel&故障转移演练
Redis主节点启动:redis-server redis-7000.conf配置:port 7000daemonize yespidfile /var/run/redis-7000.pidlogfile "7000.log"dir "/opt/soft/redis/data/" Redis从节点启动:redis-server redis-7001.confredis-server redis-7002.confslave-1port 7001daemonize .
2020-06-28 21:58:10
575
原创 Redis笔记(三)实验部分 : 主从复制的配置与实现
安装rediswget http://download.redis.io/releases/redis-3.0.7.tar.gztar -xzf redis-3.0.7.tar.gzln -s redis-3.0.7 rediscd redismake && make install进入 redis目录 执行cp redis.conf config进入config目录 再拷贝一份:cp redis.conf redis-6379.confvi redis-6379.
2020-06-17 22:41:26
215
原创 Redis笔记(二):Redis客户端的使用&Redis其他功能&持久化的取舍和选择
3. Redis客户端的使用3-1 课程目录3-2 Java客户端:JedisJedis是什么获取JedisMaven依赖<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> <type>jar</type
2020-06-14 10:49:38
291
原创 一站式学习Redis 从入门到高可用分布式实践笔记(一):Redis初识&API的理解和使用
Redis1. 初识Redis1.1 开始开源Key-Value存储服务器多种数据结构速度快,功能丰富1.2 特性速度快数据存在内存(主要原因)使用c语言线程模型为 单线程持久化:数据将异步的保存在磁盘当中数据结构:还有其它的几种衍生数据结构如下:多语言客户端功能丰富:1. 发布订阅2. lua脚本3. 事务4. pipeline简单单机版核心代码只有2.6w行不依赖外部库. 单线程模型主从复制高可用分布式1.3 典型使用场景缓存系统计
2020-06-13 15:04:06
458
转载 黑马 webservice讲义
视频地址:https://b23.tv/5DHo0k1 学习目标(1) webservice基本概念(2) ApacheCXF框架介绍(3) JAX-WS规范下webservice开发(4) JAX-RS规范下webservice开发2 webservice 基本概念2.1 什么是web服务这里列举一些常见的web服务:手机淘宝、京东….天气预报手机号归属地股票查询发手机短消息手机充值功能中英文翻译银行转账业务公司
2020-06-12 09:15:01
1221
原创 记一次面试经历
今天下午面试了某公司的Java实习岗位,被面试官虐了半个小时,下面是我还能想起来的一些问题,并且我自己做了些总结。给我讲讲spring security幂等性 ;分布式锁; 分布式缓存;说说收集器 ; 有过参数调优吗?跨域的产生原因,同源策略?索引的数据结构?为什么不用红黑树?为什么不用(我忘了啥了)?如果数据量达到千万级别的话索引还能快吗?(这块我认为应该结合数据结构来说,再延伸到 如分库分表)nosql: redis最好要系统学一遍,高级的应用最好都学学 。mongodb为什么要用mon
2020-05-31 18:24:17
395
原创 游戏编程基础day5
游戏字体1. 使用系统字体 获取系统内置字体列表 pygame.font.get_fonts() 创建字体对象 font = pygame.font.SysFont(name,size) 创建文字对象 text = font.render(内容,是否平滑,文字的颜色,背景颜色) 绘制到屏幕上 screen_obj.blit(对象,位置)2. 使用自定义字体 1.下载或者购买一个字体文件 2.创建字体对象 font = pygame.font.Fon
2020-05-27 17:04:50
199
原创 游戏编程基础.day4.
全屏显示display.Info() 返回一个info对象通过info对象的current_h,current_w可以获取到宽与高(在设置游戏窗口前创建,current_h,current_w 指的是显示器的高与宽,在设置完游戏窗口之后创建 current_h,current_w指的是游戏窗口的高与宽)info = pygame.display.Info()screen_obj = pygame.display.set_mode((info.current_w,info.current_h),f
2020-05-26 20:59:20
193
原创 游戏编程基础day3
虚拟环境管理工具virtualenvwrapper 是一个基于vritualenv的管理工具,将所有的虚拟环境统一管理pip install virtualenvwrapper-win配置虚拟环境 WORKON_HOME = '路径'mkvirtualenv 虚拟环境名 在WORKON_HOME下创建虚拟环境 创建完毕后自己激活workon 虚拟环境名 使用workon 后面跟的这个虚拟环境deactivate 退出虚拟环境创建游戏最小系统创建游戏项目的时候必须要做的操作(最小的
2020-05-21 17:32:31
255
原创 游戏编程基础day2
pygame 介绍pygame历史pete shinner编写的 2000年10月上线 pygame是一个利用SDL写的游戏库 一个用于多媒体的跨平台库,python开发环境pycharm vs codepygame安装pip 自带的包管理工具pip install pygame进行安装 必须配置环境变量验证pygame安装 python -m pygame.examples.aliens 内置了aliens游戏 修改pip源 1.临时修改 pip install
2020-05-20 16:50:27
442
原创 游戏编程基础day1
游戏开发基础分组小组长 负责收齐各组作业(截图) 1-1day1 压缩 1班day自我介绍姓名 王超贤 效果通过课程学习可以开发一款游戏2D游戏开发流程1.立项 分析市场 预测市场2.开发初期 2.1 核心玩法 游戏的规则 2.2 demo 作用就是验证策划前期 讨论的核心战斗力是否可行3.版本计划 4.开发 4.1 原型阶段 世界观 : 小说框架 程序 (我们要做的) 美术风格 制作标准 开发准备 4.2 核心阶段 游戏开发团队
2020-05-20 16:49:23
421
原创 代码实现Mybatis注解版本框架
1. 定义JDBCUtilspublic final class JDBCUtils { private static String connect; private static String driverClassName; private static String URL; private static String username; private static Stri...
2020-05-07 12:32:14
255
原创 代码实现数据库连接池
数据库连接池1. 数据库连接池原理在内部对象池中,维护一定数量的数据库连接,并对外暴露数据库连接的获取和返回方法。如外部使用者可通过getConnection方法获取数据库连接,使用完毕后再通过releaseConnection方法将连接返回,注意此时的连接并没有关闭,而是由连接池管理器回收,并为下一次使用做好准备。2. 连接池作用资源重用由于数据库连接得到重用,避免了频繁创建、释放...
2020-05-06 21:43:36
774
原创 代码实现SpringMVC基本功能
本文将通过自定义代码实现SpringMVC中@RequestMapping 和@Controller注解功能,通过该代码的实现能更好的理解SpringMVC的处理流程和原理。由于是实现mvc,而且代码的实现过程中用到了Servlet,下面先复习下两块的内容:1. SpringMVC原理运行流程如下:⑴ 用户发送请求至前端控制器DispatcherServlet⑵ DispatcherS...
2020-05-04 16:10:31
302
原创 代码实现SpringIOC与@Resource功能
本文中将通过自定义的代码实现SpringIOC的XML与注解版本,并且实现@Resource的倚赖注入功能,通过改代码的实现能够更好的理解Spring在该内容的思想原理。1. 什么是SpringIOCspring ioc指的是控制反转,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。交由Spring来管理这些,实现解耦2. 手写SpringIOCXML版本实现思路:...
2020-05-02 21:45:49
401
原创 代码实现SpringBoot内置tomcat与SpringMVC功能
1. 什么是SpringBoot在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应用!Spring Boot让我们的Spring应用变的更轻量化。比如:你可以仅仅依靠一个Java类来运行一个Spring引用...
2020-05-01 19:25:11
1549
1
原创 JAVA软引用与弱引用及其应用举例
1. 定义强引用、软引用和弱引用的方式new出来的是强引用,比如String str = new String(“123” );弱引用:WeakReference<String> weakRef=new WeakReference<String>(str);其中str是引用软引用: SoftReference<String> softRef...
2020-04-28 17:25:01
1520
1
JAVA核心知识点整理.pdf
2020-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人