
java
文章平均质量分 67
FD-Do
小菜鸟
展开
-
多线程处理List并将结果合并
1.背景:处理一个数据比较大的list(80w),并获取返回结果。发现时间比较长。打算使用多线程解决。一开始打算使用@Async 异步多线程操作。后面发现在合并操作结果的时候没有思路。查找相关资料以后,使用了Callable和Future解决了问题。2.相关知识点:Callable接口定义了方法public T call() throws Exception。我们可以在Callable实现中声明强类型的返回值(这个符合我们处理函数有返回值的需求),Future 用于获得 Callable .原创 2021-02-21 20:08:15 · 4871 阅读 · 2 评论 -
ThreadPoolTaskExecutor 几个参数的含义
解释1.corePoolSize:核心线程数(同时处理的能力)2.queueCapacity:队列容量3.maxPoolSize:最大线程数;决定了当corePoolSize 以及queueCapacity 满了以后,会在线程中额外创建线程的假如corePoolSize和queueCapacity均为5,而maxPoolSize等于12.那么当线程大于12的时候(也就是corePoolSize,queueCapacity都满且额外创建了7个线程,依旧有线程过来),那么大于12的线程会走拒绝策略原创 2020-08-01 16:34:25 · 5444 阅读 · 0 评论 -
JavaMail 报错 501 Syntax error
错误描述:501Syntaxerror,parametersincommand"HELO¤Ñè_N"unrecognizedormissing错误原因:本机计算机名为中文解决办法:本机计算机名修改为不含中文字原创 2020-07-29 18:56:41 · 1155 阅读 · 0 评论 -
Spring注解的学习(四)——AOP与事务管理
一.AOP功能1.AOP作用在程序运行期间动态的将某段代码切入到指定位置进行运行的编程方式,其实底层就是动态代理2.整个流程 2.1.引入pom 2.2.创建普通逻辑类(要被切入的类) 2.3.创建切面类(@Aspects,@Before,@After...),这里主要是 何时在何方法上做何事 2.4.创建注解类(相当xml),并开启自动代理(...原创 2020-01-11 00:20:37 · 241 阅读 · 0 评论 -
Spring注解的学习(三)——属性赋值与自动装配
一.属性赋值@Value在以前的xml文件中,我们是直接在配置文件中进行属性配置的 在注解方式中,我们是使用@Value进行注解 普通赋值 @Value=(赋值内容) 表达式 #{} @value=(“#{表达式}”) 读取配置文件内容 ${} @Value=(#{配置文件key}) 二.自动装配1.什么是自动装配:Spring利用依赖注入(DI),完成...原创 2020-01-04 18:10:33 · 477 阅读 · 0 评论 -
Spring注解的学习(二)——生命周期
前言:Bean的生命周期主要是:创建——初始化——销毁一.创建对象的创建,主要分为两种情况。1.单实例:在容器启动的时候创建对象2.多实例:在每次获取的时候创建对象这个xml和注解的不同在上一篇文章讲过,这里就不再描述。对于注解方式,是用@Scope二.初始化&&销毁原来我们是在xml对应的bean上加入init-method 和 destroy-me...原创 2019-12-27 19:28:06 · 312 阅读 · 0 评论 -
Spring注解的学习(一)——组件注解
本来还想继续学习SpringBoot的,结果发现SpringBoot 的时候,很多注解都不懂,于是这几次先回头学习一下Spring 的注解相关内容。一.一个大前提 Spring认为所有的组件都应该放在IOC容器中,组件的关系通过容器进行装配(也就是依赖注入)二. 简单的注入一个Bean 对象,使用配置文件和使用注解方法的区别1.原来Bean的注入方式:1.现在xml文件进行写入,...原创 2019-12-21 15:18:55 · 765 阅读 · 0 评论 -
关于MyBatis的小结(第二阶段)
这里主要是承接上一篇文章https://blog.youkuaiyun.com/kunfd/article/details/103214106主要是从下面几个方面进行讲述 1. 是针对于多表查询(1对1,1对多,多对多) 2.查询缓存的理解1.多表查询1.1.一对一映射 a.在实体类上,需要在实体类A中嵌入实体类B b.在配置文件中使用<association>...原创 2019-11-24 00:10:19 · 156 阅读 · 0 评论 -
关于MyBatis的小结(初级阶段)
最近在使用数据库调用的相关代码的时候,虽然会用,但是感觉有些东西老是要忘记,趁着周用空,重新回顾了一下MyBatis相关知识点,这里做一下小结,方便自己回顾 初级阶段,就是关于MyBatis的简单使用。其实一般掌握初级阶段的使用,对于一些普通的项目而言,基本来说就够了。下面将由这几部分切入话题。1.Mybatis的简单介绍 2.相关的配置文件(这里主要讲映射)3.Mapper映...原创 2019-11-23 16:10:01 · 298 阅读 · 0 评论 -
关于Spring中事务注解的注意事项
一. 开发环境SpringMVC+Spring+Mybatis二.注意点1.事务注解只在Service层生效2.在被事务注解的Service类中,尽量不要使用Try...Catch 语句,如要使用必须在catch抛出自定义异常runtimeException三.解释1.为什么事务注解只在Service层生效原因:因为Spring中事务中,事务的管理类bean是在Serv...原创 2019-10-16 08:53:33 · 651 阅读 · 0 评论 -
Spring普通类注入失败&&NoUniqueBeanDefinitionException: expected single matching bean but found 2
一。问题描述1.调用自主平台定时器的时候,注入失败。——被调用的类已经有@Component ,且相关的注入类已经有@Autowired 可是调用以后依旧为空。2.Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'javax.s...原创 2019-08-27 08:47:18 · 865 阅读 · 0 评论 -
Eclipse Maven 错误:Received fatal alert: protocol_version -> [Help 1]
1.错误发生的场景:eclipse 项目运行maven install,报错了2.错误的主要描述:Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4:install (default-install) on project TENDJ:Execution default-install o...原创 2019-03-16 16:22:06 · 4273 阅读 · 1 评论 -
动态修改Properties配置文件,避免每次修改都要重启系统
一.起因 项目需要读取配置文件里面的相关信息,但这相关信息又每隔一段时间会改变。按照正常的逻辑,既然如此那么就将配置文件的信息做成一个表,入库。这样修改起来也方便;但是,如果采用读取数据库的方法,由于公司开发框架的原因,又过于麻烦。但如果使用原来的读取properties配置文件的方法,每次更改配置文件都要重启。。。。。于是脑子里闪过了一个骚操作——能否来波动态修改,就像平时用eclip...原创 2019-03-08 16:52:34 · 18800 阅读 · 0 评论 -
Spring的管理下,Hibernate 保存对象异常只能在Action层被捕获
一、问题描述 由于开发框架调用数据库的连接使用到了Hibernate,在进行save操作的时候,由于某个字段为空导致对象保存失败。我在Action、Service、Dao层均进行了异常的捕获,当时最终只在Action层捕获到了错误,在其他层异常均“逃跑”了Action层try{ testService.save(bo);}catch(Exception){ ...原创 2018-12-06 17:30:16 · 489 阅读 · 1 评论 -
Hibernate三个状态以及SaveOrUpdata的使用
参考:https://blog.youkuaiyun.com/daryl715/article/details/1756325https://www.cnblogs.com/xiaoluo501395377/p/3380270.html一、hibernate有哪三个对象瞬时 (Transient )/临时状态/自由状态:条件:1.不处于 Session 的缓存中,也可以说,不被任何一个 Sess...原创 2018-12-04 15:36:43 · 544 阅读 · 0 评论 -
中文编码
1.编码的基本知识1.1.为何有编码:一开始是为了和计算机进行沟通,出现了英文的ASCII码;后来因为各个国家语言不同,也有自己的一套编码格式,所以出现了ISO8859系列。Unicode等1.2.编码的种类:①ASCII:用一个字节的7位进行表示,只能表示128个字符,不支持中文②ISO8859-1:用一个字节的8位进行表示,可以支持256个字符,不支持中文③GBK...原创 2018-10-06 12:02:52 · 41264 阅读 · 0 评论 -
使用JAXB进行JavaBean对象与XML文件的相互转化
思想:父标签相当于一个对象,子标签相当于对象的属性,然后循环嵌套。JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。Marshaller接口,将Java对象序列化为XML数据。Unmarshaller接口,将XML数据反序列化为Java对象。如果是第一次使用的话,建议先下载代码跑一下看看效果:https://download.youkuaiyun.com/downl...原创 2018-09-24 16:08:07 · 1871 阅读 · 0 评论 -
将xml文件对象转化为Map对象
一、基本思路先将xml文件转化为document对象,并获取到根节点,然后依次遍历二级节点如果二级节点拥有子节点的话:进入递归如果二级节点没有子节点的话:将数据封装在本层Map 中如果二级节点部分拥有子节点,部分没有子节点,那么进行特殊处理。二、具体代码package xmlToPojo;import java.io.File;import java.util.It...原创 2018-09-06 08:27:49 · 3271 阅读 · 0 评论 -
对于127.0.0.1和0.0.0.0的小理解(主要参考其他人)
1.回送地址:127.0.0.1。一般用于测试使用。例如:ping 127.0.0.1 来测试本机TCP/IP是否正常。127.0.0.1对于网站建设者来说是常常用到的。大家常用“ping 127.0.0.1”命令在本机上做回路测试,用来验证本机的TCP/IP协议簇是否被正确安装。但你发现了吗?使用“ping 127.1”这个命令也能得到同样的测试结果,其实“ping 127.1”和“...转载 2018-08-29 11:34:22 · 998 阅读 · 0 评论 -
(转)Eclipse中Debug的使用详解
原文地址:http://blog.jobbole.com/93421/#Eclipse调试介绍Eclipse 的 Debug 介绍与技巧2015/10/25 · 开发 · 2 评论 · debug, Eclipse, java, 调试本文作者: 伯乐在线 - HollisChuang 。未经作者许可,禁止转载!欢迎加入伯乐在线 专栏作者。没有任何程序员能够一气呵成的写出没有任何 ...转载 2018-08-24 18:31:51 · 13120 阅读 · 2 评论 -
通过java读取远程nfs服务器文件
1.什么是NFSNFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。2.NFS适合哪种操作系统NFS是运行在应用层的协议。随着NFS多年的发展和改进,NFS既可以用于局域网也可原创 2017-08-15 17:23:53 · 20394 阅读 · 13 评论 -
Restful Web 个人学习总结(Jersey)
一、对基础概念的理解。1.部分名词的解释① REST: RepresentationalState Transfer 表述性状态转移;针对网络应用的设计和开发方式,是一种软件架构风格,也是主流的三种Web服务交互方案之一。② Restful Web:表述性状态转移是一组架构约束条件和原则,满足这些约束条件和原则的应用程序或设计就是RESTful。③ SOAP:原创 2017-11-30 11:00:47 · 419 阅读 · 0 评论 -
算法入门学习----1.1冒泡排序
一、冒泡排序的原理 一个数组a[]有N个元素: ①第一次循环(n-1) a[0]和a[1]进行比较,如果a[0]大于a[1],两者进行交换,否则不交换。 a[1]和a[2]进行比较,如果a[1]大于a[2],两者进行交换,否则不交换。 ...................... a[n-2]和a[n-1]进行比较,如果a[n-2]大于a[n-1],原创 2018-01-22 00:24:31 · 241 阅读 · 0 评论 -
算法入门学习----1.2选择排序
一、选择排序的原理 一个数组a[]有N个元素: 第一次从第一个数(arr[0])到最后一个数(arr[n-1])根据遍历,找出最小的数,然后和第一个数(arr[0])交换位置(比较n-1次); 第二次从第二个数(arr[1])到最后一个数(arr[n-1])根据遍历,找出最小的数,然后和第二个数(arr[1])交换位置(比较n-2次); 第三次从第三个数(arr原创 2018-01-22 19:54:18 · 177 阅读 · 0 评论 -
算法入门学习----1.3插入排序
一、插入排序的原理 一个数组a[]有N个元素,首先第一个数不动: 第一次:将第二个数从后往前依次和前面一个数(有序数组)进行比较,并插入到合适位置M,然后将原来位置在M(包括M) 到原来数组第一个数 均后移一位(如果需要插入的数原来位置和它所要插入的数字位置相同,那么无须移动数组)(最差情况比较1次)。 第二次:将第三个数从后往前依次和前面两个数(有序数组)进行比较,并插入原创 2018-01-23 12:05:03 · 207 阅读 · 0 评论 -
算法入门学习----2.1归并排序
一、归并排序的原理 对数组采用了“分治思想” 1.1 分:先通过二分法将数组分为一个一个单独的数。 分的算法实现(递归):传入参数为:数组(arr)、指向数组最左边的指针(left)、指向数组最右边的指针(right)、空数组(temp)(长度与原数组一样,用在这里是方便将第一步也归入递归步骤)实现内容:当传入的right>left,说明数原创 2018-01-29 10:54:08 · 279 阅读 · 0 评论 -
算法入门学习----2.2快速排序
一、快速排序的实现原理 与归并排序一样,采用了分治的思想。不过不是先分后治,而是先治后分。 定义两个指针:数组的左指针(left),数组的右指针(right),并用一个数(temp)保存第一个数。 先将右指针往左依次遍历并和temp比较: 如果arr[right]比temp大,那么右指针左移一位。 如果arr[right]比temp小,那么原创 2018-01-29 11:42:36 · 178 阅读 · 0 评论 -
设计模式——1.工厂模式
前言:本篇博客主要是总结一下自己对工厂模式的认识,例子可能不太恰当,uml类图也可能线用错。不过思想还是正确的望各位指出错误一、最简单的工厂模式——简单工厂(静态)模式。 简单工厂模式严格意义上不属于设计模式1.UML类图2.角色分类 2.1 抽象产品角色:是具体产品角色的共同父类,提供了一个标准接口。 e.g: 将计算机专业看成一个抽象产品角色public abstract...原创 2018-02-23 00:18:32 · 193 阅读 · 0 评论 -
编程题3---新娘新郎问题
题目描述: * 有30对夫妻,第一对中新郎编号为0,新娘编号为1;第二对中新郎编号为2,新娘编号为3;..... * 所有人坐成一排,要求每队夫妻坐在一起,但是不要求谁做谁的左边 * 一开始,所有都是乱序的,请问最少经过几次调换座位,能使所有夫妻坐在一起。 * e.g * 乱序为:[0,3,1,2] * 调换思路: 3和1互换 * 调换次数 : 1 * 调换详情: 1<------...原创 2018-03-11 21:39:50 · 1179 阅读 · 0 评论 -
设计模式——2.代理模式
前言: 由于复习mybatis知识点的时候,mapper代理涉及到了代理模式,于是阅读了相关资料以后,小结一下代理模式。1.UML图2.角色分类 2.1 抽象对象:是目标对象和代理对象的抽象父类。 2.2 目标对象:要被代理的对象,实现了抽象对象。比如未成年人 2.3 代理对象:作为中介,接收外界指令,传递给代理对象(生成代理对象)。比如未成年人看护人。3.常见的代理模式 ...原创 2018-02-25 13:54:53 · 272 阅读 · 0 评论 -
JSON入门学习(GSON 的简单介绍)
最近公司开发项目涉及到相关知识点(以前也涉及过,不过没有认真整理),顺便把JSON的入门学习整理一下,主要来源是慕课网的视频总结,如有不足,欢迎大家指出。一、JSON:与开发语言无关的、轻量级的数据格式(javaScript Object Notation)二、用途Web通讯中数据的交换,数据库,序列化三、语法{key1:value1,key2 : value2}四、数据类型:数据类型-Obj...原创 2018-06-29 20:56:04 · 254 阅读 · 0 评论 -
HTTPS加密的简单理解
一、对共钥私钥、数字签名、证书的理解1.公钥私钥(一般用于确保信息的安全性)非对称加密:加密解密用的不是同一个东西。公钥就像是锁,可以对信息进行加密,加密以后再进行传输;私钥就像是钥匙,对被公钥加密的信息进行解密,获取到真正的内容;当然,反过来用私钥加密的信息,也可以用共钥进行解密。2.数字签名(一般用于确保信息不被篡改)①首先根据要发生的信息,通过hash函数,然后通过(...原创 2018-07-17 14:43:08 · 430 阅读 · 0 评论 -
Java中日志的使用(包含指定日志信息输出到指定地方)
一、前言 对于我们开发者而言,日志存在的意义十分重大;本文主要是自己整理了关于日志的一些知识点,希望能帮助到需要的人,也希望各位能指出我的错误。二、日志的作用① 记录运行信息,方便调试② 记录错误信息,方便排查错误③ 存储运行记录,方便后期的数据分析三、日志的主要知识点:三大组件1.Loggers 组件1.1作用:设置日志级别,决定什么日志信息应该被输出、什么日志信息应该被忽略。1.2...原创 2018-07-15 21:02:23 · 8920 阅读 · 1 评论 -
JDK覆盖问题
原文:https://blog.youkuaiyun.com/just_coming_here/article/details/51775909 一次心血来潮,决心研究一下,电脑上面安装3个版本的JDK,于是开始了测试,其实也不能说是安装3个版本的,1.6版本的是公司给的压缩包形式的,1.7和1.8版本的是我自己在电脑上面安装的,首先遇到的问题就是,当1.7安装好以后,(1.7的安装的环境变量配置自行...转载 2018-07-30 13:11:15 · 3374 阅读 · 0 评论 -
(转)FastJson 解决JSON转嵌套Map出现的顺序乱序问题
弄了一天的问题,感谢大神转自:http://inlhx.iteye.com/blog/2312512 最近项目中用到了fastjson(1.2.15)需要将前端多层嵌套json转换为map,由于map的无序性,想了很多办法,最终找到使用 Map m= JSONArray.parseObject(json, LinkedHashMap<String,String>.class)...转载 2018-08-02 16:54:15 · 9972 阅读 · 5 评论 -
Map转Xml
一、前言由于开发需求,需要定制化xml文件。考虑到xml类似map的键值对原理,因此将数据先封装成map,再将map转换为xml。由于xml有顺序而已,因此要保证数据封装成map时是有序的,于是采用了LinkedHashMa 二、思路(递归) 2.1Xml的生成使用Document类 该类有以下几个主要的方法Element rootElement = Doc...原创 2018-08-03 00:20:40 · 8331 阅读 · 0 评论 -
转:解决maven包下载中断,无法自动重新下载问题
如果下面这个方法没法解决,那么更改一下对应maven包的版本,并重新下载,当然前提你得确保你的资源在maven远程库有的(http://mvnrepository.com/),查找到对应的版本库(一些老代码的版本库可能已经失效)http://www.cnblogs.com/huzi007/p/5602063.html...转载 2018-08-20 21:04:05 · 4002 阅读 · 0 评论 -
FTP读取远程文件&解决使用FTPClient类时线程挂起的问题
一、首先介绍FTP的基本知识(会的直接跳过)1.什么是FTP FTP是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。说白了,就是文件传输的规则,方法。与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户...原创 2017-08-09 14:58:12 · 3343 阅读 · 0 评论