
Java学习
王啸tr1912
Java mysql 嵌入式
展开
-
【java】使用注解加ASPECT实现拦截方法打印方法日志
为了熟悉AOP中的ASPECTJ的使用,为了方便我们在写数据搬运型代码时候观测的方便,自己学习并定义了一组切面方法和注解,来实现这个功能,啥都不说了,先上代码:首先是注解定义:import java.lang.annotation.*;/** * @author wangxiao * @date 2020-05-26 10:38 */@Retention(RetentionPolicy.RUNTIME)@Target({ ElementType.METHOD })@...原创 2020-06-01 22:58:29 · 2238 阅读 · 0 评论 -
【java】使用Lambda表达式
在需求中,有这么一段,是从获得的设备列表(json类型)中获得特定条件的设备,例如未损坏,未使用中的设备等等,由于是一个非构造型的集合,所以就联想到了当时用C#的时候在下面用lambda表达式查询集合中需要的值的方法了,正好在java8的时候引入了这个特性,索性可以尝试一下,但是因为用的json对象,想要获得对应字段的值非常不好转换,所以作罢,然后用刀了一个吧json转换为pojo...原创 2018-04-08 22:25:42 · 634 阅读 · 16 评论 -
【异常】碰到的两个连续出现的异常
背景 在测试环境的系统,一个功能突然无法使用了,于是开始翻找日志,加上做实时的测试,在日志中发现了如下的错误:Invalid use of BasicClientConnManager: connection still allocated 然后下面的信息略过,在网上查了查,发现是http连接出现的问题,多发生于rest调用还有httpclient接收请求时候的连接没有释放...原创 2018-04-21 16:21:01 · 648 阅读 · 17 评论 -
【java】支付宝实现退款功能
最近完成的差不多的项目突然需要加退款的流程需求了,所以来小小的实现以下。其实对比其他的支付和退款来说,支付宝算是特别专业,也是特别简单的一个了,所以,先拿他来开刀了。一、引入支付宝SDK 在这里说一下,其实每种支付都会有一个官方带的SDK,我们可以把这个sdk引入到我们的项目中去,然后我们就可以调用里面的方法和对象,给里面传值,进行我们相应的请求的访问和介入。 ...原创 2018-05-06 22:58:48 · 14456 阅读 · 26 评论 -
【java】项目读取APK文件和IPA文件的版本信息
在公司项目中,在做版本管理的时候,遇到了需要识别被管理的APK(安卓应用包)和IPA(苹果应用包)的情况,需要在上传的时候识别并导入包的一些信息到数据库中,并作出管理。 一、如何识别信息 在我开始研究这个的解决方法的时候,同事告诉我,网上有现成的工具类,可以直接读取各种安装包的信息。于是上网搜索了一下,果然解决方案很多,先不说优劣,从解决的思路上来,可以发现,他们的解...原创 2018-04-29 20:04:45 · 3216 阅读 · 21 评论 -
【java基础】基本数据类型
上图: 以上的就是java带的,非对象类型的,数字类型,其中也有很多是有对应的对象型的类型的,比如String就是char的对象型的类型,里面包函了很对对象的操作等等。 Java还提供了三个特殊的浮点数值:正无穷大、负无穷大和非数,用于表示溢出和出错。例如,使用一个正数除以0将得到正无穷大,使用一个负数除以0将得到负无穷大,0.0除以0.0或对一个负数开方将得到一个非数...原创 2018-05-20 23:11:55 · 447 阅读 · 19 评论 -
【PageHelper】实现拦截pageNum和pageSize
我们在使用pageHelper的时候,总是需要往后端传pageNum和pageSize,以便我们在后面做分页处理,但是我们在controller中也需要在方法参数中接收并带到我们的数据查询层,中间基本对于这两个变量没有任何操作,这样做是在的很麻烦。今天我们写一个拦截,让这两个变量可以直接从请求中直接到我们的查询层,跳过从controller层到service层的艰辛。一、构造基本类...原创 2018-05-31 16:38:53 · 19460 阅读 · 62 评论 -
java.util.ConcurrentModificationException
有这么一段代码:for (QuestionMainModel questionMainModel : questionMainModels) { if (detailEntity.getQuestionMainId().equals(questionMainModel.getId())) { questionMainModel.setScore(getItemScor...原创 2018-06-29 23:12:45 · 239 阅读 · 5 评论 -
YAML常用语法
前几天,小编学习了springboot和springcloud中的一些配,其中有很多的博客和书籍都使用的yml文件来作为项目配置文件编写的,小编在github上创建的博客,hexo框架也是用yml编写的,所以小编觉得很有必要学习和总结一下yaml类型文件的格式和写法,所以出此文。一、基本语法 yaml类型的文件,都是以k-v形式存在的,并且使用换行和空格来表示键值和属...原创 2018-07-15 20:34:57 · 2342 阅读 · 2 评论 -
【java】初识注解
注解这个东西,只要是一个java的开放人员都不会陌生,但是我们用了那么多的注解,我们的注解是怎样为我们工作的呢?通过前段时间的学习,我对注解有了一点新的理解。 一、什么是注解 注解在我们通俗的看来,就是一个对于Annotation接口的一个实现,他和类还有接口是处于同一个声明和使用级别的,都继承了Object基类,并且都有.class属性。 ...原创 2018-07-22 21:38:33 · 249 阅读 · 6 评论 -
【Java】内存问题——内存泄漏
分类常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。 偶发性内存泄漏。发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。常发性和偶发性是相对的。对于特定的环境,偶发性的也许就变成了常发性的。所以测试环境和测试方法对检测内存泄漏至关重要。 一次性内存泄漏。发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块仅且一块内存发生...原创 2018-08-30 21:03:28 · 487 阅读 · 3 评论 -
【Java】内存问题——内存溢出
模拟内存溢出 我们通过自己写代码,模拟一下两种内存溢出的情况,一种是堆内存溢出,一种是栈内存溢出。堆内存溢出代码:public class Heap{ public static void main(String[] args) { ArrayList list=new ArrayList(); while(true...原创 2018-08-31 20:42:16 · 1195 阅读 · 1 评论 -
【java】生成二维码的util
这两天接到了一个生成二维码的需求,和大家分享一下用工具生成二维码的快感:1、首先我们需要在maven中引入依赖:<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0&...原创 2019-01-20 22:06:57 · 979 阅读 · 2 评论 -
【SpringBoot】web加载地址默认跳转设置
我们在设置完springboot项目之后,需要让他默认跳转一个地址,需要怎么做呢?答案很是简单,可以通过springboot-web的configuration配置,把默认的'/' 路径的路由,转换为你想要指定的controller的view跳转地址就行了。 首先我们需要先构造一个主页的controller访问方法:@RequestMapping("/ind...原创 2019-03-19 22:21:38 · 4263 阅读 · 2 评论 -
【SpringBoot】给redis配置String序列化器,防止key变为二进制
我们在springboot中使用redis的时候,如果使用了springboot自带的redis管理,没有进行特殊配置的话,会出现一种情况,就是我们set到redis中的值,所有的key值我们获取到的,或者通过工具看到的,都是一堆乱码,根本无法识别,其原因,是因为,springboot默认给redis使用了java自带的jdk序列化器(JdkSerializationRedisSerializ...原创 2019-03-19 22:37:42 · 4444 阅读 · 6 评论 -
【java】List分割工具
我们在使用mybatis批量插入数据库的时候,在数据量过大的时候,肯定碰到过一个错误,详见另外一个老兄的博客https://blog.youkuaiyun.com/qq_36773257/article/details/79895819 在mybatis中使用foreach拼接sql语句,很常见了,在这里就不多提了,如果遇到了这种错误,要怎么办呢?一种解决方案就是提高数据库设置的sql语...原创 2019-04-16 14:14:18 · 2752 阅读 · 2 评论 -
【java】从Map中模糊匹配key值
如果我们想要从一个map集合中,模糊筛选出我们想要的key的集合应该如何处理呢?下面一个小例子解决此问题,但是性能上有待提高:核心代码:/** * 从map中查询想要的map项,根据key */public static Map<String, Object> parseMapForFilter(Map<String, Object> map,String ...原创 2019-05-10 16:55:21 · 22214 阅读 · 2 评论 -
【java】对list集合进行去重 传统方式 VS Lambda
说道集合的去重,我们就肯定能想到唯一元素集合set,还有map中的key。那么我们传统的去重的方式肯定是要选择set或者是map来实现了,另外在对实体对象类型进行去重的时候,我们可能会指定实体中的一个字段,这种情况也是属于多数的,那么我们要怎么实现呢?一、传统map实现 首先我们来看map实现,由于list内对象是不固定的,所以我这里写了一个通用的,按照id去...原创 2019-08-05 17:45:10 · 2233 阅读 · 3 评论 -
【java】使用BigDecimal计算时候注意事项
一般数据在用BigDecimal自带的运算方式时候是不会出现问题的,但是碰到了无限小数的时候,这个类直接运算方式就会出现一些取不到位或者溢出的错误。错误1:Non-terminating decimal expansion; no exact representable decimal result 这个错误翻译过来大概是:十进制小数点膨胀,没有确切的表示的十进制结果...原创 2018-03-31 17:47:50 · 2048 阅读 · 13 评论 -
【java】为什么要使用BigDecimal类型进行高精度运算
在公司,每次进行记账,或者算钱的时候,都会调用一个统一处理的类,名字叫ArithUntil,查了一下Arith就是数学、运算的意思,那么,为什么不直接用+ - * / 来进行对于数字类型数据的运算呢?(Ps.存储数据的时候有的用的int类型比如打折,但是存储金额的时候用的Decimal类型)。 一、探索 探究其原因,从网上查了查,查到了一个有意思的东西,就...原创 2018-03-25 21:16:54 · 9497 阅读 · 32 评论 -
【Java字符操作】避免模糊查询%等占位符时无效
编程语言:java框架:SSM模糊查询实现方式:<if test="goodsCode != null"> and (goods_code like CONCAT(CONCAT('%', #{goodsCode}), '%')</if>用concat拼接mybatis传下来的值拼接到sql中效果: 在搜索框输入%字符时,即使数据中有带%的数据,...原创 2018-03-17 22:55:01 · 2025 阅读 · 26 评论 -
SSH网上商城初步——一些概念的理解
刚刚结束了SSH网上商城的学习,感觉里面有很多之前没有见过的名词,在这里总结一下,也为没有进入SSH的同学做一个铺垫。一、SSH理解 刚开始SSH的时候,郭嘉老师就一直在说我们已经学习过SSH的内容了,下面开始做项目,配置这个配置文件,配置那个配置文件,拷贝Jar包等等的内容。其中频率最高的三个词莫过Spring,Struts2,Hibernate了,这个里面原创 2017-02-16 16:42:19 · 742 阅读 · 25 评论 -
J2EE—JTA的认识和@Transactional
小编最近学习了SSH网上商城的诸多内容,回头看看,其实里面也用了很多的J2EE的东西,所以借此机会也来分享一下有关于spring事务和JTA事务的一些事情。一、JTA的定义 JTA,即Java Transaction API,JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序的JTA支持极大地增强了数据访问能原创 2017-02-12 16:37:36 · 1914 阅读 · 9 评论 -
J2EE—JAF和JavaMail
今天终于是J2EE的最后两个规范了,也是最有联系的两个规范,让我们一起来看看他们吧。一、JAF JAF是一个专用的数据处理框架,它用于封装数据,并为应用程序提供访问和操作数据的接口。JAF的主要作用在于让java应用程序知道如何对一个数据源进行查看、编辑和打印等操作。 Mail API 的所有版本都需要 JavaBeans Activatio原创 2017-02-14 20:52:59 · 867 阅读 · 12 评论 -
EJB和JBOSS的宏观理解
小编最近在学习jboss的相关内容,所以在此给大家分享一下JBOSS的宏观和EJB与JBOSS的关系。原创 2017-03-18 12:56:19 · 2997 阅读 · 34 评论 -
JBOSS 开发环境搭建
【前言】JBOSS的定义:是一个基于J2EE的开放源代码的应用服务器。JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用,而不用支付费用。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。JBOSS Developer原创 2017-03-12 21:21:28 · 3594 阅读 · 24 评论 -
java中泛型的使用
小编这几天在搞java的代码的时候用到了泛型这个集合,但是在使用的时候发现他和我们之前在.net环境中使用的时候还是有很大差别的,在此分享给大家。 Ps.泛型的知识小编之前有写过,可以参考之前的博客。一、java中的List接口 我们可以很清楚的在java的代码中找到,List myEntity = new List();”的代码了,那么这个原创 2017-06-11 21:42:24 · 568 阅读 · 20 评论 -
在java重新认识TryCatch
敲过代码的同志们都知道,在程序中处理异常我们常用Try Catch结构的代码来接收,处理异常,那么我们是否真的已经了解了try catch了呢?一、问题的提出 在去面试的时候面试官曾经问过我这样的问题,如果我在try的方法体中写了一个return,在catch中写了一个return,在finaly中也写了一个return,问如果没有异常是哪个return触发原创 2017-07-16 21:56:00 · 728 阅读 · 63 评论 -
java项目中的时间问题
使用过java的同志们都知道,时间问题在java这种对于jar包比较开放的地方,是很随意的,所以我们在java中引入不同的包,会使用到不同的时间日期类型的对象,比如java.util.date 或者是 java.sql.date等等,那么,我们如何才能更好的利用里面的转换,为我们提供更好的服务呢,如何才能让我们存储的时间或者是展示的时间是我们最最想要的呢?一、大统一法(字符)原创 2017-09-10 23:55:25 · 1551 阅读 · 19 评论 -
线程池的简介和使用
小编最近在公司的项目中处理订单的时候用到了多线程技术,但是随着使用的深入发现了一些线程的使用情况的限定,继而搜索出了线程池这个东西,所以现在和大家分享一下使用心得。一、为什么要使用线程池 在我们的多线程应用中,需要CPU对于多线程的支持,现在的主流的CPU已经对于多线程的程序有了很好的支持了,并且也鼓励多线程编程的实现进一步活用化,然而使用多线程面临的就是对于原创 2017-09-28 00:57:52 · 401 阅读 · 6 评论 -
mybatis中mapper的用法以及一些注意事项
这几天在公司做项目,到了收尾的阶段,但是发现自己在使用mybatis的时候给自己留下了很多的坑,于是乎花了两天的时间来调试和重新构思自己写下的mapper.xml文件,总算是有些收获,在这里分享给大家。一、何为mapper.xml mapper.xml是mybatis中的重要的组成部分,也算是核心之一,我们可以看到的就是他是由一些定义好的查询数据库的语句和一些原创 2017-09-30 08:18:14 · 8633 阅读 · 20 评论 -
JVM设计原理与实现——虚拟机概述
最近小编正在读《揭秘java虚拟机 JVM设计原理与实现》,顺便总结一下成一个系列记录一下读书的历程吧(挺厚的一本书,怕读不完)!一、来源 其实这个问题应该从编程语言的始祖说起,我们都知道,在计算机出现的初期,程序员们都是用纯机器语言+打孔纸带进行编程操作的,不同型号的机器还有不同纸带上面打点的规律都是不一样的,然后这样人们为了解决机器语言繁琐的问题,就发明了原创 2017-10-15 21:35:51 · 3574 阅读 · 26 评论 -
jrebel插件在myeclipse中的安装与使用
在公司使用tomcat有一段时间了,因为修改完代码之后总是重启项目才能看到效果,所以果断搜索了一下tomcat的自动热部署的配置,结果发现在配置文件中就可以轻松的实现这个功能,所以果断的试了一下,发现部署确实是部署了,但是每次都是通过重新启动项目来实现的,因为项目比较大,所以有很大的延迟,导致在调试的时候需要等待,所以就用了一个后辈推荐的插件jrebel,然后发现很好的解决了我的问题,在这里和大家原创 2017-12-03 22:50:03 · 2290 阅读 · 17 评论 -
【SpringBoot】java配置方式
资源地址:http://download.youkuaiyun.com/download/tr1912/10214314在了解SpringBoot之前,我们首先了解一下java的配置方式。 回顾以前我们想要配置一个项目要如何配置呢?是不是需要写一堆配置文件,比如web.xml,configuration.xml,等等,这个时候,我们如果想要创建一个spring的项目的话,比如一个简单的s原创 2018-01-21 23:13:49 · 3345 阅读 · 65 评论 -
java中List与Map的使用
最近在捣鼓SKU算法(初步),然后用到了一堆list与map或者map与list的各种嵌套,所以借此机会来总结一些list和map的一些特性,以及一些使用的注意事项。一、map和list的区别 首先呢,我们先简要的说一下map与List的一些区别地方,首先呢,map就是类似于key-value形式的数据结构集合,key值可以唯一的找到一个对应的value值,然后value值可原创 2018-01-07 21:36:54 · 17220 阅读 · 20 评论 -
【SpringBoot】SpringBoot简介
简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。原创 2018-01-14 21:59:32 · 1475 阅读 · 20 评论 -
【SpringBoot】核心依赖和自动配置
之前介绍了springboot是有多么的好,那么,我们现在通过一个小demo来看他是有多么的强大!一、核心pom引入 我们可以知道一般的项目引入了的基本包和spring一些连接池,再加上几个配置文件还有应用服务器(或者web服务器),就可以直接运行起来了。那么springboot要如何做呢?首先就是核心依赖了:<parent> <groupId>org.sp...原创 2018-02-02 00:33:01 · 86201 阅读 · 20 评论 -
【java】LocalDate与LocalTime
说道java中的时间格式,我们肯定都不陌生了,因为写日期或者时间的时候我们总是会new Date()来获得现在的时间,然后可以在此基础之上进行操作,但是有的时候涉及到纯时间或者日期的比较,计算就会非常的麻烦,这个时候要如何去做呢? 一般的办法就是引入第三方的库joda-time,等常用的库,但是随着生产需求的不断变化,总是觉得有一些不妥的地方,所以java官方重新添加...原创 2018-03-09 22:33:04 · 1306 阅读 · 21 评论 -
eclipes(ADT)的配置和使用以及与AndroidStudio的对比
最近经历了J2SE和软件开发工具的学习,对于eclipse的使用和java在eclipse中的使用有了很多的了解,并还要开发安卓的程序,所以学习了一些关于ADT和AndroidStudio的对于编辑Java代码的方面有些小心得,所以分享给大家。一、eclipse的下载与配置 首先我们要知道,eclipse和vs不一样的地方就是他是分64位版和32位版的,但是网原创 2016-10-09 21:06:15 · 2042 阅读 · 25 评论