- 博客(209)
- 资源 (2)
- 收藏
- 关注

原创 【设计模式】深入理解单例&懒汉饿汉&双重锁定
在实际的开发中,我们需要某个类只有唯一一个实例,比如在Windows中我们打开任务管理器,即使点击多次,每次也只是有一个窗口。我们一起看下单例模式的定义: 单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种对象创建型模式。1.示例代码public c
2017-08-23 18:07:32
776
8

原创 数据库中事务的四大特性和隔离级别
从开始学习编程就学习的知识,可是发现并不是每一点都说的很清楚,呵呵哒,又从网上看了下,下面是自己整理的笔记:数据库中事务的四大特性:1.原子性:事务包含的所有操作要么全部成功,要么全部失败2.一致性必须使数据库从一个一致性的状态转换到另一个一致性的状态。如果事务执行前A和B的钱一共是500元,那么A和B相互转账,最后他们的钱加起来也要是500元。3.隔离
2017-08-08 21:47:48
617
8

转载 @Transactional事务几点注意
事务的很多内容还是不够了解,觉得这篇博客很好,介绍了一些容易忽略的点,分享给大家:A. 一个功能是否要事务,必须纳入设计、编码考虑。不能仅仅完成了基本功能就ok。B. 如果加了事务,必须做好开发环境测试(测试环境也尽量触发异常、测试回滚),确保事务生效。C. 以下列了事务使用过程的注意事项,请大家留意。1.不要在接口上声明@Transactional ,而要在具体类的方法上
2017-08-06 17:16:32
1522
6

原创 Tomcat使用总结
一.目录结构 以Tomcat7为例进行说明:1.bin:该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat7.exe、tomcat7w.exe,前者是在控制台下启动Tomcat,后者是弹出UGI窗口启动Tomcat;如果是解压版,那么会有startup.bat和shutdown.bat文件,startup.bat用来启动Tomca
2017-07-23 20:42:55
921
30

原创 window.print()页面打印之表格内容分页填充进行分页打印
windwow.print()用于打印当前窗口的内容,很简便,可当内容特殊并且打印有特殊需求的时候就要绕个圈了。下面是需要打印的表格: 当数据量少的时候像上面的表格一样,中间的内容只有5条数据,打印出来在纸上会有空白,不太好。中间内容是不确定的可能几十条,可能上百条,这样循环在界面上展示是没有问题的,但是当使用火狐打印时会按照表格的大小成倍的缩小,最后打印到一张纸上,字体和表格都
2017-05-14 16:12:56
28289
15
原创 AopContxt.currentProxy()使同类中非事务方法调用事务方法事务生效
在同一个类中,非事务方法调用存在事务的方法,这个时候事务会失效,如果要使存在事务的方法中的事务生效,可以使用AopContext.currentProxy().xx()来进行调用,这个时候事务才能生效,或者是由外部的类来进行调用。在同一个类中,非事务方法A调用事务方法B,事务失效,这是由于使用Spring AOP代理造成的,只有当事务方法被当前类以外的代码调用时,才会由Spring生成的代理对象来管理。在不同类中,事务方法A调用非事务方法B,事务具有传播性,事务生效;
2024-09-12 17:59:58
364
1
原创 有时导数据代码比写SQL要快很多
作为一个技术人很容易陷入细节,刚开始总觉得一级级往下的事,没有很复杂,结果尝试了很久总导着有问题,最后跳出思维,想着既然Mongo查询的语句没有那么擅长就用代码吧,很快就写完了。接到一个数据需求,是从我们的Mongo中导出的,但要取的值得到很深的层级,尝试写了半天Mongo的查询查不出来,问了半天大模型给的也不对,于是考虑写代码的方式。先用"modules": { "$slice": 3}筛检一部分数据导出为json格式的,然后代码读取把每个值用英文逗号分割,保存为csv就是一个格一个值了。
2024-04-11 17:10:46
278
原创 【Mybatis】基于Mybatis拦截器+注解,实现敏感数据自动加解密
我司最近在做等保,要求数据库里面的手机号、微信号、身份证号等等这些在数据库中都不能是明文,所以需要把数据库中的涉及到这些的加密保存,但是查询和保存的接口传参不受影响,之前业务给前端返回是什么样子依然保持不变,这样前端不受影响。
2024-03-15 15:57:26
3196
10
原创 23年年总-拒绝焦虑心怀希望
22年元旦和春节都没有写总结,因为总感觉没有收获,没有成长,但是时间却是如流水。今天是23年的第一天,22年就那样戛然而至,23年就这样扑面而来。这两年的自己是焦虑的,想太多,为工作和对象焦虑,但要心怀希望, 相信会更好。这次的总结我可能变成碎碎念了。 还是想先努力的回忆下21年的事情,能记起来的已经不多了。21年我没有进入我的理想院校北邮,过了国家线但是没有过北邮的院校线,也终于明白选择大于努力,调剂系统学校放开的先后也不一样,我最终调剂到了另外一个211院校,本来想着放弃重新再考一年,但有学
2023-01-29 15:51:18
408
原创 记十月五日寨口大坡徒步
4号晚上到家十点了,看到悠然群里的消息,咨询了我们的王队,我是一个小白,之前都是和朋友一起,和完全陌生的小伙伴还是没有过的,还和王队说担心自己社恐,王队说不用担心他会和我聊天,哈哈,简直太贴心了。过程中大神为了减轻我的负担,前半程还帮我背包,国强说他用不到登山杖,全程我都用的国强的登山杖,使我节省了很多体力,伙伴们途中一直会互相提醒,注意安全,大神总是跑的很快,然后给我们拍了很多照片,给我们讲这座山那座庙的故事,丰富我们的知识,国强也录了很多视频,感恩各位小伙伴们。大神让我们吃吃吃,自己却在意热量高。
2022-10-06 11:56:47
784
2
原创 2021年总——整理思绪再出发
2020年是特殊的一年,总觉得记忆还在去年刚过年的时候,现在又过年了 还记得去年过年回家坐在客车上的时候芬芬发群里的新闻,那时自己对于新冠还一无所知,但到家后看了更多的报道后开始重视这个事情,开始对爸妈苦口婆心地劝说少聚集。第一次大年没有起早,不用拜年,居家隔离。年后很早就回北京了,居家办公,一天24小时待命的日子。后面工作就一直做迭代,下半年下班后就备考,不知不觉就2021年了……回顾1.工作和技术这一年真的很忙,一个需求接着一个需求,做着这个事情沟通着那个事...
2021-02-17 14:45:11
715
11
原创 MEM考试小结
今天考完了,写这个单纯是为了记录一下,回顾下整个历程,等自己以后老了看看自己原来的经历,接下来开启碎碎念的记录方式。大概是从6,7月份开始的,竟不记得为什么要考这个了,觉得自己应该趁着现在有精力为以后考虑一下,做了决定就走下去。志婷听说后把她去年在尚德的课程给了我,还给了我一堆打印的讲义。老爸老妈听说我要考研后特别反对,觉得我应该好好的找个对象呀啥啥的,不过他们也替我做不了决定,就像当初反对我学习计算机一样,我有自己的考虑,我又成功的说服了他们。1.考前回忆...
2021-02-17 13:19:31
766
4
原创 【MongoDB】单表数据备份和恢复
今天项目上线,mongo数据需要重新生成会覆盖掉之前的数据的某些部分,这里测试环境测试过没有问题,上线时应该也不会有问题的但是出于考虑还是把这个表备份了下。上线后伙伴执行方法后,发现以前数据不该覆盖的也覆盖了,所以这里需要将有问题的这部分数据恢复到之前的状态。这里用到了studio 3T软件,进行之前备份部分数据的导出以及数据的导入输入查询条件,点击导出按钮一直下一步,默认的导出问js...
2020-03-12 15:55:03
1318
1
转载 Java 5~14各个版本新特性总结
Java 5Java5开发代号为Tiger(老虎),于2004-09-30发行特性列表泛型 枚举 自动装箱拆箱 可变参数 注解 foreach循环(增强for、for/in) 静态导入 格式化(System.out.println 支持%s %d等格式化输出) 线程框架/数据结构 JUC Arrays工具类/StringBuilder/instrument...
2020-03-11 17:07:55
4562
原创 2020年总-向前冲
晚上与同学和朋友吃饭回来比较晚也有些疲倦和困意本该很快入睡,却因下午的咖啡思维有些活跃,躺了一个小时还没有睡着,脑袋中像在过电影一样会想着什么,那就不睡了,何必浪费时间,起来写篇总结吧1.拿到毕业证今年4月份的时候考了最后一个科目,这个考试是从13还是14年开始的来着本该早早的拿到毕业证,却因两个很重要的科目没有通过,这两科每年只能考一次且是重合的,所以虽然其他科目早早考完了,依然最早要等...
2020-01-14 23:02:32
463
2
原创 数据查询相差8小时,汉字查询匹配不到
经常开发中遇到一些小小的问题,总是解决掉就过去了,现在回想下之前遇到的一些小问题,记录一下子在一次新的项目中连接MySQL数据库时发现直接在数据库中执行是有数据的但执行程序就是没有数据,还有一个问题是执行模糊查询的时候查询数字或者字母的时候是可以的,查询汉字就匹配不出来,通过修改数据库的链接配置来解决。还有一些需要注意的,比如接收前端请求的时间参数时也可能需要设置格式和时区...
2020-01-14 14:24:35
225
1
原创 SQL优化(exist和notexist优化为join提速30s)
前段时间上线一个项目,后面因为查询超时直接不显示数据,在测试环境是没有问题的,也是因为在测试环境数据量原因没什么异常,当时因为考虑不周也没有想到测试和生产的区别。第一个SQL: SELECT OWNER .* FROM OWNER .T_OWNER_INFO OWNER WHERE OWNER .STATUS = '1' AND EX...
2019-10-24 20:15:50
1646
1
原创 2019年总——杂谈
这一年感觉是过的比较茫然的一年,行动力很差的一年,对于目标和方向不是很明确,想做的事情特别多,想法也很多但是做的却很少。在我最注重的技术方面,感觉我的水平还不如去年。或许我变得安逸了一些……回忆生活:基本每周末都会自己做饭,也尝试了很多新的做菜方法,做了很多之前没有做过的菜,每顿饭都会做两个菜以上。自己对吃饭没有什么特别的要求,只要有充足的菜给我吃,我就会感觉很幸福。早饭...
2019-02-12 14:34:25
419
3
原创 idea安装lombok插件后启动报错找不到符号
idea安装了lombok的插件,但是打开一个新的项目的时候如果里面使用了lombok插件每次启动都会报错,最近又有一个同事遇到,还是写下,应该也会有其他人遇到。很简单,在file——settings——build——compiler——Annotation Processors 找到下面框红的地方,打勾即可...
2019-02-10 17:44:46
8434
1
原创 【Oracle】常用函数总结
一、前言有那么一段时间,确切的是有近一年的时间,没有总结什么。总觉的简单的东西不想写了,如果不深奥,不高级,不系统就不写,就这样,近一年的时间我似乎没有研究什么新技术,但也确实实践了很多之前没有用过的东西,不过似乎不算深入,说来羞愧的不行。不过现在想想记录下自己之前用过的哪怕一点点简单的东西,也代表自己走过的痕迹了吧,当回忆的时候想想自己曾经记录过,也是值得的吧。下面记录几个之前用过的简单的O...
2018-12-15 14:48:38
394
1
原创 2018年总——不忘初心
之前写总结的时候似乎已经用过这个词语了,这次还打算用这个词感觉对自己未来的期盼和目标而言依然是很合适的。2017年过去了,进入了2018年,2017年回想这也是重大转折的一年,但一切也是水到渠成。2017年换了一份工作,在换工作前也有过压力,换工作前对自己努力补充能量,不断总结项目中的内容,和伙伴们一起度过了很充实的日子。工作:换工作前的压力9月份是一个节点,很多并肩作战的伙伴们都陆陆续续开始找工...
2018-03-03 17:24:29
4559
5
转载 【Orcale】分析函数 OVER(PARTITION BY... ORDER BY...)的讲解
OVER(PARTITION BY... ORDER BY...)的使用说明和意义这个函数长这个样子:OVER(PARTITION BY... ORDER BY...)顾名思义,PARTITION 中文是分割的意思,ORDER 是排序的意思,所以翻译一下就是先把一组数据按照制定的字段进行分割成各种组,然后组内按照某个字段排序。以实际案例来说明这个函数的使用,首先,我
2018-01-15 17:42:15
815
1
转载 spring 事务传播行为实例分析
Spring事务传播行为:spring特有的事务传播行为,spring支持7种事务传播行为,确定客户端和被调用端的事务边界(说得通俗一点就是多个具有事务控制的service的相互调用时所形成的复杂的事务边界控制)下图所示为7钟事务传播机制o 传播行为含义PROPAGATION_REQUIRED(XML文件中为REQ
2017-09-10 10:07:28
458
2
转载 【jvm】堆外内存
JVM可以使用的内存分外2种:堆内存和堆外内存. 堆内存完全由JVM负责分配和释放,如果程序没有缺陷代码导致内存泄露,那么就不会遇到java.lang.OutOfMemoryError这个错误。 使用堆外内存,就是为了能直接分配和释放内存,提高效率。JDK5.0之后,代码中能直接操作本地内存的方式有2种:使用未公开的Unsafe和NIO包下ByteBuffer。
2017-09-08 11:12:47
1821
1
转载 java 8 Hashmap深入解析 —— put get 方法源码
每个Java程序员都知道,HashMap是java中最重要的集合类之一,也是找工作面试中非常常见的考点,因为HashMap的实现本身确实蕴含了很多精妙的代码设计。 对于普通的程序员,可能仅仅能说出HashMap线程不安全,允许key、value为null,以及不要求线程安全时,效率上比HashTable要快一些。稍微好一些的,会对具体实现有过大概了解,能说出HashMap由数组+链表+R
2017-09-01 19:38:49
437
1
转载 多线程下双重检查锁的问题及解决方法
单例模式中有一种实现方式叫双重检查锁,主要是为了更好、更安全的实现单例功能。先来看一下该方法的核心代码: [java] view plain copy"font-size:18px;">public class DoubleCheckedLocking{ private static Instance instance;
2017-08-23 18:00:45
1814
5
原创 shiro使用总结-项目集成开发
使用shiro进行项目的集成开发,需要注意:shiro与spring整合,加入shiro对web应用的支持。1.在web.xml添加shiro Filter shiroFilter org.springframework.web.filter.DelegatingFilterProxy targetFilterLifecycle true s
2017-08-21 14:53:55
795
8
原创 shiro使用总结-自定义Realm
上篇博客的代码使用的是shiro自带的IniRealm,IniRealm从ini配置文件中读取用户的信息,大部分情况下需要从系统的数据库中读取用户信息,所以需要自定义realm。 shiro提供的realm 最基础的是Realm接口,CachingRealm负责缓存处理,AuthenticationRealm负责认证,AuthorizingRealm负责授权,
2017-08-21 11:33:42
685
6
原创 shiro使用总结-简单实现
一、whatShiro是apache旗下一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权限授权、加密、会话管理等功能,组成了一个通用的安全认证框架。二、why 既然shiro将安全认证相关的功能抽取出来组成一个框架,使用shiro就可以非常快速的完成认证、授权等功能的开发,降低系统成本。 shiro使用广泛,shiro可以
2017-08-20 21:41:51
1283
7
原创 【排序算法总结】直接插入排序
将一个记录插入到已排序好的有序表中,得到一个新的记录数增加1的有序表。先将序列的第一个记录看成是一个有序的子序列,第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。 下面以几个数为例进行插入排序:上面的排序是手动排出来的,取无序序列的第一个
2017-08-07 22:10:14
665
2
原创 【排序算法总结】选择排序
选择排序是每次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,直到最后排序完毕。下面是我写的用选择排序进行的10个数的排序过程: 首先假定第一个数7是最大的,然后用7和第二个数5比较,5比7小,取最小值为5,再和3比较,一直比到最后发现最小值为0,这时0和7交换位置。第二行,从第二个数开始比较,假定5是最大的,依次比较后面的几个数,找出比
2017-08-06 20:36:31
497
2
原创 【排序算法总结】冒泡排序
冒泡排序是一种简单的排序算法。它的基本思想就是从左到右对相邻的两个数依次进行比较和调整,如果是从小到大排序就是让较大的数往右移,较小的数向左移动,当发现左面的数比右面的数大时即进行交换 看下面的10个数进行排序的过程,第一趟:为i=1,需要比较j=9次第二趟:i=2,j=8第三趟:i=3,j=7第四趟:i=4,j=6第五趟:i=5,j=7…………第
2017-08-04 20:07:44
631
3
原创 【solr】使用总结
项目中第一次独立的使用solr,做了一个简单的demo,简单介绍下:需要的jar: org.apache.solr solr-solrj 4.7.0 org.noggit noggit
2017-07-31 09:20:13
483
10
原创 【MySql】mysql中的聚集索引和非聚集索引
如果表中一条记录占用磁盘1000个字节的话,对其中一个10个字节的字段建立索引,那么该记录对应的索引快的大小只有10个字节。了解到数据库中最小的空间单元是页,一个页在磁盘上占用8k,那么这个页就可以记录8条字段记录,可以存储800条索引。如果我们要从8000条记录的表中检索符合某个条件记录的话,如果没有索引的话,需要遍历8000条*1000字节/8k=1000个页面。如果有索引的话,则查询8000
2017-07-30 21:40:36
3989
13
原创 【spring】spring MVC视图解析器
在前一篇博客中讲了SpringMVC的Controller控制器,在这篇博客中将接着介绍一下SpringMVC视图解析器。当我们对SpringMVC控制的资源发起请求时,这些请求都会被SpringMVC的DispatcherServlet处理,接着spring会分析看哪一个HandlerMapping定义的所有请求映射中存在对该请求的最合理的映射。然后通过该HandlerMapping取得其对应的
2017-07-16 12:50:25
830
14
原创 【spring】spring容器
容器 是Spring框架的核心,是组件存活的地方。Spring容器使用DI管理所有组成应用系统的组件,协作组件之间建立联。而且,这些对象简洁易懂,降低耦合性,支持重用,容易被测试。 Spring提供了多种容器实现,可分为两类:Bean工厂 和应用上下文 。 1. BeanFactory : 由org.springframework.beans.
2017-07-02 21:52:55
801
9
原创 多线程run和start的区别
Thread的start和run1) start:用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到spu时间片,就开始执行run()方法,这里方法run()称为线程体,它包含了要执行的这个线程的内
2017-06-18 21:18:56
1287
2
原创 【JVM】类加载
疯狂讲义看了一遍,jvm看了一遍,也算清晰了些。一、what 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。二、when Java语言里,类型的加载、连接和初始化过程都是在程序运行期间完成的。三、how
2017-06-18 21:17:01
444
3
原创 【JVM】jvm内存模型及分区
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。 jvm所管理的内存将会包括以下几个运行时数据区域: 程序计数器: 1.程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示
2017-06-11 21:46:47
2309
15
NUnit-2.6.3.msi
2016-01-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人