Java
文章平均质量分 96
Java系列
一朵风中摇曳的水仙花
世人多愿锦上添花,却少有人雪中送炭
展开
-
Java消息队列--JMS概述
1、什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持(百度百科给出的概述)。我们可以简单的理解:两个应用程序之间需要进行通信,我们使...转载 2018-10-12 18:11:25 · 110 阅读 · 0 评论 -
监听器(Listener)(2)
一、监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器。 这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRe...转载 2018-10-12 10:48:54 · 112 阅读 · 0 评论 -
监听器(Listener)(1)
一、监听器介绍1.1、监听器的概念 监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行。1.2、监听器案例——监听window窗口的事件监听器...转载 2018-10-12 11:20:51 · 217 阅读 · 0 评论 -
jxab xml中nillable和minOccurs的区别
nillable="true"为true 时,该属性允许属性出现在 XML 实例文档的符合元素中。 如果某个元素是使用 nillable="false" 声明的或者没有 nillable 属性,则无论 nil 属性的值是什么,该属性出现在对应的实例元素中都是无效的。 minOccurs="0" 在null的时候,字段就不出现在xml中了 nillable="true" 在null的时候,...转载 2018-10-10 18:22:37 · 1396 阅读 · 0 评论 -
JAXB应用实例
博文目录 一 JavaBean和XML相互转换初体验 二 JAXB使用基础介绍 三 应用实际 四 问题补充 正文 过往的项目中数据存储都离不开数据库,不过最近做的一个项目的某些数据(比如人员信息、菜单、权限等等)却完全没有涉及任何数据库操作,直接XML搞定。这里无意比较优劣,因为数据库存储和XML存储本就有不同的适用场景,盲目比较毫无意义,只是因为业务需要,仅此而已...转载 2018-10-10 18:15:22 · 276 阅读 · 0 评论 -
折线图的制作(java)
1.使用JFreeChart图表制作框架2.设置数据集DefaultCategoryDataset dateset = new DefaultCategoryDataset();dateset.setValue(6, "a", "1");dateset.setValue(7, "a", "2");dateset.setValue(3, "a", "3");dateset.setValue(转载 2018-06-25 15:39:25 · 1908 阅读 · 0 评论 -
跨站请求伪造 【安全方面】
一级类: 跨站脚本二级类:跨站请求伪造数量: 126详细信息: 跨站请求伪造(CSRF)是伪造客户端请求的一种攻击。应用程序允许用户提交不包含任何保密信息的请求,将可能导致CSRF攻击。 例如:以下代码片段用于银行转账功能,对于该重要敏感的操作没有进行相应防护,将易于导致跨站请求伪造攻击。 <form method="GET" action="/transferFunds ...原创 2018-06-21 19:44:02 · 331 阅读 · 0 评论 -
泛化的抛出异常【避免】
一级类: 异常处理二级类:泛化的抛出异常数量: 9详细信息: 程序抛出一个泛化的异常,使调用者很难处理和修复发生的异常。 例如:下面代码片段中,程序抛出了一个Exception异常。 public void doExchange() throws Exception { ... } 这使调用者很难理解和处理程序所发生的异常。修复建议: 不应泛化的抛...原创 2018-06-21 19:47:19 · 835 阅读 · 0 评论 -
泛化的捕获异常【注意避免】
一级类: 异常处理二级类:泛化的捕获异常数量: 125详细信息: 使用一个catch块捕获高级别的异常类(如Exception),可能会混淆那些需要特殊处理的异常,或是捕获了不应在程序中这一点捕获的异常。捕获范围过大的异常与“Java的异常处理机制”是相违背的。 例如:下面的代码片段中,程序泛化的捕获了一个Exception异常。 try { doExchange(...原创 2018-06-21 19:46:18 · 997 阅读 · 0 评论 -
Java 程序员必备的 15 个框架,前 3 个地位无可动摇!
Java 程序员方向太多,且不说移动开发、大数据、区块链、人工智能这些,大部分 Java 程序员都是 Java Web/后端开发。那作为一名 Java Web 开发程序员必须需要熟悉哪些框架呢?今天,栈长我给大家列举了一些通用的、必须掌握的框架,学会这些,20K+ 不是问题。1.Spring毫无疑问,Spring 框架现在是 Java 后端框架家族里面最强大的一个,其拥有 IOC...转载 2018-11-23 16:04:52 · 189 阅读 · 0 评论 -
Java集合之LinkedHashMap
一、初识LinkedHashMap上篇文章讲了HashMap。HashMap是一种非常常见、非常有用的集合,但在多线程情况下使用不当会有线程安全问题。大多数情况下,只要不涉及线程安全问题,Map基本都可以使用HashMap,不过HashMap有一个问题,就是迭代HashMap的顺序并不是HashMap放置的顺序,也就是无序。HashMap的这一缺点往往会带来困扰,因为有些场景,我们期待一个...转载 2019-01-29 10:57:18 · 251 阅读 · 0 评论 -
java 中数组array 列表list 集合set 之间相互转换
public static Object[] List2Array(List<Object> oList) { Object[] oArray = oList.toArray(new Object[] {}); // TODO 需要在用到的时候另外写方法,不支持泛型的Array. return oArray; ...转载 2018-11-04 14:06:41 · 238 阅读 · 0 评论 -
javaweb——事务
一、事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。 例如:A——B转帐,对应于如下两条sql语句 update from account set money=money+100 where name='B'; update from account set money=money-100 where name='A';...转载 2018-11-23 16:28:23 · 159 阅读 · 0 评论 -
将jar包打入maven库中的命令
(1) 首先选中项目右击,export,然后选中源文件,填上保存路径即可得到jar包。 (2)为方便起见,可以先将jar包放入d盘根目录下Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。C:\Users\lenovo>mvn -v Apache Maven 3.0.4 (r1232337;转载 2017-09-17 21:45:49 · 625 阅读 · 0 评论 -
HASHMAP总结
基本结构:链表结构:static class HashMapEntry<K, V> implements Entry<K, V> { final K key; V value; final int hash; HashMapEntry<K, V> next; .....转载 2018-11-23 15:26:21 · 273 阅读 · 0 评论 -
BOM (隐藏字符)
BOM(Byte Order Mark),字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码。BOM采用UTF-8编码。几乎所有的文本编辑软件都可以显示并编辑UTF-8编码的文件。但是很遗憾,其中很多软件的表现并不理想。如果您在修改任何PHP文件后发生:* 不能登入或者不能登出;* 页顶出现一条空白;* 页顶出现错误警告;* 其它不正...转载 2019-07-23 09:57:30 · 710 阅读 · 0 评论 -
几种常用 JSON 库性能比较
本篇通过JMH来测试一下Java中几种常见的JSON解析库的性能。每次都在网上看到别人说什么某某库性能是如何如何的好,碾压其他的库。但是百闻不如一见,只有自己亲手测试过的才是最值得相信的。JSON不管是在Web开发还是服务器开发中是相当常见的数据传输格式,一般情况我们对于JSON解析构造的性能并不需要过于关心,除非是在性能要求比较高的系统。目前对于Java开源的JSON类库有很...转载 2019-08-20 09:29:21 · 174 阅读 · 0 评论 -
Java中fastjson库将Map、JSON、String相互转换
fastjson是阿里巴巴团队开发的一款JSON库,首先我们下载对应的版本:[fastjson](http://mvnrepository.com/artifact/com.alibaba/fastjson)将下载到的jar包放入环境变量中,接下来介绍几种常见的用法:1.Map转JSON Map<String, Object> map = new HashMa...转载 2019-08-29 10:48:21 · 387 阅读 · 0 评论 -
fastJson解析空指针异常与防范VS从Map、JSONObject取不存在键值对时的异常情况
0x01 问题描述正常情况下fastJson解析失败会抛异常,但解析字符串数据为null、”“、“ ”这些情况下,fastJson返回null对象而不会抛异常,这样在调用对象时就导致了空指针异常的问题。0x02 解决方案对此,不亦对其进行了一个简单的封装,在上述情况解析出null对象时直接抛异常。0x03 代码import com.alibaba.fastjson.JSON;...原创 2020-04-07 16:20:02 · 3460 阅读 · 0 评论 -
常见用户行为分析模型解析
行为分析常用名词维度 维度描述的是一个事物身上所具备的特征或属性 指标 指标,即具体的数值。比如访客、页面浏览量、停留时长都属于常见的指标 展示和点击 展示,指页面上元素的曝光次数。点击,指页面元素被用户点击的次数 访客 英文为 Visitor,通俗解释为访问网站或 App 的人。前面加上 Unique 后,即我们平常说的 UV,唯一身份访客。 对于数据统计工具而言,一般用匿名 ID 来标记访问者,网页端产品是 Cookie(网站服务器投放在用户浏览器上的一小段文本),App 端产品是设转载 2020-07-23 12:16:57 · 987 阅读 · 0 评论 -
基于Apache POI导出(百万级)大数据量Excel的实现
最近在做一个数据导出的功能,因为数据量比较大,所以需要考虑OOM的问题,再一个就是因为导出是一个常用功能,想将其做成组件化。所以查询了一些资料,写了一些小demo。最后完成了这个需求。一、查资料目标支持单个 excel 的 sheet 导出100w 的数据Apache POI操作Excel对象1.HSSF:操作Excel 2007之前版本(.xls)格式,生成的EXCEL不经过压...原创 2020-04-23 15:14:13 · 3322 阅读 · 1 评论 -
IDEA中如何设置JUnit进行单元测试
打开IntelliJIDEA工具,Alt+Ctrl+S,打开设置窗口,点击进入Plugins.从插件资源库中搜索JunitGeneratorV2.0版本安装此插件,重启IDEA就可以了。现在可通过此工具自动完成test类的生成了,在需要进行单元测试的类中Alt+Insert,IntelliJ IDEA JUnit Generator自动创建测试用例到指定test目录...转载 2020-04-07 12:08:41 · 3004 阅读 · 0 评论 -
初识Lombok
【官网】https://github.com/rzwitserloot/lombok【使用篇】【注意事项】在使用Lombok时,你的编辑器可能会报错,这时请在你的IDE中安装Lombok插件(如果使用的Idea则直接搜索Lombok插件,选择星级最高的,直接安装就是,其他Ide类同)【Maven依赖】<!-- https://mvnrepository.com...转载 2020-04-23 15:20:32 · 156 阅读 · 0 评论 -
@RunWith和@ContextConfiguration的作用
@RunWith就是一个运行器@RunWith(JUnit4.class)就是指用JUnit4来运行@RunWith(SpringJUnit4ClassRunner.class),让测试运行于Spring测试环境@RunWith(Suite.class)的话就是一套测试集合, @ContextConfiguration Spring整合JUnit4测试时,使用注解引入多个配置文...转载 2019-01-23 15:59:43 · 989 阅读 · 1 评论 -
Spring @Value("#{}")和@Value("${}")
一.@Value("#{}")其实是SpEL表达式的值,可以表示常量的值,或者获取bean中的属性@RestController@RequestMapping("/login")@Componentpublic class LoginController { @Value("#{1}") private int number; //获取数字 1...原创 2019-08-30 09:29:23 · 505 阅读 · 0 评论 -
FastJson中@JSONField注解使用
最近做项目中,使用了json格式在服务器之间进行数据传输。但是发现json格式数据不符合JAVA中的变量定义规则,并且难以理解,因此需要在后台中做二次处理,将数据处理成我们系统中定义的格式。思路: 1. 定义需要返回的bean,bean中定义需要返回的数据 2. 获取到需要处理的JSON字符串 3. 将JSON字符串转换为bean, 再将转换后的bean返回给客户...转载 2018-10-19 17:36:34 · 229 阅读 · 0 评论 -
数据库数据导出成为excel的工具类
package com.smp.poi.utils;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.lang.reflect.Field;import java.lang.reflect.Method;import ...原创 2018-05-04 20:06:22 · 534 阅读 · 0 评论 -
java 代码--优化(一)
一、类和对象使用技巧1、尽量少用new生成新对象 用new创建类的实例时,构造雨数链中所有构造函数都会被自动调用,操作速度较慢。在某些时候可复用现有对象。比如在进行大量St rillg操作时,可用StringBuffer娄代替String类,以避免生成大量的对象。用 new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用。但如果一个对象实现了 Cloneable 接口,...原创 2018-05-18 21:27:20 · 206 阅读 · 0 评论 -
java8 stream流操作的flatMap(流的扁平化)
flatMap的用法和含义住要通过一个案例来讲解,案例:对给定单词列表 ["Hello","World"],你想返回列表["H","e","l","o","W","r","d"]第一种方式String[] words = new String[]{"Hello","World"};List<String[]> a = Arrays.stream(words).map(word -> word.split("")).distinct().collect(toL转载 2020-12-11 15:33:04 · 1577 阅读 · 0 评论 -
利用java实现发送邮件
电子邮件的应用非常广泛,常见的如在某网站注册了一个账户,自动发送一封激活邮件,通过邮件找回密码,自动批量发送活动信息等。很显然这些应用不可能和我们自己平时发邮件一样,先打开浏览器,登录邮箱,创建邮件再发送。本文将简单介绍如何通过 Java 代码来创建电子邮件,并连接邮件服务器发送邮件。电子邮件协议电子邮件在网络中传输和网页一样需要遵从特定的协议,常用的电子邮件协议包括 SMTP,POP3,IMAP。其中邮件的创建和发送只需要用到 SMTP协议,所以本文也只会涉及到SMTP协议。SMTP 是 Simple转载 2020-12-11 15:25:32 · 558 阅读 · 0 评论 -
BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)
一、简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDec...转载 2020-11-10 15:44:39 · 3490 阅读 · 0 评论 -
判断两个Integer是否相等,使用==会产生的问题分析
Integer a = 128; Integer b = 128; System.out.print(a==b); //false Integer c = 127; Integer d = 127; System.out.print(c==d); //true==对于非基本类型来说,是判断两个引用是否指向同一个对象,或者说指向的地址是不是同一个地址。那为什么数字是128的时候返回false,而数字是...转载 2020-09-02 10:47:27 · 1680 阅读 · 0 评论 -
Java实现异步调用
一、创建线程 @Testpublic void test0() throws Exception { System.out.println("main函数开始执行"); Thread thread=new Thread(new Runnable() { @Override public void run() { System.out.println("===task start==="); try { Thread.sleep(5000原创 2020-07-21 15:31:32 · 739 阅读 · 0 评论 -
深入理解String, StringBuffer, StringBuilder的区别(基于JDK1.8)
String、StringBuffer、StringBuilder都是JAVA中常用的字符串操作类,对于他们的区别大家也都能耳熟能详,但底层到底是怎样实现的呢?今天就再深入分析下这三种字符串操作的区别、各自的原理及使用场景。一、String先来看一下JDK中String中的部分源码:public final class String implements java.io.Serializable, Comparable<String>, CharSequen...转载 2020-07-21 11:19:25 · 198 阅读 · 0 评论 -
@Transactional注解中事务的传播行为总结
@Transactional注解中事务的传播行为总结在事务的注解@Transactional中的propagation字段定义了事务的传播行为当事务方法被另一个事务方法调用时,必须指定事务应该如何传播。例如:方法可能继续在现有事务中运行,也可能开启一个新事务,并在自己的事务中运行。事务的传播行为可以由传播属性指定。Spring定义了7种类传播行为。@Transactional public void mulTx() {//这个事务嵌套了两个小事务 ...转载 2020-07-21 10:43:08 · 1068 阅读 · 0 评论 -
Restful的理解,Restful 优缺点
先看看什么叫restful:REST的名称"表现层状态转化"中,省略了主语。"表现层"其实指的是"资源"(Resources)的"表现层"。所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。你可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或独一无二的识别符。客户端用到的手段,只能是HTTP协议。具体来说,就是.转载 2020-07-19 16:07:48 · 4515 阅读 · 0 评论 -
全网最全程序员效率工具及小技巧
命令行CMD秒进指定目录效率低的操作win+r,输入cmd,然后跳到指定目录骚操作文件夹地址栏输入cmd,弹出cmd窗口,同时进入指定目录SSH和SCP命令ssh:从一台机器登陆到另一台机器scp:将文件从一台机器传输到另一台机器ssh命令虽然可以通过密码登陆,但还是比较麻烦,建议配置公钥访问。先看自己之前是否已经生成了公钥文件,如果没有需要手动生成windows:在windows下查看【c盘->用户->自己的用户名->.ssh】下是否转载 2020-07-05 09:59:32 · 236 阅读 · 0 评论 -
谷歌代码健康指南
要点: 1.谷歌对待代码的态度 2.什么是易理解的代码 3.好的接口设计很难被误用 4.不要痴迷于原始类型1谷歌对待代码的态度良好的编码实践包含许多方面,但并不是任何代码问题都能由检查工具发现。我们关心软件工程过程与实践。无论软件是如何编写的,都可能影响代码的可读性、可维护性、稳定性和简单性。我们将上面提到的这些方面定义为“代码健康”。你如何确保工程师遵循这些实践,同时仍然允许他们独立做出合理的工程决策呢?我们所做的工作是致力于改善工程师的...转载 2020-07-05 09:59:53 · 264 阅读 · 0 评论 -
java转义字符之换行字符
我们知道,java代码中,\r和\n和\r\n都表示换行,当我们想输出“\n”时,如果直接写System.println(“\n”);是看不到任何东西的,因为其自动被转义为换行了。这时,我们就需要使用转义字符了。这里先给出转义字符:使用示例:输出结果为:注:\r是回车符;\n是换行符。注:写程序时,代码里面的换行,我们一般都使用'\n'表示换行。如:注:对于文件里的换行(行与行之间,末尾其实是有符号来识别换行的,只是转义换行了,没显示出来),Windows系..转载 2020-07-06 09:07:27 · 5811 阅读 · 0 评论 -
Multipartfile与File类型相互转换
特殊情况下需要做转换1、M转FFilefile=newFile(path);FileUtils.copyInputStreamToFile(multipartFile.getInputStream(),file);2、F转MFile file = new File("src/test/resources/input.txt");FileInputStream input = new FileInputStream(file);MultipartFil...原创 2020-07-04 16:06:13 · 2544 阅读 · 0 评论