自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 知识图谱整理之Java基础ScheduledThreadPoolExecutor

前言之前主要是想了解Spring下的定时任务机制,但是在看了相关源码后,发现必须先要了解ScheduledThreadPoolExecutor,之后在阅读会更加简单,顾先去看了下这块的源码,发现其还是很有意思和学习的地方的。ScheduledThreadPoolExecutor介绍我们首先要知道ScheduledThreadPoolExecutor是JUC包下关于定时任务这块的,不知道大家跟...

2019-10-27 17:14:57 338

原创 知识图谱整理之Java基础ThreadPoolExecutor

ThreadPoolExecutor介绍ThreadPoolExecutor是一个管理线程的一个类,可以有效的复用和控制线程。之前比较好奇,像这样的池化技术是如何实现的,今天我们就来一起探究下。本文是在JDK8的源码下进行阅读的,由于是自己总结,所以太过基础的东西不做赘述。ThreadPoolExecutor源码解析构造方法我们先从构造方法开始入手来了解这个类,初学者也都是从了解构造方法中...

2019-10-25 14:31:39 185

原创 知识图谱整理之Java基础CyclicBarrier

CyclicBarrier介绍CyclicBarrier字面意思回环栅栏,通过它可以实现让一组线程等待至某个状态之后再全部同时执行。叫做回环是因为当所有等待线程都被释放以后,CyclicBarrier可以被重用。我们暂且把这个状态就叫做barrier,当调用await()方法之后,线程就处于barrier了。CyclicBarrier概览它内部是直接使用了ReentrantLock来实现的,...

2019-10-16 19:46:21 185

原创 知识图谱整理之Java基础CountDownLatch

CountDownLatch介绍CountDownLatch是什么呢?我个人的话用的比较少,这次学习这块的源码把粗浅的原理搞懂就行,这个在我理解就是用来一个线程等待其他线程的动作都处理完之后触发,可能这么说比较难以理解,我们还是直接来看源码实现会比较简单。CountDownLatch概览CountDownLatch内部也有一个继承了AQS的Sync的内部类,不过和ReentrantLock不...

2019-10-16 11:27:39 147

原创 知识图谱整理之Java基础ReentrantLock

ReentrantLock介绍ReentrantLock也是在JUC并发包下的,实现可重入锁的机制。也是在AQS基础之上的,在上一篇AQS的讲解基础下,理解这篇会比较的简单。知识图谱整理之Java基础AbstractQueuedSynchronizer。ReentrantLock的概览要了解这个类,主要还是从它的使用方法上入手,因为这个是的数据结构基础是在AQS之上的,所以内部不再重写数据...

2019-10-15 11:27:45 177

原创 知识图谱整理之Java基础AbstractQueuedSynchronizer

AbstractQueuedSynchronizer介绍说起这个类,或者说说起这个别名AQS,大家都不会陌生,是一个抽象队列同步器。但是具体内部是如何实现,可能有些人不太了解,今天就来进入这个抽象类的源码。AbstractQueuedSynchronizer内部数据结构AQS是一个队列同步器,那必不可少的,肯定存在队列的数据结构,而这是内部实现的,我们来看下这个内部类:static fi...

2019-10-14 18:19:42 154

原创 知识图谱整理之Java基础ThreadLocal

ThreadLocal介绍先来介绍下这个类的作用。首先这个类的操作是线程安全的,主要是用来存储线程相关的信息,存储局部变量,实现局部变量的线程隔离。主要方法介绍get方法源码 public T get() { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); ...

2019-10-10 17:38:26 178

原创 知识图谱整理之Java基础ConcurrentHashMap

ConcurrentHashMap介绍ConcurrentHashMap是在Java并发包下的一个类,它的作用和HashMap类似,不过做了线程安全的防护,支持并发操作。本文分析的也是基于JDK1.8的数据存储结构我们直接来看下源码会比较直观:static class Node<K,V> implements Map.Entry<K,V> { f...

2019-09-28 18:02:21 160

原创 知识图谱整理之Java基础HashTable和SynchronizedMap

线程安全的简单HashMap介绍今天先来讲一下HashTable和SynchronizedMap,这两块我虽然在面试中没有回答到过,但是还是决定一起整理下。这两个类的主要功能跟HashMap相似,不过稍微存在一些区别而已。HashTable源码走读HashTable说实话我在工作中没有正在使用过,更多的还是在当初面试题上有过了解,今天就直接看源码来进行知识巩固。首先我们还是从他的数据存储...

2019-09-26 10:26:38 556 1

原创 知识图谱整理之Java基础HashMap

本系列完善自己的知识图谱,更从容的表达描述HashMap介绍HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。Hash数据存储...

2019-09-25 18:12:13 154

原创 Spring源码入口——注解配置讲解

开篇想法接下来是打算来总结关于Spring内部运行流程的机制。在工作中,笔者之前更多的是关于Spring Boot关于Web间的开发,那么Spring内部黑盒是如何实现的,又是如何与其他组件进行关联的,这些对我而言既神秘又充满诱惑力,顾打算先从Spring入手,一步步把Spring全家桶的基本原理摸清楚,知其所以然,可以更好的扩展业务开发需求。切入口本系列打算以注解配置下进行切入,主要...

2019-09-23 10:36:14 427

原创 2019下半年阿里面试失败总结

结果预览2年半第一次出去面试,也是第一次面试阿里,打击不小,收货也不少,最终倒在二面笔试题上,虽有不甘,但仍需收拾心情,继续努力。一面总结在一面上,跟网上大多数的反馈相同,都是比较Java基础项,然后往深度问。我整理了下:因为我简历上写了关于修改Apollo(携程的配置中心)源码,应用到我们系统中,所以问了我怎么实现,还问到了配置是推还是拉,我果断回答了拉,然后大致就结束了,其中细节...

2019-09-20 18:02:57 10706 3

原创 HTTP个人总结(六)

今天主要总结关于网关、隧道及中继的内容。首先介绍一下网关是什么?网关可以作为某种翻译器使用,它抽象出了一种能够到达资源的方法。网关是应用程序和资源的粘合剂。 Web网关在一侧使用HTTP协议,在另一侧使用另一种协议。 <客户端协议>/<服务器端协议> 比如: 服务器端网关通过HTTP与客户端对话,通过其他协议与服务器通信(HTTP/*) 客户端网关通过与其他协议与客户端对话,通过HTTP与

2017-09-24 19:51:40 483

原创 HTTP个人总结(五)

今天主要来讲HTTP中的缓存。 首先看一张在不同网络下的传输速度: 现在介绍几个概念:先说下瞬间拥塞的概念: 是指突发事件使很多人几乎同时去访问一个Web文档时出现瞬间拥塞,由此造成过多流量峰值可能会使网络和Web服务器造成灾难性的崩溃。接下来再来介绍下距离时延概念: 如果服务器位于长距离外,在最好的情况下,以光速传输(186000英里/秒)传输的信号时延会变成毫秒级,但是更加复杂的Web页

2017-09-17 13:15:19 400

原创 HTTP个人总结(四)

今天主要总结的是Web服务器与代理。先从Web服务器开始。Web服务器是如何实现的?Web服务器实现了HTTP和相关的TCP连接处理。负责管理Web服务器提供的资源,以及对Web服务器的配置、控制及扩展方面的管理。 Web服务器逻辑实现了HTTP协议,管理者Web资源,并负责提供Web服务器的管理功能。Web服务器逻辑和操作系统共同负责管理TCP连接。底层操作系统负责管理底层计算机的硬件细节,并提

2017-09-09 15:50:17 441

原创 HTTP个人总结(三)

今天来总结的是关于HTTP的连接管理。首先来介绍TCP连接是什么? TCP为HTTP提供了一条可靠的比特传输通道,从TCP连接一端填入的字节会从另一端以原有的顺序、正确地传送出来。TCP是分流的、由IP分组传送又是什么?TCP的数据是通过名为IP分组的小数据块来发送的,HTTPS就是在HTTP和TCP之间插入了一个(称为TLS或SSL的)密码加密层。 HTTP要传送一条报文时,会以流的形

2017-09-02 16:21:13 396

原创 HTTP个人总结(二)

今天主要总结两块内容,HTTP报文和URL资源。首先总结URL和资源。URL是什么? URL就是因特网资源的标准化名称URL的语法又是什么? 大多数的URL语法都建立在下面由9个部分构成的通用格式上: ://:@://?# 解释如下: 方案——使用什么协议。方案实际上就是规定如何访问指定资源的标识符。它会告诉负责解析URL的应用程序应该使用什么协议。方案组件必须以一个字符符号开始,由第一个

2017-08-26 23:55:32 314

原创 HTTP个人总结(一)

这个星期开始,换了一本《HTTP权威指南进行阅读》,下面做好阅读的总结。今天是对HTTP的概述。HTTP是什么? HTTP使用的是可靠的数据传输协议,能够确保数据在传输过程中不会被损坏或产生混乱。那么Web中的资源又是指什么? Web服务器是Web资源的宿主。Web资源是Web内容的源头,所有类型的内容来源都是资源。媒体类型有分为什么? HTTP仔细地给每种要通过Web传输的对象都打上了名为M

2017-08-20 16:42:01 305

原创 JVM虚拟机个人总结(四)

这是我看《深入Java虚拟机》这本书的最后一个总结,发现之后的10章讲的是底层操作符运算,我这里就暂不学习了,后面有需要再去深入。 今天讲两个方面的内容:1.连接模型。2.垃圾收集。首先来看连接模型,动态连接是怎样的一个过程? 当编译一个Java程序的时候,会得到程序中每个类或者接口独立的class文件。虽然独立文件看上去毫无联系,实际上它们之间通过接口符号互相联系,或者与Java API文件相

2017-08-14 22:17:14 158

原创 JVM虚拟机个人总结(三)

今天来讲一下关于类型的生命周期。首先之前提到过类型的装载,连接与初始化。接下来详细的介绍一下各个过程。Java虚拟机通过装载、连接和初始化一个Java类型,使该类型可以被正在运行的Java程序使用。其中,装载就是把二进制形式的Java类型读入Java虚拟机中;而连接就是把这种已经读入虚拟机的二进制形式的类型数据合并到虚拟机的运行时状态中去。连接状态分为三个自步骤——验证,准备和解析。“验证”步骤确保

2017-08-13 13:17:20 220

原创 JVM虚拟机个人总结(二)

今天来总结一下这个星期所学到的关于JVM的知识。这星期我看了JVM的内部的概述,先用一张图来进行展示说明: 下面我会逐个进行概述(只是大概了解每个模块的功能,后面会进行后面的总结会进行详细的了解)。好,在概述这些模块之前,首先需要了解的是Java虚拟机的生命周期? Java虚拟机内部有两种线程,一种是守护线程,另一种是非守护线程。守护线程时Java虚拟机内部自己使用的,比如垃圾回收线程。但是Ja

2017-08-05 22:18:20 236

原创 JVM虚拟机个人总结(一)

千里之堤始于足下,想要学好Java,需要大致了解JVM是如何运行的! 先说一些废话,跟正文无关,不想被唠叨的同学可以直接跳过。不知道大家刚学Java是怎么过来的,我刚学Java的时候,就是老师教我一步一步的走,最后能跑出一个Hello World的一个实例。但是中途为什么这么做,这么做的意义是什么,我一概不知,只是知其然,不知其所以然。我对其内部如何实现的,为何这么实现感到非常好奇,所以在接下来的

2017-07-30 13:08:49 327

转载 IDEA下调试jar文件

问题:一般情况下,可以打成Jar包的项目,它的源码运行Application项目时,是可以直接调试的。但是对于有些项目(比如spring-shell),在win10系统的IDEA中,运行为Application项目,并不能进行调试。在Linux、Mac中并没有这个错误,估计这是由系统内部的差别导致的吧。此时需要将这个项目打成Jar包(如果是maven项目,直接使用package命令

2017-06-06 15:04:56 5559

原创 ubuntu16.04下Idea中无法输入中文

网上找了好多方法,发现都是修改idea.sh文件,最后发现在我电脑上都不行,最后问了同事解决了,记录下来首先粘贴解决cmd上输入的pidof fcitx | xargs killpidof sogou-qimpanel | xargs killnohup fcitx 1>/dev/null 2>/dev/null &nohup sogou-qimpanel 1>/dev/

2017-05-16 16:17:57 593

原创 设计模式之Future模式例子

在我认为,实例教学比理论教学更加容易理解,并且理论知识网上一大堆,这里就不重复了,所以记录下Future模式的一种实现例子,以备以后可以查看。如果不太懂Future模式时干什么的,最好先普及下理论知识再来看更好。好,现在我们就开始来讲解分析我的例子:首先需要定义的就是输入和输出参数的格式,这里简单的创建了一个如下:public class Result {

2017-05-07 14:38:58 1446 1

转载 多线程下的单例模式如何去写

转载自:http://blog.csdn.net/buptdavid/article/details/5769227在GoF的23种设计模式中,单例模式是比较简单的一种。然而,有时候越是简单的东西越容易出现问题。下面就单例设计模式详细的探讨一下。 所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在。就像是Java Web中的applic

2017-05-02 17:23:24 386

原创 使用注解加反射去除switch重构代码

这星期碰到了需要对switch代码进行重构,这个我是在解析request时碰到的情况,今天记录下来。废话不多说,先上选来的代码public class Main { public static void main(String[] args){ String log = "title=123&appcode=234&tt=345&log-type=456";

2017-04-22 22:26:13 1069

原创 数据库设计时列变行思想

这星期的工作真的搞得我欲仙欲死,数据库方案不断被否定,看了一堆数据库设计思想,最后在同事帮助下了解了列变行思想,接下来变写下来作为分享,希望有大神批评指正。好,那么具体我是什么时候需要考虑到用这个呢?下面是我自己想出来的一个例子:在数据库记录用户信息(user_info)表时,有些是固定信息,所以可以直接建立固定的表来存储数据,那么当需要存储的数据不再固定,如果

2017-04-15 14:34:48 1170

原创 httpclient发送get请求并接收相应数据

终于开始我的实习生涯了,打算每星期发一篇自己遇到的需求或者总结,希望各位大神批评指正,也喜欢能来几个志同道合和我一起来学习,走上java大神之路废话不多说,最近由于工作原因,开始接触netty,service已经也好,需要我做一个httpclient去发送http请求,网上搜了一下,一大堆的实例,不过有一些跑不起来,这里就为自己总结一下。首先创建一个maven项目

2017-04-09 13:02:17 4438

原创 for循环中ArrayLis嵌套用ArrayList的一些坑

在写项目时遇到从数据库取出一堆关于评论的信息,在Service层中进行数据处理,最终想以List>>>形式进行解析交互。先看我正确的代码,之后在放出遇到的坑,package com.platebbg.product.service.impl;import java.util.ArrayList;import java.util.HashMap;import java.uti

2016-12-13 13:58:52 2343

原创 Mysql存储过程中字符串分割

今在项目中碰到了要把字符串分割,记录下来,以后可能还用的到首先想上我的存储过程代码DELIMITER $$USE `bplate`$$DROP PROCEDURE IF EXISTS `lp_plate_insertplateinfo`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `lp_plate_insertplateinfo`

2016-12-08 18:14:36 7330

原创 JSP中getParameter与setAttribute的区别

来发表一下我关于getParameter与setAttribute的区别我来说下我在什么时候分别用这两个方法一般,在网页url接参数传递时,比如get和post方法,可以通过getParameter方法来传递,一般用于form表单等等setAttribute中一般是web服务器内部设定时使用,之前必须使用getAttribute方法设定下面是我写的关于这2个的区别网页<%@ p

2016-10-28 16:21:44 546

原创 HTML5中 svg的animateTransform中rotate类型中围绕点设定

之前在做SVG动画中遇到的问题:在SVG动画效果中,怎么让一个圆围绕另一个动态圆转动,即比如太阳系转动,地球围着太阳转,月球围着地球转,卫星围着地球转。之后发现可以通过嵌套的方式来达到目的:先看代码 <animateTransform attributeName="transform" from ="0

2016-09-11 22:25:04 6313 1

原创 html信息传输,跨域传输,解析信息

今天介绍一下HTML中的Ajax传输有两种特点:1、Get:一般是前端提交给后台的一种提交形式。      特点:       1、get的URL是“明文”。       2、get的URL长度是有限制的。       3、get相对来说是不安全的。2、Post      特点:       1、post的URL参数没有显示的。       2、post的URL

2016-09-04 13:54:46 375

转载 JavaScript中setAttribute用法详解

setAttribute基本用法element.setAttribute(attributename,attributevalue)setAttribute() 方法添加指定的属性,并为其赋指定的值,看到w3c的例子document.getElementsByTagName("INPUT")[0].setAttribute("type","button");我们经常

2016-08-29 00:04:39 24373

原创 java如何连接数据库并操作

今天来分享一下Java如何使用MySQL:第一步:需要用到这个外部JAR,那么如何添加呢?需要右键项目包右键属性的Java构建路径中点击添加外部JAR,把包添加进来。第二步:需要用Class的forname方法找到“”com.mysql.jdbc.Driver“再用String变量记录url地址:创建一个Connection变量然后通过D

2016-08-21 22:40:46 3069

原创 简单泛型、泛型方法、泛型类、泛型接口的知识点

有许多原因促成了泛型的出现,其中最引人注目的就是创造容器类。泛型的主要目的就是为了用来指定容器要持有什么类型的对象一、简单泛型public class Genericity { public static void main(String[] args) { // TODO 自动生成的方法存根 List list=new ArrayList(); list.add(

2016-08-14 21:34:10 390

原创 关于ArrayList.remove()的一些你没注意的细节

关于ArrayList.remove()的一些你没注意的细节

2016-08-07 11:57:26 4061 3

转载 JAVA经典算法之河内之塔

1.河内之塔说明河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市;1883年法国数学家 Edouard Lucas曾提及这个故事,据说创世纪时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64个由上至下依由小至大排列的金盘(Disc),并命

2016-07-31 23:59:58 1301

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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