自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 收藏
  • 关注

原创 C++ 基础(五)

嵌入式学习

2022-10-23 20:23:20 248 1

原创 C++基础(四)

学习嵌入式

2022-10-22 19:02:42 463

原创 C++基础(三)

嵌入式学习(三)

2022-10-21 10:22:12 299

原创 C++基础(二)

C++基础

2022-10-19 17:13:14 528

原创 C++基础(一)

开始学习嵌入式

2022-10-18 15:18:06 257

原创 微信小程序(八)

inputinput有许多属性。value 输入框的初始内容type有这几个选项text 文本输入键盘 number 数字输入键盘 idcard 身份证输入键盘 digit 带小数点的数字键盘,调用手机输入键盘password = ‘{{true}}’ 是否是密码类型placeholder = ‘提示’ 当input无内容时提示用户输入disabled = ‘{{false}}’ 禁用...

2019-04-24 19:18:32 333

原创 微信小程序(七)

button主要属性size(默认宽度100%),type(样式),plain(镂空),loading(在跟后台交互的时候可以显示),form-type(submit/reset,提交表单或重置表单)<button>按钮</button><button size='mini'>按钮</button><button size='mini'...

2019-04-23 21:52:16 253

原创 微信小程序(六)

scroll-view常用的属性bindscrolltoupper和bindscrolltolower,这两个属性是指当滚动到距离顶部或底部一定距离时触发事件,距离由lower-threshold和upper-threshold确定。可以用于分页加载数据。其他属性enable-back-to-top=‘true’,是指安卓或ios中点击小程序标题栏时,自动列表滚动到顶部。scroll-wit...

2019-04-22 21:12:25 535

原创 微信小程序(五)

flex布局弹性布局。display:flex表示使用flex布局,主要有下面几个属性flex-direction,flex-wrap,justify-content。在flex容器中的元素,会按order进行排序展示,值越小越先展示,flex是占比,设置了flex则元素的width就相当于失效了。元素宽度等于flex占屏幕宽度的比例。这几个属性会相互作用,比如指定了逆向,再指定order。...

2019-04-22 17:33:38 195

原创 微信小程序(四)

wxs每个wxs都是一个独立的模块,类似于一个js文件。需要通过module.exports向外暴露。可以在别的wxs文件或者wxml文件中引入var name = "ay";var age = "18";var method = function(obj){ return obj;}module.exports = { name: name, age: age, m...

2019-04-22 16:47:49 113

原创 微信小程序(三)

列表渲染默认索引是index,默认对象是item,下面是自定义索引和对象。 wx:for适用于view和block,使用block时仅仅是将数据循环打印出来,不会一个对象有一个标签,而view是会有一个对象一个标签。wxml<view wx:for="{{users}}" wx:for-index="num" wx:for-item="user"> {{num}}:...

2019-04-21 20:57:00 180

原创 微信小程序(二)

点击事件在控件上使用bindtap绑定事件<text class="text-top text" style='color:{{color}}' data-name='自定义属性' id='mytext' bindtap='clickMe'>{{motto}}</text>clickMe:function(event){ console.log(event)...

2019-04-21 15:11:51 139

原创 微信小程序(一)

app.json配置{ "pages":[ "pages/index/index", "pages/test/test" ], "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "...

2019-04-21 14:34:01 231

原创 个人对Alpha-Beta搜索算法的理解

Alpha-Beta是对Max-Min搜索的剪枝。那么Max-Min究竟是什么呢?这个Max-Min算法可以应用于很多棋类游戏,例如五子棋。博弈树五子棋很明显的一个特点就是,你将尽最大努力在横竖斜方向使五个棋子连续排在一起,而你的对手将对你穷追堵截,最后谁先达到目标谁就获胜。棋类游戏都有一个特点,你下一手,我下一手,那么如何使我下的每一手棋都是最优呢?枚举。枚举出现在棋盘上我能下的每一...

2019-04-15 21:15:38 3308

原创 动态规划

漫画算法国王挖矿国王挖矿和01背包问题很像,都是两个维度的问题分析取最大值。这种问题都是找到最优子结构,写出状态转移方程 基本就解出来了例如10个人挖5个矿的价值 = Max(10个人去挖4个矿的价值,挖第5个矿的价值+10个人扣掉第5个矿的人去挖前4个矿的价值)动态规划将问题规模逐渐变小,利用数组对之前的运算进行存储避免因为递归而产生的重复计算。解题步骤:1.减小问题规模2.找出...

2019-01-01 11:38:47 145

原创 贪心算法

贪心算法其实就是一种分而治之思想的体现。一个大规模的问题,在小规模下达到最优,那么很有可能在整个大规模下也达到最优,但并不绝对。贪心算法的“贪心”就体现在局部达到最优。举个可以使用贪心算法的栗子:/** * 贪心算法 找硬币 * 有 1 2 5 10 20 50 100 7种纸币面额 *数量3 1 2 1 1 3 5 用最少张找出 ...

2018-12-31 13:50:05 566

原创 借助消息队列解决分布式事务

先介绍一下RabbitMQ的基本概念核心概念Queue:真正存储数据的地方Exchange接受请求,转存数据Bind:收到请求后存储到哪里消息生产者:发送数据的应用消息消费者:取出数据处理的应用Bind的几种分发规则:Direct、Topic、FanoutFanout:与该Exchange绑定的Queue都发一份数据Direct:给完全匹配的Queue发送数据,routingke...

2018-12-26 20:01:03 1088

原创 NIO网络编程

先了解一下阻塞,非阻塞,同步,异步的概念。BIO阻塞都说传统的BIO网络编程是阻塞的,那么到底阻塞在哪里?阻塞与非阻塞是相对于请求资源来说的,例如serverSocket的accpet,如果没有client进行连接,就无法获得资源,从而阻塞,类似的read也一样,client不写入数据你就没有资源read。NIO三大核心bufferbuffer实质上是个字节缓冲区,类似于字节数组。...

2018-12-14 12:16:25 140

原创 反射相关API

随着学习,后续会继续更新!暂时自己用到的就这些。ClassgetClassLoader():得到类加载器forName(String str):加载该类,包路径+类名getName():类名getField(String name):得到该类的Field,仅限public成员getFields() :得到该类所有可访问的publicFieldgetDeclar...

2018-12-01 16:16:14 224

原创 自定义注解

注解依然属于一种注释。@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface SetValue { /** * 查询类的类名 * @return */ Class&amp;lt;?&amp;gt; className(); /** ...

2018-12-01 12:50:22 354

原创 简单注解+AOP+反射实现特定功能

先描述下完成功能的场景:先查一个订单表,想要取得用户表的相关信息,但由于某些原因用户表不能进行关联查询,这个时候往往会想到冗余用户表字段,但这也会带来一个问题,就是用户表里的字段改变值后,比较但以维护(因为订单表的字段也需要同步修改)。所以直接先查一遍订单表再查用户表,当然这样数据库性能肯定比较低。下面假设我们就要实现这个功能。这是我们service实现这个功能的方法 public ...

2018-12-01 11:02:50 864

转载 springboot极简使用mybatis实现一对一,一对多查询

繁重的mybatis配置经常让人头痛,今天总结一下简单地使用mybatis先建好表CREATE TABLE IF NOT EXISTS `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nick_name` varchar(50) DEFAULT NULL, `address_id` int(11) DEFAULT NULL, PR...

2018-11-25 10:27:22 3154

原创 秒杀系统的架构设计及实现

秒杀场景在电商平台是十分常见的,这种营销活动往往具有时间短,并发量大的特点。关于数据库性能TPS:数据库每秒执行的事务数。QPS:数据库每秒执行的SQL数。对于msql数据库,8核CPU16G内存通常TPS:1000 QPS:20000系统逻辑梳理用户界面点击请求 ----&amp;amp;amp;amp;amp;gt;服务器收到http请求 ------&amp;amp;amp;amp;amp;gt;修改数据库库存对于秒杀系统这种短时间的海量请求往往是通过.

2018-11-22 16:57:11 962

原创 Callable FutureTask

对于多个在逻辑上互不依赖的耗时任务而言,并行化执行效率要比串行化执行效率高。对于这些任务往往在其执行完毕后要取得任务的执行结果。Callable和FutureTask就实现了这一机制。Callable和Runnable区别区别callable可以携带返回值,泛型callable可以抛出异常callable的方法名是call,runnable方法名是run联系callable本质...

2018-11-21 19:25:04 1620

原创 前后端分离架构

普通的PC端web程序会话管理是由session进行管理,但对于微信小程序,APP程序,session对其支持是有限的,再加上之前由于整个项目往往都是后端一把抓,后端人员要写前端js,还要写服务端程序,工作量十分庞大。若是由专门的前端人员写页面,要观察页面往往也要重启服务程序,前后端关联太紧密。前后端分离由于上述的种种弊端,于是有了前后端分离的架构。前端(pc,小程序,app)都可以共用一个服...

2018-11-20 17:57:32 694

原创 缓存失效及解决方案

这几天在网易云课堂上看到几个关于Java开发比较好的视频,推荐给大家Java高级开发工程师公开课这篇文章也是对其中一门课程的个人总结。何谓缓存失效对于一个并发量大的项目,缓存是必须的,如果没有缓存,所有的请求将直击数据库,数据库很有可能抗不住,所以建立缓存势在不行。那么建立缓存后就有可能出现缓存失效的问题:大面积的缓存key失效热点key失效类似12306网站,因为用户频繁的查...

2018-11-16 09:38:11 6471

原创 spring boot 使用 redis

一个访问量大的项目对于缓存是必须的,但对于一个小项目使用缓存,只会增加项目的复杂度。导入依赖 &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;spring-boot-starter-data-redis&amp;

2018-11-10 20:49:15 104

原创 spring boot 使用 hibernate validator验证框架

之前写小项目时,遇到前后端交互数据,每次都要对每个字段进行格式验证,而且验证的步骤和代码大都是千篇一律。今天接触到了hibernate validator验证框架,今后就能摆脱这种烦人的情况了。hibernate validator的依赖在spring-boot-starter-web中,所以无需另外引入依赖。类属性验证示例代码public class DemoModel { @N...

2018-11-09 23:17:58 319

原创 spring boot注解

常用的注解容器注解@SpringBootApplication:这个注解是启动类的注解,包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解@ComponentScan:主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中,@ComponentScan(value=&amp;quot;com.ay&amp;quot;)...

2018-11-09 15:07:01 111

原创 Spring集成Shiro及简单实用

导入依赖&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;spring-context&amp;lt;/artifactId&amp;gt; &amp;

2018-11-08 21:22:20 98

原创 docker

之前在学校帮老师做了一个小的web项目,做完之后拿去学校的服务器上配置。安装jdk,安装tomcat,安装数据库…安装了一堆东西,到最后反而因为和自己电脑中版本的问题不一致,导致出现了一些小问题,最后还在服务器上调试了很久才终于运行了起来,想想这个过程也是蛋疼。。。有没有什么办法能直接将我个人电脑的这些东西打包过去,不经历繁琐的配置,快速地运行起来呢。直到最近由于技术的拓展,接触到了docker...

2018-11-08 21:19:13 92

原创 volatile

volatile的作用volatile是轻量级的synchronized。java线程访问共享变量时,可以确保共享变量能被准确和一致地更新。volatile保证内存的可见性我们知道现代硬件内存架构中,CPU与内存之间往往存在着缓存以提高处理速度,CPU在进行操作时,是对缓存中的数据进行操作,而不会对内存的数据直接进行操作。volatile修饰的共享变量在进行写操作的时候会多出一条Lock前...

2018-11-05 19:40:03 103

原创 JVM垃圾回收

如何判断对象可以被回收Java虚拟机采用可达性分析算法,即从一个根节点向下搜索所有节点,当一个对象无法到达时(孤岛),就判断该对象是可回收对象。怎么回收对象标记-清除对象算法这个算法分为两个阶段:标记和清除,在内存中标记哪些对象是可以被回收的,在标记完成后,统一回收这些被标记的对象。这么做的很大一个问题是,使得可用的内存区域变得十分零散不连续,如果要分配一个内存区域时,无法提供足够的连...

2018-11-04 15:48:22 117

原创 Java基础Map

Map的类关系图HashMap实现原理HashMap内部是通过数组+链表的方法进行实现的。数组类型是Node(实现了Entry)。对元素增加时,先对元素的key进行hash,得到一个哈希值,哈希值根据数组的长度算出数组的下标hashCode%length。当多个元素得到同一个数组下标时,为了解决冲突,HashMap在数组后面增加了链表,这样相同hashcode的值就在同一个链表里。相同的...

2018-11-04 14:35:41 162

原创 Java基础Set

Set集合类关系图Set集合相对于List集合,它是无序的,也是不能有重复元素的。可以通过迭代器遍历。HashSet实现原理HashSet内部是通过HashMap的键实现的,散列单元默认大小是16,每次扩容都是2的整数次幂,下次扩容就是32(2的5次幂)。加载因子默认是0.75,意思是说当散列单元的75%链表有值是就进行扩容,重新构造一个散列表,重新散列。...

2018-11-04 11:34:20 108

原创 Java基础L

List整个系列的类关系图通过类关系图可以知道Collection继承了Iterator,从而List和Set都可以使用迭代器进行遍历。List接口规定了List的一些基础的方法。ArrayList实现原理ArrayList内部实现是数组,默认初始化大小是10,在扩容时以原来的二分之一进行,int newCapacity = oldCapacity + (oldCapacity &amp;gt...

2018-11-04 10:03:09 373

原创 装饰模式

定义动态地给一个对象添加一些额外的职责。优点缺点及使用场景优点装饰类和被装饰类独立发展,不相互耦合。动态扩展一个实现类的功能。缺点越多层装饰越复杂。使用场景需要动态扩展一个类的功能。示例代码/* * 抽象业务类 */public abstract class SchoolReport{ public abstract void report(); ...

2018-11-03 20:53:09 120

原创 责任链模式

定义定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象形成一条链,并沿着这条链传递该请求,直到有对象处理它为止。优缺点优点请求和处理相互分离,两者解耦,提高系统的灵活性。缺点当责任链比较长时,性能是一个非常大的问题,采用递归,调试逻辑比较复杂。示例代码/* * 请求类 */public class Request{ priv...

2018-11-03 20:08:19 80

原创 代理模式

定义定义:为其他对象提供一种代理以控制对这个对象的访问。优点及使用场景优点:职责清晰,高扩展,智能。使用场景:Spring AOP静态代理自己手写代理类。/** * 接口 * @author Administrator * */public interface IGamePlayer{ void login(); void killBoss(); void u...

2018-11-02 23:34:56 71

原创 模板方法模式

定义定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。优点及缺点优点封装不变,扩展可变提取公共部分代码,易于维护行为由父类控制,子类实现缺点抽象类定义了抽象方法,子类的多态会影响父类的结果使用场景子类有公有的方法,逻辑基本相同,可以通过钩子函数约束其行为达到不同的行为效果。父类抽象共性,子类实现个...

2018-11-02 22:03:52 73

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除