- 博客(1683)
- 资源 (59)
- 论坛 (1)
- 收藏
- 关注
原创 Java笔记-异常机制中try(...)中括号的用法
今天在看到某位Java大佬这样的写法,也让大家一起来观摩下:这里可以看到,将某些变量,和流放到了括号里面,在后面的代码中,也没有finally,也没见将其释放。经过查阅资料,发现,在java7后有了异常的升级用法。放到try()括号里面的,可以自动进行close。但是有条件的,变量需要继承或履行AutoCloseable相关的属性。如上面的三个对象:SSLSocket:再看下Socket:继续看下Closeable:OutPutStream:Closea
2021-03-05 08:33:18
12
原创 Spring Boot文档阅读笔记-DataSource configuration
DataSource:一个工厂可以连接任意厂家的数据库。通常使用URL以及一些认证去建立数据库连接。DataSource在代码中是一个对象,这个对象贯彻并落实了javax.sql.DataSource接口中注册JNDI服务,并且这个对象能发现并使用JNDI的名称。DataSource可以用来获取: a. 标志Connection对象; b. 使用了连接池的connection; c. 使用了事务及连接池的connection;下面是DataSource的配置...
2021-03-05 08:31:37
26
原创 Qt笔记-进程只能存在1个(Linux适用,Windows有思路)
这里以Linux为例主要是程序启动时,使用ps -ef | awk '{print $2,$8,$9,$10,$11}'这个查询下。如果是Windows可以使用tasklist去查。这里创建了一个类QApplicationRun.h#ifndef QAPPLICATIONRUN_H#define QAPPLICATIONRUN_H#include <QObject>class QApplicationRun : public QObject{ Q_OB
2021-03-03 08:41:56
37
原创 Linux工作笔记-根据PID查询进程是否存在(进程管理相关程序中常用)
目前在搞进程管理的软件,在最关键的查当前进程时使用如下的命令:"ps -ef | awk '{print $2,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19}'";这里发现,有时候调用Qt的QProcess的readAllStandardOutput()有时候获取不全,导致多启动了很多进程。后面发现,linux在启动进程后,会在/proc目录下创建一个文件夹,比如id为10086的,就会存在路径/proc/10086如下:可以通过
2021-03-03 08:39:55
30
原创 Java笔记-Maven项目中引入公共模块及打包
如下结构:Common模块是公共组件。SpringBootTest调用了这个组件的只需要在SPringBootTest的maven下面包含:<dependency> <groupId>cn.it1995.common</groupId> <artifactId>Common</artifactId> <version>1</version></dependency>
2021-03-02 08:59:30
27
原创 Linux笔记-查询进程,获取其运行时输入的参数
背景目前做了个进程管理软件,纯Qt做的,此软件包含3个进程,1个监控进程,1个保护进程,1个控制进程。监控进程负责 需要管理的进程 的启停,并且与控制进程形成双进程守护。监控进程打开了某TCP端口,控制进程可以对监控进程发指令,但连接时,是SSL双向认证,服务器也需要检测客户端证书。证书是使用keytool生成的自签名证书。在实际环境中遇到了这样的一个问题,在监控这样的进程出现,出现问题:/usr/bin/java -jar /xxx/xxx/xxx.jar --xxx=xx.
2021-03-02 08:55:47
22
1
原创 计算机网络-VRRP
网关:从一个网络到另外一个网络的端口。是跟PC在同一网段的三层设备的接口。如果网关出现故障,则内网设备无法访问外网。VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议:一个网关挂了,还能上网。这里有一点要注意的,虚拟ip地址,也会产生虚拟mac地址。VRRP功能:网关备份,防止网关单点故障导致网络中断。VRRP基本思想:1. 将多个三层设备的接口加入到一个VRRP备份组中,使用虚拟IP地址代表这一组网关;2...
2021-02-25 10:33:18
15
原创 计算机网络-RIP与OSPF
RIP(Routing Information Protocol)路由信息协议1. 是距离矢量的路由协议;2. 基于跳数选择最优路径;3. 每隔30s向邻居广播自己的整个RIP路由表;缺陷:1. 以跳数评估路由并非最优解;现在有个包要从routeA发到routeC;网络拓扑是这样的:A使用S口(64Kbps)连接到C;A使用G口(1Gbps)连接到B,B使用G口连接到C;根据RIP最优路径,走的是A到C,如果是传输的是1G的数据,那么显然他不是最优路径。..
2021-02-25 10:32:21
22
原创 C++笔记-仿函数(functor)
STL6个组建:1. 仿函数;2. 算法;3. 迭代器;4. 空间配置器;5. 容器;6. 适配器;仿函数一般不会单独使用,主要是为了搭配STL算法。函数指针不能满足STL对抽象性的要求,不能满足软件积木的要求,无法和STL其他组建搭配;本质就是类重载了一个operator(),创建一个行为类似函数的对象。如下C++容器排序的过程。程序运行截图都这样:C++排序过程#include <iostream>#include <a.
2021-02-18 14:49:54
66
1
原创 TCP/IP文档阅读笔记-TCP Receive Window
TCP Receive WindowTCP接收窗口,TCP接收数据到缓冲,应用程序还未处理的那块数据。TCP Receive Window大小,在TCP三次握手时就已经商量好了。并且还确定了数据包的最大字节数。这个最大字节数被称为最大消息长度(Maximum Segment Size,MSS)。当要发送的数据超过该值,就需要将数据分为多个包,依次发送,该操作称为数据分片,如下:如上TCP上次握手时,商量了MSS为1460.过程如下:上面的例图中,Win为windows是窗口大小,
2021-02-15 10:16:51
31
原创 Wireshark文档阅读笔记-User Datagram Protocol(UDP)
UDP(User Datagram Protocol):用户数据协议,UDP是无状态的传输。UDP没有提供任何检测机制,检测丢包,重复包,的功能。基于UDP的协议有BOOTP,DNS,NTP,SNMP,...UDP使用IP协议作文底层协议。下面来用Wireshark抓下包。如下C++代码:#include <QCoreApplication>#include <QUdpSocket>#include <QNetworkDatagram>.
2021-02-15 10:13:19
41
原创 Spring Boot文档阅读笔记-Creating Asynchronous Methods解析
创建一个GitHub用户信息查找服务,这个服务是通过GitHub的API获取数据的。接口是http的,如下:这里创建一个model去接收对象:@Data@JsonIgnoreProperties(ignoreUnknown = true)public class User { private String name; private String blog;}@JsonIngnore告诉spring忽略其他json属性。下面是创建GitHub检索服务,代码如
2021-02-11 23:16:48
29
原创 Java笔记-使用RestTemplate下载大文件,并且设置下载时间
如果文件大,Java会报OOM(out of memory)。使用ResponseExtractor将远程服务器中的文件直接转成流存到文件中,而不放到内存。事例代码如下:@GetMapping("/test-download-v3")public void downloadFile() throws IOException { String url = "http://img.championat.com/news/big/l/c/ujejn-runi_14399110805638556
2021-02-11 23:12:35
45
原创 Wireshark笔记-ping,arp相关的实验(2台主机是否能通)
这是一个实验,两台主机的arp都是空的。主机A的IP地址:192.168.1.3 子网掩码:255.255.255.0主机B的IP地址:192.168.1.193 子网掩码:255.255.255.224网关都是192.168.1.1现在使用B去pingA,包是这样的:B(192.168.1.193)pingA(192.168.1.3),因为B的子网掩码是255.255.224,B主机认为A是在不同的网段中,所以先去找网关,找网关就需要其mac地址,才能通信,所以先发了个arp.
2021-02-11 23:09:10
29
原创 Spring Boot笔记-使用RedirectAttributes重定向后也可以显示填写的信息
这里是这样的,提交表单后,重定向,在以前的函数里面设置了一些前端的信息。重定向后,还能显示出来。最后指定的函数: @GetMapping("/") public String getIndex(){ return "index"; }调用的函数: @PostMapping("/check") public String checkCipherAndSendEmail(@RequestParam("cipherString").
2021-02-03 16:59:07
26
原创 Java笔记-URL和URI的不同
URI和URL从URI和URL的定义就可以知道他们之间的区别统一资源标识符(Uniform Resouce Identifier):一串连续的字符串可以识别所有抽象或真实的资源。统一资源定位符(Uniform Resouce Locator):URI的子集,用于访问可用的资源。语法URI都遵守下面的语法:scheme:[//authority][/path][?query][#fragment]每一部分的解析如下:scheme:对于URL这是一个访问资源的协议头,对于.
2021-02-03 16:44:09
37
原创 Spring Boot笔记-发送纯字符串邮件及带附件邮件
首先引入Maven包:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency>这里以QQ邮箱为例,要开通smtp的服务,这里还有要注意的。尽量不要用刚刚注册的邮箱,不然会被供应商退回的。application.proper
2021-02-03 16:40:18
24
原创 Wireshark文档阅读笔记-TCP Flags
TCP flags是什么?TCP flags存在于TCP数据包中,这个标志位暗示连接状态和一些额外的信息。这个标志位常用于故障诊断或是控制某种特定的连接下面介绍了TCP flags如:SYN、ACK、FIN。List of TCP flags每一个TCP flag的大小都是1bit。下面将介绍每一个标志位:SYN:同步标志位,用于2台主机要建立连接时,第一次发出的数据包,在TCP三次握手中,前两次握手会带有SYN标志位,如上图的TCP三次握手。ACK:确认位,用于说明前对方...
2021-01-27 19:34:31
44
原创 Wireshark文档阅读笔记-TCP 4 times close解析与实例
先介绍一个知识点:当TCP最后一次握手结束后,也就是客户端发送ACK后,客户端不会立即释放资源。会先将状态转换为TIME-WAIT然后等到2-MSL(Maximum Segment Lifetime)后,才会释放资源。1. 客户端发送结束(FIN)数据包给服务端,暗示客户端将要把建立的连接断开,这样的行为称为active close(FIN=1, seq=u)。2. 服务端发送确认收到FIN的数据包(ACK=1, seq=v, ack=u+1)。3. 服务端继续发送结束(FIN)数据包给
2021-01-26 22:11:20
44
原创 Wireshark文档阅读笔记-TCP 3 way handshaking解析与实例
这里先介绍2个概念:TCB:Transmission Control Block,传输控制块,这个和PCB(进程控制块)类似,存储了很多重要的内容。如TCP连接表,发送缓存指针和接收缓存指针,重发队列指针,当前序列号和确认序列号(ACK)。ACK包中带有“数据”,这个数据是指处理SYN(Synchronize Sequence Numbers同步序列号),确认包序列为seq=x+1,这个x是客户端或服务器传过来的。但在实际TCP3次握手中,不仅仅包含这些东西,还带有商议的内容如MSS(maximum
2021-01-26 20:40:32
39
原创 Java笔记-读取资源文件应该注意的问题(大文件解析、\r\n分割相关的)
目前在弄一个模拟程序,数据是从XXXXXXX里XXXXX获取的,也算是真实的把,将其放到资源文件中。如下代码在IDEA开发环境里面是正常的:byte[] bytesxxx = new byte[inputStreamxxx.available()];inputStreamxxx.read(bytesxxx);String allTextxxx = new String(bytesxxx);System.out.println("allText size:" + allTextxxx.leng
2021-01-26 09:33:09
50
1
原创 C++笔记-QSslSocket::supportsSsl返回false(windows版的Qt不支持SSL)解决
下载32位的程序:下载完后,把libcrypto-1_1.dll和libssl-1_1.dll放到QtCreator/bin下面最后:QSslSocket::supportsSsl就能返回true了。
2021-01-26 09:31:34
78
原创 C++笔记-Qt中使用Lambda时[]中的形式
有几个地方要注意的:[]这个表示Lambda的开始,如果要加参数可以这样:[]()后面括号里面放参数,Qt中connect中的信号,参数1. []:里面为空,表示不使用任何参数对象的参数;2. =:表示按值的方式进行传递;3. &:表示以引用的方式进行传递;4. this:表示函数体内可以使用Lambda所在类中的成员变量;5. a:按值的方式进行传递,默认是不能修改的,如果要修改,需要添加mutable修饰符。程序结构如下:如下代码:LambdaInQ.
2021-01-22 08:50:09
73
2
原创 Spring Boot文档阅读笔记=Caching Data with Spring
此篇博文展示了使用Spring去管理Bean开启缓存。maven如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.or.
2021-01-22 08:47:36
42
原创 Linux笔记-利用chkconfig创建脚本使得Rabbimq开机自启
vim /etc/init.d/rabbitmq#!/bin/bash## chkconfig: 2345 80 05# description: rabbitmq # processname: rabbitmq #RabbitMQ安装目录source /etc/profileRABBITMQ_HOME=/root/rabbitmq/rabbitmq_server-3.6.15export RABBITMQ_HOMEexport HOME=/rootERLANG_HOME=/r
2021-01-14 20:40:32
50
原创 CMake笔记-使用CMake GUI生成MinGW的Makefiles及编译hiredis
配置MinGW环境变量:下载hiredis-master设置CMAKE gui各个属性先点configure,选择MinGW,在点Generate生产MinGW Makefiles即可!进入D:\RedisQt\target目录:mingw32-make这里可以看到:生成了dll和.a文件...
2021-01-14 20:38:11
61
原创 Java笔记-C3P0连接池中常用的3个配置
每隔60s测试连接(类似于心跳)dataSource.setIdleConnectionTestPeriod(60);丢弃60 * 5s的时间没有使用过的连接(程序写的差的朋友可以考虑配置下这个)dataSource.setUnreturnedConnectionTimeout(60 * 5);调用sql后,如果20s内没有反馈,那么就直接抛出time outdataSource.setCheckoutTimeout(1000 * 20);...
2021-01-14 20:35:24
39
1
原创 Spring Boot文档阅读笔记-Messaging with Redis
首先要启动Redis服务端redis-serverredis启动后会有如下信息:[35142] 01 May 14:36:28.939 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf[35142] 01 May 14:36:28.940 * Max number of op
2021-01-12 14:16:34
33
原创 Redis文档阅读笔记-Pub/Sub官方解析
Pub/Sub这里有这3个关键字SUBSCRIBE,UNSUBSCRIBE、PUBLISH发布者将消息发送到订阅者。不管有没有订阅者,发布者都将消息发送到通道中,订阅者可以订阅一个或多个通道,也就是可以订阅多个发布者。下面是一个订阅者订阅foo,bar通道SUBSCRIBE foo bar发布者推送的消息,所有订阅者都会收到。推送消息的格式推送/订阅消息需要3类参数subscibe:订阅消息,第二个,第三个参数分别是通道名;unsubscribe:解绑订阅消息,第.
2021-01-12 14:13:49
43
原创 Linux笔记-给Linux配置DNS
修改/etc/resolv.conf:vim /etc/resolv.conf增加DNS配置信息:nameserver 124.161.97.234这里可以重启网卡,也可以不重启:systemctl restart network
2021-01-12 14:10:25
40
原创 Qt文档阅读笔记-Qt跨平台库(Qt基本库)
Qt基本库是所有Qt平台的基础分。他能在所有支持开发的平台和测试平台上跑。这些库在Qt5中已经保持源代码和二进制的兼容。基本模块(基本库)被其他特殊模块所附加。下面是Qt基本模块(基本库)的列表:模块 描述 Qt Core 核心库,不带GUI,被其他模块所引用 Qt GUI GUI(graphical user interface)模块,包含OpenGL Qt Multimedia audio、video、radio、camera Qt Multimedi
2021-01-05 10:06:07
86
原创 Spring Boot文档阅读笔记-对Securing a Web Application解析
首先创建一个非安全的Web应用这个应用包含两个页面,一个是home页面,一个是“Hello,World”页面。home页面使用Thymeleaf,相关代码如下:<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="https://www.thymeleaf.org" xmlns:sec="https://www.thymeleaf.org/thymeleaf-extras-springsecuri
2021-01-05 10:04:12
39
原创 Java文档阅读笔记-C3P0连接池的使用
这篇博文如何在应用程序中使用和配置C3P0prom.xml如下:<dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.5</version></dependency>数据库使用MySQL,这个例子连接knpcode库,并且检索EMPLOYEE表,这个EMPOLYE
2020-12-30 09:07:37
48
原创 cuda笔记-流的使用(定义、创建、消耗、同步)
定义流:cudaStream_t stream;创建流:cudaStreamCreate(cudaStream_t *s)销毁流:cudaStreamDestroy(cudaStream_t s)流的同步:显示同步//同步单个流,等待该命令都完成cudaStreamSynchronize(cudaStream_t stream);//同步所有流,等待整个设备上的流都完成cudaDeviceSynchronize();//通过某个事件:等待某个事件结束后执行该流
2020-12-29 09:47:28
91
1
原创 Spring Shell笔记-help方法及exit及其他方法
可以看到那个shell Component,是我们自己写的shell命令。这里有几个命令:clear:清屏exit:退出help:帮助script:从文件里面执行命令stacktrace:打印最近的错误
2020-12-29 09:44:57
57
原创 Java文档阅读笔记-JPA中getOne()和findById的区别
findById()和getOne()都是从数据库中检索某个对象,不过获取数据的方式是不同的,getOne()是lazy操作,这种操作甚至没有访问数据库。getOne()返回ID的引用对象,他内部调用的了EntityManager.getReference()方法,这个方法返回proxy而非直接访问数据库(所以叫lazy),如果请求的实体不存在数据库中,那么此方法抛出EntityNotFoundException。findById()此方法直接访问数据库返回真实的对象,如果这条记..
2020-12-29 09:43:33
99
原创 Java笔记-String.format的使用(可用于格式化字符串)
如下代码:String tmp = "Hello, '%s', %s, %s, %s";tmp = String.format(tmp, "one", "two", "three", "four", "five", "six");System.out.println(tmp);程序运行截图如下:这样以后就可以不使用#%1#这种,去replace了。
2020-12-29 09:38:49
33
原创 Spring Boot文档阅读笔记-使用Spring Data JPA连接多源数据库(MySQL和Oracle)
下面这个小项目展示了如何连接2个数据库,一个是Oracle,一个是MySQL。关键的Maven依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependency> <!-- https://mvnrepository.com/ar
2020-12-24 14:33:23
75
原创 Java笔记-Spring-rabbitmq中设置receiveMessage参数为Message
如下代码:public void receiveMessage(Message message){ ...... ......}其中对应的Message为此包:import org.springframework.amqp.core.Message;在listner中这样设置就可以了: MessageListenerAdapter listenerAdapter(Receiver receiver){ MessageListenerAdapter
2020-12-24 14:28:47
82
原创 Java笔记-通过4个小程序对Java内存初步探究
程序A:package cn.it1995;import javax.swing.*;import java.util.ArrayList;public class Main { public static void main(String[] args){ while (true){ ArrayList<String> list = new ArrayList<String>(); for
2020-12-17 14:50:17
59
基于RFID门禁系统源码 ,C/C++
2017-09-10
libX11生成libX11-xcb.so.1
2018-11-13
Qt文件编码转换工具源码
2019-01-19
Qt文本转化工具 realase版本
2019-01-19
Qt+Opencv-PCA人脸识别+视频
2017-05-07
IT1995的留言板
发表于 2020-01-02 最后回复 2020-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝