![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 89
大黄奔跑
微信公众号:大黄奔跑,一个喜欢分享的大黄
展开
-
如何高效的遍历Map?你常用的不一定是最快的
微信公众号:大黄奔跑关注我,可了解更多有趣的面试相关问题。写在之前如文章标题所言,遍历Map是开发过程中比较常见的行为,实现的方式也有多种方式,本文带领大家一起看看更加高效的遍历 Map。『茴』的十种写法首先一起来看看,有哪些遍历 Map 的方式1. 利用 iterator 和 Map.Entrylong i = 0;Iterator<Map.Entry<Integer, Integer>> it = map.entrySet().iterator();w.翻译 2021-04-29 13:17:11 · 845 阅读 · 0 评论 -
手把手教你写一个简单的线程池
线程池的好处都知道,可以避免频繁的创建和销毁线程,管理多个线程。Jdk本身也对线程池做了很好的实现,特别是AQS用于同步队列,简直是妙哉,但是如果想让我们手动去实现一个线程池,该如何做呢?本文就来实现一个简单的线程池,肯定不能够保证性能媲美 AQS,但是安全性还是要保证的。首先是定义线程池的接口:/** * @time 2020/5/17 11:03 * @Description 手动来实现一个简单的线程池 * * 线程池的核心是:用户不需要自己去new线程,而是将new的过程交由线程池处理原创 2020-05-17 12:09:39 · 597 阅读 · 1 评论 -
面试烂的hashMap你真的懂吗?
前言:HashMap是java工程师在面试过程中,碰到的概率极大的一道题,很大一部分人都是看了一些博客,记住一些答案,但是深究往往无法接招,本文就来扒一扒hashMap面试常见的点及源码分析。推荐分析目前为止个人看过的分析hashMap比较好的文章。Java 8系列之重新认识HashMap没有阅读过的同学,可以先看一下这篇文章,对于hashMap的设计及原理有一个大概的了解,一遍不行;读两遍...原创 2020-04-19 16:33:47 · 224 阅读 · 0 评论 -
StringBuffe及StringBuilder源码分析
文章目录1. StringBuffer1.1 源码分析StringBuffer及StringBuilder是两个经常拿来做字符串操作的类,人们通常都知道StringBuffer是线程安全的、StringBuilder是线程不安全的,但是对于其内部的源码没有做过多分析,本文来分析一下两者源码的区别及各自的优缺点。本文出发点是能够从源码出发,详细的分析两者区别,关于两者笼统的结论,之前已经写过一篇...原创 2020-02-10 09:30:13 · 212 阅读 · 0 评论 -
【JUC-06】JUC—阻塞队列根接口BlockingQueue原理及应用
文章目录1. 源码解析1.1 类接口1. 2 接口概况解析1.3 主要用途前言:阻塞队列是高并发场景中使用较多的接口,本身提供了很多功能并且很利于生产者-消费者的实现。1. 源码解析1.1 类接口BlockingQueue本身类结构如下:本质上可当做队列,主要实现了queue接口,因此具有队列的先进先出(FIFO)功能,因此从方法而言,具有Queu及Collection接口方法。1....原创 2020-01-20 20:00:15 · 267 阅读 · 0 评论 -
【JUC-05】JUC—线程池核心类ThreadPoolExecutor源码解析
前言:本节作为JUC框架的第五节,主要介绍线程池核心类ThreadPoolExecutor的作用,在前一章节中讲解了ThreadPoolExecutor类的继承关系【JUC-04】JUC—与线程池有关的Executor框架介绍本节主要来分析线程池的核心实现类。1. 为什么要使用线程池线程的生成和销毁都是需要消耗系统的资源,因此可以提前准备好一堆可以使用的线程、供任务调度的使用。主要有以下几点好...原创 2019-12-25 23:17:15 · 262 阅读 · 0 评论 -
【JUC-04】JUC—与线程池有关的Executor框架介绍
前言:无论是学习中还是工作中线程池的类ThreadPoolExecutor经常是最常用的类,许多初学者一上来就陷入了看ThreadPoolExecutor类的源码,但是为何有这个类,该类继承了哪些类,为什么要这么设计等等,面对一堆问题都是一头雾水,本篇作者借着自己初学者的视角和大家一起分享自己的了解。注:下文所说的Executor框架都是一种泛指,包括executor接口、ExecutorSer...原创 2019-12-15 22:35:26 · 204 阅读 · 0 评论 -
【JUC-03】JUC—Semaphore核心知识讲解
文章目录1. 基础概念2. 类结构2.1 内部类同步器2.1.1 Sync2.1.2 NonfairSync2.1.3 FairSync2.2 构造方法3. 基本方法1. acquire()2. acquireUninterruptibly()3. tryAcquire()4. tryAcquire(long timeout, TimeUnit unit)5. release()6. acquir...原创 2019-12-14 15:12:02 · 379 阅读 · 0 评论 -
【JUC-02】JUC—ReentrantLock核心知识讲解
文章目录1. 类结构2. 内部类2.1 Sync2.2 FairSync2.3 NonfairSync3. 构造方法2. 核心方法讲解1. lock()2. lockInterruptibly()3. tryLock()4. tryLock(long timeout, TimeUnit unit)5. unlock()6. newCondition()7. 其他方法前言:在了解Reentrant...原创 2019-12-13 11:39:36 · 203 阅读 · 0 评论 -
【JUC-01】JUC—lock接口及AQS核心知识讲解
1. lock接口Lock接口作为锁的基础接口,具有锁基本功能,下面针对于源码分析一些基本的用法:public interface Lock { /** * 获取锁 * 调用该方法的当前线程将会获取锁,当锁获得之后,从该方法返回 */ void lock(); /** * 可中断的获取锁 * 和lock()方法不同之...原创 2019-12-09 21:13:43 · 297 阅读 · 0 评论 -
LinkedList源码解析(jdk1.8)
前言:前面分析了ArrayList的源码,也分析了为什么插入和删除元素平均性能较差。本次介绍更适合插入和删除操作的容器LinkedList,当然后者也有自己的局限性。文章目录1. 作用及基本含义分析2. 类间的依赖关系3. 相关字段4.构造方法5. 常见方法详解1. 作用及基本含义分析LinkedList实现了List及Deque接口,允许所有的元素都为空。该类所有的方法都不是线程安全的,...原创 2019-09-18 18:49:59 · 165 阅读 · 0 评论 -
java中函数式编程
前言:函数式编程在其他语言中应用非常广泛,比如python、scala,java直到jdk1.8才引入,最近工作中用到较多,从实用型的角度总结函数式编程的用法。文章目录1. 什么是函数式编程?2. 如何用?3. Lambda表达式4. 流(Stream)1. 顺序执行和 并行执行2. 有状态和无状态操作3. 流水线1. 源2. 中间操作3.终结操作5. 总结1. 什么是函数式编程?java中...原创 2019-09-16 21:23:50 · 147 阅读 · 0 评论 -
Arraylist源码解析(JDK1.8)
最近在阅读容器的源码,因此也想找个地方总结一下分析成果,如有错误,还望指正,文章目录1. 简述2. 类的继承关系3. 相关字段4. 构造方法5. 常见方法讲解1. add、addAll2. remove/clear3. 扩容机制4. 查找数组大小5. 判断是否为空6. 是否包含某个元素7. 将list转化为数组8. 获取下标index的元素9. 替换元素总结1. 简述ArrayList是一个...原创 2019-09-15 22:06:37 · 101 阅读 · 0 评论 -
String、StringBuffer及StringBuilder区别
文章目录1. String2. StringBuilder3. StringBuffer1. StringString是不可变的,每次修改String实际上是创造了一个全新的String。可以看下面的例子。public class HelloWorld { public static void main(String[] args) { String s = "he...原创 2019-09-07 19:22:45 · 93 阅读 · 0 评论 -
Spring Boot入门指南-01
文章目录1. 第一个hello项目1、创建一个maven工程2、导入spring boot相关的依赖3、编写一个主程序4. 编写相关的Controller、Service5、运行主程序测试2. Spring boot 项目启动注解分析1. 第一个hello项目1、创建一个maven工程2、导入spring boot相关的依赖pom.xml文件基本配置<!--springboot的基...原创 2019-07-27 13:33:37 · 109 阅读 · 0 评论 -
利用itext将html文件转化pdf文件(5)——多个文件的合并
工作中经常会遇到将多个html文件转化为pdf,并且将pdf转化之后的文件进行合并。官方参考文档下面来介绍简单的操作:import java.io.ByteArrayInputStream;import java.io.FileInputStream;import java.io.IOException;import com.itextpdf.html2pdf.ConverterPrope...原创 2018-04-04 15:33:07 · 1732 阅读 · 1 评论 -
利用maven开发springMVC项目(三)——数据库配置
前两节介绍了开发环境的搭建以及框架的配置现在主要介绍在eclipse中如何将SpringMVC、hibernate、mysql数据库结合起来。数据库配置下面,就要通过一个简单的例子,来介绍SpringMVC如何集成Spring Data JPA(由 Hibernate JPA 提供),来进行强大的数据库访问,并通过本章节的讲解,更加深刻地认识Controller是如何进行请求处理的,相信看完这一章...原创 2018-03-31 12:11:25 · 245 阅读 · 0 评论 -
利用maven开发springMVC项目——开发环境搭建(版本错误解决)
申明:部分内容参见别人的博客,没有任何的商业用途,只是作为自己学习使用。(大佬博客)一、相关环境- eclipse :eclipse-jee-oxygen-3-win32-x86_64(下载地址) -Maven:maven-3.5.3- jdk :1.8- tomcat:7.0-mysql :5.5.4-spring 5.0.1二、软件安装前面的软件安装包括Maven的简单使用,我会抽时间写一个...原创 2018-03-31 12:11:22 · 216 阅读 · 0 评论 -
Maven创建项目一些常见的问题
1 、创建的项目中没有src/main/java、没有src/test/java 主要原因在于在创建项目的时候,使用的是系统自带的jdk,修改方法:右键项目——Properties——javaBuild Path——Libraries——将jrd换成自己安装的jdk(edit——跳转到下面第二张图上面,再选择自己的jre) 结果就变成了下面这种标准的maven项目的结构:2、在maven项目中加上...原创 2018-03-31 12:11:19 · 175 阅读 · 0 评论 -
java动态代理的基本思想以及简单的实现
代理模式本人参考于 代理模式及Java实现动态代理 不作为商业用途,只是借鉴于其思路。侵权即删。原理:给某个对象提供一个代理对象,并且由代理对象控制原对象的访问,即不直接操控原对象,而是通过代理对象间接地操控原对象。 代理的模式图 在上图中RealSubject 是原对象(本文把原对象称为"委托对象")...原创 2018-03-31 12:11:14 · 210 阅读 · 0 评论 -
spring框架中beans.xml文件报错XmlBeanDefinitionStoreException
第一次构建spring,实现简单的注入方式,就发生了beans.xml文件报错,报错信息如下图 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 9 in XML document from class path resource [beans.xml] is invalid; nested ex...原创 2018-03-31 12:11:10 · 1864 阅读 · 0 评论 -
linux中安装jdk以及eclipse的安装
最近将系统换成了linux(ubuntu14.04),随之而来的是各种软件的配置,环境的配置,因此趁机将自己的过程整理出来。1:linux中怎么安装jdk1 首先现在jdk源文件http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html2 将现在的jdk解压到对应的目录下面(我自己解压的目录...原创 2018-03-31 12:11:08 · 811 阅读 · 0 评论 -
请求重定向和请求转发
从含义上来讲请求重定向:从名字中可以看出来他的主要作用,对url重新定向,是一种客户端的行为,response.sendRedirect( ) 从本质上来将等于两次请求,前一次请求url对象不会保存,地址栏的URL地址会改变。请求转发:是一种服务器的行为,request.getRequestDispatcher().forward(request,response),是一次请求,转发后对象会保存下...原创 2018-03-31 12:11:03 · 254 阅读 · 0 评论 -
javaEE中错误提示 Exception starting filter BackServletFilter java.lang.ClassNotFoundExceptionr提示这个错误啊
最近在学习javaEE的部署,不借助eclipse中的部署方式,而是通过修改server.xml文件的方式部署添加Context路径<Context path="/tm" docBase="G:\\javaSummary\\11javaEE\\20src\\Tmall_Servlet_jsp\\Tmall_Servlet_jsp\\web" debug="0" reloadable="fal...原创 2018-03-31 12:11:00 · 2176 阅读 · 0 评论 -
利用iText将html转为pdf设置不同的样式以及报表
本教程只是作为自己的总结使用,主要参考于官网的文档:https://developers.itextpdf.com/这个是一系列的介绍的方式,转化pdf入门请转入:利用itext将html文件转化pdf文件这里我们介绍几个关于pdf输出的形式。1、将生成的pdf文件作为输出的媒体形式在这里面引入MediaDeviceDescription属性,用来设置ConverterProperties添加在转...翻译 2018-04-04 14:13:25 · 10246 阅读 · 1 评论 -
利用maven开发springMVC项目(二)——框架配置
申明:主要内容来源于大神博客(使用IntelliJ IDEA开发SpringMVC网站(二)框架配置),我只是用eclipse自己练习使用,记录下来也只是为了学习使用,没有任何的商业用途,侵权必删。SpringMVC框架的配置进行第一个环境的配置说明,现在开发环境已经搭建好了,参见第一节,现在需要对框架做一个配置。1、web.xml配置打开src/main/webapp/WEB-INF下面的web...原创 2018-03-31 12:11:30 · 170 阅读 · 1 评论