- 博客(36)
- 收藏
- 关注
原创 Java 8 日期时间类
Java 8 推出了新的日期时间类,比较常使用的有LocalDateTime,ZonedDateTime,ZoneId,ZoneOffset,DateTimeFormatter,通过这几个类可以使处理时间问题变得简单并且不容易出错定义LocalDateTime:A date-time without a time-zone in the ISO-8601 calendar system, such as 2007-12-03T10:15:30.ZonedDateTime:A date-time w
2021-01-28 21:40:21
234
原创 MySQL RR隔离级别解决幻读问题?
首先,讲mysql的隔离级别之前需要复习一下事务的四个特性(注:mysql存储引擎InnoDB)(待完善)事务的四个特性(ACID):原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)数据库允许多个并发事务同时对其数据进行读写和修改的能力,可能出现的问题有:脏读不可重复读幻读隔离性有不同的级别事务隔离级别读未提交(read uncommitted)读提交(read committed)可重复读(rep
2021-01-27 20:09:23
1744
3
原创 Java 8之函数式编程(Function、Consumer、Supplier、Predicate)
1、Function定义public interface Function <T, R>Represents a function that accepts one argument and produces a result.(表明接受一个参数和产生一个结果的function)T: the type of the input to the function(入参类型)R: the type of the result of the function(出参类型)调用函数R ap
2020-12-24 11:33:06
778
1
原创 linux系统使用crontab定时删除日志文件
1,首先编写shell 脚本示例:定时删除7天外的数据clean.sh#!/bin/bashLOG_PATH="/xxxx/xxx";find $LOG_PATH -mtime +7 -exec rm -fr {} \;2,配置crontab每天1点10分执行$ crontab -e输入内容10 1 * * * /dir/clean.sh也可以通过shell脚本方式写crontab...
2020-10-27 16:33:30
587
原创 Mysql 给字符串类型字段 加索引方法
前提首先,mysql是支持前缀索引的,我们可以定义字符串的一部分作为索引。必要性如果你创建索引不指定前缀长度,则索引包含整个字符串,占用空间比较大,如果我们使用好前缀索引,可以即节省空间又不会增加太多查询成本(使用前缀索引,可能会增加扫描次数)实施方法找出合适的前缀索引长度是关键查询方法select count(primaryKey) as total from tableName;select count(distinct left(columnName, x)) as totalx f
2020-10-26 12:19:59
876
原创 Java ThreadLocal详细使用示例
1、定义Threadlocal类可以实现线程本地存储的作用,它是线程Thread的局部变量,每个线程Thread使用独立的副本。2、要点不存在线程共享问题一般使用private static修饰3、ThreadLocal实现原理首先,一个线程可以有多个ThreadLocal对象,是因为线程Thread中维护了一个ThreadLocal.ThreadLocalMap的map,如下所示Thread.java /* * InheritableThreadLocal values
2020-09-28 18:00:48
1831
原创 Guava 本地缓存CacheBuilder使用详解
CacheBuilder使用CacheBuilder可以构建出两种类型的cache,LoadingCache和Cache:它们如下特点(非必选,可配置):自动装载实体到内存LRU替换策略基于时间的失效策略,可按最新访问或者最近写入计算时间key自动包裹(wrapped)在弱引用value自动包裹在弱引用或者软引用换出或删除数据时有通知访问缓存统计用法举例LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder(
2020-09-28 14:45:25
9537
原创 Guava RateLimiter详解
Guava RateLimiter详解一个rate limiter包含了最高的许可数量,及可执行的最高速率。每个acquire()都会堵塞直到获取许可,获取许可则许可数量减一。Rate limiter 与 Semaphore区别Rate limiter 限制的是速率Semaphore限制的是并发数RateLimiter使用方法一个RateLimiter一般直接按速率定义例1:每秒2速率限制执行final RateLimiter rateLimiter = RateLimiter.cre
2020-09-27 10:48:25
493
转载 深入springboot原理——一步步分析springboot启动机制(starter机制)
前言使用过springboot的同学应该已经知道,springboot通过默认配置了很多框架的使用方式帮我们大大简化了项目初始搭建以及开发过程。本文的目的就是一步步分析springboot的启动过程,分析springboot是如何帮我们简化这个过程的。springboot帮我们做了什么通常搭建一个基于spring的web应用,我们需要做以下工作:1、pom文件中引入相关jar包,包括spr...
2019-11-08 18:43:56
145
原创 mac pbcopy和pbpaste使用
Mac系统下终端可以使用pbcopy和pbpaste来实现复制粘贴功能MacBook-Pro:~ user$ pbcopy < dir/filenameMacBook-Pro:~ user$ pbpaste > dir/newfile
2019-11-07 11:31:55
4452
原创 dependencyManagement与dependencies区别
简单区别如下:1,dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显式的声明需要用的依赖。2,dependencies即使在子模块中不写该依赖项,那么子模块仍然会从父项目中继承该依赖项(全部继承)。...
2019-11-06 11:09:47
111
原创 curl命令常见用法
centos7服务上,一般没有桌面系统,我们如果要使用http请求,curl是个不错的选择1 ,简单用法在 curl 命令后加上网址,就可以看到网站返回信息,最常用的curl www.baidu.com如果要把这个网页保存下来,可以使用 -o 参数2,显示头信息-i 参数可以显示 http response 的头信息,连同网页代码一起。-I 参数则只显示 http response 的...
2019-08-16 12:04:08
1415
原创 awk实现以tab分割
最近碰到一个日志文件格式,跟参数内容已tab作为分割服为了统计按某些参数的量,需要提取可以使用awk -F'\t' '{print $1}' a.log 如果是shell中使用awk,使用下面这种方式awk 'BEGIN{IFS='\t'}{print $1}' a.log否则会出错,原因 ‘\t’ 是 shell默认分割符之一...
2019-07-08 15:54:03
25001
3
原创 JQuery获取html页面表格指定列数据
如题,为了复制html页面表格中某一列的数据,全部复制下来,一列一列删除比较费事,所以就查了下jquery方法直接在开发者工具console Tab栏输入$('#table tbody tr td:nth-child(2)').map(function(){return $(this).text(); }).get().join(",")这样就获取了指定第二列的数据...
2019-07-02 16:06:21
1181
原创 Java String字符串替换replace和replaceAll不生效
使用java String类型自带replace和replaceAll方法会出现不生效的问题,主要是因为写法的问题String类的replace方法是带有返回值的,并不是修改String对象本身举例public static void main(String[] args){ String str = "aaa"; String ret = str.replace(...
2019-03-28 10:19:16
6375
1
原创 Java xml数据格式返回实现
前言:对于服务器后端开发,实现的大部分接口,返回的数据格式一般要求都是json,但是也有使用xml格式的网上有多种实现方式,这里使用注解的方式把java类使用@RequestBody实现Java对象和XML/JSON数据自动转换很多人会认为接口方法使用@Controller搭配@ResponseBody和@RequestMapping注解后,java对象会转换成json格式返回。但实际上配...
2019-03-23 11:47:51
6928
原创 guava ListenableFuture实现多线程
最近项目中多线程的实现使用了ListenableFuture,所以就研究了下,使用ListenableFuture接口使java的多线程实现(参考另外一篇java多线程实现)变的简单jar包引入首先在项目pom.xml文件中引入 <dependency> <groupId>com.google.guava</groupId> ...
2019-03-21 20:37:51
1437
原创 使用Optional类优化你的代码
项目中越来越多的接触Optional类,使用它能够优化我们的代码,需要判断NULL的地方基本都可以类方法public static Optional ofNullable(T value),下面举例说明(不定时更新)Optional类方法具体定义参见另一篇博客便于理解,定义类 Personpublic class Person { private String name; ...
2019-02-18 18:07:32
943
原创 设计模式之建造者模式
设计模式之建造者模式什么是建造者模式Builder接口ConcreteBuilder对象Directorprocduct什么是建造者模式最近接手一个Java项目 ,代码里不少地方用到了建造者模式,所以就想着把这种设计模式好好学习一下,整理一下建造者模式 也可以叫生成器模式,是一种创建型的设计模式,简单的理解就是使用简单的对象创建复杂的对象,而工厂模式则偏向于隐藏创建细节,而对象的创建本身并不...
2019-01-25 16:26:49
147
原创 设计模式系列-总则
最新在看一本书《设计模式之禅》,感觉写的挺好,所以学习加总结设计模式的六大原则我这里只是简单的列一下大的原则和自己的理解,详细内容可以去看我上面提到的那本书1,单一职责对于接口设计,要做到职责单一,结构清晰 我的理解:不管是接口还是函数,功能要清楚,不用一个接口实现好多功能,这样如果它提供的一个功能要修改,可能影响其他功能,不如拆成多个接口2,里氏替换主要继承...
2018-09-14 11:40:21
182
原创 我的知识图谱
把自己工作中用到的知识进行整理,并且不定时更新,记录下Javanasj分词中文分词的java实现,比较好用 github地址:https://github.com/NLPchina/ansj_seg
2018-07-20 16:53:32
365
原创 BeanUtils.copyProperties()与PropertyUtils.copyProperties()对比
BeanUtils.copyProperties()与PropertyUtils.copyProperties()1、 通过反射将一个对象的值赋值个另外一个对象(前提是对象中属性的名字相同)。2、 BeanUtils.copyProperties(obj1,obj2); 经常闹混不知道是谁给谁赋值,无意中先到”后付前”这个词来帮助自己记忆这个功能。即将obj2的值赋值给obj1。3、 ...
2018-07-18 17:47:05
790
原创 Java 8之Stream用法
Java 8 中的 Stream 是对集合(Collection)对象功能的增强,结合Lambda 表达式,极大的提高编程效率和程序可读性 Stream常用的生成方式有:Collection.stream()和Collection.parallelStream(),也可以使用数组Arrays.stream(T array) 或者直接使用Stream.of()使用Collection接口提供的...
2018-07-18 17:34:18
976
原创 java 8新特性之lambda,简化你的代码
刚开始工作时,使用的语言是ruby,使用Ruby可以写出简短而又功能强大的代码,ruby语法简单最近一年接触的都是java项目,刚刚接手到的一个项目使用了很多java 8的特性,代码看起来简洁许多,特此研究了一下lambda语法:JavaScript 是最典型的函数式编程语言。它有个好处,提供了一种强大的功能——闭包,相比于传统的编程方法有很多优势,闭包是一个可调用的对象,它记录了...
2018-07-18 16:14:26
514
原创 Java 8之Optional类
Optional类Java8 新增了非常多的特性,这里主要研究下Optional类,做个记录Optional 是个可以包含null值的容器对象,如果值存在,isPresent()方法返回true并且使用get() 获取值,类的具体定义可以看源码主要用的的类方法:static &lt;T&gt; Optional&lt;T&gt; of(T value) 返回一个Optional对...
2018-05-03 19:22:25
358
原创 java多线程和spring多线程实现
java多线程和spring多线程实现线程thread线程的创建方法: 1、继承Thread类创建新的可执行线程class PrimeThread extends Thread { long minPrime; PrimeThread(long minPrime) { this.minPrime = minPrime; } ...
2018-04-02 16:37:18
4583
原创 static静态变量使用@Value注入方式
使用@Value 注解static类型@Componentpublic class MyConfig { @Value("${env}") private static String env; public static String getEnv() { return env; } public static void setE...
2018-03-06 17:19:52
27405
5
原创 SpringBoot spring bean注册方法
把一个class声明成一个或多个bean,并且能够被spring容器处理的方法:1,使用 AnnotationConfigApplicationContextAnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();ctx.register(AppConfig.class);ctx.ref...
2018-02-18 23:19:11
1882
原创 springboot相同类名bean引发问题
使用第三方jar包里的注解时,特别是这个注解是要把bean注入到spring的时候,写代码的时候IDE不会提升错误,但是运行时会出现bean不存在报错原因: 1,要注解的两个类来之不同的依赖jar包,但是有相同的类名2,第三方注解把这两个类注册到不同的java文件里面时,可能就会出现错误注:spring没有在编译时就检查出来 也是因为第三方注解...
2018-02-18 23:14:38
9395
原创 字符串替换各语言版本
字符串替换。1、ruby gsub2、python str.replace or re.sub()3、java str.replaceFirst("old","new")
2017-06-21 18:06:00
322
原创 Redis 使用方法总结
1、启动redis $redis-server$redis-server redis.conf2、客户端连接$redis-cli
2017-06-13 22:32:36
268
原创 Transpose File
194.Transpose File 题目: Given a text file file.txt, transpose its content.
2017-06-02 14:06:36
327
原创 Linux 大文件分割split
linux下文件分割可以通过split命令来实现 简单实用方法: usage: split [-a sufflen] [-b byte_count] [-l line_count] [-p pattern] [file [prefix]]
2017-06-02 13:28:56
685
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人