自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 java串口通讯开发rxtxSerial.dll的闪退问题解决

java串口通讯开发遇到的问题排查过程、解决办法

2022-08-22 14:30:11 1977 7

原创 JAVA面试系列(三)redis概念、下载安装、面试问题

包含redis的基础概念与特点、下载安装及使用、常见面试问题问答等内容

2022-02-22 12:31:16 743

原创 JAVA面试系列(二)消息中间件

本人目前项目中有用到rocketMQ作为数据传输过程中的中间件,今天整理了一下资料,记录一下自己对消息中间件的理解。一.概念1.MQmessage queue消息队列,消息队列是就是队列,是一种先进先出的数据结构。把要传输的数据放在队列中,用队列机制来实现数据的传递,也就是生产者产生消息,将消息放入队列。消费者消费消息,将消息从队列中读出。2.消息中间件消息中间件是对消息队列的应用,消息队列(MQ)只是一种数据结构,而消息中间件是分布式系统中一个组件,或者说是一个系统。以上就是MQ和中间

2022-02-11 15:48:25 2447 1

原创 java面试new idea--选型问题

包含面试经历、关于面试选型的新看法

2022-02-09 11:49:17 455

原创 JAVA面试系列(一) 基础知识....持续更新

开个新的系列,主要总结一下java面试会遇到的各种问题,从最基本的概念到进阶的机试,自己水平也有限,综合自己的学习、三年多的工作经验,以及网上查找的资料,试着总结一下。

2022-01-20 16:17:03 858

原创 Docker学习与应用

一.docker是什么1.docker简介docker是一个开元的软件部署解决方案;docker是轻量级的应用容器框架;docker可以打包、发布、运行任何的应用;总结:一个开源的引擎,可以轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容器。关于docker的概念性问题,我之前有一篇博客Docker的原理和基本概念_Hassan猿的博客-CSDN博客,里面对于基本概念有更详细的探讨,本篇主要讲应用。2.docker常用场景web应用的自动化打包和发布;自动化测试和

2022-01-12 16:54:34 351

原创 SSM框架梳理(四)结合工程整体梳理

SSM各类配置文件

2022-01-10 14:37:11 623

原创 SSM框架梳理(三)MyBatis原理分析

一.MyBatis解析今天到了SSM三个框架的最后一个MyBatis,MyBatis是一个针对数据库进行操作的框架,基于jdbc产生的一个便捷的操作数据库的框架,底层是对jdbc的封装,简化对数据库的操作。主要通过对配置文件的解析来连接数据库,然后通过XML文件得到SQL,有了数据库连接+SQL语句,就可以去操作数据库了。...

2022-01-08 11:57:14 818

原创 SSM框架梳理(二)Spring原理解析

一.Spring上一篇文章描述了SpringMVC的运行流程,本篇文章开始讲Spring。我们已经知道,在SSM里,系统分为了表现层、service层、controller层、DAO层。那么Spring是干什么的,在SSM里又扮演了哪些角色,在这四个层里的哪些层发挥了作用呢?1.Bean了解Spring之前,先讲一下Bean。我们都知道JAVA是面向对象的语言,也就是类,对象有方法和属性,在调用对象的时候需要先实例化对象,然后来调用对象里的方法和属性,这是java开发的基本原则之一。不实例化

2022-01-07 15:13:04 1115

原创 SSM框架梳理(一)SpringMVC工作流程

一.基础概念首先,SSM不是一个框架,而是一个框架集合,集合了Spring和MyBatis两个开源框架,SSM=Spring+SpringMVC+Mybatis,那么这个SpringMVC又是啥呢?可以这么理解,Spring是一个底层框架,是一个大工厂。MVC大家也都知道,是一种WEB架构,我之前没学习java的时候,用VS写C#,也都是用的MVC三层架构。那么SpringMVC其实就是在Spring框架的基础上,添加的Web架构,必须依赖于Spring。换句话说,SpringMVC是一个基于Sprin

2022-01-06 15:51:22 981

原创 Maven知识梳理及使用

一.maven是干嘛的?有什么用?为什么要用它?刚入职的时候,老员工给了一份文件,里面分别是java环境配置教程、java开发注意事项,再有一个就是eclipse创建maven项目教程。maven的下载和安装,以及如何在ecplise里创建maven工程,这个网上已经有很多教程了,这里就不赘述。本篇文章着重讲一下maven到底可以给我们开发带来什么,根据我自己的实际使用感悟来记录。最开始我对maven只有一个简单的概念,就是这个maven是做项目管理的,不知道出于什么心理,高技术的总是反感做项目

2022-01-05 15:56:37 268

原创 工作知识梳理

到了年底,一晃工作三年多了,接下来的文章将会对自己这3年以来所用的到一些技术做一次系统性的整理,一方面是对自己知识的巩固与检验,另外一方面也可以分享给大家相关的知识理念以及实际使用。说起来也是颇为有趣,我们一般的就职流程都是:学习-实习-实战。但是我来到公司后并没有太多的经历过学习和实习,而是在简单地学习之后就开始进行代码开发。有两个原因:①java语言对于刚毕业的软件工程专业学生来说上手简单②最主要的原因:应用层傻瓜式开发就像我们使用SSM框架,老员工只管告诉我,一个D

2022-01-04 14:50:55 650

原创 spring框架内的定时任务(Scheduled)同步和异步执行

之前写的一个定时任务,频率一秒一次,常执行。里面的业务代码比较复杂,有DB查询、DB更新和插入、有嵌套循环、还有调用图片处理的程序等等,放服务器上跑,大概40分钟,就吃掉很多内存,占比85%,再跑下去JVM就越界,导致内存溢出,服务器就启动自我保护自动重启了。然后就开始排查程序,为什么在JAVA自动回收的情况下,还会把服务器玩坏,突然想到了定时任务的机制问题。Spring的定时器:@Scheduled(cron = "0/1 * * * * ?"),默认是同步的还是异步的?因为业务代码的复杂性,

2021-03-19 16:42:29 3596

原创 图片采集以及转存---DALSA相机SDK开发(不再涉及halcon或opencv等)

借助DALSA提供的官方SDK,以及部分,完成相机的信息获取、相机连接、内存裸数据采集、转存图片一系列流程,不再像之前一样涉及到halcon或者opencv来处理图像,而是只使用DALSA的官方SDK来进行开发。本项目做的是C#控制台项目,没有界面,如果要界面的话,网上也有代码可以借鉴,可以添加halcon的空间HalconWindow,来直接用halcon的HOperatorSet来放;也可以不使用halcon,只用winForm内自带的pictureBox控件,但是那样的话就需要将图片先转成bi

2021-03-11 15:51:18 5004 1

原创 C#程序和java程序间的socket通信

在上一篇博客《DALSA工业相机流程》中讲过,需要在java和C#两个平台的两个项目里,实现通信。一. 进程间的通信定义 先理解进程,进程是操作系统的内部概念,每当我们执行一个程序的时候,OS就创建一个进程,在这个过程中伴随着资源的分配和释放。可以这么说,进程就是一个程序的一次执行过程。进程间通信(IPC:InterProcess Communication),进程之间的用户空间是独立的,一般来说不能互相访问,但是我们实际编程过程中很多进程之间存在一些逻辑条件判断,需要互相通信,才能完成我...

2021-02-04 14:08:36 1567 2

原创 DALSA工业相机工作流程

由于种种原因,智能检测项目只分开购买了设备,打算所有的软件设备都自行研发,购买的硬件设备分别是I/O控制板、触发板、相机。I/O控制板控制沉箱门开关,触发板控制相机开关(激光外触发),在相机拍照后则还需要编写采集程序。由于采集程序中必需的DALSA.SaperaLT.SapClassBasic和HalconDotNet都是DLL,HalconDotNet还好说,跟opencv一样都是图像处理的,opencv都有jar包版,那halcon应该也有。但是DALSA.SaperaLT.SapClassBa

2021-02-01 16:09:45 2099 1

原创 关于C# WinForm项目打包的两种常用方法

winform项目作为windows窗体应用,即windows应用程序,典型的C/S端,也就意味着,不能像Web的B/S端那样,只需要维护和发布服务端。C/S架构麻烦的地方,就在于程序的安装和更新。要包含dll和exe,但是又不想分成多个文件。WINFORM应用程序主要有两种打包方法,第一种是借助压缩软件,比如winrar,利用自解压特性。第二种是VS提供的标准安装(setup.exe)程序打包。第一种:1.切换到项目根目录,bin文件夹下的release内,里面包含了exe文件和dll文件以及

2021-01-26 15:54:10 11743 1

原创 Docker的一些基本命令和操作(持续更新)

上一篇文章分析了docker的基本原理和概念。本文来讲述一些,我知道的使用方法。目前使用的方法并不多,所以这篇文章是长期更新的文章,如果在后续有新的用法发现,会持续更新。1. 应用发布更新流程①将自己的程序打包成war包②将war包放入tomcat指定端口以及webapps文件夹下③进入当前目录(tomcat/8081/webapps),执行unzip命令,解压war包,删除旧程序包④使用docker ps -a 查找自己程序的容器名称等信息⑤输入docker restart 容

2021-01-05 17:29:10 232

原创 Docker的原理和基本概念

最近项目部署服务器的时候,都切换到了docker部署,本人还是习惯于之前的tomcat/端口号/webapps路径下放war包的方式,自动解压更新覆盖,只需要在tomcat/bin目录下重启tomcat就可以了。用习惯了,确实觉得顺手,也不太想去接受docker部署这种方式,感觉很麻烦,一堆新的概念,什么映射、镜像、宿主机等等,这可能就是惰性吧,抗拒一些新生的事务,只想依赖旧习惯,这样是无法进步的,特别是软件行业。其实直接在tomcat下部署是有缺点的,先不说跟docker部署比起来的优缺点,只说老方法

2021-01-05 16:04:48 335 1

原创 ON DUPLICATE KEY存在即更新否则即插入的研究

今天有个业务需求,在新增某数据的时候,要求批量操作,批量插入或者覆盖(更新)等,本来是想分步骤,1.查询是否存在 2.根据1的结果选择insert或update语句或者全部用insert,但是那样就得搭上一个delete语句,但是怎么看都是笨到家了。项目现在用的SSM,mybatis里有很多方法可以处理这种情况,我选择的方式是ON DUPLICATE KEY UPDATE句式。这种方法可以放在insert标签内。完整语句是这样的:<insert id="uploadPlanItemCac

2020-12-30 16:08:32 345

原创 485通讯与MODBUS的区别与联系

最近做智能检测的项目,设备、串口之间的通讯比较多,一会儿485,一会儿modbus RTU,有点晕了,这里重新梳理一下RS485、485通讯协议、ModBus通讯协议、Modbus Rtu通讯这几个点的联系和区别。先说RS485吧,RS485是一个工业常用的物理接口,是物理层的硬件设备(串口)。是在电脑设置上看得到的(windows系统-我的电脑-设备管理器)设备。Modbus是一种国际标准的通讯协议,一般用于不同厂商设备之间进行数据交换,是应用层的软件协议,不能自己单独存在,必须要依赖于硬件设备作

2020-12-08 11:24:00 72951 1

原创 Maven项目打包时报错:非法字符\ufeff

打包方式:cmd命令行-进入项目目录-输入mvn clean -DskipTests package -P dev,是标准的命令行打包方式报错:非法字符: ‘\ufeff’ 需要class, interface或enum。报错的文件是一个公用包里的一个class,是datasource的,文件名是DataSourceContextHolder.class,一开始我还以为是pom文件里的dev这个profile有问题,在检查了一遍之后,发现还真有问题,修改完成后再次打包,发现还是一样的报错

2020-11-19 16:13:17 2536

原创 C# 关于OPC数据处理相关代码优化处理

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Configuration;using OPCAutomation;using MySql.Data;using MySql.Data....

2018-02-08 16:39:15 1189

原创 虚拟机模拟服务器环境相关问题

这两天遇到了比较大的挑战,项目代码已经写好并且试运行,在实际部署到客户服务器方的时候,由于客户服务器系统环境、插件、网络等等的不一样,导致Debug文件在部署的时候,容易出现各种各样的情况,毕竟原来的开发环境是在我的windows 10+vs2012上面开发的,当你把你的程序放到一些比较老的服务器系统上的时候就会出现一些问题,这时候你需要去调试服务器,来让你程序能适应在目标机器上。前两天关于A

2018-01-30 17:34:21 743

原创 Access数据库到Mysql数据库实时更新

项目目标:首先是将Access数据库中的大量数据(已经存好的原有百万级数据)转存到mysql数据库中,然后,随着Access中数据的增加,要同步更新mysql数据库,更新周期自定。思路:一开始的转存前篇博客已经讲过,这里就忽略了,主要是实现Access数据更新后同步到mysql中。思路是:1.用MAX的sql语句查找mysql数据表,找出时间那一列的最大时间MAX(patrol_tim

2018-01-23 16:00:45 5529

原创 关于百万级数据转存令人崩溃的操作

这两天接到一个任务,大概目标是要将现有的客户提供的数据(Access数据库)全部转存到我们本地的mysql中,然后后期写一个定期检查原表是否更新,如果更新,则更新本地数据库。我一开始写了一个小的代码,是利用数组的方式,先把Aceess某一个目标表中的每一列都用list[]数组读出来,又N个列就newN个数组来存,然后用for循环,把数组里每一列的数据写入mysql中对应的表中的列,思路是这样,

2018-01-17 16:18:26 2144

原创 死循环内存回收,sql语句效率,项目结尾阶段优化反思

今天之前写的OPCTools算是正式在服务器上调试使用,并交付,在项目收尾的阶段,学到了一些说大不大说小不小的“程序员职业操守”=。=关于代码最后的规范化和一些优化(在代码能够成功运行并完成目标任务)工作。自己总结了几点,看起来都是一些鸡毛蒜皮的小事,有的根本都不影响代码的功能运行,但是也是需要多注意的地方:1.关于配置文件中的连接字符串

2018-01-10 16:35:04 505

原创 浅谈C++STL标准类模板库

从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。STL现在是C++的一部分,因此不用安装额外的库文件。在C++标准中,STL被组织为下面的17个头文件:algorithm>、deque

2018-01-08 11:44:41 281

原创 更新OPC点位值,值中带有特殊字符影响sql语句执行的解决办法

昨天发布的博客中,介绍了如何从OPC中批量提取items的值,然后按照一定速率更新进数据库中,然后出现了一个不大不小的BUG,原因是items的value值,里面如果含有特殊字符,例如单引号(‘),反斜杠(\)等等,就会影响sql语句的判定,造成执行错误。先看看那哪几个OPC的点位值,会出现这种含有特殊符号的情况。很明显,上图的OPC点位值中,我打勾的两个,一个TextualDataI

2018-01-05 10:27:27 1069

原创 OPC批量添加数据并且批量更新到数据库的实现

记录一下今天刚写完并且运行成功的代码和思路,关于工业协议OPC的数据读写,还有与数据库的交互相关问题,重点是批量,如何批量进行导出导入和更新。OPC不用讲了,工业协议,做物联网的都知道。。。。= =其实就是个DLL包,没啥东西好说的,用人家的东西就行了。从设备上把数据读出来。其实上个星期写过一个关于门禁系统的数据交互,大概功能是从某大厦把所有门禁的数据读出来,然后更新到数据库,保留数据,供

2018-01-04 16:14:02 10421 10

原创 opencv配置安装以及配置vs和第一次运行

opencv是开发计算机视觉的工具,计算机图像处理、计算机视觉,好的算法是利用人眼模型,来使得程序跑出和人眼识别相似的结果,比如CNN(卷积神经网络),必须要精通数学,才能完成甚至是设计出好的算法来模式这一过程。首先是下载opencv,这个要去官网,https://opencv.org/releases.html,这个地址是官网上opencv最近以及历史版本的下载列表,每一个openc

2018-01-02 17:30:20 872

原创 while()加条件,造成数据库需要重新open

源代码如下: while (true) { string connStr = ConfigurationManager.AppSettings["ConnectionString"]; MySqlConnection mycon = new MySqlConnection(connStr);

2018-01-02 11:17:13 662

原创 String.Format()的应用

今天在写一个OPC项目的时候遇到一个问题,其实就是更新数据库的问题,项目的大概目标是从OPC中读取到每一个ITEM(大概3K个)的value值,然后把读到的3k多个value值,更新进入数据库,thread(5000)每5秒钟读取并更新一次数据库表。在写update语句的时候,用到了string.format,这种方法适用于同时更新多个数据表列的情况,原理是做一个数组,在语句中可以“列1={0

2018-01-02 10:57:32 568

原创 C++中class和struct的区别

在VC++中,对于类的定义,class和struct有一定的区别通常来讲:1.默认的继承权限区别:这里的默认指的是不做特殊说明的情况下,即直接用class和struct来定义一个类,此时,对于class,按照private来继承,对于struct,按照public继承2.成员默认访问权限:跟1差不多,class是private权限,struct是public基本除了以上两点,cla

2017-12-25 15:27:35 1322 1

原创 MySql安装完成之后的启动问题

在安装完成MySql之后,一般都会用cmd控制台测试一下mysql服务的启动。之后再用Navicat Premium来测试一下链接,今天安装完成之后在用cmd测试的时候出现了“发生系统错误5,拒绝访问”的问题,一般看到拒绝访问这样的字眼都是因为用户权限问题,上网一查果然是如果,需要用管理员身份来运行CMD,就能成功启动了。在使用管理员启动有两种方法,第一种最常见,就是右键选择一下呗,用管理

2017-12-15 09:51:13 13866 1

转载 VS2012 产品密钥

vs2012 产品激活码,序列号,旗舰版(utimate)YKCW6-BPFPF-BT8C9-7DCTH-QXGWC

2017-12-14 18:01:36 38319 7

原创 C++多态的笼统解释

首先,说一下多态,C++的多态是很多编程的基本,万物之源也不为过,广义上,多态指一段程序能够处理多种类型对象的能力,其实,多态就是接口重用,比如说,一个接口,针对不同类型方法、函数、对象,能有不同的处理,这就是多态。C++中,多态,分四种:强制多态,重载多态,类型参数化多态,包含多态。强制多态就是强制转换数据的类型来实现的,也就是数据类型转换(显隐式),按照如下规则转换:char,shor

2017-11-02 16:42:00 252

原创 析构函数的定义

首先来到一个问题,什么是析构函数,在《C++语言程序设计》(清华大学出版社,以后的博客关于C++的概念部分大多借鉴于此版教材)中,析构函数与构造函数对应,构造函数是始,析构函数是终,比如借了邻居的东西(内存),是要还的(释放),析构函数是做收尾工作的。他与构造函数的作用几乎正好相反,用来完成对象呗删除前的一些清理工作,是在对象的生存期即将结束的时刻被自动调用的(有特殊情况是可以主动调用析构函数

2017-11-02 15:24:21 1849

空空如也

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

TA关注的人

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