自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jsj13263690918的博客

学生一枚,Java学习中

  • 博客(85)
  • 资源 (2)
  • 收藏
  • 关注

原创 JDK:注解(Annotation)

1.Annotation(注解)注解在jdk1.5被引入,可以为类、字段和方法提供自定义的元数据(一种描述数据)标注。举例,@Override用于标注子类的重写方法: @Override public String toString() { return "This is String Representation of current object."; } 2.注解的使用2.1 自定义注解的创建自定义注解需要通...

2020-05-11 01:06:13 365

原创 jdk8 Stream介绍

java.util.stream.Stream的操作分类,如表所示:Stream的操作可以分为两大类中间操作(Intermediate operations): 对操作进行了记录,但是不立即执行。中间操作又可以分为 1.1 无状态(Stateless)操作: 元素的处理不受之前元素的影响; 1.2 有状态(Stateful)操作: 只有拿到所有元素之后才能继续下去...

2020-04-22 23:39:11 212

原创 Fork/Join模式

为了提高大量任务的执行效率,一般会使用线程池(ThreadPoolExecutor)。但是考虑到某些单任务本身就可以继续拆分并发执行(例如对1000W个数据进行排序可以使用分治思想),如何更好地提高这些任务的并发效率将成为一个问题。Fork/Join模式解决了任务更小粒度拆分的问题,我们可以将一个任务拆分成多个可并发执行的部分,最后再对各个子任务的结果进行汇总,得到最终执行结果。...

2020-04-21 14:07:54 319

原创 Mybatis工作流程

Mybatis初始化流程 1.获取配置文件(即获取一个InputStream) 2.创建SqlSessionFactoryBuilder对象 3.创建SqlSessionFactory对象(细分为3步) 3.创建SqlSessionFactory对象的过程 3.1构造XMLConfigBuilder对象(用于解析配置文件) 3.2解析配...

2019-03-24 14:13:28 1821

原创 仿照jdk源码实现简化版的线程池

仿照java.util.concurrent包中的ThreadPoolExecutor实现,做了许多简化,只保留核心exec()函数,帮助理解源码,仅供参考。ThreadPoolpackage com.jsj.jdk.threadpool;import java.util.HashSet;import java.util.concurrent.*;import java.util...

2019-01-08 11:29:27 179

原创 ReentrantLock的非公平锁和公平锁的实现原理

非公平锁因为之前已经分析过AQS,ReentranLock是利用一个实现了AQS的NonfairSync来获取非公平锁。所以只需关注NonfairSync的tryAcquire的实现。   获取锁(nonfairTryAcquire方法定义在Sync内部类中) 获取锁成功分为两种情况,第一个if判断AQS的state是否等于0,表示锁没有人占有。接着,hasQueu...

2018-11-26 17:17:19 1258

原创 一个Java高并发秒杀项目

panic-buy一个高并发秒杀抢购解决方案,用于个人学习。欢迎提供意见和建议项目结构服务注册和发现中心:EurekaAPI网关:Zuul缓存:Redis消息队列:Kafka数据库:MySQL主要特性缓存查询预加载商品库存到Redis缓存,提高查询速率数据一致性提供3种加锁方案,并且在一个事务中:MySQL商品库存更新后,立即更新缓存中的库存信息MySQL乐观锁R...

2018-11-02 14:55:45 5694 1

原创 基于Netty和Zookeeper的rpc框架实现

Netty-rpc一个用于个人学习的轻量级rpc框架服务注册与发现中心ZooKeeper通信框架Netty序列化Protostufftodo: 序列化的多协议支持两种调用模式同步调用异步(Future)调用实现可靠连接心跳检测机制断线重连机制GitHub: JiangJiangjungle仓库地址:https://github.com/Jiang...

2018-11-02 14:49:09 852

转载 TCP四次分手中,主动关闭方最后为什么要等待2MSL之后才关闭连接?

和TCP三次同步握手不一样的是,TCP关闭连接用四次握手来实现,即A--->B Fin, B--->A ACK, B--->A Fin, A--->B ACK,为什么要这样当主动断开连接的一方(Initiator)发送FIN包给对方,且对方回复了ACK+FIN,然后Initiator回复了ACK后就进入TIME_WAIT状态,一直将持续2MSL后进入CLOSED状态。A--...

2018-06-04 10:57:01 1163

原创 Java面试重点(不断更新)

Java基础Java内存模型 多态(重载重写) object方法 类访问权限 sleep、notify、wait 联系、区别 String、stringbuffer、stringbuilder 联系、区别、源码 volatile 原理、源码、与syn区别 线程实现的三种方式(继承、Runnable、Callable) 线程间通信方式(wait/notify 、await/sig...

2018-06-03 21:56:21 1963

原创 代理模式(从静态代理到动态代理)

代理模式的定义:为其它对象提供一个代理对象,并由代理对象控制这个对象的访问。代理模式的作用:个人理解:需要在不修改源码的情况下,将方法进行增强。举例:定义一个接口 Barkingpublic interface Barking { void bark();}实现类有 Dogpublic class Dog extends Animal implements Barking{ publ...

2018-05-31 21:46:27 220

转载 Spring MVC 到底是如何工作的?

在本文中,我们将使用最新、最好的Spring Framework 5。我们将重点介绍Spring的经典Web堆栈,该堆栈从框架的第一个版本中就崭露头角,并且现在依然是用Spring构建Web应用程序的主要方式。对于初学者来说,为了安装测试项目,最好使用Spring Boot和一些初学者依赖项;还需要定义parent:<parent> <groupId>org.spr...

2018-05-27 16:30:48 366 1

转载 Spring中Bean的生命周期?

作者:MOBIN-F链接:https://www.zhihu.com/question/38597960/answer/77600561明确一点说:应该是Spring中ApplicationContext容器的Bean生命周期过程:<img src="https://pic3.zhimg.com/50/754a34e03cfaa40008de8e2b...

2018-05-25 17:18:30 219

转载 Java线程池的理解和应用

结合上面的流程图来逐行解析,首先前面进行空指针检查,wonrkerCountOf()方法能够取得当前线程池中的线程的总数,取得当前线程数与核心池大小比较,如果小于,将通过addWorker()方法调度执行。如果大于核心池大小,那么就提交到等待队列。如果进入等待队列失败,则会将任务直接提交给线程池。如果线程数达到最大线程数,那么就提交失败,执行拒绝策略。 excute()方法中添加任务的方式是使用a...

2018-05-24 10:57:22 385

翻译 Java NIO解析

翻译自:http://tutorials.jenkov.com/java-nio/index.html1. 什么是Java NIOJava NIO(New IO)是用于Java(来自Java 1.4)的替代IO API,意味着替代标准Java IO和Java Networking API。 Java NIO提供了与标准IO API不同的IO工作方式。1.1 Java NIO: Channels 和...

2018-05-18 21:36:13 257

转载 Tomcat的原理及架构

转自:https://zhuanlan.zhihu.com/p/35398064俗话说,站在巨人的肩膀上看世界,一般学习的时候也是先总览一下整体,然后逐个部分个个击破,最后形成思路,了解具体细节,Tomcat的结构很复杂,但是 Tomcat 非常的模块化,找到了 Tomcat最核心的模块,问题才可以游刃而解,了解了Tomcat的整体架构对以后深入了解Tomcat来说至关重要!一、Tomcat顶层架...

2018-05-18 19:43:25 32470 12

转载 Docker的介绍及其基本使用

作者地址:青牛什么是dockerDocker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker ...

2018-05-18 15:51:30 465

转载 Java中的锁分类

https://www.cnblogs.com/qifengshi/p/6831055.html在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:公平锁/非公平锁可重入锁独享锁/共享锁互斥锁/读写锁乐观锁/悲观锁分段锁偏向锁/轻量级锁/重量级锁自旋锁上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的内容是对...

2018-05-15 16:14:05 137

转载 MySQL 数据库索引原理与分类

.转载自该博客前言数据库索引本质上是一种数据结构(存储结构+算法),目的是为了加快目标数据检索的速度。目录1.索引的本质与原理2.索引的分类1.索引的本质与原理我们先看一个问题:假设现在有100000条从0到10000且从大到小排列的整型数据,1条数据的大小假设(真的只是假设)是1KB,操作系统的每次I/O数据块(页)大小是8KB。如果现在我要查找其中 50001 这个数据值,有如下几个方式:1....

2018-05-15 16:04:21 175

转载 MySQL性能优化的最佳20+条经验

https://coolshell.cn/articles/1846.html今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQ...

2018-05-15 14:58:50 184

转载 B树、B+树、B*树和R树

转自:https://blog.csdn.net/v_july_v/article/details/6530142第一节、B树、B+树、B*树1.前言:动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree...

2018-05-13 19:26:57 248

翻译 理解Java Integer的缓存策略

本文将介绍 Java 中 Integer 缓存的相关知识。这是 Java 5 中引入的一个有助于节省内存、提高性能的特性。首先看一个使用 Integer 的示例代码,展示了 Integer 的缓存行为。接着我们将学习这种实现的原因和目的。你可以先猜猜下面 Java 程序的输出结果。很明显,这里有一些小陷阱,这也是我们写这篇文章的原因。[java] view

2018-05-06 16:15:16 131

转载 Github之README编辑

转载自:http://blog.csdn.net/zhaokaiqiang1992    之前一直在使用github,也在上面分享了不少的项目和Demo,每次创建新项目的时候,使用的都是默认的README.md文件,也不曾对这个文件有过什么了解。但是在看到别人写的项目的README.md里面竟然有图片、链接什么的,就感到很好奇,这效果是什么加上去的?于是便查了一下资料,结果,竟迁出了一门从来没

2018-04-23 22:13:03 750

转载 Spring源码剖析——依赖注入实现原理

转自此博客引言  在之前的 Spring源码剖析——核心IOC容器原理这篇文章中,已经详细介绍了在Spring当中我们配置的Bean是怎样被Spring解析和管理的,我们配置的那些Bean经过载入 、解析 和 注册 这三个过程后,在框架内部被抽象封装成BeanDefinition这种类型,最终所有的BeanDefinition交由BeanFactory当中的definitionMa

2018-04-17 22:50:52 1080

转载 深入Spring IOC源码之Resource

在Java中,将不同来源的资源抽象成URL,通过注册不同的handler(URLStreamHandler)来处理不同来源的资源的读取逻辑,一般handler的类型使用不同前缀(协议,protocol)来识别,如“file:”、“http:”、“jar:”等,然而URL没有默认定义相对classpath或ServletContext等资源的handler,虽然可以注册自己的URLStreamHan

2018-04-11 23:00:02 274

转载 Spring IOC总体结构

转载自:  https://blog.csdn.net/yujin753/article/details/47043143Spring ICO详解之总体结构IOC介绍IOC, spring的核心,贯穿Spring始终。直观的来说,就是由spring来负责控制对象的生命周期和对象间的关系,将对象之间的关系抽象出来,通过sprin

2018-04-10 20:18:00 469

转载 利用Jmeter 实现Json格式接口测试

第一步 创建线程组如下图所示创建线程组与设置线程数。第二步 创建HTTP信息头管理器如下图所示创建HTTP信息头与配置项第三步 创建HTTP请求如下图所示创建HTTP请求与配置项第四步 创建CSV Data Set Config如下图所示创建CSV Data Set Config与配置项

2018-04-07 12:48:16 1319

转载 SpringBoot学习之Json数据交互

转载:https://www.cnblogs.com/stillcoolme/p/7678883.html1. Json报文SpringBoot 默认会使用 Json 作为响应报文格式。首先,我们创建一个 UserController 用于处理前端的 Web 请求。定义一个简单的控制器,与通常返回 Url 的 Controller 不一样的是,login() 使用了 @Respon

2018-04-06 22:18:15 1963

转载 MySQL 数据类型

http://www.runoob.com/mysql/mysql-data-types.htmlMySQL中定义数据字段的类型对数据库的优化是非常重要的。MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。数值类型MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据类型(INTEGER、SMALLINT、D

2018-04-02 22:43:34 151

转载 关系数据库的三大范式以及BCNF范式

转自:知乎链接:https://www.zhihu.com/question/24696366/answer/29189700首先要明白”范式(NF)”是什么意思。按照教材中的定义,范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”。很晦涩吧?实际上你可以把它粗略地理解为一张数据表的表结构所符合的某种设计标准的级别。就像家里装修买建材,最环保的是E0级,其次是E...

2018-04-02 22:19:46 30320 21

转载 MySQL中的行级锁,表级锁,页级锁

在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足。在DBMS中,可以按照锁的粒度把数据库锁分为行级锁(INNODB引擎)、表级锁(MYISAM引擎)和页级锁(BDB引擎 )。行级锁行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销也最

2018-04-02 20:03:17 152

转载 理解MYSQL MVCC 实现机制

转自:https://blog.csdn.net/whoamiyang/article/details/519018881. MVCC简介1.1 什么是MVCCMVCC是一种多版本并发控制机制。1.2 MVCC是为了解决什么问题?大多数的MYSQL事务型存储引擎,如,InnoDB,Falcon以及PBXT都不使用一种简单的行锁机制.事实上,他们都和MVCC–

2018-04-02 18:34:26 142

转载 数据库事务的四大特性以及事务的隔离级别

转自:https://www.cnblogs.com/fjdingsd/p/5273008.html 本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。  如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博

2018-04-02 14:54:18 156

转载 Spring Boot学习(1)

转自:http://www.cnblogs.com/larryzeal/p/5765945.htmlSpring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题---习惯大于约定。 Spring Boot默认使用to

2018-03-30 17:52:34 92

转载 计算机网络面试问题集锦

摘要:  本文对面试/笔试过程中经常会被问到的一些关于计算机网络的问题进行了梳理和总结,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。关于这块内容的初步了解和掌握,建议大家读一读《图解HTTP》一书。版权声明:  本文原创作者:书呆子Rico   作者博客地址:http://blog.csdn.net/justloveyou_/

2018-03-30 10:26:14 115

转载 图解 HTTP:Web开发相关的一些核心基础概念

摘要:  当今web程序的开发技术真是百家争鸣,ASP.NET,PHP,JSP,Perl,AJAX等。无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要,因为它让我们理解了Web应用程序的内部工作。本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看,也希望对大家的开发工作或者测试工作有所帮助。最重要的是,本文通过使用Fiddler工具图文并茂地介绍了HTT

2018-03-30 10:19:33 193

转载 计算机网络基础

转自:https://zhuanlan.zhihu.com/p/22516664怎么开始学习网络协议?如何学习tcp ip协议?如何通俗地解释一下同属应用层的 TCP/UDP 协议,和 HTTP、FTP、SMTP 等所谓的“Application-layer Protocol”协议之间的区别?TCP流量控制中的滑动窗口大小、TCP字段中16位

2018-03-27 15:06:47 124

转载 spring框架:AOP

转自:http://www.cnblogs.com/xrq730/p/4919025.htmlAOPAOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开发者定义纵向的关系...

2018-03-25 11:07:23 87

转载 Java同步框架AQS原文分析

一、概述类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch...。本文主要转载了2篇文章,做了一些自己的批注。原文链接:http://www.cnblogs.com/waterystone/p/4920797.htmlhttps://www...

2018-03-23 11:46:07 250

转载 线程的状态转换与Thread解析

转自:https://www.cnblogs.com/jijijiefang/articles/7222955.html线程在一定条件下,状态会发生变化。线程一共有以下几种状态:1、新建状态(New):新创建了一个线程对象。2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU

2018-03-22 11:28:42 303

非均匀阵列+MUSIC算法 DOA仿真代码

非均匀阵列+MUSIC算法 DOA仿真代码; 版本:demo 亲测有效。

2019-04-09

OPA695_D_8封装

运算放大器opa695的封装

2016-07-23

空空如也

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

TA关注的人

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