3 CringKong

京东商城 - 后端研发工程师

我要认证

高级语言生产,底层思维学习

等级
TA的排名 5w+

ajax传输Json的正确方式

1.jquery的方式let data = { "name" : "xxx", "age" : 20}$.ajax({ url: 'localhost:8080/api/xxxxx', dataType: 'json', type: 'post', data: JSON.stringify(data), contentType: 'applica...

2020-02-27 18:42:12

Tomcat日志乱码解决

最近一直在用Springboot,很少再

2020-01-10 15:58:06

Redis实践-存储Java对象

Redis作为目前主流的缓存数据库,提供了丰富的数据结构,这次做的项目里我们大量使用了Redis作为数据缓存,甚至在某些场景下直接作为了数据库使用(当然这是建立在公司内部基础组件足够可靠的前提下),由于项目是从零开始,在使用Redis的过程中,遇到了一些设计上的挑战和问题,因此特别在博客里记录下来。最基础的肯定就是Java对象的存储,使用SQL型数据库的时候,可以借助ORM框架直接进行把Java...

2019-12-16 21:43:43

Log4j2配置以及滚动日志文件

最近项目里用到了Log4j2,在这里咱们就不谈Log4j2性能了,可以看一下官方给的测评图,真香。但是使用时因为和Log4j配置上有很大区别,也踩了不少坑,这里总结一下。1.包依赖使用Log4j2首先要引入Log4j2的包依赖,这里以maven依赖为例。 <dependency> <groupId>org.ap...

2019-12-12 21:32:23

静态代理和动态代理

静态代理和动态代理,都是基于代理模式实现的一种对于类的方法的增强。静态代理所谓静态代理,其实就是在编译期完成代理(JAVA术语中喜欢把编译期完成的东西叫做静态XX),就是我们之前写的代理模式,被代理类和代理类实现同一个接口,然后代理类通过依赖被代理类,实现方法的增强。public class StaticProxy { static interface Image{ void dis...

2019-09-21 15:29:24

HashMap扩容流程

文章目录为什么扩容?什么时候扩容?如何扩容?今天在和同时讨论HashMap的时候,提到了扩容和冲哈希的事情,然后我发现大家都是一种半懂不懂的状态。于是回去做了一番功课,写下这篇文章。HashMap的扩容,又被很多人叫rehash、重哈希,我本人是很反对这个叫法的,事实上HashMap扩容的时候,Node中存储的Key的hash值并没有发生变化,只是Node的位置发生了变化。首先说为什么需要扩...

2019-09-21 13:10:24

编译器重排序

在一些讲Java并发编程的书中,经常会出现JMM内存模型、volatile关键字、重排序、乱序执行等字眼,导致了有些刚开始学习Java并发编程的小伙伴一脸懵逼:这都是啥啊?文章目录1. 什么是编译器重排序1.1 定义1.2 举个例子1.3 重排序原因1.4 不仅仅是重排序2. 如何禁止?2.1 编译器屏障2.2 禁止重排序2.3 禁止寄存器存/取值2.4 volatile(C/C++)3. 结束...

2019-08-20 10:51:06

伪共享--多线程性能的破坏者

文章目录前言1.从CPU说起1.1 CPU缓存1.2 缓存行1.3 MESI协议2. 伪共享3. 解决方案4. 后记前言前几天看到了伪共享这个概念,但是并没有去做深入的了解,今天又看到了这个概念,才想起来要好好研究一下伪共享究竟是个什么东西,反而在学习的过程中又引发了我对JMM(Java内存模型)的思考,前几天有个同事分享了JMM相关内容,当时我感觉自己已经比较了解了,但是今天来看似乎并没有能...

2019-07-31 21:06:30

关于equals和hashCode,看这一篇真的就够了

这几天在尝试手撸一个类似Lombok的注解式代码生成工具,用过Lombok的小伙伴知道,Lombok可以通过注解自动帮我们生产equals()和hashCode()方法,因此我也想实现这个功能,但是随着工作的深入,我发现其实自己对于equals()和hashCode()的理解,也处在一个很低级的阶段。因此痛定思痛,进行了一番深入学习,才敢来写这篇博客。文章目录1、equals在Java中含义2...

2019-04-21 14:27:54

Quartz源码分析(下)

上一篇文章中,我们分析了Quartz框架的Job和Trigger的源码实现,上篇也说到,Quartz的核心代码是Scheduler,在本篇中,我们会分析一下Scheduler的源码实现。文章目录1、核心入口类:QuartzScheduler2、调度线程类:QuartzSchedulerThread3、任务执行线程池:SimpleThreadPool4、任务执行线程类:WorkerThread5...

2019-04-20 20:34:30

IDEA中Maven配置问题全解决

最近换了工作环境,以前的IDEA配置都没了,记得上次配置自己的IDEA还是在两年前?然后构建Maven项目时遇到了一些小插曲,记录下解决方案(PS:新手教程向)1. idea中maven默认配置的坑首先打开File->Settings这里可以直接搜索maven,就可以进入idea的Maven配置选项。我这里是idea默认的maven配置,可以看到默认的Maven目录是idea内置...

2019-04-20 11:04:16

Quartz源码分析(上)

文章目录1.一个想法2.Quartz总体架构2.1 Job和JobDetail2.2 Trigger2.3 JobStore3.上篇小结1.一个想法最近项目中用到了Quartz框架,作为定时任务的调度框架,无论是和Spring的完美融合还是直接使用Java代码来进行使用,可以说都非常的简单且稳定,某天突然想到如果没有Quartz框架,我们应该如何实现一个纯Java代码的定时任务调度框架呢?...

2019-04-13 23:06:13

到北京好远

我不知道应该怎么表达现在的心情,是悲哀还是无奈。两小时前,我在某社交软件上随机匹配到一个女孩子,语音连麦,刚开始我没有抱着任何想法,只是她说觉着我的声音特别好听,我就和她有一句没一句的聊着,她让我唱首歌,我尬唱了张国荣的《当爱已成往事》,没有特别的原因,只是因为我特别喜欢《霸王别姬》,没想到后来会和她继续聊下去。我不知道她叫什么。她是一个十八岁的女孩子,是江西人。之前我对江西没有太多的印象,只...

2019-04-07 00:28:45

Java线程池源码分析

文章目录一.Java线程池原理分析二.Java线程池源码分析1.接口继承关系2.核心类ThreadPoolExecutor2.1 入口方法 execute -- 调度器2.2 添加线程方法 addWorker2.3 Worker 内部类2.4 核心方法 runWorker -- 发动机2.5 任务获取方法 getTask3.流程回顾一.Java线程池原理分析上一篇是 线程池原理分析,只是说明了...

2019-03-31 22:17:35

Java线程池原理分析

文章目录1. 线程池设计理念1.1 减少创建/切换线程开销1.2 线程池模型1.2.1 BlockingQueue1.2.2 corePool1.2.3 maxmumPool1.2.4 RejectedExecutionHandler1.2.3 execute2.线程池使用实例3. 线程池工作流程其实这篇文章在去年就已经写完了,但是因为懒一直没有整理成博客,今天痛定思痛下定决心,也要把它发表出来...

2019-03-31 20:52:34

Docker入门--0.通俗易懂说docker

文章目录1.容器?虚拟机?2.Docker镜像2.1 Docker镜像就是不可写的一部分文件2.2 不得不说Docker容器3.Docker优势久闻Docker大名,但是又一直没有使用过Docker,接触Docker之前,也很疑惑Docker究竟是什么美女画皮,被各大厂商追捧,这个系列主要是Docker简易教程,尽量用最简单的例子说明Docker以及使用。1.容器?虚拟机?虚拟化技术已经发...

2019-03-16 19:00:18

Kafka学习记录--1.简介与单机安装

关于Kafka,到目前(2019.1.9)为止,已经是比较成熟的一个消息中间件了,不需要太多的解释,Kafka本身的高性能和可靠性,在这里我就不多说了,这个系列的几篇文章,我将记录Kafka的安装,集群配置,还有一些语言的API使用(主要是Java和Python),当然在实际环境中的部署以及一些坑,会顺便说一说解决方案。文章目录1.Kafka的安装1.1 下载Kafka安装包1.2 启动Zoo...

2019-01-15 21:56:32

实习的一点心得

九月份拿了京东的Offer以后,我没有选择去北京京东实习,而是跑到了我们学校所在地——青岛的一家公司实习,本身作为一个Java程序员,硬生生的在这写Python和PHP。这家公司是做图像识别的一家公司,但是算法岗不招本科生,本来想进来跟着大佬学一学图像识别的我,只能在这看公司的业务代码了。其实对于Python这门语言,大二学习了以后,陆陆续续在用,写写自动化脚本,写写爬虫什么的,其实蛮好用,不...

2018-11-30 16:15:57

Redis中使用Lua脚本

文章目录1.关于Lua2.redis中使用Lua2.1 在shell中尝试使用Lua脚本2.2 传入参数的脚本3.Python中使用Lua嵌入redis1.关于LuaLua [1] 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy...

2018-11-14 14:43:31

RESTful 和webservice

文章目录1.关于RESTful2.关于webservice1.关于RESTful关于RESTful,在这个时代已经是让人耳熟能详的概念了,但是好像有没有人能把这个词解释清楚, 我认为,RESTful其实是一种基于特定uri编写风格的web项目,其本质是基于http协议web服务,说的更通俗一些,就是去搭建了一个web工程,发布到容器以后,其uri会以一种特定的形式出现,来表达不同的信息。这里...

2018-10-26 11:02:08

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。