自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

poetteaes的博客

博学之,审问之,慎思之,明辨之,笃行之

  • 博客(33)
  • 收藏
  • 关注

原创 ffmpeg视频转码及音量分析调整

(一)查看音量方法一:ffmpeg查看EBU R.128标准下的响度参数音频的响度标准可参考EBU R.128标准(详情可见https://tech.ebu.ch/loudness/)ffmpeg -nostats -i test.mp4 -filter_complex ebur128 -f null -可以看到响度参数为:I(整体响度):-16.0LUFSLRA(响度范...

2019-04-24 09:18:40 8518 1

原创 Java web实现简登录页面(MyBatis+jsp+servlet+html+css+javascript)附源码

本文利用MyBatis+jsp+servlet+html+css+javascript实现了一个简单的登录页面。对用户输入的用户名和密码就行校验,校验通过则登录成功,密码和用户信息保存在mysql表中,通过MyBatis访问(MyBatis相关知识可参考先前的文章MyBatis测试)。先给出最终的效果图:登录成功则进入如下页面:登录失败,则进入如下页面:如果输入的密码或者用...

2018-07-01 21:44:13 32415 8

原创 hiredis包装redis数据库操作接口及测试(增删改查与连接)

前两篇文章(redis安装配置与测试、redis的数据类型)总计了redis的一些基本知识,这里要进行一下redis的实践,先介绍一个实际应用场景,对于客户频繁需要查询的信息,可以将其放在redis内存数据库中,相当于一个缓存,每次查的时候先去redis内存数据库中去查询,如果查询不到再去oracle数据库中查询,这样提高了效率。本文,使用redis的C与语操作接口hiredis包装了redi...

2018-06-10 16:52:47 3665

原创 基于LinkedHashMap实现LRU Cache以及手写LRU

public class LruCache<K, V> extends LinkedHashMap<K, V> { private int chcheSize; public LruCache(int chcheSize) { if (chcheSize < = 0) { throw new IlleagalArgumentException ("c...

2019-10-06 17:17:31 411

原创 浏览器点击生成的下载链接点击事实现下载而不是自动播放并且指定下载文件名

对于视频或者图片文件,生成的下载链接,在浏览器中点击的时候,可能会自动播放,而不是下载。生成下载链接时可以通过指定response header的content-type参数来实现下载而不是自动播放,如下设置:content-type: application/octet-stream下载的时候默认的名称是下载链接处的文件名,如果想指定文件名,生成下载链接时可以通过指定response...

2019-07-08 21:05:09 2419

原创 jpa利用Specification实现多条件查询排序

Entity实体类:import java.time.Instant;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import java...

2019-06-14 18:58:09 3097

原创 Spring AOP总结测试

AOP(Aspect Oriented Programming),即面向切面的编程。(一)什么是面向切面的编程切面是指代码中一些公共的非核心模块的抽象,比如日志打印,可以将其从核心代码中剥离出来,当程序运行需要时通过切面插入公共代码即可,从而降低代码的耦合度,提高代码的可复用性,并使得我们编程的时候能够更专注于核心业务代码的编写,这种编程模式叫做面向切面的编程。类可以继承,因此可以看做...

2018-09-01 19:25:38 331

原创 java线程池实例及总结(以多路socket通信为例)

(一)线程池概念我们知道,多线程是针对多任务处理的,可以多线程可以并发执行多个任务,提高了程序执行效率。但是线程的创建和销毁需要时间,如果频繁创建和销毁线程,可能会影响执行效率,线程池可以解决这个问题。顾名思义,线程池可以理解为一个预先创建的线程集合,每次有任务来的时候,从线程池中取得一个线程去执行任务(如果线程池无空闲线程,可能要新建线程或者等待),执行完毕后线程暂不销毁,等待执行下一个任务...

2018-08-12 15:22:03 9583

原创 synchronized线程同步探讨(购票问题为例)

先前的文章(java多线程)对java的多线程进行了一些总结,这里对synchronized线程同步进行一些进一步的研究。以典型的购票问题为例,模拟购票,为了票数能够正确更新,线程需要同步,否则余票数量将有误,我们来看看synchronized的几种同步方案:(1)代码块同步,正确方法:这里有几个重要的地方,首先ticketCount要定义成static类型的,在多个Ticket对象之...

2018-08-11 22:05:14 792

原创 SpringMVC实例及测试

Spring MVC是一个开源的java框架,使用该框架可以容易地开发出java web程序。MVC的含义是:模型(Model)、视图(View)、控制器(Controller),其中模型包含了应用程序数据,视图可以在浏览器输出展示,控制器负责处理请求、生成模型并传递给视图渲染。Spring MVC的核心是DispatcherServlet,通过DispatcherServlet可以将模型(M...

2018-08-01 21:33:00 1160

原创 MyBatis测试

MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。  MyBatis中的全局配置文件定...

2018-06-29 23:28:18 8066

原创 JDBC连接mysql-8.0实现增删改查

(一)安装配置mysql官网下载mysql-8.0.11-winx64.zip解压到某个目录(例如E:\mysql-8.0.11-winx64)添加环境变量 MYSQL_HOME,值为E:\mysql-8.0.11-winx64(需要替换成实际解压目录);修改环境变量PATH,在末尾添加%MYSQL_HOME%\bin;打开cmd窗口,在E:\mysql-8.0.11-winx64\...

2018-06-24 19:59:09 3081

原创 nginx + spawn-fcgi + fastCgi配置web服务并测试

之前的两篇文章(nginx安装配置、nginx各种应用总结及测试)对nginx的安装配置和应用进行了探讨,本文介绍一下用nginx + spawn-fcgi + fastCgi配置网络服务器服务的方法,并给出一个测试示例:(一)首先需要安装fcgi下载fcgi-2.4.0.tar.gz并解压root用户登录安装$ cd fcgi-2.4.0.$ ./configure$ make $ make i...

2018-06-17 21:32:29 2097

原创 文件读写(使用BufferedReader和PrintWriter)

FileReader/FileWriter按照字符流读写;FileInputStream/FileOutputStream按照字节流读写;使用BufferedReader可以使用readLine方法按行读取。本文使用BufferedReader和PrintWriter实现文件的读写。BufferedReader和PrintWriter实例化方式如下:File inFile = new Fi...

2018-06-14 13:58:49 1955

原创 java操作redis

前面几篇文章(redis安装配置与测试、redis的数据类型、hiredis包装redis增删改查接口)已经对redis的理论和实践进行了一些探讨。这里介绍一下java下redis的访问和操作,java操作redis需要使用jedis.jar包,可以从官网下载https://mvnrepository.com/artifact/redis.clients/jedis 。jedis的一些api可以看...

2018-06-10 18:12:53 230

原创 redis的五种数据类型

前一篇文章(redis安装配置与测试),介绍了linux下redis的安装配置与测试,这里总结一下redis的五种数据类型,及其简单的操作测试:redis有五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)、zset(有序集合)。(1)string是最基本的数据类型127.0.0.1:6379&gt; SET key2 value2OK127.0.0.1:63...

2018-06-10 15:30:26 1240

原创 redis安装配置与测试

linux下安装配置和测试步骤如下:(一)下载安装下载地址:https://redis.io/download下载redis-4.0.9.tar.gz上传到/usr/local/src/目录下,解压:$ tar -xvf redis-4.0.9.tar.gz编译安装(安装到/usr/local/redis目录下)$ cd redis-4.0.9$ cd src$ make $ make insta...

2018-06-10 15:09:34 364

原创 SHA512函数使用时的一个坑

在做报文加签时候遇到一个坑,记录一下。程序加签过程如下,先使用SHA512函数计算源数据块的hash串,然后转成16进制字符串,再对十六进制字符串进行RSA私钥加签。关键代码如下:SHA512((unsigned char *)srcStr, srcStrLen, sha512Str);sha512StrLen = strlen(sha512Str);str2Hex(sha512Str, sh...

2018-06-09 16:25:54 4001

原创 nginx的各种应用总结与测试

反向代理:不同的选择:反向代理:不同的选择:

2018-05-27 22:25:59 2507

原创 nginx安装配置及测试

nginx是一个高性能的HTTP代理服务器和反向代理服务器,也可以作为负载均衡器、MAP/POP3/SMTP服务器。这里总结一下nginx的安装配置:(1) 这里选择官网下载安装包编译安装,安装到centos 6.5 系统。下载地址 http://nginx.org/en/download.html,下载nginx-1.13.12.tar.gz(2) 上传安装包到/usr/local/src目录下...

2018-05-27 22:17:43 371

原创 二叉树的层次遍历带换行java语言实现

可以使用队列实现二叉树的遍历,LinkedLsit可以看做是一个队列,offer和poll分别是进队列和出队列。队列先入先出的特性实现了层次遍历,先将根节点入队,进入循环(循环条件队列非空),首先从队列中取出一个节点(并打印数据),判断从队列中取出(这是重点)的节点是否有左右儿子,有的话依次入队列;如果队列非空,继续循环,从队列再弹出一个节点(并打印),判断该节点的节点是否有左右儿子,有的话依次入...

2018-05-20 21:33:01 408

原创 ORACLE中exists(not exists)与in(not in)的对比及null值处理

(1) in和existsin和exists的用法分别如下:SELECT  *  FROM  table_name1 A WHERE A.id  IN  (SELECT B.id FROM table_name2 B);SELECT * FROM table_name1 A WHERE EXISTS (SELECT 1 FROM table_name2 B WHERE B.id=A.id) ;in...

2018-05-19 16:59:03 1715

原创 java socket编程实现客户端服务端TCP通信

先前的一篇博文(C语言socket编程实现TCP通信),在unix系统下,利用C语言socket编程简单实现了客户端服务端TCP通信。实际上,利用java.net包中的类可以更容易的进行socket通信。但不管是使用java还是C语言进行socket编程,TCP通信本质上是一样的。都是服务端端绑定一个端口并对此端口进行监听,客户端根据IP和端口访问服务端,两者通过三次握手建立连接,然后就可以通...

2018-05-18 23:30:13 1010

原创 最大子序列和及序列起始位置-全负数也适用-O(N)时间复杂度

有一个很经典的题目:给定一个整数组,求连续子序列的最大和,整数为正、负、0皆有可能。先考整数不是全负的情况,和最大的连续子序列,必然是以一个非负数开头,因为和加上一个负数,和变小,此外,和为负数的连续子序列,也不可能是目标子序列的开头的一段序列,因为如果目标序列起始的几个数为负,那么总可以通过将开头的这几个数去掉,这样目标序列的和更大。这种思路能得到一个算法复杂度为O(N)、空间复杂度为O(1)的...

2018-05-16 15:22:24 1679

原创 socket编程实现TCP通信

套接字是通信断点的抽象,可以看做是一种文件,正如文件使用文件描述符访问,套接字可以用套接字描述符访问,在linux系统中,套接字描述符是一种文件描述符。(一)字节序在进行套接字编程之前,需要知道如何标识目标通信进程,目标通信进程由网络地址和端口标识。我们知道计算机处理器的结构不同,字节序可能不同,分为大端可小端,大端模式下高地址存储低字节,小端模式相反。在相同的计算机上通信时,不存在字节序的问题,...

2018-05-06 16:29:12 6890 4

原创 信号量与共享内存实现进程间通信(生产者消费者问题为例)

(一)信号量信号量是IPC的一种,可以看做是一个计数器,计数值为可用的共享资源的数量,信号量可用于多进程的同步,为多个进程提供对共享资源的访问。linux下的信号量的接口函数如下:/*(1)获取信号量*/int semget(key_t key, int semnum, int flag); semnum为信号数量,如果是新创建信号量,则大于0;如果是打开已有的信号量,则semnum可为0;例子:...

2018-05-06 13:26:42 6135 2

原创 消息队列消息收发实现及测试

下面链接的博文已经总结了Linux下消息队列及其API函数,本文用C语言模拟一个消息队列消息的手法,一个进程(server)产生消息放到消息队列中,另外一个进程对消息队列进行读取并打印消息,遇到exit则结束,由客户端删除消息队列。消息队列总结(https://blog.csdn.net/poetteaes/article/details/80030114)1. msq.h# ifndef _SH...

2018-05-01 21:28:41 6911

原创 消息队列操作总结

消息队列是消息的链接表,存储在内核中,由消息队列标识符标识,每个消息队列都关联一个键值。消息队列是IPC结构的一种。内核中的IPC(Inter-Process Communication)结构(消息队列、共享内存或者信号量)都用一个非负整数的标识符加以引用。创建IPC对象时应当指定一个键,这个键的数据类型为key_t,通常在头文件&lt;sys/type.h&gt;中被定义为长整型,键值由内核转换...

2018-04-21 15:28:03 802

原创 排序算法总结(附代码)

排序算法总结:十大排序算法:冒泡排序、选择排序、插入排序、希尔排序、堆排序、归并排序、快速排序、计数排序、桶排序、基数排序不稳定:选择排序、希尔排序、快速排序和堆排序稳定:冒泡、插入、归并、计数、基数、桶排序算法复杂度O(N^2):冒泡、选择、插入排序算法复杂度O(N*logN):希尔排序、堆排序、归并排序、快速排序算法复杂度O(N):计数排序、桶排序、基数排序代码见:我的github...

2018-04-15 15:41:30 153

原创 linux下查找替换命令sed使用

sed用法如下:sed [option] '[某行,到某行]s/原字符串/替换字符串/选项' 文件名例如:sed -i %s/^M//g  test.txt    去掉test.txt中的DOS换行符(这里^M 要用ctrl+v+m输入)如果去掉-i选项则只在屏幕上输出,不在文件中替换;删除命令中g表示替换所有又例如:sed '2s/原字符串/替换字符串/g'  #替换第2行sed '$s/原字符...

2018-04-14 18:37:46 995

原创 git版本管理工具安装与配置

(1)linux下安装git:  $  yum install git (2)git命令查看安装结果:(3)设置用户名和邮箱:$ git config --global user.name "Your Name"$ git config --global user.email "[email protected]"配置信息可以在$HOME/.gitconfig中查看(4)初始化一个仓库$ mkdi...

2018-04-14 17:38:17 248

原创 git本地版本库关联github远程版本库

(1)linux机器上生成SSH Key$ cd $HOME$ cd .ssh$ ssh-keygen -t rsa -C "[email protected]"  上述命令生成私钥id_rsa和公钥id_rsa.pub(2)将公钥添加到github假定已经申请github账号,登录账号,如下点击setting然后复制id_rsa.pub中的内容添加New SSH key(3)github...

2018-04-14 17:26:11 615

原创 shell脚本生成两个数据日期之间的所有日期

在linux下有时候会需要得到两个日期之间的所有日期,作为变量进行处理,例如两个日期之间的所有日期都分别生成一个用日期命名的文件夹。以下shell脚本循环输出两个指定日期之间的所有日期(包括两个输入日期)。#!/bin/bash #以YYYYMMDD格式输出大于等于第一个输入日期,小于等于二个输入日期的所有日期 begin_date=$1 end_date=$2 while ...

2018-04-12 15:13:40 3892 2

空空如也

空空如也

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

TA关注的人

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