越努力,越幸运

微信公众号:JoonWhee。专注于Java原创知识交流,优秀技术文章、职场人生、面试经验分享。...

排序:
默认
按更新时间
按访问量

使用Guava实现限流器

为什么需要限流?在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。限流可以认为服务降级的一种,限流通过限制请求的流量以达到保护系统的目的。一般来说,系统的吞吐量是可以计算出一个阈值的,为了保证系统的稳定运行,一旦达到这个阈值,就需要限制流量并采取一些措施以完成限制流量的目的。比如:延迟处...

2018-06-17 13:39:09

阅读数:19

评论数:0

MyBatis根据表结构自动生成PO/Mapper代码的最佳实践

前言当我们新建一个表时,在项目中至少要新建3个文件:实体类*PO.java、接口类*POMapper.java、存放SQL的接口实现类*POMapper.xml。对于字段少的表来说,可能你不会在意,但是如果是一个字段超过几十个的表,那你可能要写的头昏眼花了。并且,当字段多了,手写错误的几率特别大。...

2018-06-04 23:10:42

阅读数:29

评论数:0

Log4j2与Slf4j的最佳实践

前言日志对于项目的重要性不言而喻,现在市面上的日志框架多种多样:Log4j、Log4j2、Slf4j、JDKLog、Logback等等,如果没有真正深入了解过,可能会被搞得眼花缭乱。本文将介绍目前Java项目中最常见的Log4j2 + Slf4j的使用组合,这也是我自己项目中目前使用的。另外,由于...

2018-05-07 21:38:30

阅读数:42

评论数:0

Java集合:HashMap详解(JDK 1.8)

前排提示:本文内容贼长,但是是JDK 1.8 HashMap不可多得的超级深入解析文章,如能静下心来仔细阅读,相信会有不小的帮助。概述JDK 1.8对HashMap进行了比较大的优化,底层实现由之前的“数组+链表”改为“数组+链表+红黑树”,本文就HashMap的几个常用的重要方法和JDK 1.8...

2018-01-07 18:00:41

阅读数:703

评论数:0

0基础Java自学之路

前言最近逛知乎的时候,经常看到有人在问“0基础如何自学Java”、“干了几年**,想转行干Java靠谱吗”等问题。不禁让我回想起了自己当初自学Java的日子,因此在这个周末花了点时间,整理了这篇文章,希望对这些正打算自学Java的或者打算转行Java的人有点帮助。我的自学之路先告诉你们我的自学过程...

2018-03-25 23:52:08

阅读数:451

评论数:3

欢迎关注我的微信公众号

在CSDN写第一篇文章的日期是2012-08-28,到今天已经有5年多的时间了。博客访问量也已经超过91万,评论超过210条,很高兴自己的文章能帮助到一些人。最近,我决定搞一个公众号,主要原因是:CSDN无法推送,文章送达率低,流量转化率低。CSDN的移动端使用频率低,而现在很多人都习惯在移动端看...

2018-02-24 18:06:54

阅读数:114

评论数:0

排序算法:快速排序

概述手写排序算法几乎是程序员面试必问的题目,大多数人都会选择写冒泡排序,如果此时你写的是其他改进过的排序算法,相信会让面试官眼前一亮。本文将介绍常见的排序算法中的“快速排序”。基本思想快速排序(QuickSort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的...

2018-04-24 22:02:57

阅读数:65

评论数:0

排序算法:选择排序

前言上一次,我们介绍了排序算法中“龟速三兄弟”的二哥“插入排序”。今天,我们继续介绍“龟速三兄弟”中的小弟——“选择排序”。和二哥“插入排序”一样,由于同样是“龟速三兄弟”中的一员,但是处理过程没有大哥“冒泡排序”那么简单明了,因此有不少人可能都没接触过“选择排序”,本文将通过例子来介绍“选择排序...

2018-04-12 23:04:49

阅读数:46

评论数:0

Java中输出当前时间的各种方法(较齐全)

package com.grace.test; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; ...

2014-05-05 16:13:21

阅读数:27470

评论数:0

mysql启动和关闭外键约束的方法(FOREIGN_KEY_CHECKS)

在MySQL中删除一张表或一条数据的时候,出现[Err] 1451 -Cannot delete or update a parent row: a foreign key constraint fails (...)这是因为MySQL中设置了foreign key关联,造成无法更新或删除数据。可...

2014-05-02 10:40:28

阅读数:46384

评论数:0

常用的Hql语句

// HQL: Hibernate Query Language. // 特点: // >> 1,与SQL相似,SQL中的语法基本上都可以直接使用。 // >> 2,SQL查询的是表和表中的列;HQL查询的是对...

2014-06-05 17:00:38

阅读数:49620

评论数:9

JBPM学习(一):实现一个简单的工作流例子全过程

最近发现这篇文章挺多人看的,也挺多人有疑问,我很想帮你们解答,但是很无奈,这篇文章只是我当时在自学时看的一个教程的记录,当时对JBPM也没有深入去学习,并且到现在也已经快4年了,这期间我都没用过JBPM,因此JBPM的东西我也忘得差不多了。庆幸的是我把当时看的教程保存了下来,因此如果对此文章有疑问...

2014-05-02 17:32:34

阅读数:52938

评论数:30

Maven较完整教程

1. Maven介绍  1.1. 简介 java编写的用于构建系统的自动化工具。目前版本是2.0.9,注意maven2和maven1有很大区别,阅读第三方文档时需要区分版本。 1.2. Maven资源 见官方网站;The 5 minute test,官方简易入门文档;Getting Started...

2015-10-29 15:41:10

阅读数:37456

评论数:1

JAVA之NIO按行读写大文件,完美解决中文乱码问题

前言最近在开发的时候,接到了一个开发任务,要将百万行级别的txt数据插入到数据库中,由于内存方面的原因,因此不可能一次读取所有内容,后来在网上找到了解决方法,可以使用NIO技术来处理,于是找到了这篇文章http://www.sharejs.com/codes/java/1334,后来在试验过程中发...

2016-02-01 20:46:20

阅读数:11628

评论数:5

Java并发:ThreadLocal详解

前言ThreadLocal的作用是提供线程内的局部变量,这种变量在多线程环境下访问时能够保证各个线程里变量的独立性。ThreadLocal无论在项目开发还是面试中都会经常碰到,本文就ThreadLocal的使用、主要方法源码详解、内存泄漏问题展开讨论。1.基本使用package com.joonw...

2017-12-02 22:20:19

阅读数:326

评论数:0

Java虚拟机:Java内存区域

动机最近一段时间细读了周志明的《深入理解Java虚拟机》,加上近期自己要在组内进行知识分享,于是打算把分享的主题就定为JVM方面的,在制作PPT的过程,反复把此书翻了不少遍,于是想着顺便整理出一份笔记供大家学习。由于自己的水平有限加上为了保证内容的准确性,因此文章大部分内容取自此书的原内容,少部分...

2017-12-30 15:32:38

阅读数:141

评论数:0

Java虚拟机:垃圾收集原理和垃圾收集器

概述垃圾收集需要完成的3件事情:哪些内存需要回收?什么时候回收?如何回收?目前内存的动态分配与内存回收技术已经相当成熟,一切看起来都进入了“自动化”时代,那为什么我们还要去了解GC和内存分配呢?答案很简单:当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要...

2017-12-30 18:00:47

阅读数:238

评论数:0

Java虚拟机:内存分配与回收策略

概述Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。关于回收内存这一点,我们已经使用了大量篇幅去介绍虚拟机中的垃圾收集器体系以及运作原理,现在我们再一起来探讨一下给对象分配内存的那点事儿。对象的内存分配,往大方向讲,就是在堆上分配...

2017-12-31 14:40:29

阅读数:158

评论数:0

Java并发:Java内存模型(JMM)与线程

概述多任务处理在现代计算机操作系统中几乎已是一项必备的功能了。在许多情况下,让计算机同时去做几件事情,不仅是因为计算机的运算能力强大了,还有一个很重要的原因是计算机的运算速度与它的存储和通信子系统速度的差距太大,大量的时间都花费在磁盘I/O、网络通信或者数据库访问上。如果不希望处理器在大部分时间里...

2017-12-31 17:15:11

阅读数:144

评论数:0

Java并发:线程安全与锁优化

概述人们很难想象现实中的对象在一项工作进行期间,会被不停地中断和切换,对象的属性(数据)可能会在中断期间被修改和变“脏”,而这些事情在计算机世界中则是很正常的事情。有时候,良好的设计原则不得不向现实做出一些让步,我们必须让程序在计算机中正确无误地运行,然后再考虑如何将代码组织得更好,让程序运行更快...

2018-01-01 18:25:15

阅读数:108

评论数:0

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