自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

kekeair的博客

生活=(工作+学习+健身)X365

  • 博客(41)
  • 收藏
  • 关注

原创 @Transactional注解的失效场景

@Transactional注解的失效场景@Transactional注解的失效场景一、事务@Transactional注有哪些属性?propagation属性isolation 属性readOnly 属性rollbackFor 属性noRollbackFor属性**二、@Transactional失效场景1、@Transactional 应用在非 public 修饰的方法上2、@Transact...

2020-03-23 19:12:17 168

原创 @JsonInclude(Include.NON_NULL)

@JsonInclude(Include.NON_NULL) 是springmvc中的标注,是为了控制返回的json字符串显示哪些字段。这里的设置是为null的字段不显示

2017-12-04 18:26:44 699

原创 联合索引引发的插入问题

今天遇见一个联合索引引发的插入数据异常的问题,找了好长时间 问题是这样的: 插入字段 crm_id 参数为12333 结果在执行插入的使用crm_id的值变成了12333-12 (ps:crmlc_time的值为12). 问题出在哪呢?看到没联合索引,印象了插入的值修改方案: 由于这张表需要频繁的查询,所以不能删除,就选择了将他们分开做普通索引

2017-11-15 19:54:13 1125 1

原创 集合,字符串判空

集合判空(Collection) if(list!=null && !list.isEmpty()){ 这个里面取list中的值 }else{ 做其他处理 } 注意list.isEmpty()的底层实现是: public boolean isEmpty() { return size == 0; } 所以list.isEmpty()跟list.siz

2017-11-15 11:22:04 287

原创 TO_DAYS函数 (SQL)

TO_DAYS函数 返回一个天数! 啊哈?什么天数? 从年份0开始的天比如: SELECT TO_DAYS(‘1997-10-07′); 结果  729669就是从0年开始 到1997年10月7号之间的天数PS:注意括号中是字段名的话不要加单引号之类的!

2017-11-15 10:11:01 3623

原创 <Context reloadable="true">

为了在开发时,让tomcat能够自动重新加载,我们修改过的代码和配置,需要对Tomcat的context.xml文件进行设置。 在标签中,加上reloadable属性,并且将值设为true<Context reloadable="true"> <!--注意: reloadable设为true,目的是为了方便开发阶段, 它会影响tomcat性能;当在正式部署服务时,需要改成false -

2017-11-15 09:56:52 2647

转载 Spring 使用@PropertySource+Emvironment读取properties文件

spring 3.1中开始引入 了读取properties文件的注解 @PropertySource 比如有customize.properties文件#用户名 userName=admini#密码 password=123 实现代码@Configuration @PropertySource(value = "file:${user.dir}/config/customize.pro

2017-11-05 10:55:02 369

原创 Spring配置---<aop:aspectj-autoproxy />

<aop:aspectj-autoproxy proxy-target-class="true"/> 基于类的动态代理(依赖于CGlib库) 通过配置织入@Aspectj切面

2017-11-01 11:54:08 866

原创 关于Spring中的<context:annotation-config/>配置

使用隐式地向 Spring容器注册 当然我们很多时候使用注解都会配置扫描路径选项:<context:component-scan base-package="pack.pack"/>该配置项其实也包含了自动注入上述processor的功能,因此当使用componet-scan后,即可将annotation-config省去。 注意在使用context命名空间之前,必须在中声明context命名空

2017-11-01 11:47:03 235

原创 日期类型的比较与转换(date Calendar timestamp):

Date 1 获取时间毫秒值 date.getTime();//注意时区带来的影响 2 日期类型的比较 after before: SimpleDateFormat localTime=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String star = "2017-10-30 09:00:00"; Stri

2017-10-31 11:39:30 696

原创 文章标题

java反射机制: what(是什么) 1 首先需要知道Class是做什么的? 需要先有一个类的完整路径引入之后才可以按照固定的格式产生实例 化对象,但是在Java中也允许通过一个实例化对象找到一个类的完整信息,那么这就是Class功能反射就是允许通过实例化对象找到一个类的完整信息why(为什么用反射) 获取类型的相关信息 动态调用方法 动态构造对象 从程序集中获得类型。 how(

2017-09-27 19:42:58 168

原创 管道流:(管道输入流 PipedInputStream与管道输出流 PipedOutputStream)

管道流:(管道输入流 PipedInputStream与管道输出流 PipedOutputStream) 作用 管道流的主要作用就是可以进行两个线程间的通信。一个线程作为管道输出流,另一个线程作为管道输入流, 在启动线程前,只需要将这两个线程的管道流连接到一起就可以。 这要就很方便的实现了两个线程间的通信。 原理: java的管道输入与输出实际上使用的是一个循环缓冲数组来实现

2017-09-22 14:35:16 880

原创 设计模式-观察者模式

观察者模式 what(是什么) 当一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。列如: 拍卖的时候,拍卖师观察最高标价,然后通知给其他竞价者竞价。 why(为什么用它) 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 优点: 1、观察者和被观察者是抽象耦合的。 2、建立一套触发机制。 缺点: 1、

2017-09-21 11:41:20 161

转载 Java 中Comparable和Comparator区别比较

Java 中Comparable和Comparator区别比较 作者: 字体:[增加 减小] 类型:转载 时间:2013-09-27 我要评论 <div class="art_desc mt10"><div id="art_demo">本文,先介绍Comparable 和Comparator两个接口,以及它们的差异;接着,通过示例,对它们的使用方法进

2017-09-21 10:43:34 176

转载 设计模式-适配器模式

前言 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。 我们通过下面的实例来演示适配器模式的使用。其

2017-09-20 16:27:18 224

原创 设计模式-命令模式(二)

详细示例:(遥控开关灯)package command;public class Light { String aa; public Light(String aa) { super(); this.aa = aa; } public void on() { System.out.println("开灯.."); }

2017-09-18 18:16:50 324

转载 排序算法之基数排序

基数排序详解以及java实现 前言基数排序(radix sort)又称桶排序(bucket sort),相对于常见的比较排序,基数排序是一种分配式排序,即通过将所有数字分配到应在的位置最后再覆盖到原数组完成排序的过程。我在上一篇讲到的计数排序也属于这种排序模式,上一篇结尾处提到了计数排序的稳定性,即排序前和排序后相同的数字相对位置保持不变。今天我们要说的基数排序就

2017-09-18 10:40:04 367

转载 排序算法之希尔排序

**插入排序—希尔排序**希尔排序是1959 年由D.L.Shell 提出来的,相对直接插入排序有较大的改进。希尔排序的实质就是分组插入排序,该方法又称缩小增量排序。基本算法:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元

2017-09-14 16:46:25 619

原创 设计模式-传输对象

传输对象模式 what(是什么) 传输对象模式(Transfer Object Pattern)用于从客户端向服务器一次性传递带有多个属性的数据。传输对象也被称为数值对象。传输对象是一个具有 getter/setter 方法的简单的 POJO 类,它是可序列化的,所以它可以通过网络传输。它没有任何的行为。服务器端的业务类通常从数据库读取数据,然后填充 POJO,并把它发送到客户端或按值传递它。对

2017-09-13 20:34:49 382

原创 队列queue(待续....)

队列(queue): what(什么是队列) 队列同样是一种特殊的线性表,其插入和删除的操作分别在表的两端进行,队列的特点就是先进先出(First In First Out)。我们把向队列中插入元素的过程称为入队(Enqueue),删除元素的过程称为出队(Dequeue)并把允许入队的一端称为队尾,允许出的的一端称为队头,没有任何元素的队列则称为空队。其一般结构如下: package c

2017-09-13 11:38:29 210

转载 设计模式之-单例设计模式

单例设计模式: what(是什么) 属于创建型模式,他提供了一种创建对象的最佳的方式. 这种模式设计到一个单一的类,该类负责创建自己的对象,同时确保只有 单个对象被创建.这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该 对象.注意: 1 单例类只能有一个实例 2 单例类必须自己创建自己的唯一的实例 3 单例类必须给所有其他对象提供这一实例why(为什么用) 应用

2017-09-11 14:32:09 168

转载 设计模式-工厂模式

工厂模式: what(是什么) 属于创建对象模式,它提供了一种创建对象的最佳方式. why(为什么用它) 在工厂模式中我们床架 对象时不会对客户端暴露创建 逻辑,并且是通过使用一个共同的接口来指向新创建的对象.应用实例: 1 当需要一辆汽车时,可以直接从工厂里面提货,而不用去管 这辆汽车时怎么来的,以及这个汽车的具体实现. 2 Hibernate换数据库只需要换方言和驱动就可以了.优

2017-09-11 13:57:52 181

原创 使用sendMail发送邮件

使用sendMail发送邮件1发送邮件必须有邮件服务器,在这里以QQ邮箱服务器为例 设置QQ邮箱支持POP,ICMP协议(百度有设置方式,在这里不再赘述) 2 下载mail.jar(注意版本,此代码示例为1.6版本) http://download.csdn.net/download/u011238841/9926479 3 代码示例 package com.hengc;im

2017-09-06 17:01:00 1442

原创 对称加密----AES和DES加密、解密

目前主流的加密方式有:(对称加密)AES、DES (非对称加密)RSA、DSA 主要讲解对称加密—-AES和DES加密、解密jce中提供了加解密的api: 1、首先应该明白AES是基于数据块的加密方式,也就是说,每次处理的数据是一块(16字节),当数据不是16字节的倍数时填充,这就是所谓的分组密码(区别于基于比特位的流密码),16字节是分组长度AES支持五种模式:CBC,CFB,E

2017-08-31 10:45:38 803

转载 svn使用注意事项

svn的使用需要注意的事项: 1 先update整个解决方案 最好更新整个项目,因为团队成员可能会修改解决方案中的多个文件, 所以更新的时候我们没有必要(也不建议)去耽搁项目更新或者文件 去更新,否则可能更新瞎开的代码由于只是部分导致生成的时候出现错误. 2 然后保证在提交之前生成的解决方案没有错误 这是提交之前最为重要的一步,一旦某个成员提交上了这种代码,name团队中的其他人都将

2017-08-30 17:15:07 351

转载 SVN问题总结

1、’.’ is not a working copy.Can’t open file‘.svn/entries’: 系统找不到指定的路径。解答:原因是输入的访问路径不正确,如svn://192.168.6.200/如果最后少写了“/”,就会出现这种错误提示。2、将文件checkout之后,没有出现SVN的图标,是怎么回事?解答:有些时候在客户端Checkout文件后,SVN的系统图标也会不显示,

2017-08-30 17:12:47 423

原创 数据的排序及重排序问题(数据变化需要重排)

数据的排序及重排序问题(数据变化需要重排)大家都知道在集合中TreeSet会去除重复数据并对数据进行排序(默认升序,可以使用Comparable接口的CompareTo 方法改变排序方式),但是当排好的数据发生变化时,它能否重新排序呢? 示例如下:public class test { public static void main(String[] args) {

2017-08-16 18:10:21 1443

原创 简单介绍使用java查看内存使用情况

使用java查看内存使用情况public class test { public static <E> void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); final Runtime rt = Runtime.getRuntime();

2017-08-16 16:02:14 519

原创 基本类型数组转换列表陷阱(asList)

避开基本类型数组转换列表陷阱 示例:public class test { public static void main(String[] args) { int[] data={1,2,3,4,5}; List<int[]> asList = Arrays.asList(data); System.out.println(asList); System.out.p

2017-08-16 11:12:22 873

原创 利用java实现的一个发送手机短信的小例子

JAVA发送手机短信,流传有几种方法:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;(2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备,呵呵(3)使用中国网建提供的SMS短信平台(申请账号地址:http://web.daiyicloud.com/) 本程序主要是运用了中国网建提供的S

2017-08-11 11:27:44 280

转载 java.lang.Integer 源码深入解读

最近算是比较深入的了解了一下Integer的源码,就想着写点东西记录一下,一来可以加深理解,再来也算是为我刷了那么久segmentfault平台贡献一点自己的绵薄之力。一、构造函数: 解读一个类的源码我喜欢从构造函数入手,这里先上Integer的构造源码:public Integer(int value) { this.value = value;}public Integer(Str

2017-08-10 16:30:02 238

原创 数据库设计规范

数据库设计规范意味深长与历久弥新,蕴含于简约之中,与清晰之中,与高效之中. 真正的坚决远不只是删繁就简,而是纷繁里简历秩序. —– Jonathan Ivewhy(为什么要做数据库设计规范)1 为了软件的扩展性 2 提高开发效率(好的数据库设计可以减少开发中修改数据库) 3 提高磁盘利用率 4 提高查询效率how

2017-08-03 16:34:00 410

转载 垃圾收集算法、垃圾回收算法、java垃圾收集器

垃圾收集算法、垃圾回收算法、java垃圾收集器目录 1. 垃圾收集算法 1)引用计数法 2)根搜索法 2. 垃圾回收算法 1)复制算法 2)标记-清除算法 3)标记-整理算法 4)分代收集算法 3. java垃圾收集器 新生代GC器: 1)Serial垃圾收集器 2)ParNew垃圾收集器 3)Parallel Scavenge垃圾收集器 老年代GC器 1)Serial

2017-08-02 17:52:32 326

原创 Parallel Scavenge收集器

Parallel Scavenge收集器what(是什么)Parallel Scavenge收集器是Java虚拟机中垃圾收集器的一种。 又称为吞吐量优先收集器,和ParNew收集器类似,是一个新生代收集器。使用复制算法的并行多线程收集器。 而且是并行的多多线程收集器.java1.8默认的收集器.why(为什么使用它)特点: Parallel Scavenge收集器的关注点与其他收集器不同,

2017-08-02 17:41:45 4931

原创 Stream:java1.8新特性

Stream:java1.8新特性what?(它是什么)stream流,Stream 就如同一个迭代器(Iterator),单向,不可往复,数据只能遍历一次,遍历过一次后即用尽了,就好比流水从面前流过,一去不复返. Stream 可以并行化操作,使用并行去遍历时,数据会被分成多个段,其中每一个都在不同的线程中处理,然后将结果一起输出。Stream的并行操作依赖于 Java7 中引入的 Fork/J

2017-08-01 18:15:43 638

原创 asList存在的问题

1. 避开基本类型数组转换列表陷阱 问题实例:public class Client { public static void main(String[] args) { int[] data = { 1, 2, 3, 4, 5 }; List list = Arrays.asList(data); System.out.println(li

2017-07-24 09:46:10 343

原创 代理模式

代理模式:1.静态代理//抽象主题角色 interface Subject{ //定义一个方法 public void request(); } //具体主题角色 class realSubejct implements Subject{ //实现方法 public void request(){ Syso("简单实现......."); } } //代理主题

2017-07-24 09:40:19 150

原创 提升java性能的基本方法

提升java性能的基本方法1. 不要在循环条件中计算如果循环中计算,则每循环一边就要计算一次,这会降低系统 效率如下代码://每次循环就算count*2 while(i<count*2){ //逻辑 }应该替换成:int total=count*2; while(i<total){ }2. 尽可能把变量,方法声明为final static 类型假设要讲阿拉伯数字转为中文数字,如下pub

2017-07-24 09:37:29 361

原创 注意数值边界

注意数值边界 实例: 某商家规定会员可拥有的最多产品数量(防止囤积)会员预定过程如下: 登录官网–>选择产品–>设置预定数量–>提交–>校验数量 public class Demo1 { public static final int LIMIT=2000;public static void main(String[] args) { //会员当前拥有的产品数量

2017-07-17 09:23:18 232

原创 金额的存储

存在的问题public class Client{ public static void main(String[] args){ System.out.print(10.00-9.60); }}我们期望的结果为0.4,但是打印的结果却是0.40000000000000036原因:机器运算时二进制运算,将0.4转为二进制,他是无限循环小数,可以这样理解在十进制世界里没有办法准确表

2017-07-17 09:19:54 241

空空如也

空空如也

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

TA关注的人

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