@JAVA学习
文章平均质量分 61
g-Jack
硕士毕业于北京交通大学,拥有6年开发工作经验,热爱编程,乐于分享,擅长微服务和中间件。
展开
-
java操作SFTP
引言最近项目中对接了几个将客户,在案件传输的时候都采用SFTP + excel 或者 csv的方式传输,下面分享一下小编在项目中对sftp操作的封装的工具类。同时分享一下在实际中的应用。1、相关包依赖<dependency> <groupId>org.apache.sshd</groupId> <...原创 2019-06-12 21:32:12 · 17228 阅读 · 2 评论 -
redis 安装教程
引言在 上篇博客中已经说明一次,这个安装记录只是记录一下快速安装的过程,没有技术含量。。。1、获取redis# 下载软件包[root@acs soft]# wget http://download.redis.io/releases/redis-4.0.9.tar.gz2、# 解压[root@acs soft]# tar xzf redis-4.0.9.tar.gz3...原创 2019-06-15 17:16:37 · 39285 阅读 · 0 评论 -
项目主备容灾部署图
引言项目在经过客户的poc测试以后,需要进行本地化部署高可用生产环境,这就需要我们更改一些原来的实现方法,并且所有模块都需要进行主备部署,即使在其中某台机器出现硬件故障的时候,也必须保证系统可以正常运行。...原创 2019-06-18 19:16:50 · 1979 阅读 · 1 评论 -
请求参数按照ASCII码从小到大排序后追加秘钥再进行加密得到签名值
引言最近在和银行对接一些就接口,甲方对于我们接口数据要求如下:1、双方需要采用https双向认证方式传输数据2、请求参数采用全报文加密方式3、请求参数按照ASCII码从小到大排序后追加秘钥再进行加密得到签名值本文主要介绍一下签名的生成工具类代码;Step 1:对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)后,使用 URL 键值对的 格式(即 k...原创 2019-09-01 16:51:18 · 146920 阅读 · 0 评论 -
java采用注解方式将JavaBean转换为XML并采用AES全报文加密
引言上一篇博客中介绍了怎么获得签名,在这篇博客中将介绍如何采用注解方式将JavaBean转换为XML并采用AES全报文加密。首先看一下生成的xml报文格式。<?xml version="1.0" encoding="utf-8"?><Message> <Sys_Head> <TRAN_CODE>CMS02CMS658...原创 2019-09-01 17:17:12 · 816 阅读 · 0 评论 -
【ElasticSearch实战】——封装java操作es基础架构
创建ES专栏很久了,但是写的文章非常的少,实在是项目比较忙,2018年最后一天了也该总结一下对es的封装的东西了,这篇博客我们通过java对es批量插入为主流程,来介绍一下java对接es 的全部过程;需求处理流程: 从mysql中插入手机号7位所有的组合,然后通过程序处理补充后四位所有的可能,然后组成一个庞大的手机号码库,然后在讲手机号加密,为其他的应用提供 手机号明密文转换服务;1...原创 2018-12-31 16:06:45 · 176991 阅读 · 1 评论 -
Java IO最详解
初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见。首先看个图:(如果你也是初学者,我相信你看了真个人都不好了,想想java设计者真是煞费苦心啊!) 这是java io 比较基本的一些处理流,除此之外我们还会提到一些比转载 2015-09-02 20:10:31 · 1092 阅读 · 9 评论 -
springMVC总结二
引言 在上一篇博客中给大家总结了一些基本知识点,下面在这篇博客中给大家分享一些springMVC在项目中比较常用的知识点,请看图 原图请请点击我 在上一篇博客中我们给大家展示了一张核心架构图,下面我们根据代码说说核心架构图的流程 架构图对应的DispatcherServlet核心代码如下: //前端控制器分派方法protected voi原创 2017-07-29 20:18:13 · 839 阅读 · 20 评论 -
如何解决Sublime Text 3不能正确显示中文的问题
今天在Windows上使用Sublime Text 3的时候,发现一些txt文本打开以后,中文都是乱码。于是搜了一下,找到了解决方案。步骤:在Sublime Text里,按ctrl+`,打开Console,一次性输入如下代码:import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sub原创 2017-07-19 11:21:01 · 2194 阅读 · 22 评论 -
Lucene学习总结
数据分类结构化数据:有固定类型或者有固定长度的数据例如:数据库中的数据(mysql,oracle等), 元数据(就是windows中的数据)结构化数据搜索方法:数据库中数据通过sql语句可以搜索元数据(windows中的)通过windows提供的搜索栏进行搜索 非结构化数据:没有固定类型和固定长度的数据原创 2017-08-02 20:20:18 · 1058 阅读 · 3 评论 -
Maven简介(三)——profile介绍
4 profile介绍4.1 profile简介profile可以让我们定义一系列的配置信息,然后指定其激活条件。这样我们就可以定义多个profile,然后每个profile对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果。比如说,我们可以通过profile定义在jdk1.5以上使用一套配置信息,在jdk1.5以下使用另外一套配置信息;或者有时候我们转载 2017-08-13 12:13:25 · 1224 阅读 · 3 评论 -
mybatis的缓存总结
package com.atguigu.mybatis.test;import java.io.IOException;import java.io.InputStream;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis原创 2017-08-14 16:36:24 · 1592 阅读 · 4 评论 -
HashMap实现原理分析
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难转载 2017-08-15 00:35:44 · 1133 阅读 · 3 评论 -
手动模拟IOC容器
引言 最近在看一些关于IOC原理的东西,比较理论,所以还是自己动手模拟一个IOC,这样会对原理理解的更加深一些。 首先我们把我们需要用的dao、service、entity定义出来: Student.java public class Student { private int id; private String name; private String a原创 2017-08-22 00:32:30 · 1665 阅读 · 5 评论 -
java反射机制详解 及 Method.invoke解释
Java反射机制JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对转载 2017-08-22 00:35:43 · 1371 阅读 · 6 评论 -
线程池学习总结
引言 最近在看项目中的代码的时候,多次看到线程池的身影,于是小编就简单总结了一些关于线程池的知识。 什么是线程池?为什么要使用它? 线程池主要用来解决线程生命周期开销问题和资源不足问题。通过对多个任务重复使用线程,线程创建的开销就被分摊到了多个任务上了,而且由于在请求到达时线程已经存在,所以消除了线程创建所带来的延迟。这样,就可以立即为请求服务,使用应用程序响应更快。另外,原创 2017-08-27 14:29:35 · 2112 阅读 · 9 评论 -
SpringMVC 使用@ResponseBody返回json 中文乱码
场景 小编在springMVC框架中使用@ResponseBody注解从controller层想ajax返回String类型的参数的时候,发现中文乱码,这确实个尴尬的问题,于是小编跟踪了一下spring的源码,看了看string类型的转换问题,在这个方法中我们可以看到,spring中解析字符串的转换器默认的编码竟然是ISO-8859-1,这就是问题所在了: 既然找原创 2017-07-29 15:12:16 · 1907 阅读 · 21 评论 -
【OA】——DAO层设计
引言 之前总是在使用别人搭建好的架构来实现具体的业务,没有真正的思考架构设计的原因,基于什么样的原因要采用这样的架构,为什么在底层使用了那么多的接口、抽象类等等,现在在搭建OA系统的DAO时候意识到了这方面的原因,下面就来总结一下。 首先来看一下最后的设计类图: 原来我们在设计的时候都知道面向接口编程,所以在DAO层都有一个接口,这样我们就不在需要将da原创 2017-02-16 19:14:22 · 1684 阅读 · 10 评论 -
java生成两种二维码
引言 在这篇博客中关于二维码的基本原理先不做介绍,先介绍我们怎样利用java语言实现二维码的生成,现在二维码在我们生活中已经非常常见了,一言不合就扫码!所以对于我们这帮程序猿来说,需要研究一把这个东西是怎么生成,今天小编就给大家介绍一下,怎样一步一步生成二维码的。 在这给大家介绍两种二维码,也是我们在生活中非常常见的两种,一种就是中间没有LOG原创 2016-12-27 15:27:44 · 8971 阅读 · 31 评论 -
java入门学习总结——【java菜鸟成长记】
引言 经过一周左右的时间学习完了java的入门知识——j2se视频教程,小编也是算是进入java领域的一个小菜鸟了,从很早就知道java这行的水很深,从就业方面来看也大多是java高级工程师,所以java对IT行业的人员来说也算是非常重要的一门编程语言了,但是在复杂的语言只要我们把他的基本知识学习的很好,那么在以后的道路上肯定会走的比较轻松,下面先来宏观原创 2015-09-05 16:15:08 · 1190 阅读 · 13 评论 -
编码 GBK 的不可映射字符——【java菜鸟成长记】
最近在学习一些java的入门知识,当然在学习的时候就少不了敲一些小例子,在敲小 例子的时候都是用txt文本敲的,没有采用成熟的编译器,因为这样更有利于我们对一些基础语法的掌握,也可以见到一些错误,这样更有利于我们的成长。下面就和大家分享一个常见的错误: 首先给出此错误的解决方原创 2015-09-05 10:28:56 · 2164 阅读 · 13 评论 -
ORA-12541TNS无监听程序解决方案——orcal基础
安装Oracle后,用PL/SQLDeveloper连接oracle时出现ORA-12541:TNS:无监听程序的错误,如下图: 发现原来是oracle的监听没有启动,重启监听后就连接成功了,下面跟大家分享一下如何启动oracle的监听。1.打开NetConfiguration Assistant2.选择监听程序配置,下一步3.选择重新配置,下一步原创 2016-05-22 16:34:43 · 69372 阅读 · 39 评论 -
创建第一个Servlet程序
小编现在是心在曹营身在汉啊,因为虽然小编在工作岗位上干的是.net方面的活,但是小编却无时无刻不在思念java啊,学习java不是因为小编在.net方面已经超神了,没有什么挑战性了。如果小编真的是这样的话,我早就直接在曹营吃吃喝喝了,谁还回去啊。只是小编在以后的工作方向上还是比较偏向java方面的。所以小编需要学习点java知识为以后北漂储备点粮食。 虽然小编对servlet的工作原理还不是很清楚,但是这并不影响我们使用哈,这个东西就像我们平时生活中的一些工具一样,像computer原创 2016-06-19 22:23:57 · 3066 阅读 · 21 评论 -
JAVA积累——Filter过滤器
过滤器的介绍 在servlet2.3中就有了过滤器的概念,他能对servlet容器的请求和响应对象进行检查和修改。但是serv过滤本身不会生成请求和响应对象,只是提供过滤功能。 filter起作用的分为两个阶段,在这两个阶段对servlet请求和响应对象进行修改,就是在servlet被调用之前检查request对象,并且修改request header和request原创 2016-07-31 17:22:18 · 2437 阅读 · 15 评论 -
oracle用SQL Plus输入命令为什么只显示2
oracle用SQL Plus输入命令为什么只显示2原创 2016-07-24 20:02:07 · 3174 阅读 · 3 评论 -
MyEclipse 快捷键大全
this article from : http://www.cnblogs.com/strivers/archive/2011/02/06/1949477.htmlMyEclipse 快捷键1(CTRL)-------------------------------------Ctrl+1 快速修复Ctrl+D: 删除当前行 Ctrl+Q 定位到最后编辑的地方 Ctrl转载 2016-08-14 14:38:38 · 642 阅读 · 14 评论 -
JSTL学习记录
原文链接:http://www.blogjava.net/maverick1003/articles/236575.htmlJSTL标签库的使用是为类弥补html表的不足,规范自定义标签的使用而诞生的。在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定义标签的开发难度较大和不利于技术标准化产生了自定义标签库原创 2016-09-06 16:26:57 · 1244 阅读 · 9 评论 -
java生成图片验证码
引言 小编今天身体倍感不适,头疼欲裂,所以没有办法学习比较理论的知识,在这个时候看书看视频都是没有什么效果的,但是这个时候小编喜欢敲代码,因为在敲代码的时候头疼会减轻,正好今天在看书的时候看到了一个生成验证码的例子,不过他生成的简直丑哭了,就一个黑背景和几个白色的数字,但是我们平常遇到的验证码都非常的好看还有一些朦胧的感觉。于是小编就查找了一些资料自己做了个demo。 效果展示原创 2017-01-07 20:53:21 · 8597 阅读 · 11 评论 -
hibernate与mybatis的对比
我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加得心应手。第一方面:开发速度的对比就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉转载 2017-08-27 20:27:29 · 1400 阅读 · 6 评论 -
解决 Mybatis Generator由表字段使用关键字导致的异常方案
引言前几天由于用python拉取第三方接口的数据以后,他们直接返回建表的字段和命令,也就说我们必须按照他们设定的字段名称来使用,他们的命名里面有很多的mysql的关键字,这就说我们写sql的时候,需要注意关键字,但是我们后端用的mybatis Generator,这就导致各种错误,因为之前没有遇到过这种场景,所以晚上查询了很多资料,最后在官网上找到了解决方案,其实很简单。 在conte...原创 2018-10-15 11:28:08 · 5602 阅读 · 1 评论 -
WebSocket实现消息推送
引言最近项目中需要实现消息推送需求,首先想到就是用webscket来实现IM,之前了解过这个东西,但是很久没有用了,所以需要来弄个demo热热身,这样在项目中使用的时候,会更靠谱些。先来看一下最后的效果: 一、Socket简介Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求。Socket的英文原义是“孔”或“插座”,作为UNIX的进...原创 2018-10-26 22:38:35 · 17946 阅读 · 6 评论 -
【JDK8之旅】——Supplier
引言本来计划总结一下java8中的方法引用,但是在使用方法引用的过程中,我们会不断的见到这个内建的函数式接口,首先我们来看一下源码package java.util.function;/** * Represents a supplier of results. * 这是一个提供结果的函数接口. * 特点: * (1)只有返回值 * (2)没有输入参数 * <p&g...原创 2018-10-24 22:34:59 · 10682 阅读 · 6 评论 -
【JDK8之旅】——方法引用
引言在java8中方法引用也是非常重要的一个特性,方法引用可以是我们的代码的可读性更高。一、什么是方法引用方法引用是用来直接访问类或者实例的已经存在的方法或者构造方法。方法引用提供了一种引用而不执行方法的方式,它需要由兼容的函数式接口构成的目标类型上下文。计算时,方法引用会创建函数式接口的一个实例。当Lambda表达式中只是执行一个方法调用时,不用Lambda表达式,直接通过方法引...原创 2018-10-24 23:44:50 · 953 阅读 · 2 评论 -
排查线上tomcat出现cpu100%问题
线上出现tomcat的CPU出现100%,排查及其解决的步骤 1、输入top,查看cpu的占用比率2、通过ps aux | grep PID或ps -ef |grep PID命令,定位具体的进程主体,如是否是tomcat启动的java进程出现了问题。3、用ps -mp PID -o THREAD,tid,time命令打印出该进程下的线程占用cpu情况4、用printf “%x\n” ...转载 2018-11-19 14:56:29 · 2350 阅读 · 1 评论 -
缓存三大问题及解决方案
1. 缓存来由随着互联网系统发展的逐步完善,提高系统的qps,目前的绝大部分系统都增加了缓存机制从而避免请求过多的直接与数据库操作从而造成系统瓶颈,极大的提升了用户体验和系统稳定性。2. 缓存问题虽然使用缓存给系统带来了一定的质的提升,但同时也带来了一些需要注意的问题。2.1 缓存穿透缓存穿透是指查询一个一定不存在的数据,因为缓存中也无该数据的信息,则会直接去数据库层进行查询,...原创 2018-11-19 16:09:12 · 1031 阅读 · 2 评论 -
Could not connect to SMTP host: smtp.***.com, port: 465, response: -1
引言在前面博客中写了关于java发送邮件的博客,但是当项目部署到linux 服务器上的时候,发送遇到了错误,如下:Could not connect to SMTP host: smtp.***.com, port: 465, response: -1原因是465端口是为SMTPS(SMTP-over-SSL)协议服务开放的,这是SMTP协议基于SSL安全协议之上的一种变种协议。...原创 2019-01-04 10:41:20 · 30013 阅读 · 6 评论 -
同样的sql,mysql 每次查询结果顺序不一致
最近在项目遇到了一个问题就是,一个列表中排序的字段比较多,并且有个导出功能,因为导出的 内容给别字段和列表中不一致啊,并且要求全部 导出,没有分页,所以我没有和列表公用一个数据源方法,在测试的时候发现了一个bug,就是我导出的内容和列表中的内容的顺序不一样,这让我很意外,然后我多次测试以后发现,我在列表中调整分页大小的时候也会影响排序效果,这就比较尴尬了。开始我想怎么分页大小还影响排序效果了呢...原创 2018-12-31 13:05:06 · 15047 阅读 · 3 评论 -
java导出excel合并单元格
今天是2018最后一天了,废话就不多说了直接上干货吧!1、java导出excel用到POI所有jar包 ,大家可以直接到下面地址下载点击打开链接2、导出excel的方法package org;import java.io.FileOutputStream;import java.util.List;import org.apache.poi.hssf.usermodel.HSS...原创 2018-12-31 13:17:32 · 3093 阅读 · 2 评论 -
【ElasticSearch实战】——ES在项目中应用方案设计
引言随着业务系统数据量不断的增大,对于很多的列表查询和排序是非常慢的,同时还包括一些统计功能,为了解决以上问题,我们在原有的架构上面引入了ES来解决这个问题,得到了很好的效果。 1、设计流程图从上面可以看出,我们把搜索做成了一个单独的服务,然后通过dubbo和业务业务系统相关联,其中我们用redis充当了我们的缓存队列,用定时任务定时更新。小结当然一种新的技术引进的时候,也可能会带来新的问题,这种...原创 2018-07-10 19:58:27 · 180730 阅读 · 6 评论 -
【freeSwitch】——centos 7 安装教程及常见问题
引言 最近公司需要在系统中集成软电话的功能,之前我们是直接购买的蚂蚁电话,在使用了一段时间以后,会有一些问题,比如说稳定性,还有就是一些和我们自己业务相关的需要定制的功能都不能满足,所以我们需要自己搭建软电话平台,在前期调研以后我们选定freeswitch来完成,关于freeswitch的基本介绍大家自行goole就可以了,在这介绍安装过程。 1、下载源代码 进入目录 cd /us...原创 2018-05-12 10:24:39 · 11291 阅读 · 5 评论