java
文章平均质量分 73
Chase888
这个作者很懒,什么都没留下…
展开
-
java-calendar常用方法和注意事项
介绍Calendar是java提供的一个可以操作日历的抽象类。默认实现是GregorianCalendar。可以和Date结合使用,用来获取当前时间是星期几、月份、一年第多少天等操作。后面介绍也会介绍几个常用场景的方法字段介绍这里介绍Calendar的常用字段。YEAR、MONTH等。直接通过代码我们可以更直观知道意思。 Calendar calendar = Calendar.getInstance(); calendar.setTime(getDate("2020-06-21原创 2020-06-21 18:50:13 · 494 阅读 · 0 评论 -
Spring配置Mybatis后,一级缓存失效的原因
原因:()转自http://blog.csdn.net/jield/article/details/50163327)1.mybatis的一级缓存生效的范围是sqlsession,是为了在sqlsession没有关闭时,业务需要重复查询相同数据使用的。一旦sqlsession关闭,则由这个sqlsession缓存的数据将会被清空。2.spring对mybatis的sqlsessio转载 2017-01-22 10:15:03 · 2246 阅读 · 0 评论 -
ElasticSearch-问题总结
最近使用ES(ElasticSearch)存放了一些业务上的数据,虽然之前也使用过,但是使用规模不大,只是存储了几台测试环境的数据。在新的业务上使用时间也有快2个月了,现在对于遇到的一些问题(坑),进行总结。并且后续继续更新一些相关阅读笔记和总结。1 中文分词相关ES自带的分词器是不支持中文分词的,需要中文分词需要自己重新安装对应的插件,目前我们使用的IK分词器。使用IK分词器话,原创 2017-08-06 22:59:29 · 861 阅读 · 0 评论 -
《大数据架构商业之路 从业务需求到技术方案》阅读笔记
1 本书以菜鸟和老司机对话的方式,以O2O互联网创业故事为背景。从基础业务需求出发,逐步介绍了不同场景下需要使用的和大数据架构中的相关技术。本书涉及到了很多大数据相关的技术。很多都是我们平时业务开发过程中需要用到的技术。2 主要包括:数据挖掘、机器学习商业智能等。 本书简单易懂 虽然有技术内容,但是讲讲都不是特别深,比较容易理解。3 对于有一些技术基础的读者,读起来会很顺畅。通过阅读这本书可以帮助指原创 2017-12-07 20:42:23 · 917 阅读 · 0 评论 -
Logback-将error日志统一输出到一个文件配置原理
根据Demo改编而来<?xml version="1.0" encoding="UTF-8"?><!-- scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。 scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。 当scan为true...原创 2018-04-03 20:04:20 · 11773 阅读 · 0 评论 -
Zookeeper使用及对应java api使用
官方文档-配置和cmd下操作命令官方文档-java接口配置创建默认配置文件zoo.cfg内容如下tickTime=2000dataDir=/var/lib/zookeeperclientPort=2181启动服务器命令bin/zkServer.sh start常用命令ZooKeeper服务命令: 在准备好相应的配置之后,可以直接通过...原创 2018-05-18 21:53:47 · 1192 阅读 · 0 评论 -
Mybatis之 ${}和#{}区别及动态传入表名
动态传入表名#和$区别{}#能防止sql注入,$不能$方式一般用于传入数据库对象,例如传入表名.MyBatis排序时使用order by 动态参数时需要注意,用$而不是#传入值是引用,而$是其本身:id = 1, select #{id} from tablename -> select 1 from tablename(引用) id = 1, selec...原创 2018-05-31 23:27:26 · 3319 阅读 · 1 评论 -
java8的stream操作- 整理版
整理一下网上 使用java8的stream的一些使用经验。扩展一下自己使用的范围。哈哈实际例子,抽取List 中的id得到ListList<Long> llist= list.stream().map(item->item.getId()).distinct().collect(Collectors.toList());或者List<Long>...原创 2018-06-28 20:31:56 · 1029 阅读 · 0 评论 -
java 工作流引擎调研总结
工作流基础概念 术语Activity工作流 –java运用几大工作流引擎对比activiti和jbmp对比-深入了解jBPM5与Activiti之间的差异对比csdn-JBPM(二)—JBPM工作流基本操作Springboot +activitiactiviti 入门系列jbmp入门总结 工作流定义:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触...原创 2018-07-31 22:35:51 · 7866 阅读 · 1 评论 -
redis单机实现分布式锁
单节点redis下分布式锁。原理:使用setnx,设置成功返回1,失败返回0,由于redis也是单线程的,所以一次只能有一个线程获取成功。程序异常情况:设置超时时间,避免程序挂掉锁无法释放。执行超时情况:为避免代码运行时间超过key设置的超时时间,从而释放了其他进程的锁问题。需要保存当前线程的value。在释放之前先检查key设置的value是否跟当前相等,类似CAS的思想,比较再删除。...原创 2019-08-11 23:20:14 · 385 阅读 · 0 评论 -
接口和抽象类理解
1 引言 最开始看java学习语法的时候,只是单纯从语法上理解接口和抽象类:即接口interface 中不能有方法的实现,抽象abstract类即可以有abstract方法,也可以有具体的实现方法。其实除了这之外,他们在语法和设计层面都还有其他区别:2 语法上的区别 2.1 变量定义区别:接口中的成本变量只能是public类型,而abstract的成员变量可以是各种类型。原创 2017-01-19 23:38:03 · 297 阅读 · 0 评论 -
JVM学习之GC常用算法
GC策略解决了哪些问题?既然是要进行自动GC,那必然会有相应的策略,而这些策略解决了哪些问题呢,粗略的来说,主要有以下几点。1、哪些对象可以被回收。2、何时回收这些对象。3、采用什么样的方式回收。GC策略采用的何种算法 有关上面所提到的三个问题,其实最主要的一个问题就是第一个,也就是哪些对象才是可以回收的,有一种比较简单直观的办法,转载 2017-01-12 23:10:30 · 473 阅读 · 0 评论 -
redis进阶3-排序
排序命令Sort1 sort 属于Key的命令可以对列表类型、集合类型、有序集合类型键 进行排序。1.1对集合排序。1.2对list进行排序1.3对有序集合排序,会忽略score,值对元素进行排序。1.4 对字符串的list进行排序1.5 limit参数,前多少名的用户redis 127.0.0.1:6379> SOR原创 2017-01-15 22:56:53 · 284 阅读 · 0 评论 -
StringUtils常用方法
StringUtils 方法的操作对象是 java.lang.String 类型的对象,是对 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。除了构造器,StringU转载 2016-05-11 11:14:46 · 1473 阅读 · 0 评论 -
注解使用
使用步骤:1 使用@interface定义一个注解文件:包括定义注解被限制使用的类型。(以(ElementType.METHOD)为例)2 创建另一个类A,在A中定一个方法使用注解3 获取类A的方法4 判断方法是否有步骤一定义的注解。(isAnnotationPresent)5 获取方法中的注解对象Annotation6 调用 method .getAnnotation。获原创 2016-05-11 20:21:35 · 320 阅读 · 0 评论 -
GSON解析转化成含有泛型的对象
转自:http://www.cnblogs.com/qq78292959/p/3781808.html解决的问题: 使用GSON和泛型解析约定格式的JSON串。 背景介绍: 1.使用GSON来进行JSON串与java代码的互相转换。 2.JSON的格式如下三种: 写道#转载 2016-05-19 17:30:57 · 10509 阅读 · 0 评论 -
Java 7之基础 - 强引用、弱引用、软引用、虚引用
1、强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下:Object o=new Object(); // 强引用当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。如果不使用时,要通过如下方式来转载 2016-08-31 10:53:20 · 293 阅读 · 0 评论 -
TimeUnit是什么?
转自:http://www.importnew.com/7219.htmlTimeUnit是什么?TimeUnit是java.util.concurrent包下面的一个类,TimeUnit提供了可读性更好的线程暂停操作,通常用来替换Thread.sleep(),在很长一段时间里Thread的sleep()方法作为暂停线程的标准方式,几乎所有Java程序员都熟悉它,事实上sleep方转载 2016-10-14 19:35:13 · 922 阅读 · 0 评论 -
Timer和ScheduledThreadPoolExecutor
参考:http://blog.csdn.net/lmj623565791/article/details/271094671 Timer在执行定时任务时只会创建一个线程,所以如果存在多个任务,且任务时间过长,超过了两个任务的间隔时间,会发生一些缺陷,既执行完一个任务之后,再去执行另一个现象,并不能达到真正的并发。2 TimerTask抛出RuntimeException,Time转载 2016-11-10 14:55:32 · 387 阅读 · 0 评论 -
ExecutorService中submit和execute的区别
三个区别:1、接收的参数不一样2、submit有返回值,而execute没有Method submit extends base method Executor.execute by creating and returning a Future that can be used to cancel execution and/or wait for completion.转载 2016-11-10 10:45:47 · 303 阅读 · 0 评论 -
详细解析Java中抽象类和接口的区别
转自:http://dev.yesky.com/436/7581936.shtml在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类转载 2017-01-05 23:23:10 · 500 阅读 · 0 评论 -
stop和suspend 不推荐使用的原因
stop()方法作为一种粗暴的线程终止行为,在线程终止之前没有对其做任何的清除操作,因此具有固有的不安全性。 用Thread.stop()方法来终止线程将会释放该线程对象已经锁定的所有监视器。如果以前受这些监视器保护的任何对象都处于不连贯状态,那么损坏的对象对其他线程可见,这有可能导致不安全的操作。 由于上述原因,因此不应该使用stop()方法,而应该在自己的Thread类中置入一个标志,用于控制转载 2017-01-06 09:55:08 · 699 阅读 · 0 评论 -
并发之notify、wait笔记
1 wait()、notify()和notifyAll()三个方法是Object声明的方法,所以由于每个对象都拥有monitor(即锁),所以让当前线程等待某个对象的锁,当然应该通过这个对象来操作了2 如果调用某个对象的wait()方法,当前线程必须拥有这个对象的monitor(即锁),因此调用wait()方法必须在同步块或者同步方法中进行(synchronized块或者synchro原创 2016-03-28 23:22:29 · 450 阅读 · 0 评论