摘要:
在上篇博客中分析了hashmap的用法,详情查看java并发之hashmap 本篇博客重点分析下hashmap的源码(基于JDK1.8) 一、成员变量 HashMap有以下主要的成员变量 /** * The default initial capacity - MUST be a power of 阅读全文
摘要:
在Java开发中经常会使用到hashmap,对于hashmap又了解多少,经常听到的一句话是hashmap是线程不安全的,那为什么是线程不安全的,如何才能保证线程安全,JDK又给我们提供了那些线程安全的类,这些问题是今天讨论的问题, 一、hashmap为什么线程不安全 说到hashmap为什么线程不 阅读全文
摘要:
在Java开发过程中经常需要用到线程,为了减少资源的开销,提高系统性能,Java提供了线程池,即事先创建好线程,如果需要使用从池中取即可,Java中创建线程池有以下的方式, 1、使用ThreadPoolExecutor类 2、使用Executors类 其实这两种方式在本质上是一种方式,都是通过Thr 阅读全文
摘要:
springAOP指的是在spring中的AOP,什么是AOP,相对于java中的面向对象(oop),在面向对象中一些公共的行为,像日志记录,权限验证等如果都使用面向对象来做,会在每个业务方法中都写上重复的代码,造成代码的冗余。而AOP指的是面向切面编程,定义一个切面,用切面去切相应的方法,就可以织 阅读全文
摘要:
LinkedBlockingQueue是BlockingQueue中的其中一个,其实现方式为单向链表,下面看其具体实现。(均为JDK8) 一、构造函数 在LinkedBlockingQueue中有三个构造函数,如下图, 1、LinkedBlockingQueue() 这是一个无参的构造函数,其定义如 阅读全文
摘要:
在Java的java.util.concurrent包中定义了和多线程并发相关的操作,有许多好用的工具类,今天就来看下阻塞队列。阻塞队列很好的解决了多线程中数据的安全传输问题,其中最典型的例子就是客园很好的解决“生产者--消费者”问题。下面来看其中一个实现类ArrayBlockingQueue。看到 阅读全文
摘要:
在Java编程中我们经常会遇到异常,像空指针异常、数组越界异常等,但你真正了解异常吗,程序出现了异常我们要如何处理,在mvc的编程模式下要如何优雅的处理异常,这就是本文我们要解决的问题。 一、初始异常 在Java中所有的异常类有个超类那就是java.lang.Throwable,java API中对 阅读全文
摘要:
在上篇博客中从springboot的入门到运行一个springboot项目进行了简单讲述,详情请查看“springboot入门之一”。下面继续对springboot做讲述。 开发springboot测试类 在上篇博客中仅仅是把一个springboot环境的项目运行起来,但并没有进行实际的开发测试,下 阅读全文
摘要:
springboot简介 springboot做为微服务的开发集合框架,有着天然的好处,它不像springmvc那样笨重繁杂,springmvc众多的配置使得开发人员很厌烦,为解决众多的配置带来的烦扰,springboot采用约定大于配置的方式,即开发过程中的配置项可以不配置,spring已经内置了 阅读全文
摘要:
问题描述 今天在使用spotbugs代码走查时发现这样一个问题,如下, 一看看上去这个代码没什么问题,打印了数组的值,关键是打印出的结果是什么?结果如下 那么问题来了,打印出上面一行东西,这是什么,初衷是要打印数组中的值,起码也是能看懂的呀 暴露的问题 上面的代码,暴露了下面的问题, 1、对toSt 阅读全文