自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 收藏
  • 关注

翻译 java中List、Array、Map、Set等集合相互转换

在java中,我们经常需要对List、Array等做一些转换操作,当然转换方法有很多种,但哪种方法既方便又高效呢?在这里向大家介绍一下集合间的最佳转换方法。1.List转换为Array:List<String> list = new ArrayList<String>();list.add("China");list.add("Switzerland"...

2020-03-26 18:11:49 414

原创 ArrayList的工具类

/** * * @param listObj 原来的大List * @param groupNum 分隔成小List中,每个小List的元素的个素数 * @param <T> * @return */ public static <T> List<List<T>> getSu...

2020-02-27 12:37:38 593

原创 java中关于ip地址的工具类AddressUtils

package com.itstyle.common.utils;import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.UnsupportedEncodingExcep...

2019-05-11 16:43:03 2184

原创 java中对于金额计算的BigDecimalUtils

package com.itstyle.common.utils;import java.math.BigDecimal;import org.apache.commons.lang3.StringUtils;public class BigDecimalUtils { /** * 除法 */ public static BigDecimal divide(String ...

2019-05-11 16:39:13 1528

原创 电商系统商品中心产品设计

由于商业性质决定了电商业务支撑系统必须具备稳定性、可扩展、安全性强等特点,PM在设计产品架构时,应充分考虑到业务发展需要,尽量将各模块隔离,商品模块建个商品中心,订单模块建个订单中心。只有在产品设计上有模块化思想,具有前瞻性,技术在开发时才会考虑业务隔离,当业务调整、功能新增时,开发可迅速进行,避免牵一发而动全身的事情反复发生。对电商公司来讲,最核心最难做的三部分:商品、订单、库存。商品...

2019-03-09 20:09:18 7283

原创 30岁之后,更应该在意以下10点

30岁之后,感觉自己的整个世界都变了。以前靠勤奋就能赢,30岁以后的世界,勤奋完全不够用了。观察周围的很多人,总觉得每个人身上的成功秘诀都不一样。但不置可否的是,30岁以后的世界,是多元化的,通往成功的道路,突然生出很多内容。勤奋的路能让你一直还不错,但你发现,自己很努力所取得的成就,似乎没有比别人信手拈来的更好。到底是为什么呢?是别人成功的背后有什么猫腻吗?其实,是因为你还用2...

2019-03-09 18:01:29 324

原创 mysql中整数类型后面的数字

mysql中整数类型后面的数字mysql数据库中以 :数据类型(m) 来约束数据,其中 数字m在不同的数据类型中表示含义是不同的,整型数系统已经限制了取值范围,tinyint占1个字节、int占4个字节所以整型数后面的m不是表示的数据长度,而是表示数据在显示时显示的最小长度.tinyint(1) 这里的1表示的是 最短显示一个字符。tinyint(2) 这里的2表示的是 最短显示两个字符,...

2019-03-01 12:54:33 2928

原创 Mysql的binary、char、varchar区别

mysql的binary、char、varchar区别:binary:保存二进制字符串,它保存的是字节而不是字符,没有字符集限制。binary(8)可以保存8个字符,每个字符占1个字节,共占8个字节进行比较时是按字节进行比较,而不是按字符(char),按字节比较比字符简单快速.按字符比较不区分大小写,而binary区分大小写char:使用固定长度的空间进行存储,char(4)存储4个...

2019-03-01 11:12:39 1573

原创 减少代码中过多的嵌套

由于是开发的一些小经验,就直接上链接了,有空就可以看下了:1:接口分层2:使用多态,不同的类别分开, 当然这还可以抽象3:使用maphttps://mp.weixin.qq.com/s/5u80Rqg588HCTT8MgQbLTA ...

2019-01-27 21:53:52 1064

原创 RabbitMQ 消息队列可靠性代码实现

1,实现rabbitmq所需要依赖包&lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-amqp&lt;/artifactId&gt; &lt;version&gt;${spring-boot.version}&l...

2018-09-25 16:31:37 378

原创 数据分库分表 Sharding JDBC

本文介绍sharding的基本思想和理论上的切分策略Sharding JDBC:1:基本思想  Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上 ,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上 ;如果表并不多,但每张表的数...

2018-09-24 01:38:19 1283

原创 elastic-job的原理简介

elastic-job :1,简介      是当当开源的一款非常好用的作业框架,在这之前,我们开发定时任务一般都是使用quartz ,对于业务量小的话 quartz是可以满足我们的要求的,使用quartz对于大的业务量的不足:     a)quartz应用服务多节点部署,可能会重复多次执行而引发系统逻辑的错误 。     b)quartz的集群仅仅只是用来HA,节点数量的增加并不...

2018-09-22 17:01:17 1310

原创 java设计模式:(工厂模式)

1:工厂模式是一种比较常见的创建模式, 在实际开发中也是常常使用到。2:工厂模式的形式:    2.1)简单工厂模式,而对于简单工厂模式来说,它是为了让程序有一个更好地封装,降低程序模块之间的耦合程度,对于简单的工厂模式,其实也可以将其理解成为一个创建对象的工具类。在这个工具类里面,我们就可以进行一些其他操作,比如对象的初始化。这样就避免了把对象初始化的大量代码(如果有大量代码的话)放在构...

2018-08-26 02:11:29 172

原创 java设计模式:(策略模式)

1:策略模式的描述   把它们一个个封装起来,并且使他们可以相互替换。这样策略模式就可以独立使用它们的客户端变化。   策略模式其实是为了解决,同一个问题有多个不能的解决方式,也就是说提供了多种不同的解决策略,比如,我们对一个数组  进行排序。那么这里就有冒泡排序、快速排序、归并排序等等不同的算法,这里我们就可以说这些是不同的策略。2:策略模式的具体实现:  2.1)公共接口(比如...

2018-08-26 01:16:58 141

原创 java设计模式:(适配器模式)

1:情景    不同国家的插座,插头不一样,美国的插座,提供110伏电压,三孔插座,中国的插座,提供220伏电压,二孔插座,这个时候你去美国旅游的时候,美国只有三孔插座,这个时候如果没有适配器的话,你就不能给手机充电,所以需要用到适配器,一头转换成二孔插座(给手机充电),另一头插到三孔插座,同理适配器模式也是这么实现的, 下面看具体的实现:2:java适配器模式的具体实现:总共7个类 ...

2018-08-26 00:43:31 154

原创 java中生成随机数工具类RandomUtils

/** * 根据需要生成指定长度的纯数字随机数,这个随机数的每一位都是从(0-9)这个产生的一位 * @param date * @return */ public static String getNewRandomCode(int codeLen) { java.util.Random randomCode = new java.util.Random(); Str...

2018-05-02 14:23:43 4817

原创 Mybatis的传入参数parameterType类型

1. MyBatis的传入参数parameterType类型分两种    1. 1. 基本数据类型:int,string,long,Date;     1. 2. 复杂数据类型:类和Map2.获取参数中的值:    2.1  基本数据类型:#{参数} 获取参数中的值    2.2  复杂数据类型:#{属性名}  ,map中则是#{key}3.案例:3.1:基本类型&lt;sql id="Base_...

2018-04-28 18:08:03 2813

原创 阿里云Redis的开发规范

一、键值设计1.key名设计(1)【建议】: 可读性和可管理性    以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id   (2)【建议】: 简洁性   保证语义的前提下,控制key的长度,当key较多时,内存占用也不容忽视2.value设计(1)【强制】:拒绝bigkey(防止网卡流量、慢查询)    string类型控制在10KB以内,hash、list、se...

2018-04-28 15:52:54 2647

原创 Mybatis中输出映射-resultType与resultMap的区别

一、resultType1:使用resultType进行输出映射,只有查询出来的列名和pojo(实体bean)中的属性名一致,该列才可以映射成功。2:如果查询出来的列名和pojo中的属性名全部不一致,没有创建pojo对象。3:只要查询出来的列名和pojo中的属性有一个一致,就会创建pojo对象使用时一般是:输出为简单类型是,查询出来的结果集只有一列,可以使用简单类型进行输出映射;输出为pojo对象...

2018-04-28 15:08:35 520

原创 java 中的静态代码块、构造代码块、构造函数以及Java类初始化顺序

静态代码块:用staitc声明,jvm加载类时执行,仅执行一次;构造代码块:类中直接用{}定义,每一次创建对象时执行;执行顺序优先级:静态块,main(),构造块,构造方法。a)构造函数:1.对象一建立,就会调用与之相应的构造函数,也就是说,不建立对象,构造函数时不会运行的;2.构造函数的作用是用于给对象进行初始化;3.一个对象建立,构造函数只运行一次,而一般方法可以被该对象调用多次;b)构造代码...

2018-04-28 14:35:26 210

原创 java中bean工具类BeanUtil

import org.egg.enums.CommonErrorEnum;import org.egg.exception.CommonException;import org.springframework.beans.BeanUtils;import org.springframework.util.CollectionUtils;import java.beans.BeanInfo...

2018-04-28 00:27:00 2204

原创 java中json与bean互转的工具类JsonUtil

import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.serializer.SerializerFeature;import java.util.*;/** * @author wanghang * @Description ...

2018-04-28 00:23:20 7989

原创 Java中用于发送http请求的工具类HttpRequestUtil

项目环境:jdk1.8+spring4.3.12如果jdk的版本比较低或者spring的版本比较低的话,或许有些包引用不到。在项目开发中,经常用调用http接口,下面是封装apache的httpclient工具类。import org.apache.http.client.config.RequestConfig;import org.apache.http.client.methods.Clo...

2018-04-28 00:07:24 11025 1

原创 Date的工具类DateUtil

import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import org.apache.commons.codec.binary.StringUtils;import org.apache.xmlbea...

2018-04-10 10:53:04 819

原创 理解分布式事务,分布式事务的解决方案

1:分布式事物的理解:      分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务节点上,分布式事务需要保证这些小操作要么全部成功,要么全部失败;本质上来说,分布式事务就是为了保证不同数据库的数据一致性。2:分布式失误产生的原因:a)数据库分库分表;   当数据库单表一年...

2018-03-30 21:25:30 4362 2

原创 Spring Mvc 防御CSRF攻击

1)CSRF的一些简单的理解:       CSRF :中文名称:跨站请求伪造,缩写为:CSRF/XSRF。        CSRF攻击可以这么理解:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账……造成的问题包括:个人隐私泄露以及财产安全。         CSRF的原理:

2017-09-07 00:04:42 1052

原创 对于卡券类兑换的,随机生成兑换码(数字和字母的字符串)

package com.test;import java.util.Random;public class RedeemCodeUtils { public static void main(String[] args) { String st1 = createBigSmallLetterStrOrNumberRadom(8); String st2 = createSmall...

2017-08-24 01:33:17 10444 1

原创 关于java中对小数的精确处理

java 中提供BigDecimal对小数的精确处理a) 通常用到下面的方法: 保留两位小数, 四舍五入setScale(int newScale, int roundingMode)- newScale:保留的小数位数- roundingMode:精度取值方式roundingMode的取值有一下几个:ROUND_CEILING大于等于该数的那个最近值R

2016-11-04 17:37:52 6271

原创 关于redis中使用锁机制,( 实现分布式锁和任务队列)

Redis为单进程单线程模式,Redis本身没有锁的概念,Redis对于多个客户端连接并不存在竞争,但是在Jedis客户端对Redis进行并发访问时会发生连接超时、数据转换错误、阻塞、客户端关闭连接等问题,对于这些问题对此有2种解决方法:1.客户端角度,为保证每个客户端间正常有序与Redis进行通信,对连接进行池化,同时对客户端读写Redis操作采用内部锁synchronized。2.

2016-11-03 23:40:25 23867 1

原创 java中的IO流

字节流:OutputStream:它是字节输出流的顶层父类,并且是一个抽象类,不能new对象,字节输出流,由它的子类FileOutputStream负责写的操作。                  并且在创建FileOutputStream对象时, 要指定路径。InputStream:它是字节输入流的顶层父类,并且是一个抽象类,不能new对象,字节输入流,也是由它的子类FileInpu

2016-11-02 14:12:00 228

原创 关于spring事物的隔离级别和事物的传播行为

事物的隔离级别:Spring事务的隔离级别有五种 a)DEFAULT:使用数据库默认的事务隔离级别. b)UNCOMMITTED:这是事务最低的隔离级别,它充许令外一个事务可以看到这个事务未提交的数据, 这种隔离级别会产生脏读,不可重复读和幻像读。 c)COMMITTED:保证一个事务修改的数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务未提交的数据, 可以

2016-11-01 19:58:31 667

原创 java中的反射技术

1: java中的反射机制: a)在Java 运行时 环境中,对任意一个类, 可以知道这个类所有的属性和方法。b)任意一个对象,可以动态地获取类的信息,然后调用类中的方法, 也是基于java中的反射。2: java中反射能够提供的功能:a)在运行时判断任意一个对象所属的类.b)在运行时构造任意一个类的对象.c)在运行时调用任意一个对象的方法.3 :Java 反射

2016-10-30 17:50:44 476

原创 java中对于大量数据采用批量处理来提高效率

设计的话, 是在dao层写批量新增的方法,以及实现类dao的实现类, 在service调用这个dao就可以了!   不过最终走的还是单个只不过是集合的遍历, 所以不用再mapper.xml里面配置方法。IReconBankOrderCpsBatchDao里面的方法:public interface IReconBankOrderCpsBatchDao { /** * 保存多条

2016-08-26 15:07:25 41289 2

原创 关于sql查询的一些处理

1) 对于查询的某一列去掉重复:用的是distinct关键字         根据一列查询另一列,根据uploadId查询result_id<select id="queryResultIdsByUploadId" resultType="java.lang.Long" parameterType="com.bill99.cbs.recon.trans.base.domain.quer

2016-08-25 09:36:10 276

原创 关于关联查询子查询(一个参数通过从另一个表中获得)

通过用户的id, user_id查询渠道表。 渠道表没有这个字段,要通过user_id去别的表查询得到渠道编号。 SELECT FROM RECONCAV.T_CBS_RECON_CHANNEL CHANNEL_ID in (select CHANNEL_ID from RECONCAV.T_CBS_R_ROLE_CHANNEL where role_id

2016-08-23 16:50:44 3208

原创 Oracle 数据库中的索引

在oracle数据库中的数据, 每一行都是用RowID来标识的,RowID能够标识数据库中的某一行的具体位置,在数据库中存有大量数据时, 要能找找到具体的某一个数据(RowID),这个时候就需要索引对象。     1)索引的工作原理:  在一个拥有大量数据的表中进行查询时, 如果没有创建索引,肯定会全表查询, 然后再将查询出的每一行数据和查询条件进行比对,最后返回满足条件的记录   

2016-08-20 23:54:43 413

原创 对于一张表的数据很大时查询数据的优化

根据条件查询一张很大表的数据:比如,根据  对账日期, 渠道编号和全部的交易类型查询数据查询数据t_cbs_recon_bank_order_cps这张表的数据量很大    交易类型:有 像: 消费  退货  线下退货  快退 托收等  正常的思路: 将交易类型封装成一个List,然后作为参数传进去, 这样整个表查询的话, 会很慢。  解决: 类似于分区的的思想, 将不同交易类型的数据

2016-08-18 16:13:44 3457

原创 java 页面上表格的td 的 colspan 和 rowspan 属性

td 的 colspan属性代表所占列数, rowspan 属性代表所占行数。[html] view plain copy table border="10">   tr>     td colspan=2 align="center">员工号td>  tr>   tr>   td rowspan=2 align="center"

2016-08-18 15:03:15 15044

原创 开发中的sql(3)

开发中的sql参考,mapper.xml模板t_cbs_recon_billorder_cps表    像条件查询, 条件修改以及对于date类型参数的处理。

2016-08-18 11:14:17 515

原创 开发中sql(2)

相当于一个mapper.xml的模板:t_cbs_recon_bankorder_handle表。    相条件求和, 条件查询, 分组(分组去掉为空的字段),根据条件次改的        在查询  编辑   修改中传入List参数,这里面都可以参考

2016-08-18 11:03:25 286

空空如也

空空如也

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

TA关注的人

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