自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

上后谈感情的博客

你若对的起时间,时间便会对的起你,(不要怀疑自己决定,坚定走自己的路)

  • 博客(78)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android开发(八)

本章关于Android 中数据库存储 Shared Preference 存储 和SQLLiteShared Preference 存储Android 提供有个快速保存文件方式,适合小文件保存,存储位置在data->data-><包名>->shared_prefes-> mrsoft.xml获取SharedPreference 对象3. getSharedPreferences(name, model) mode: MODE_PRIVATE: 本应用读取

2020-07-12 11:51:13 142

原创 【Redis 集群的原理】

每个单机版本redis 有 standalone_database, 在其上在封装一个 cluster_database ,cluster_database 主要的功能是进行 集群之间的通信。节点的增加和减少,大部分节点的 Hash一致。

2022-09-20 16:44:09 230 1

原创 【Redis 内存数据库】一

AOF 则以协议文本的方式,将所有对数据库进行过写入的命令(及其参数)记录到 AOF 文件,以此达到记录数据库状态的目的.这是 Redis 最底层的结构,比如 1个DB 下面有 16个Dict。

2022-09-18 11:15:12 338

原创 Go核心编程(四) -- 内存模型

mcentral 的属于中心索引,使用互斥锁保护,在高并发的场景下 锁冲突严重,参考GMP模型,增加线程的本地缓存。g0 协程内的sysmon 定时检查 ,在2min 内 forcegcperiod 没有过GC,触发,谨慎调整。并发标记过程中 将C进行强制置灰,当并发标记过程,新指针指向新的对象,新增的依赖对象 防止错误的GC。并发标记的问题(删除)-- 在GC时候 进行对象的指针的变动,针对 并发标记问题 使用。1. 删除屏障可以杜绝在GC标记中删除的问题 ,但是也无法解决并发标记的插入问题。

2022-09-12 20:30:45 629

原创 Go语言核心编程(三) --协程

操作系统线程执行一个调度的循环,顺序指向Goroutine, 调度循环非常像线程池,如果协程顺序执行,无法并发。如下所示 对应线程属于 循环调用方式 不断的调用属于go 协程的业务方法 对应的版本是 go 0.X 版本内。在go 语言中 支持进行挂起,执行其他的新协程任务,每次线程循环61次后从全局获取任务。数据在接收前已经有G在休眠等待发送,并且这个Channel有缓存。没有G在休眠等待,并且缓存也没有数据,说白了 就是没有数据进来。有等待的协程G,从G接收。有等待的G,从缓存接收。

2022-09-11 17:14:44 582

原创 抽奖系统项目框架搭建

目前主流的ORM框架有 gorm, sqlx, xorm, 其中gorm 与 xorm 类似,提供APi查询,让你少写代码,sqlx 更加关注SQL语句,如果是一些比较复杂的SQL,有LEFT JOIN,或者递归查询的SQL语句,建议使用SQLX,关注业务的性能。GoModule 概念: 防止Go第三方包与自己的包出现包管理的混乱,建议在当前项目下 创建属于 自己的 PKG,在GOLand 下如下配置 ,我们需要配置GOMODULE ,下载 在当前的文件目录下面。需要开启GO1111MODULE。

2022-09-10 21:20:39 426

原创 Go语言核心(二)

由于字符串属于变长编码,不能使用 for index 方式,输出的是底层字节,使用foreach 方式。空结构体的值不是nil, 空结构体指针也不是nil,有相同的zerobase。2- 空接口一旦被赋值之后,不在是nil。1- 空接口不一定是nil。

2022-09-10 18:15:40 562

原创 GoLang系统设计

代码】GoLang系统设计。

2022-08-06 18:32:03 916

原创 GoLang 抽奖系统 设计

使用的是iris这个web框架进行处理。5、高效的抽奖和发奖,提供高并发和性能。4、并发安全性问题一个人不能枪多次。6、如何使用redies进行优化。1、抽奖业务需要复杂多变。3、公平的抽奖和安全的发奖。2、奖品类型和概率设置。...............

2022-07-24 18:01:19 1280

原创 GoLang日志编程系统

本日志系统DEMO,但是可以直接使用到生产环境上面,使用LOG_Process读取Nginx./Access.log,使用influxDB进行存取。

2022-07-24 11:15:17 811

原创 Go 语言逃逸分析

是否发生逃逸,这一点使用编译器决定的。导致后果1.GC频繁导致CPU压力大2.导致性能下降很大。1.最重要函数escape.go。

2022-07-17 18:06:01 296

原创 GO 单元测试

用来测试一个可执行程序一个包的名字是main,示例将程序拆分两个函数,echo函数完成真正的工作main函数用于处理命令行参数和echo可能返回错误。goLand给我们产生的单元测试使用用例值需要我们字节填写对应name(测试用例名称),args(数组,输入参数)want(返回参数)在固定的工作负载下的性能,一Benchmark前缀。...

2022-07-17 16:28:08 704

原创 Go语言圣经

如果想要在IDEA中产生可执行的二进制文件,在WINDOWexe,Linux在IDEA中如下配置。

2022-07-16 15:51:49 546

原创 Go语言的内存泄漏 排查

Go 内存分析

2022-07-09 10:35:17 727

原创 Spring boot 事务

Spring boot 事务

2022-07-06 10:28:10 309

原创 【Spring BOOT】 Bean不是线程安全

Bean线程不安全

2022-07-05 14:50:12 227

原创 Spring BOOT AOP是什么

AOP

2022-07-03 12:06:06 760

原创 使用Rust构建一个rougleLike-rs的游戏

概述学习一段时间Rust,使用Rust构建一些小游戏,加深对Rust的理解,此项目参看了Moeif博主的项目,对Rust的语言进行进一步的深入理解,在此项目中使用specs 和rtlk 两个包,实现ECS架构的小游戏ECS: 实体与组件在web开发或者其他开发中面向对象编程,对于游戏开发者使用ECS架构,原因在于当游戏超出原有设计来说,ECS架构有更好扩展性组件:只承载数据,行为组件,渲染组件等(加载图形的Map)实体:有多个组件构建系统: 组件与实体之间的逻辑行为BaseEntity

2022-04-09 18:33:13 427

原创 从零开始创建WebAssembly 游戏

概述学习一段时间rust,开始使用rust 创建一些小项目,rust的一大用处,结合JS,算法部分使用rust进行编写将编译成webassembly 后通过js调用,提高运行速度,学习从0开始创建一个WebAssembly 游戏,学习rust如何与web 前端进行整合,该项目重点在于如何将rust编译成WebAssembly结合JS使用,至于游戏界面JS在此不进行详细介绍,直接使用模板编写。wasm 与 wat二进制格式(执行): .wasm文件后缀文本格式:.wat文件后缀 wat 是基于文本

2022-03-20 17:29:40 6993

原创 RUST:异步流处理Stream

Stream 特质在同步Rust 中流的核心是Iterator 提供了一种在序列中产生项的方法,并在它们之间进行阻塞,通过迭代器传递给其他迭代器在异步Rust中流的核心Stream, 允许其他任务在当前阻塞等待时允许Read/Write, AsyncRead/AsyncWritefn main() { let f = file::create("E:\\foot.txt").await?; f.write_all(b"hello world").await?; let

2022-03-19 22:31:43 1163

原创 rust异步编程:Async背后原理

async 背后原理move 关键,能够让async 闭包和块使用,能够获取它引用变量所有权,使用父的变量,如下所示:use futures::executor;async fn move_block() { let my_string = "foo".to_string(); let f = async move { println!("{}", my_string); }; // println!("{}", my_string); //此处不能

2022-03-19 19:38:37 1427

原创 rust异步编程

简化版本 Future// wake 函数 reactor发现状态是ready 通知executor 函数trait SimpleFuture { type Output; fn poll(&mut self, wake: fn()) -> Poll<Self::Output>; // fn poll(&mut self, wake: u32) -> Poll<Self::Output>;}enum Poll<T&g

2022-03-13 19:46:09 902

原创 rust异步编程2

概述*异步编程参考书籍: async-book此学习根据Rust语言圣经 中tokio专栏,tokio 是一个将 rust提供的async/await 特性编写的异步代码运行起来的异步运行时. (tokio,async-std, smol等异步运行时框架)为什么要使用 异步运行时Tokiorust本身只提供异步编程时候所需要的基本特性,标准库中Future特性,这些特性单独使用没有多大用处,需要有一个运行时将这些特性实现代码运行起来 ,选择使用Tokio 基于Future,和MONO 两种系统的框

2022-03-13 17:33:29 1134

原创 RUST异步编程

异步编程简单实例加载项目,关于Cargo.lock, Cargo.toml 文件Cargo.toml 文件中保存的是配置比如,Cargo.lock 是首次构建项目的时候自动为您生成的文件,里面包含了首次项目中库的精确版本,如果项目是一个可执行文件,建议将Cargo.lock 文件上传到git上,让其他开发者与你保持同样的开发环境,如果是一个普通的库不需要将Cargo.lock 文件上传宏定义 println!()问题一: 有了函数 为什么还需要宏???宏是一种为写其他代码而写代码方式,比如关键

2022-03-12 20:26:04 1475

原创 Rust异常处理

错误错误在软件中无可否认事实,rust很多特性处理错误清晰,能够在编译代码之前采取行动,使得程序更加健壮, rust中将错误归类两种类型可恢复错误(报告错误并且重试,逻辑错误) , 不可恢复错误(bug)rust 中没有异常,有可以恢复错误Resu<T> , 不可恢复错误panic!panic! 宏栈展开(回溯栈并且清理遇到内存)/ 终止由系统清理内存 在Cargo.toml增加panic = 'abort' 切换到终止模式fn main() { panic!("crash a

2022-03-06 20:15:30 1454

原创 Rust中集合

Vector可变数组长度集合vector: 可变数组长度存储一系列相同类型的值, vector值在内存中是连续存放,如果没有足够内存空间分配新内存并且将老内存copy,不断增加会导致vector 第一个元素引用会释放重新分配fn main() { // 两种方式创建vector let v = vec![1,2,3]通过宏定义并且初始化 let mut v = Vec::new(); // 更新vector 值 必须使用mut 关键字 v.push(5); v.push

2022-03-06 16:37:58 262

原创 Rust包管理 Crate

包和crate通过相关功能进行分组和划分不同的功能代码, 将代码分割成多个模块和多个文件组织代码, 一个包包含 多个crate 和一个可选的crate, Cargo 类似C++ 提供一个工作空间命名 类似JAVA中包空间。避免重复造轮子, 其他代码通过公关接口进行调用。模块系统: 包,Crates(模块树形结构,库和二进制项目), 模块, 路径。*crate 是一个二进制项/ 库, rust编译以crate root源文件为起点,包中包含一个Cargo.toml 描述如何构建crate.$ c

2022-03-06 15:37:32 850

原创 Rust 概念

常量声明常量使用const, 声明变量使用let, 如果想要一个变量可变 加入关键字mut, 对于常量的命名规范: 大写加下划线,常量的声明周期是在整个程序的声明周期内都是有效的变量隐藏 fn main(){ let x = 5; let x = x + 1; { let x = x * 2 } }如上所示定义一个与之前同民的新变量,表示第一个变量被第二个变量shadowing区别:1. 能够没有使用mut 标记变量重新赋值

2022-03-06 11:26:14 596

原创 Android FrameWork 底层开发

1. FrameWork 底层开发Android: 底层开发 开发核心配置软件工程师学习与Android 底层与硬件层次的开发,主要学习Android 的OS开发使用, Android底层固化的 FrameWork层 主要查看旷考层 FrameWork C++ 底层3下载JDK 6u45 Liunx bin 版本...

2020-07-19 16:49:18 2925

原创 Android开发(10)

传感器1.mainActivity 实现SensorEventListerner 方法2. 定义:SensorManage 对象3. 在重写的onResum 方法中 为重力和光线传感器注册监听器 sensorManage.registerListener()4. 在实现的onSensorChanged 方法中 获取传感器的类型5. 借助硬件 从软件接口上使用光线传感器,根据外界屏幕亮度 修改屏幕亮度package com.mingrisoft;import android.hardware.

2020-07-18 16:55:34 223

原创 Android开发(九)

Service 开发应用在后台长时间运行,没有界面UI, 在后台下载文件和获取用户GPS信息Service: 分为 startService 和 BoundService;只有Activity 调用startService才会通知服务启动, BoundService只Activity bindService 进行启动。Service中Export 和Enable两个属性, Export 应用组件能不能调用被Service, Enable: 表示Service能不能被实例化。重写onBind ,o

2020-07-18 12:44:14 200

原创 Android开发(九)

Handler 消息传递机制Android中每一个应用就是一个进程,Handler消息传递机制 利用JAVA中多线程的概念,比如在主界面 就是UI主线程,同时在UI界面中某个框内消息晃动就是子线程。机制: Android中子线程不能操作主线程组件 但是场景: 必须在子线程中更新主线程的UI组件,比如下载的进度条显示,子线程复杂下载,但是告诉主线程下载进度条 所以可以使用Handler机制作用: 1. 在任意的线程中发送消息 2. 在主线程中获取并且 处理消息// 如何使用H

2020-07-12 17:14:07 214

原创 Android开发(六)

绘制文本绘制类 借助 Canvas 类进行绘制通过重写View.onDraw 方法来进行旁白描绘package com.mingrisoft;import android.app.Fragment;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.LinearGradient;import android.g

2020-07-12 11:52:45 178

原创 Android 开发(七)

音乐播放器开发MediaPlayer 是Android 控制音频和视频文件播放类1.创建MediaPlayer 对象 的Create方法2.无can构造方法 -> setDataSorce -> prepare()加载创造文件注意访问SDK需要授予权限当Mediaplay.stop() 资源后需要重新加载资源,使用Mediaplay.setDataSource() 方法进行加载 ,最后还需要释放资源,防止内存泄漏缺点: 1.延迟低长,占有资源多 2. 不支持同时播放多个音频p

2020-07-11 16:53:44 254

原创 Android开发(五)

Android 自带的资源字符串资源:定义字符串资源在 <string.xml >;在JAVA 中 使用字符串资源,通过 getResource().getString(R.string.moto) 获取strings.xml 资源,动态方式加载到textView 文本框中TextView textview = findViewById(R.id.moto);textview.setText(getResource().getString(R.string.moto

2020-07-05 12:22:38 154

原创 android (四)手势

事件 和 手势事件处理 :物理事件处理触摸屏事件处理手势物理事件处理:基于监听事件处理基于回调事件处理基于回调的时间处理: 重写Activity 回调方法OnTouchEvent + OnKeyDown + OnKeyUp基于回调处理事件,采用通用性事件 比如在物理按键1.物理事件 提供三个事件 :按下 : OnkeyDown, OnKeyUp: ONKeyLongPress(): 长按键Android 当中位每个物理按键提供关键字常量: keyCODE_MENU,KEY

2020-07-04 16:39:36 227

原创 Andorid 开发三 (Intent)

Intent将Activity 、Serivce 、 BroadReceive 之间通信 使用IntentIntent 对象属性:1.Action, 2. Data 3.Category 4. Extras 5.Flags 6.Component nameComponent name:设置Intnet 组件对象 名称 通过 包名 + 类名 确定唯一的一个activity类似Spring 中Component 根据component name 设置或者启动特定的组件setCompone

2020-07-04 12:55:22 168

原创 Android 开发二

Activity生命周期:onCreate -> OnStart -> OnResum()-> [Activity is Running] ->onPause() -> onStop() -> onDestory()当Activity 处于onStop 调用onRestart() 方法 重新进行活动

2020-06-27 16:11:51 161

原创 andorid 开发

基础简介:基于 Liunx 平台的开放性操作系统的总称,该平台由操作系统 中间件 用户界面和应用软件做成。系统架构: 高层到底层分为: 应用程序层,架构层, 系统运行库层,Liunx核心层。应用程序框架层:开发人员访问的核心应用程序使用API框架:丰富可以扩展的试图views ,构建应用程序 包括列表 按钮 甚至嵌入web 浏览器Content Provider: 使得应用程序可以访问另外一个应用程序,或者共享他们自己数据资源管理器: 提供非代码资源的访问本地字符串,图形,和布局文件( lay

2020-06-26 17:33:09 274

转载 OCR 知识 概括

图像处理基础知识OCROCR文字识别也是CV主要研究方向之一,文字识别方向主要:1.单独文字识别2.结合文字进行检测3. 文字端到端识别文字识别技术: 通过文字检测定位文字在图像区域,在提取区域上特征,在此基础上做专门的字符识别,出现许多端到端ENd2End OCR文字检测— 定位图片中文本区域(定位的精度直接影响后续的Recongnition)文字检测 中 概念:ground truth(GT): 在有监督学习中 数据是标记(X,t) x 是输入数据,正确的t 的标注是 ground

2020-06-06 10:37:29 303

spark全面精讲视频代码,内涵解压密码

spark全面讲解的代码,从其中去掉解压密码,大家欢迎下载

2018-07-01

空空如也

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

TA关注的人

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