自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (7)
  • 收藏
  • 关注

转载 springboot Mybatis 多个数据源配置

这个靠谱:https://www.cnblogs.com/Donnnnnn/p/12073424.html

2020-07-10 18:41:33 246

原创 Effect Java

使用静态工厂方法代替构造器 优点: 工厂方法有名称,可以知道对象是用来做什么的。 工厂方法可以空值返回对象方式:单例 or 多实例 or 其他。 可以返回原类型的子类型,使用放无感知,可以直接在工厂方法中切换具体实现。 ...

2020-07-08 22:35:56 553

原创 Spring 下载 Excel 中文名称问题

// 中文名乱码问题处理String filename="中文名文件.xlsx";filename = new String(filename.getBytes("UTF-8"), "iso-8859-1");response.setCharacterEncoding("UTF-8");response.setContentType("application/ms-excel; charset=UTF-8");response.setHeader("Content-Disposition", ".

2020-07-08 19:54:20 365

原创 Linux常用命令一览

文本处理sort example.txt 按字母顺序排序,从小到大sort -u example.txt 移除所有重复行后排序sort -n example.txt 将数字按大小排序,从小到大sort -n -r 倒序排列sort file1 file2 同时排序多个文件sort -t ',' -k2,2 example.txt 按照第二列字符串顺序排序sort -t ',' -k2n,2 example.txt 按照第二列数字顺序排序sort -t ',' -k2nr,2 example

2020-06-21 16:33:46 187

原创 MYSQL索引

前言:索引是存储引擎用于快速找到记录的一种数据结构,索引对于良好的性能非常关键,索引能够轻易将查询性能提高几个数量级。索引的概念和一本书的目录是一样的,想要在一本书中快速的找到特定主题,一般是先看书的目录,然后再去特定的页码,在MYSQL中也是一样的,存储引擎用类似的方法使用索引,先在索引中找到对应值,然后根据匹配的索引记录找到对应的数据行。下面会介绍一些索引相关的知识。一.索引的类型...

2018-12-26 00:14:41 130

原创 Java并发编程实践笔记

1.当某个计算正确性取决于多个线程的交替执行时序时,那么就会发生竞态条件,最常见的竞态条件就是先检查后执行。2.先检查后执行的一种常见情况就是延迟初始化。(单例模式)3.为了线程安全,先检查后执行的这种操作必须要时原子性的,java里面用加锁的方式来保证原子性。4.要保持状态的一致性,就需要在单个原子操作中更新所有相关的状态变量。5.获得内置锁的唯一途径就是进入这个锁保护的同步代码...

2018-12-13 17:25:53 129 2

原创 Java多线程核心技术编程笔记

1.不在synchronized块中的代码就是异步执行,在synchronized中的代码就是同步执行2.当一个线程访问Object的一个synchronized(this)同步代码块时,其他线程对同一个Object中所有其他synchronized(this)同步代码块的访问将被阻塞。3.多个线程调用同一个对象中不同名称的synchronized同步方法或者synchronized(th...

2018-12-13 17:25:29 117

原创 java类加载器简介

在之前的文章中我们说过,在jvm的加载过程的加载阶段中,jvm加载类时只需要获取类的字节码即可,不是一定要从class文件中获取,也可以通过其他方式,比如war包,网络流,动态生成等等,这些获取类字节码的方式代码称为类加载器。对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性,每一个类加载器都拥有一个独立的类名空间。也就是说,比较俩个类相等,不仅要求其类本...

2018-12-13 17:24:49 320

原创 jvm类加载机制简介

我们都知道Java里的class文件在编译后产生class文件,这些class文件是编译后的字节码,jvm可以加载并运行这些字节码,这也是为什么Java会被称作一次编译,多处运行,因为字节码是平台无关的。那么jvm是如何加载这些class文件的? 虚拟机把描述类的数据从class文件中加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的...

2018-12-13 17:24:21 165

原创 JVM创建对象过程简介

引言:        Java程序运行时无时无刻都有对象被创建出来,在语言层面上,创建对象只是通过一个new关键字,那么在JVM上对象是如何被创建出来的?JVM解析到new指令时,会去常量池中(方法区里面)定位该类的符号引用,并且检查该类是否被加载解析和    初始化。如果没有,执行类加载过程。 确认类加载后,jvm会为新生对象分配内存,该对象的内存在类加载完毕后就可以完全确定(文章末尾...

2018-12-13 17:23:26 239

原创 JVM的内存区域简介

引言:        Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都      各自有用途,以及创建和销毁的时间,有的区域随着虚拟机进程的驱动而创建,有的是依赖用户线程的启动而创建。虚拟机的内存区域包括以下几个运行时数据区域:方法区,堆,虚拟机栈,本地方法栈,程序计数器。其中方法区和堆是线程共享的,其余区域是线程隔离的。下面是这些区域的用途以及...

2018-12-13 17:22:48 146 1

原创 Mysql 文件系统简介

前言:本文将介绍Mysql的各种类型的文件。 Mysql数据库有以下几种文件:1.参数文件。2.日志文件。3.套接字文件。4.Pid文件。5.表结构定义文件。6.存储引擎文件。 1.什么是参数文件?在Mysql的运行过程中,有许多规则是可以配置的,如使用哪个引擎,某种内存结构有多大等等?这些规则都记录在了参数文件中,形如Key/Value的格式,可以人为...

2018-12-13 17:22:06 1451

原创 加密算法简介

前言:在很多有数据传输的场合都需要对数据进行加密,目前有很多不同的加密算法,本文记录一些常用的加密算法。加密算法有哪些类别?1.对称加密算法如:DES,3DES,DESX,Blowfish,IDEA,RC4,RC5,RC6,AES2.非对称加密算法如:RSA,ECC,Diffie-hellman,EI Gamal,DSA3.Hash算法如:MD2,MD4,MD5,H...

2018-12-13 17:20:36 359

原创 JWT

前言:以往服务器鉴权的方式大多是使用Session,在初次登陆系统后,用户的信息将会记录在session中,后续再次访问时,页面只需发送session即可,无需再次验证信息。使用session验证的方式会有这样的一个问题:所有的登陆信息都存储在服务端,当访问量特别大的时候服务端的压力会比较大。并且在做单点登录或者分布式服务的时候,涉及如何实现session共享的问题。什么是JWT?...

2018-12-13 17:08:22 231 1

原创 内网zabbix服务器监控公网服务器无法连接问题处理

最近在想使用公司内网的zabbix服务器监控公网上的生产机,服务端和agent都已经装好了,并且互相可以Telnet,但是zabbix页面上的主机管理中一直是连不上的状态:Received empty response from Zabbix Agent at [ip]. Assuming that agent dropped connection because of access perm

2017-09-28 14:02:12 3901

原创 JDK之HashMap中的indexFor(int h, int length)方法

今天看到了HashMap,发现其中有一个方法很奇怪,叫indexFor(int h, int length),这个方法返回的是某个hashcode对应到hash table的下标位置,代码是这么实现的:static int indexFor(int h, int length) { return h & (length-1); }看了半天才搞懂为什么这么写,其实Ha

2017-08-17 22:33:08 1091

原创 JDK之TimeZone

本来是看到Calendar这个类的,但是发现这个类里面很多地方使用的Time Zone这个类,不是很清楚这个类的作用,所以又跑去看了一下TimeZone。顾名思义,Time Zone这个类是用来控制时区的,时区的概念初中的时候就学过,什么美国东八区之类的,由于不同时区的时间不同,所以这个类在java时间相关的类中被大量的使用。先看一下这个类的AP:static String[]getA

2017-08-07 23:30:08 1125

原创 JDK之Arrays类

Arrays类算是一个比较常用的类,之前一直没看过它的API,不知道这个类到底可以做什么,今天把源码翻了一遍,记一下这个类里面有用的方法。一开头是一些排序方法:...public static void sort(int[] a)public static void sort(int[] a, int fromIndex, int toIndex)public static v

2017-08-03 23:11:04 516

原创 ArrayList实现中的SubList

最近在看JDK源码,看到ArrayList.java这个实现的时候,发现里里面有一个SubList子类,这个类里是直接操作父类的元素的,所以会对父类产生影响,可能以后会用错,在这里记下来。源码里面,ArrayList类中又下面这么个方法public ListE> subList(int fromIndex, int toIndex) { subListRangeCheck(fr

2017-08-02 22:32:31 724

原创 centos离线安装nginx

服务器无法访问外网,nginx只能离线装,步骤如下:1.安装gcc,如果没有gcc没有装,去看我的上一篇文章,离线安装gcc。2.安装pcre依赖包:rpm -ivh pcre-7.8-7.el6.x86_64.rpm --force(由于机器上已经有低版本的pcre,所以强制安装)。rpm -ivh pcre-devel-7.8-7.el6.x86_64.rpm。3.安装li

2017-07-18 17:51:08 10437

转载 centos离线安装gcc

离线安装GCC方法 rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm  rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm  rpm -ivh cpp-4.4.7-4.el6.x86_64.rpm  rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm  rpm -ivh gcc-4.4.7-4.el6

2017-07-18 16:37:38 1700

原创 gantt图demo

最近项目中需要画一个比较简单的甘特图,本来准备用echarts画,但是实现起来比较复杂,就找了一个其他的插件。使用到的js叫做jquery.fn.gantt.js,这款插件用的jquery版本有点老,用的是1.0几的版本,所以可能无法适用于一些高版本的框架,需要自行再做修改。demo中我自行修改了一下hours模式下的样式,简单修改了原js中的几处代码,最终看起来的样子是这样的:

2017-06-12 18:00:48 900

原创 mybaits如何批量更新数据库

mybaits中使用对象进行数据库批量更新的sql: update t_table when keyFiled = #{item.keyFiled} then #{item.databaseFiled1}

2017-05-31 13:33:15 625

原创 java如何实现webservice中wsdlLocation访问地址的可配置化

背景:项目中调用了别的系统的webservice接口,调用成功之后发现wsdlLocation的地址是写死的,不方便修改,所以需要实现地址,包括用户名密码的可配置。项目的框架是Spring,调用webservice使用的是CXF。实现可配置步骤:step1:在spring的配置文件中加入如下配置 cl

2017-02-15 14:56:31 25406 2

原创 spring上传下载文件

不使用第三方上传和下载。上传文件:@RequestMapping(value = "/uploadFile", method = RequestMethod.POST) public void uploadFile(HttpServletRequest request) { MultipartHttpServletRequest multipartRequest =

2016-12-11 19:54:41 408

原创 java调用sap的RFC接口

sap目前是世界上最大的也是使用最多的ERP系统,很多大型系统都将自己的业务数据放到了SAP系统来进行管理,那么当别的系统需要这些数据时,就需要从SAP中获取这些数据。SAP中有各种不同类型的接口,RFC,PI等等。下面记录的是java如何调用RFC的接口。网上可以找到很多类似的文章,代码也是以前的老手写的,也比较易懂,这里再记下来主要是为了以后找起来方便。java调用RFC接口需要用到sap

2016-12-04 16:32:28 16278 2

原创 java常用工具方法

有一些常用的方法老是记不住,每次都要去网上找,在这里整合一下,以后就直接在这找了。一:小数的四舍五入String value = new BigDecimal("111231.5555").setScale(2, RoundingMode.HALF_UP).toPlainString();setScale的第一个参数为保留的小数位数,也可以使用doubleValue()等方法

2016-12-03 17:02:09 511

原创 如何创建webservice以及如何调用现有的webservice

由于工作需要使用到webservice,项目框架为spring,webservice框架为CXF。一.如何使用CXF发布一个webservice服务1.首先下载CXF的程序压缩包,作者下载的是apache-cxf-3.1.8,将其中的lib目录下的包拷贝到项目的根目录下,由于作者的项目用的是spring框架,所以要把其中的有关spring的架包删除,要不然会冲突,记得将架包引入到项目中,如

2016-11-10 17:46:44 1287

原创 linux下离线安装tesseract-ocr

tesseract-ocr时一个识别图片中文字字母的引擎,具体介绍可以百度。由于linux位于公司内网无法联网下载安装,所以需要离线安装。由于需要编译源码,所以首先需要安装gcc编译工具,gcc的安装方法请自行百度。tesseract-ocr首先需要下载下面的源码包(按照索引的顺序安装,如果编译时报出缺少某组建,下载安装即可):1.autoconf-2.69.tar.gz2.autom

2016-11-07 18:01:12 2800

原创 javaweb使用POI导出导出excel表格

由于工作的需要,需要用java将数据库中的数据导出为Excel表格,这就用到了Apache的POI组件,该组件让我们能够自定义创建Excel工作薄,然后导出文件即可。1.首先准备好POI的包,使用maven导入或者直接加载jar都可以。我是下载了poi-3.11-20141221.jar,poi-ooxml-3.11-20141221.jar,poi-ooxml-schemas-3.11-

2016-03-01 15:07:32 670

原创 window7配置Qt

步骤如下:1.下载IDE,也就是QtCreator,我下的是这个qt-creator-opensource-windows-x86-3.3.1。2.下载编译器和调试器,windows用的是minGW,我下的是这个版本mingw32-4.8.2。3.下载Qt的资源文件,我下的是qt-opensource-windows-x86-mingw482-4.8.6-rc2。先安装QtCrea

2015-09-04 12:36:48 441

原创 如何判断一个结构体的大小

对于嵌入式系统来说,内存很宝贵,那么在编程的时候就要尽量使自己用的数据结构所用的内存少,而结构体是C编程中经常用到的结构,保证结构体大小尽量的合理是很重要的。下面说一下如何判断一个结构体的大小。首先需要了解总线宽度和自然边界这俩个概念,编译器在分配结构体时根据这俩个因素来计算偏移量和空间占用。总线宽度:总线宽度就是一个处理器访问周期最多可以访问多少位的数据。总线宽度分为BUS16,BU

2015-08-23 10:59:02 3913

原创 C语言中的函数指针

一直觉得函数指针是个很难的东西,其实函数指针和一般的指针一样,挺简单的。一,函数指针的定义函数指针,顾名思义就是指向函数的指针,就是指向函数存储区域起始地址的指针。先看一下它是如何声明的:char* (*pf)(char *,char *);这条语句声明了一个指向函数的指针,这个函数有俩个字符指针的参数,也返回一个字符指针。有时候容易搞错函数指针和一般的函数声明,比如说:cha

2015-08-21 11:27:33 817

原创 我对嵌入式软件的理解

嵌入式软件就是给专门的嵌入式系统设计的软件,和一般的PC软件差别不是很大,主要的区别在嵌入式系统对功耗和内存大小上有严格的限制,所以嵌入式软件一定要精简,高效。一个嵌入式系统一般都包含以下几个部分:cpu,存储器,电源,接口,功能模块电路。而嵌入式软件就是用来驱动硬件工作以达到系统的工作目的。由于嵌入式系统的内存有限,所以软件大部分是由C写的,因为C++,java等语言虽然方便,但是很费内

2015-08-19 11:09:32 5464

原创 图算法之拓扑排序

拓扑排序是对有向无圈图的顶点的一种排序,它使得如果存在一条从vi到vj的路径,那么在排序中Vj出现在Vi后面。一个简单的求拓扑排序的算法是先找出任意一个没有入边的顶点,然后我们显示该顶点,并将它和它的边一起从图中删除。然后为们对图的其余部分应用同样的方法处理。但是这个方法有一点不好,就是每次都要找入度为0的顶点,这种顶点一般很少,如果图很大的话,每次都遍历一遍就浪费很多时间。升级版是先计算每一个顶

2015-08-11 22:30:48 2847

原创 队列的C语言实现

队列不同于栈,它是先进先出,即先入队列的元素提取时也要先出队列。队列可以用数组实现也可以用链表实现,挺简单的,但是很有些情况下很有用。它的实现只要维持好队首和队尾指针就好了。下面是我实现的链表队列。queue.h#ifndef __QUEUE_H#define __QUEUE_H#include #include struct QueueNode;struct queue;

2015-08-11 22:13:58 548

原创 图的基本知识

一:图的定义一个图G=(V,E)由定点集V和边集E组成,每一条边都是一个点对(v,w),其中v,w属于V。如果点对是有序的,那么图就叫做有向的。有向的图有时也叫做有向图。定点v,w邻接当且仅当(v,w)属于E。有时候边还有第三种成分,称为权或值。图的一条路径是一个顶点序列W1,W2,W3~Wn,使得(Wi,Wi+1)属于E,这样一条路径的长是该路径上的边数,它等于N-1.。从一个顶点到它自

2015-08-11 11:34:28 681

原创 散列表的C语言实现-开放定址法

头文件:#ifndef __HASHTABLE_H#define __HASHTABLE_H/*********************(平方)开放定址散列法***************///如果有冲突发生,那么就尝试另外的单元,直到找到空的单元为止typedef unsigned int index;typedef index position;typedef int E

2015-08-09 11:25:07 1937

原创 排序算法的C语言实现-快速排序

快速排序是在实践中最快的已知排序算法,它的平均运行时间是O(NlogN),该算法之所以特别的快,主要是由于非常精炼和高度优化的内部循环。它的最坏情形的性能为N^2.快速排序由下列简单的四步组成:1.如果S中元素个数是0或1,则返回。2.取S中任以元素V,称之为枢纽元3.将S分成俩个不相交的集合,前一个元素都小于V,后一个元素都大于V。4.返回quicksort(S1)后,加上V

2015-08-09 11:14:37 1315

原创 排序算法的C语言实现-归并排序

归并排序以O(NlogN)最坏时间运行,而说使用的比较次数几乎是最优的,它是递归算法的一个很好的实现。这个算法中基本的操作是合并俩个已排序的表,因为这俩个表是已排序的,说以如果将输出放到第三个表中时该算法可以通过对输入数据一趟排序来完成。基本的合并算法是取俩个输入数组A和B,一个输出数组C,以及三个计数器Aptr,Bptr,Cptr,它们的位置于对应数组的开端。A[Aptr]和B[Bptr]中的较

2015-08-09 10:53:55 1729

离线安装nginx所需要的rpm包

离线安装nginx所需要的rpm包

2017-07-18

gantt图插件

ganttdemo

2017-06-12

arm开发常用辅助工具

一些arm开发时候可以用的小工具,开发的时候可以方便一点

2015-06-01

单片机C语言程序设计实训100例基于8051 Proteus仿真

单片机C语言程序设计实训100例基于8051 Proteus仿真,里面包含了100例程序,适合刚接出51单片机的童鞋看。

2015-06-01

java学习课件

java学习课件,很全面了,ppt里面的例子代码都包含了,想学java的同学可以下载下来看一下。

2015-06-01

java写的学生管理系统

上学期学java,自己写了一个学生管理系统练手,没有太大的技术含量,但还是想传上来,毕竟一直从这里找资料也没传过,希望指出写的不好的地方

2015-06-01

空空如也

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

TA关注的人

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