自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 CountDownLatch多任务处理利器

CountDownLatch 是由java并发包提供的一个同步计数器,从字面意义上去理解可以分成两部分CountDown 和 Latch,CountDown就是计数的意思,Latch是门闩,这个同步工具就是通过保证多线程环境下,通过门闩限制主线程执行,子线程执行后计数减1,直到减为0,门闩打开,主...

2020-04-25 21:34:36 93 9

原创 切绳子算乘积

题目: 给你一段绳子,这段绳子的长度是正整数(绳子长度大于0),你可以选择切或者不切,如果切,分成两段,保证两段的长度都是整数,如果可以继续切,你可以选择继续,最后要求每一段绳子的长度的乘积最大。 思考一: 如果每次从中间切似乎得到的乘积会很大,那么当绳子长度为偶数,就直接从中间切,如果是奇...

2020-03-01 21:20:04 35 0

原创 工厂模式及在Spring中的应用

工厂模式是最基本的也是最重要的模式,因为它方便我们能写出高质量、高效率的代码。只有掌握了工厂模式,我们才不会重复造轮子。今天将从最简单的工厂模式开始一步步深入讲解,告诉大家自己写是怎么用的,框架又是如何实现,我们能从框架实现获得怎么样的灵感。 首先看看工厂模式的类图: 工厂模式由一个接口类...

2019-12-22 13:17:35 737 0

原创 编程题阶乘迷局

大厂笔试面试题,给定一个整数,求该整数的阶乘,例如输入5,结果是5*4*3*2*1=120。 拿到题目心中狂喜,迅速三下五除二就写出来: public int fun1(int i) { int k = 1; for(int j=2; j<=i; j+...

2019-11-16 10:52:05 58 2

原创 Spring MVC 拦截器原理解析

Spring MVC支持配置多个拦截器,http请求将被配置的拦截器处理,处理后报错信息抛异常,异常将被DispatcherServlet捕获处理,每个拦截器对应的handler处理异常,包装成ModelAndView返回。 web.xml 配置 <servlet> <s...

2019-11-13 17:07:50 37 0

原创 多线程处理返回值

好久没写博客,看了下上一篇发表的时间发现已是一年多前,看到消息处的小红点,点了下发现仍然有很多新朋友关注了我,给我留言,给我的博文点赞,让我发现技术分享的重要性,不仅仅是影响一个人,而是影响一群人。软件开发是一份很潮的工作,会随着历史的潮头不断奔流不息,只有屹立潮头的人才不会被淘汰。逆水行舟,不进...

2019-09-08 16:19:41 532 0

原创 ZooKeeper实现分布式锁(一)

ZooKeeper可以在其目录下建立节点,这些节点都是以路径和值为映射关系存在的,下面通过一个例子说明如何创建节点和删除节点。public class TestLock { public static void main(String[] args) { ZkClient zkClient...

2018-05-29 16:55:22 597 1

原创 自己实现缓存

    有的时候我们需要频繁用到一些数据,我们不需要频繁去查数据库,这样不仅浪费数据库的IO,也浪费单次业务的时间,如果我们要用到的数据就是数据库中的某一张表的固定数据,那么我们就可以在项目启动的时候将该表的数据加载到缓存中。设计思路:1. 一个加载缓存数据的服务Bean2. 一个存储缓存数据的类...

2018-02-15 11:04:32 1422 0

原创 理解线程的join方法

在多线程环境下很难保证结果的一致性,多线程带来的好处就是并行处理提升效率,弊端就是出现了问题很难定位,可以看个例子就明白了,请将下面的代码拷到本地去执行,就会发现每次执行的结果不一样。      代码1 public class JoinDemo { public static void m...

2018-01-29 23:14:01 300 0

原创 Java小数截断

本文对Java小数截断的几种方式进行了总结。

2017-11-21 15:37:07 1628 0

原创 Spring Bean三种注入方式

Spring Bean三种注入方式分别是Field注入、构造器注入和Setter方法注入。

2017-11-07 21:11:38 1170 0

原创 Redis安装和配置

本文主要介绍如何在Linux环境下搭建Redis

2017-10-05 16:54:53 614 0

原创 Json解析方法大全

JSON是一种轻量级的数据交换格式,和XML一样广泛应用于前端和后台的交互。如何高效和安全的解析JSON是摆在广大程序员面前的难题,如果有工具包能帮我们做这些事情就好了,目前有Google公司的Gson,阿里巴巴公司的fastJson,以及Jackson,今天我就讲解下如何通过这3个工具去解析JS...

2017-06-17 23:53:35 2731 1

原创 Java反射

Java反射为开发者提供了更灵活的方式编程,可以在运行时操纵类的构造方法、属性和方法。本文介绍了反射如何去使用类的构造方法、属性和类的方法。

2017-05-07 20:42:11 544 0

原创 ThreadLocal类维持线程封闭性

在《多线程采用锁并发控制》一文中采用锁保证了多线程下类的成员变量的同步。如果需要保证线程内部对变量的访问是隔离的,线程内部对变量的操作不会影响其他的线程,这又该如何操作了。ThreadLocal对象通常用于防止对可变的单实例变量或全局变量进行共享。

2017-03-26 12:56:31 750 0

原创 第一个Spring Boot程序

正如官网说的Spring Boot给我们带来的是单机的,产品级的基于spring的应用。运用Spring Boot无需tomcat就可以将应用作为Web Server对外提供访问,非常便捷。

2017-03-11 13:27:07 5080 0

原创 2016--在技术的浪潮中自我实现

今天恰好是2016年的圣诞节,窗外正飘着小雨,一盏孤灯,淡黄色的光投射到电脑屏幕上,显得比较温馨。每过一年都会感觉自己大了一岁,而这一年又新增了无数的新技术,自己就仿佛乘坐一叶孤舟,迎接一个个风浪,当风浪过后,便是晴天。世界唯一不变的就是变化,只有拥抱变化,你才能成为技术浪潮中的领航者。人总是应该...

2016-12-25 12:49:26 2363 16

原创 WeakHashMap的使用

WeakHashMap的实现及其应用。

2016-12-04 12:33:49 1087 0

原创 线程池可以吞掉异常

本文由线程池吞掉异常出发,讲解了程序开发过程中应该怎么去捕获异常,打印堆栈信息,并且进一步阐述了线程池内部的接口和类的关系。

2016-12-03 21:05:04 5063 1

原创 从对象的引用到对象的复制

今天是程序猿节,因此必须登CSDN看看小伙伴门都在做什么,最近工作比较忙,因此好久没上来看看了。这次想给大家讲讲对象的引用,这个东西从都大学上Java课的时候老师就一直在强调,只不过可能是老师没讲清楚,或者自己愚笨,不能领悟。有的时候确实需要实践才会记忆深刻。

2016-10-24 21:39:39 1348 2

原创 Java中动态运行JS脚本

本文主要阐述了Java可以执行JavaScript脚本,通过这种方式可以让程序能更灵活,有时候可以产生意想不到的结果。

2016-08-03 22:56:27 2599 0

原创 多线程中采用锁控制并发

在多线程编程当中对于共享变量的控制非常重要,平常的程序当中由于是单线程去处理的,因此不会出现变量资源同时被多个线程同时访问修改,程序的运行是顺序的。然而多线程的环境中就会出现资源同时被多个线程获取,同时去做修改的状况。本文主要讲了ReentrantLock 和 Sychronized这两种方式对锁...

2016-07-27 22:51:00 4407 6

原创 再探AOP

之前写了一篇《初识AOP》的文章,在灌水区引起了热烈的讨论,这是我始料未及的。这一次将更深入的探寻AOP的奥秘,让大家不再不明觉厉,而是惊叹AOP的鬼斧神工。

2016-03-13 12:59:20 932 0

原创 Spring自动扫描装配bean

本文阐述了一种自动扫描和装配bean的方式,通过这种方式可以减轻配置文件的开发和维护,让代码变得更加简洁。

2016-03-06 12:35:20 2369 2

原创 初识AOP

本文中生活中的一个例子出发说明了为什么要引入AOP,引入后给我们的编程带来了哪些变化,同时进一步去思考AOP给我们编程思想带来了哪些颠覆,通过两张图展示了AOP如何改变我们的程序设计。

2016-02-25 14:33:03 1795 8

原创 注解@AutoWired

通过一个简单的例子说明Spring的注解@AutoWired是如何对类的成员变量进行自动装配。

2016-02-18 15:22:02 1808 4

原创 Java可变参数应用实操

本文通过多个例子详细介绍了可变参数的使用以及在使用过程中需要注意的问题,并且通过分析编译后的class文件看出可变参数其实是通过数组来实现的。

2015-12-06 11:24:35 1371 4

原创 增长黑客:我们不能忽视的力量

增长黑客被定义为创业公司的用户与收入增长秘籍,读罢之后我更感觉是一本非常适合产品经理阅读的书,很多产品经理在规划产品的适合并没有从实际出发,而是停留在自己的乌托邦中,因此推出后很多都石沉大海,当然有的产品通过多次改版逐渐挽回了客户。这是一本真正立足于实际的如何规划产品的扛鼎之作,里面的例子是如此发...

2015-11-23 21:34:39 2022 0

原创 Maven打包报java.lang.OutOfMemoryError

Maven打包项目遇到报java.lang.OutOfMemoryError后提供三种解决方案。

2015-10-29 14:21:12 2231 0

原创 为什么要继承

面向对象语言的几大特征包括抽象、继承、封装和多态,对于继承大家都耳熟能详,而且也很容易理解,子类可以继承父类的属性和方法,然而大家是否在程序中真正去用,或者真正理解了为什么要继承,通过面试发现都是背概念。今天想通过一个例子去说明为什么要继承,目的是希望大家能在平时开发中将继承的思想贯穿在codin...

2015-10-25 13:09:30 2039 0

原创 Java实现模拟路由功能

本文实现根据路由表适配最优的号段,选择路由器。

2015-08-02 12:53:14 13402 0

原创 Java解析Property文件

在Java项目中一些配置参数保存在Property文件中,这样能保证不修改原代码直接修改Property文件。

2015-08-01 13:31:30 3098 2

原创 JVM知识

JVM是Java的核心,虽然对于普通开发者这块平常可能不太关注,但是如果一些基本原理不理解,有的时候发生一些疑难异常就会让我们摸不到头脑,无法解决这种意想不到的问题。JVM是通过指令系统、寄存器、栈结构、存储区域和垃圾回收来执行我们的程序。大家可以通过下面的JVM架构图更直观的理解。

2015-07-12 12:20:18 1198 0

原创 xml的两种解析方式

xml解析是日常项目中用到比较多的技能,无论是配置参数或者数据都可以保存在xml文件中,同时也可以将xml作为传输数据的一种格式。本文将介绍两种基本解析方式:xml字符串解析和xml文件解析。

2015-07-05 12:41:15 2961 7

转载 Struts1和Struts2的区别和对比(完整版)

下面文章转自:http://blog.csdn.net/john2522/article/details/7436307 struts2不是struts1的升级,而是继承的webwork的血统,它吸收了struts1和webwork的优势。 先看struts的Action官方注释(struts...

2015-06-03 11:16:26 870 0

原创 迅速掌握Spring框架

Spring框架是SSH三剑客当中比较难理解的,然而它的意义对于软件来说是一场革命,完全颠覆了软件开发的流程。例如控制反转、依赖倒置这些高深的概念让我们无比膜拜,又让我们觉得离自己的日常使用是那么遥远,本文从一个简单的例子入手介绍如何完成用Spring框架进行开发,然后从中总结出很多个人的感悟,帮...

2015-05-10 11:33:56 1909 0

原创 JUnit的使用

JUnit是一款做单元测试比较好的工具,很多小公司都没有进行单元测试,都一般采用的是黑盒测试,这样通过人力去测试,很多时候效率并不高,这里推采用JUnit进行单元测试,用一个例子说明单元测试是怎么玩的,其实很简单,最重要的是能对接口和函数进行测试,自动化完成,可以清楚看到哪些用例通过,哪些失败。

2015-04-18 20:47:23 1037 0

原创 【Java二十周年】我与Java的那些事

回想过去的时光,感觉就像是一杯热咖啡,那样醇厚,值得自己慢慢去体味。展望未来,我还是会将Java当成是一杯卡布其若,一口口的抿,如此甘甜,如此醇苦。

2015-04-15 22:05:42 1782 3

原创 像外行一样思考,像专家一样实践

像外行一样思考,像专家一样实践。这不是一句口号或者一句名言,只觉得是很多专家都忽略的做事方法,我们应该脱掉自己已经拥有的光环,可以去小河边玩泥巴,去大海边堆沙子,去和小孩子们玩,让自己变得普普通通的,而不要让“专家”这个头衔禁锢了我们的思维。

2015-04-13 22:38:01 1662 4

原创 读《C#高级编程(第9版)》之我有话说

之前用过Visual Studio 2005和Visual Studio 2012做过项目,感觉Visual Studio这个IDE是非常强大的,当时C#还是4.0版本,如果4.5版本横空出世,让大家对C#语言更加看好,尤其最近微软的一系列动作,尤其是新CEO上台后的大刀阔斧的改革,让微软变得越来...

2015-02-08 22:16:39 4217 0

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