自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

周洲 (Julie)

——努力成为顶尖&知性的J2SE架构师(主要是知性)

  • 博客(217)
  • 资源 (2)
  • 收藏
  • 关注

原创 【leetcode】1. 两数之和

第2周,做个简单的==题目:给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9...

2019-05-27 20:46:42 422 1

原创 配置SSL绕过https证书请求

postman 验证接口时候,如果是https请求,会报错:Self-signed SSL certificates are being blocked,可以点击右上角settings,把on改成off。在用httpclient请求的时候如何绕过证书呢?需要创建一个CloseableHttpClient对象。创建HTTPpost/get对象,setHeader。创建String...

2019-05-19 19:56:17 2041

原创 【leetcode】15.整数数组,三数之和为0

打卡第1周题目:给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c ,使得a + b + c =0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]...

2019-05-19 19:28:34 1043

转载 java集合框架

看到一篇关于java集合的文章,总结的很好,转载过来:https://www.cnblogs.com/xiaoxi/p/6089984.html一、集合框架图简化图:说明:对于以上的框架图有如下几点说明1.所有集合类都位于java.util包下。Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口...

2019-04-21 17:44:05 384

原创 MySQL引擎:MyIsam和Innodb的区别

InnoDB:定义:InnoDB是一个事务型的存储引擎,有行级锁定和外键约束。Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别,该引擎还提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统,它本身其实就是基于MySQL后台的完整数据库系统,MySQL运行时Innodb会在内存中建立缓冲池,用于缓冲数据和索引。但是该引擎不支持FULLTE...

2019-04-18 20:18:33 966 1

原创 Java中锁的分类

在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的内容是对每个锁的名词进行一定的解释。公平锁/非公平锁公平锁是指...

2019-03-31 21:22:15 219 1

原创 SpringBoot 应用轻松实现百万数据重清算

前言:       之前有些历史数据统计复杂,没有想好计算规则,就先把数据json串存到库里。现在需要对json进行计算,求和,取最大等,这些可以用java8里面的stream进行计算,然后单独存到一个表里面。历史表里大概300万条数据,一次5000条数据循环计算。大概20多分钟可以解决这些数据。       需要注意的是Mybatis虽然对sql的长度不做限制(我需要批量插入),但是my...

2019-01-07 16:27:04 3359 2

原创 spring任务调度quartz实战

需求:      三方接口偶尔不稳定,除了监控日志之外,我还需要一些基本信息快速定位问题。于是设计定时收取报警邮件,获取异常数据信息。采用了spring的任务调度框架quartz。基础概念:Job是一个接口,只有一个方法void execute(JobExecutionContext context),开发者实现该接口定义运行任务,JobExecutionContext类提供了调度...

2018-12-27 16:36:20 425 2

原创 AES 前后端加密数据传输

问题        敏感信息明文传输,一旦被劫持,就会造成密码泄露。LocalStorage是前端开发经常用到了,将一些信息本地化存储到客户端硬盘中。但是如果有一些密码等信息明文存储,就会造成安全问题。解决:       AES是一种对称加密的方法,前端加密,后端持密钥解密,就可以获取原来的内容。前端:AESutils.js:import CryptoJS from...

2018-12-13 14:28:42 2203 2

原创 带你走近线程池(二)源码视角分析ThreadPoolExecutor

一、主要方法罗列上篇博客中带你走近线程池(一 ):线程池工作机制和原理大概介绍了线程池的工作原理,本节主要看一下ThreadPoolExecutor类里面的具体参数和方法。主要讲下面几个方法 二、解析片段addWorker  创建线程 private boolean addWorker(Runnable firstTask, boolean core) { ...

2018-08-31 22:40:34 342 1

原创 带你走近线程池(一 ):线程池工作机制和原理

 一、为什么需要线程池随着系统用户的逐渐增多,为了提高用户响应,提供一个高并发,高可用的系统。java的线程池就可以解决很多问题。很多异步,并发的场景都可以用到线程池。1.降低重复创建线程的开销,统一管理线程。2.提高响应速度,任务提交后,不需要等待线程创建的过程。3.提高线程的可管理性。重复管理线程,避免创建大量的线程增加开销。  二、线程池的处理流程1.线程...

2018-08-31 22:40:05 1795 1

原创 下一个倒计时又在哪里

放纵之后的思考         看到自己在微博上的倒计时从1000,到777,到666到100.....         在煎熬中有所期待,害怕又期待她的到来。         看着后面的师弟师妹们同样的倒计时,自己又在想天啊 我的倒计时已经越界几百天 了。。。         而我却还没找到新的方向——没有紧张感,方向感,目标感的生活,真是过得很不踏实,影响心情。      ...

2018-07-29 20:45:08 470 8

原创 生活从来不缺鸡汤——

生活从来不缺鸡汤人什么时候才会思考人生?恩,就是话里的这个人生。为什么活着?——就是闲着的时候感慨最多。每个人都是段子手,尤其程序媛。我是一个强迫自己去自律的人,所以 我准备二次学习,重新出发,为啥更博,因为我还好面儿。自律,是以积极的态度去解决一些人生中痛苦的抉择。 就像现在我这样的状态,活在舒适区。惊醒我的——是,那些上了年纪的老哥们,来我司面试,让我一个小屁孩...

2018-07-23 22:55:59 1008 8

转载 Spring事务管理详解

事务的基本原理Spring事务的本质其实就是数据库对事务的支持,使用JDBC的事务管理机制,就是利用java.sql.Connection对象完成对事务的提交,那在没有Spring帮我们管理事务之前,我们要怎么做。Connection conn = DriverManager.getConnection();try { conn.setAutoCommit(false); //将自...

2018-07-03 15:31:11 366 2

原创 Java集合及concurrent并发包总结

1.集合包    集合包最常用的有Collection和Map两个接口的实现类,Colleciton用于存放多个单对象,Map用于存放Key-Value形式的键值对。  Collection中最常用的又分为两种类型的接口:List和Set,两者最明显的差别为List支持放入重复的元素,而Set不支持。List最常用的实现类有:ArrayList、LinkedList、Vector及Stack;Se...

2018-06-11 14:44:26 498 3

原创 java并发编程之线程池的使用

需求场景:     我们是B系统,A系统发mq消息,我们从队列里面拿任务,需要有多个数据制备的请求,于是开不同的线程去请求,最后一起返回。所以用线程池可以提高任务处理的效率。一、线程池构造器的各个参数含义:corePoolSize:核心池的大小,这个参数跟后面讲述的线程池的实现原理有非常大的关系。在创建了线程池后,默认情况下,线程池中并没有任何线程,而是等待有任务到来才创建线程去执行任务,除非调用...

2018-04-28 19:23:17 525 5

原创 No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK.

问题:   springboot项目在运行package的时候,报错:No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK解决:   从上图中可以看出, java编译环境未jre1.7.0_17, 也就是说并没有配置成jdk目录, 然后看Eclipse--&gt...

2018-04-25 16:29:08 435 4

原创 ThreadLocal保证线程安全的原理

1、线程安全问题    这里我们主要关注的是Servlet的线程安全,我们知道Servlet是用来处理用户http请求的。当web容器接收到一个对Servlet的请求时,web容器就会分配一个工作线程来处理请求,在执行时,如果又有一个请求进来,web同样会再分配一个线程去响应,而不管这个请求和上一个请求是不是对同一个Servlet的请求。Web容器出于效率和节省内存的考虑,在其中只会保存Servl...

2018-04-19 17:48:14 6412 4

原创 MySQL常用函数总结

MySQL常用函数表数学函数作用ABS(x)返回x的绝对值CEIL(x),CEILING(x)返回大于或者等于x的最小整数FLOOR(x)返回小于或者等于x的最大整数RAND()返回0~1的随机数RAND(x)返回0~1的随机数,x值相同时返回的随机数相同SIGN(x)返回x的符号,x是负数、0、正数分别返回-1、0和1PI()返回圆周率TRUNCATE(x,y)返回数值x保留到小数点后y位的值R...

2018-04-03 17:03:01 413 3

转载 单例模式的几种写法

单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。一般介绍单例模式的书籍都会提到 饿汉式 和 懒汉式 这两种实现方式。但是除了这两种方式,本文还会介绍其他几种实现单例的方式,让我们来一起看看吧。 简介单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,...

2018-03-28 13:17:37 365 4

原创 Mysql 索引失效的情况总结

1. 随着表的增长,where条件出来的数据太多,大于15%,使得索引失效(会导致CBO计算走索引花费大于走全表)2. 统计信息失效      需要重新搜集统计信息3. 索引本身失效      需要重建索引下面是一些不会使用到索引的原因 索引失效 1) 没有查询条件,或者查询条件没有建立索引 2) 在查询条件上没有使用引导列 3) 查询的数量是大表的大部分,应该是30%以上。 4) 索引本...

2018-03-08 14:59:19 1471 2

原创 年终总结 占位

占位

2018-02-28 21:09:21 377

转载 Java 8 Stream

Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如...

2018-02-28 17:13:59 352 3

原创 Java 解决Emoji表情过滤问题

问题:    Emoji表情从三方数据中获取没有过滤,导致存入DB的时候报错。原因:UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。解决方案:1.将已经建好的表也转换成utf8mb4,这个方法不可行,有的时候就不灵了。2,写个工具类:过滤掉emoji表情符号public class EmojiFilter { ...

2018-02-26 14:29:57 22012 10

原创 Git回滚代码到某个commit

回退命令:$ git reset --hard HEAD^ 回退到上个版本$ git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前$ git reset --hard commit_id 退到/进到 指定commit的sha码...

2018-02-26 14:20:46 1310 5

原创 bump-the-pointer 和 TLABs 加速内存分配

HotSpot虚拟机使用了两种技术来加快内存分配。他们分别是是”bump-the-pointer“和“TLABs(Thread-Local Allocation Buffers)”。Bump-the-pointer技术跟踪在伊甸园空间创建的最后一个对象。这个对象会被放在伊甸园空间的顶部。如果之后再需要创建对象,只需要检查伊甸园空间是否有足够的剩余空间。如果有足够的空间,对象就会被创建在伊甸园空间,

2018-01-31 19:38:24 2207 4

原创 CMS和G1的对比分析

1、CMS收集器  CMS收集器是一种以获取最短回收停顿时间为目标的收集器。基于“标记-清除”算法实现,它的运作过程如下:1)初始标记  2)并发标记 3)重新标记  4)并发清除  初始标记、从新标记这两个步骤仍然需要“stop the world”,初始标记仅仅只是标记一下GC Roots能直接关联到的对象,熟读很快,并发标记阶段就是进行GC Roots Tracing,而重新标记阶段则是为了

2018-01-31 17:27:12 16650 3

原创 对G1垃圾回收器的理解

1:了解G1G1的第一篇paper(附录1)发表于2004年,在2012年才在jdk1.7u4中可用。oracle官方计划在jdk9中将G1变成默认的垃圾收集器,以替代CMS。为何oracle要极力推荐G1呢,G1有哪些优点?首先,G1的设计原则就是简单可行的性能调优开发人员仅仅需要声明以下参数即可:-XX:+UseG1GC -Xmx32g -XX:MaxGCPauseMillis=200其中-X

2018-01-30 10:41:58 16384 5

原创 java 垃圾回收算法与常见的垃圾回收器

一、垃圾回收算法        在确定了哪些垃圾可以被回收后,垃圾收集器要做的事情就是开始进行垃圾回收,但是这里面涉及到一个问题是:如何高效地进行垃圾回收。由于Java虚拟机规范并没有对如何实现垃圾收集器做出明确的规定,因此各个厂商的虚拟机可以采用不同的方式来实现垃圾收集器,所以在此只讨论几种常见的垃圾收集算法的核心思想。1.Mark-Sweep(标记-清除)算法       这是最基础的垃圾回收

2018-01-23 16:56:14 782 3

原创 各种json工具类对比

fastJson的优势是在json转化为对象的时候比较快,而对象转化为json格式的字符串的时候性能上是没什么优势的,反而是最差的。结论:在做了初始化的情况下GSON的速度都是最快的。在使用GSON或jackJson做Json处理时最好有个全局的解析对象,不要每次调用的时候都去生成那样对性能的影响很大,另外经过测试,这里面没有线程安全问题。fastJson在json转化为对象的应用场景下性能比较突

2017-12-29 18:50:50 3160 3

原创 Alibaba fastjson 序列化与反序列化

fastjson在官网的定义号称最小最快 多态的json序列化工具。fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson。并且还超越了google的二进制协议protocol buf。JSON这个类是fastjson API的入口,主要的功能都通过这个类提供。下面是这个类的重要几个方法介绍:序列化APIpackage com.aliba

2017-12-28 15:06:01 8244 2

转载 Logstash 配置总结

#整个配置文件分为三部分:input,filter,output#参考这里的介绍 https://www.elastic.co/guide/en/logstash/current/configuration-file-structure.htmlinput {  #file可以多次使用,也可以只写一个file而设置它的path属性配置多个文件实现多文件监控  file {    #type是给结果

2017-12-12 14:03:44 680

原创 ElasticSearch 入门实例

ELK由Elasticsearch、Logstash和Kibana三部分组件组成;Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据

2017-12-07 21:19:13 938 1

原创 线程池原理

占位

2017-11-30 18:13:07 364

原创 eclipse使用generator插件问题汇总

问题一: 在Eclipse中使用Mybatis的自动生成对象的工具去生成Java对象时,选中配置文件,右键生成时出现 "Unexpected error while running MyBatis Generator. Exception getting JDBC Driver"

2017-11-24 14:09:20 727 1

原创 Linux查看日志 tail cat sed 等命令

linux命令

2017-11-21 09:46:00 2122 1

原创 Zookeeper之Zab协议

ZAB:ZooKeeper的Atomic Broadcast协议,能够保证发给各副本的消息顺序相同。Zookeeper使用了一种称为Zab(ZookeeperAtomic Broadcast)的协议作为其一致性复制的核心,其特点为高吞吐量、低延迟、健壮、简单,但不过分要求其扩展性。

2017-11-08 09:40:34 533

原创 activemq 关于死信队列的配置应用

需求场景:       由于测试环境应用复杂的原因,造成了jms死信队列一直挤压很多数据,从而导致存储爆满,进而造成了各个客户端不能正常发送消息。针对这些死信队列,一般都没有利用价值的。        为了避免某队列的死信队列的挤压,而使整个jms不可用,我们选择了通过ActiveMQ的配置,直接丢弃掉死信队列的消息。缺省死信队列(Dead Letter Queue)叫做ActiveMQ.DLQ所

2017-10-23 19:13:33 5818 3

原创 maven 检查jar依赖冲突和版本冲突 以及解决

问题描述:          项目中用到dubbo实现分布式远程调用服务,整合dubbo的时候,遇到一个Spring的错误,NoSuchMethodError的问题。由于导入了不同版本的jar包造成的。就是说,当我发布了一版2.0jar的时候里面有个我新写的方法 adduser,但是1.0里面没有,pom没有及时更新jar,这样就会有NoSuchMethodError。我们怎么知道是否是jar包冲

2017-10-11 19:19:21 4297

原创 Java并发实战:CountDownLatch实现多线程抽题

1.定义CountDownLatch这个类能够使一个线程等待其他线程完成各自的工作后再执行。CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后,计数器的值就会减1。当计数器值到达0时,它表示所有的线程已经完成了任务,然后在闭锁上等待的线程就可以恢复执行任务。2.区别CyclicBarrierCountDownLatch和CyclicBa

2017-10-04 17:45:18 505 1

mybatisdomo

基本的Mybatis搭建

2016-04-11

API函数大全

有关于VB中API函数的各种详细具体的应用,对于VB高级编程很有帮助

2014-03-01

空空如也

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

TA关注的人

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