自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大智制杖

追求卓越,成功就会在不经意间追上你,然后打死你

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

原创 修改git用户名

换了离职同事的电脑,尝试了一些方法无法更改用户名后,最终找到了一种方法: git config --global user.email实际上,用户名是管理你的权限,而提交信息是靠email这项配置的,所以明明你已经改成你自己的账号密码了,但一提交还是显示别人的提交。修改email后,提交信息就会变成你自己的用户名了。...

2020-05-12 14:22:26 566

原创 数组遍历

简介数组的遍历有一些花样可以玩。掌握基础写法有利于更深一些的题目掌握。一维数组遍历主要有从左到右,从右到左,以及结合了两者的双指针。 public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9}; System.out.println("正常遍历:")...

2020-05-02 14:00:02 180

原创 消掉连续3个相同的字符

题目// 我有一个字符串,字符串sxsddfsdfdddlll// 消掉连续3个相同的字符,结果要看不到任意连续3个字符 20分钟当时的心理分析这是一道实际的面试题目,我看到这题时,知道铁定凉了。首先,时间复杂度方面,从头到尾扫一遍是必然的,O(n)是这个题目的极限了,要是说得不对,欢迎指正。那么这个题目想考察什么呢,无非就是编码规范,编码速度方面的内容。所以我大概花了8~10分钟的...

2020-04-30 14:18:43 3041 1

原创 命令行编译打包java代码

简介有时候,本地打包再上传远程的方式比较麻烦。通过几个写好的脚步,直接在服务端上修改,会相对方便一点,可提升学习效率。META-INF/MANIFEST.MFManifest-Version: 1.0Created-By: 1.8.0_91 (Oracle Corporation)Main-Class: gg.zsw.HelloHello.javapackage gg.zsw;...

2020-04-07 17:36:06 194

原创 VisualVM/JConsole连接到远程服务器

简介一般操作都不直接在服务器上进行,通过VisualVM连接到远程服务器上可以更方便得进行jvm跟踪调优。配置JMX连接启动程序java \-Djava.rmi.server.hostname=127.0.0.1 \-Dcom.sun.management.jmxremote.port=8877 \-Dcom.sun.management.jmxremote.ssl=false \...

2020-04-07 15:59:36 186

原创 IDEA远程调试代码

简介有时候,程序只是有个小小的bug,却百般猜测,多次加日志和压包到服务器才确认下来,并且一般会有限速,传包需要好几分钟,工作效率是不高的。通过远程调试的方式,可以更准确的确认问题,加快开发进度。代码在其中打好断点即可。public class Hello { public static void main(String[] args) throws Exception { ...

2020-04-07 15:26:49 322

原创 正则表达式切掉log日志前面不需要的内容

2020[^\n]*msg:

2020-04-04 13:32:10 277

原创 java使用jcraft远程登陆

简介项目中出现了一个监控小需求,采用了jcraft来实现一个远程登陆,脚本处理,记录一下简单的使用细节maven依赖 <dependencies> <!-- https://mvnrepository.com/artifact/com.jcraft/jsch --> <dependency> &...

2020-04-04 13:13:08 3450

原创 自定义注解实现redis与对象相互转换

简介本文则通过自定义注解的方式,来完成一个hash与POJO之间的转换。目标是为了简化代码结构。类似的功能,Spring Data Redis是有的。定义POJO在redis中的数据结构这里随便定了几个,本文只实现了hash。public enum RedisStorageStructure { SET, // 基本元素 HASH, // 哈希 LIST, // ...

2020-04-04 11:56:35 543

原创 Windows环境用docker安装mysql

吐槽搞大半天才搞定持久化的问题,如果随着docker重启,数据库内的数据就没了,那等于白搭。作为docker和mysql小白,真的很难找到资料搭建起来拉镜像docker pull mysql启动一个干净的mysql容器docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d --rm mysql进入容器按照下面命令执行doc...

2020-04-03 22:26:26 1613

原创 sun.misc.Cleaner实现堆外内存回收

简介项目中采用了java+c的混合开发,通过jni进行了底层结构体的内存分配,将指针返回给java层保存,随后则可以通过传递指针值来操作底层代码。在java中,仍然需要手动释放jni分配出来的内存的。如何让GC来自动管理jni内存sun.misc.Cleaner可以做到!话不多说,直接看例子。示例import sun.misc.Cleaner;public class Main {...

2020-04-02 15:42:58 1495

原创 二分查找学习

直接看寻找一个数、寻找左侧边界、寻找右侧边界的代码。即可了解解题基本套路。直接返回,或者锁定边界并且检查越界。int binary_search(int[] nums, int target) { int left = 0, right = nums.length - 1; while(left <= right) { int mid = left + ...

2020-03-28 22:38:51 100

原创 netty之对象池个人理解

作用解决频繁GC问题关键点多线程从池中获取对象,多线程回收对象思考假如获取对象和回收对象的方法上锁,那么可以起到池的作用,但显然不是个好方法,效率太低,得不偿失。如何无锁化?每个线程对应一个对象池,并且只有该线程可以获取对象和回收对象。那么就可以实现池的无锁化。在netty中,采用stack来实现,pop获取对象,push回收对象。绑定的方法,显然是采用ThreadLocal方式...

2020-03-26 13:17:30 548 1

原创 netty之ByteBuf(堆缓冲区)

堆缓冲区 ByteBuf heapBuf = ...; if (heapBuf.hasArray()) { byte[] array = heapBuf.array(); int offset = heapBuf.arrayOffset() + heapBuf.readerIndex(); int length = heapBuf.read...

2020-03-26 11:24:36 636

原创 flink

简介刚接触flink时,本人还是个小萌新。对大数据概念望而生畏。而在入门之后,顿感轻松。所以在学习任何一门技术时,都要保持平稳的心态。参考资料《阿里巴巴flink干货合集》https://flink.sojb.cn/https://flink.apache.org/为什么选择flink简而言之,别人有的他都有,包罗万象。吹捧者众多,但是由于其存在的一些问题,一时无法解决,故后期又抛弃...

2020-03-25 23:23:51 550

原创 回溯算法学习

外在显然,给你一个选择列表,让你在选择列表中不断的进行选择。最终返回一个包含所有选择的结果集结果集 fun(选择列表 nums) { // 记录「路径」,是结果子集 路径 track; backtrack(nums, track); return res;}构造基本解题结构结果集都是从从路径一步步走出来的,backtrack多出了一个路径参数,无需返回。...

2020-03-24 11:24:08 140

原创 docker打包运行简易demo

简介万事开头难,开了头再深入就不难了。安装docker、下载镜像、运行起来这些步骤有许多文章。本文主要记录如何把自己的可执行程序打包成docker。文件仅三个文件:Dockerfile、Hello.class、Hello.java放置于自定义的/home/gg/docker目录下HelloHello.javapublic class Hello { public st...

2020-03-23 11:14:23 559

原创 ROS机器人操作系统(简要总结)

创建一个包catkin_create_pkg 包名 依赖例子catkin_create_pkg zsw std_msgs roscpp 说明依赖可以在package.xml 中修改这个时候,包创建出来了,可是没有用。需要在工程中catkin_make install 安装这个包。编写节点包目录的src文件中编写文件在CMakeLists.txt 中添加:add_execut...

2020-03-21 21:40:02 1138 1

原创 Netty解读源码ByteToMessageDecoder

感慨纸上得来终觉浅,源码阅读是进一步提高自身水平的手段。但源码无数,并不是什么样的源码都值得一读。须知任何技术都是为了解决特定问题的,先针对问题进行思考,然后再读源码,会事半功倍。本文按照一定的阅读源码思路来逐步解析ByteToMessageDecoder源码。ByteToMessageDecoder外围信息解析继承关系:public abstract class ByteToMes...

2020-03-17 13:42:50 363

原创 Netty单元测试

感慨一晃两年多了,自从刚开始给公司编写的几个网络模块,后来就没有在度使用的机会了。讲解Netty的书籍有许多,其中《Netty实战》这本书比较经典,推荐大家用这本书入门。概述工欲善其事,必先利其器。作为一个网络处理框架,如果没有脱离网络的单元测试,那么你要构建完整的一套代码,方能测试相应功能,是无法想象的。ChannelHandler 是 Netty 应用程序的关键元素,无非就是处理输...

2020-03-17 10:19:38 214

原创 ip隧道访问服务器群

简介一般来讲,工作过程中,开发人员直接接触服务器是必然现象。一个服务器群不止1台机器,成百上千都有可能。给每台机器都开辟一个外网连接端口是很不现实的。采用VPN的方式比较麻烦,而采用ip隧道转连的方式却非常方便,只需要一个中间服务器充当路由即可。配置本地虚拟ip按照如下链接,配置上虚拟ip即可https://www.cnblogs.com/glzgc/p/10689056.html这...

2020-03-16 17:47:59 583

原创 卡尔曼滤波---C语言实现(二)

简介本小节,使用C语言来实现卡尔曼滤波准备工作时间更新方程x^kˉ=Ax^k−1+Buk−1               ①{\hat{x}}_{\bar{k}}=A{\hat{x}}_{{k-1}}+Bu_{k-1} ~~~~~~~~~...

2020-03-16 16:32:22 985 1

原创 C语言版本矩阵代码---(2)

简介接上一篇,实现矩阵相乘。式子矩阵相乘式子如下:AB=CAB = CAB=C但考虑到运算量的问题,一个更通用的式子如下:αAB+βC=C\alpha AB+\beta C = CαAB+βC=C本文实现该通用式子A矩阵为An×m{A \atop n×m }n×mA​B矩阵为Bm×k{B \atop m×k }m×kB​C矩阵为Cn×k{C \atop n×k }...

2020-03-16 13:20:07 123

原创 C语言版本矩阵代码---(1)

感慨本文从零开始,采用C语言,一步步进行矩阵运算代码是实现。引用头文件// NULL printf#include <stdio.h>① 构建一个n行m列的矩阵简易版示例double *mat(int n, int m){ double *p = (double *)malloc(sizeof(double)*n*m); return p;}该写法存在几个问...

2020-03-16 12:04:15 1205

原创 STM32-freeRTOS-低功耗模式

感慨做一个产品,学一门技术,最需要的就是不断抠细节,对于嵌入式,省电是一个主题,大大小小的嵌入式产品,走的是量,如果能降低功耗,也算是给环保事业做出了点微薄的心理安慰。废话少说,主要是查资料的时候,发现大部分资料讲的是在FreeRTOSConfig.h 文件中配置configUSE_TICKLESS_IDLE,但实际操作时,不起作用。/* USER CODE BEGIN Defines */...

2020-03-13 19:35:39 1318

原创 卡尔曼滤波---简述(一)

感慨虽然本人只是个小小码农,主攻java后台开发,但吾以为,学习技术,应当不分领域。本文首先假设读者像我当初一样,是个对卡尔曼滤波望而生畏的小白。参考链接https://zhuanlan.zhihu.com/p/39912633该链接是本人觉得描述得最好的一篇文章了,采用的是从基础一步一步推进,推导出卡尔曼滤波的过程。本人则采取从结果反思原理的方式来叙述。公式时间更新方程x^kˉ...

2020-03-12 22:11:21 362

原创 STM32CubeIDE构建通用freertos项目(一)

感慨 本人大约三四年没有碰单片机了,遥想当年我还是用的keil工具。 有幸以援助的身份介入公司的嵌入式项目,结合自身经验讲讲。 本文不讲具体操作,只描述针对问题的思考方式。 工程方面值的是freertos工程。背景需求 做任何事情都要有目标,朝着目标去前进。本文关注的目标如下: 1. 代码如何复用,达到多项目复用的目的 2. 如何满足多项目复用的前提下...

2020-03-12 17:52:04 4969

原创 手动将安卓eclipse工程转为AS工程

1、在AS中新建一个project2、将原来eclipse工程中的src,res,libs目录下的东西复制到AS工程中的相应位置。3、注意删除不需要的jar包,如V7,V4兼容包4、将idea目录和iml文件删除,然后重新导入工程。

2015-12-26 17:41:02 563

原创 NUC100RE3AN串口接收程序

读这篇文章之前,要先读上一篇文章《NUC100RE3AN串口驱动库修改》本人在实习中的项目需要接收一个具有25个数据的包,起始0x0f,结束0x00,需要用定时器检测是否丢包,使用库函数DrvUART_Read效果并不好。下面给出我的做法。1、首先是初始化void init(){ STR_UART_T uartParam; UNLOCKREG (); DrvSYS_Open (

2015-08-05 17:07:27 1117 1

原创 NUC100RE3AN串口驱动库修改

NUC100RE3AN这款芯片库函数对串口2的支持并不完善,需要自己修改添加。1、DrvUART.c文件中的  int32_t DrvUART_Open(UART_PORT port, STR_UART_T *sParam)  将函数最后一个else修改成如下形式。其他串口也出现同样的问题。 该问题会导致无法配置奇偶校验,停止位等等,不改的话只能无校验,1位停止位。 else

2015-08-05 16:31:10 1080

原创 单片机矩阵按键长短按

实习的时候,同事给了我一个矩阵键盘程序,竟然长达1千多行代码,当时我就吓尿了。仔细分析代码,也未见其独到之处,仅仅是普通的按键扫描以及判断长短按。但其中使用的结构很复杂,中间产生的临时变量特别多,而且指针很多,也不容易移植。稍微搜索一下网上的程序,也并不是很详尽。这里贴出我的程序给大家参考一下,是基于NUC100RE3AN单片机的。这里不使用太多枚举以及宏定义,大家根据自己的需求去修改吧。1首

2015-08-05 14:42:55 2040 1

原创 socket通信

运行服务端,出现java.net.BindException: Address already in use: JVM_Bind,关闭迅雷即可。

2015-07-02 12:57:08 242

proteuo串口通信,数码管,点阵

主机定时传送数据到从机。。。 0xf0为结束标志,从机没有收到标志则数据作废。 从机接收数据,数码管显示所有数据。。点阵显示最后一位。并反馈接收到的数据的个数给主机,主机在数码管上显示出来。。。 有比较详细的注释哦。。。。 本人新手,借此赚一点点分。。。以后有资源会免费的啦。。。。。

2013-07-31

空空如也

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

TA关注的人

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