自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 maven多仓库查找依赖的顺序

https://blog.csdn.net/Ethan_199402/article/details/108141449?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242

2020-09-03 11:40:14 1073

原创 zookeeper核心知识了解

zk了解分布式程序服务之间需要相互调用,调用其它服务则需要知道其它服务的相关信息,如果在每个服务上都存储其它服务的相关信息,效率很低,且工作量大,不好维护,这时就需要一个专门的服务来维护这么服务的数据信息,需要获取其它服务的时候就直接到这里来拿,zk就是来管理这些服务的数据信息的,即也叫分布式应用程序的协调服务。zk既然要对数据进行管理,则需要提供对数据的基本操作,增删改查等相关命令操作是肯定...

2020-03-29 01:52:49 133

原创 JVM参数及调优

调优基本概念常用JVM参数GC调优思路通用GC参数JVM有自适应调整参数的功能。垃圾收集器Parallel参数调优垃圾收集器CMS参数调优垃圾收集器G1调优参数...

2020-01-03 13:48:34 124

原创 jdk内置工具

目录javapjpsjstatjstatjcmdjinfojhatjmapjstackJconsoleJvisualVm目标熟悉常用的命令和监控工具。javapjpsjstat主要用总GC监控,监控java虚拟机。jcmdjinfojhat保存为网页jmapjstackJconsole测试、性能调试。JvisualVm比...

2020-01-02 20:59:58 197

原创 垃圾回收机制

目录自动垃圾回收如何确定内存需要被回收可达性分析算法引用类型可达性级别垃圾收集算法分代收集垃圾收集器自动垃圾回收如何确定内存需要被回收标记用来识别哪些内存正在使用,哪些不再使用。引用计数:会有循环引用的问题。A和B相互引用,但实际上都没有被使用到。方法区回收:在类加载中类被卸载。可达性分析算法把对象和引用看作一个关系图。找到一个能到作为入口对象,通过这个对象进行...

2020-01-02 17:39:16 89

原创 类加载机制

目录运行时数据区类生命周期类加载器验证问题查看类对应的加载器JVM如何知道我们都类在何方类不会重复加载类不会重复加载类的卸载双亲委派模型运行时数据区类生命周期类加载器先有C后有java。应用程序加载器,就是加载开发人员编写的代码。验证问题查看类对应的加载器核心类库:String、Object等都属于核心类库。/** * 查看类的加载器实例 */...

2020-01-02 15:53:59 71

原创 Netty零拷贝机制

目录Netty自己的ByteBuffByteBuf做的了哪些增强ByteBuf操作基本使用ByteBuf动态扩容选择合适的ByteBuf实现Unsafe的实现PooledByteBuf对象、内存复用零拷贝机制Netty自己的ByteBuffByteBuf做的了哪些增强ByteBuf操作NIO只有一个位置的字段,即positon。基本使用/** * byt...

2020-01-01 15:58:49 206

原创 Netty线程模型

目录目标Netty整体结构图Netty基本使用Netty线程模型EventLoopGroup初始化过程EventLoop的启动Bind绑定端口过程Channel概念小结目标Netty简介Netty整体结构图Netty基本使用Netty线程模型EventLoopGroup初始化过程启动的时候会构建多个EventLoopGroup。EventLoop的启动...

2019-12-29 22:16:04 98

原创 NIO非阻塞网络编程

目录目标JAVA NIOBuffer缓冲区Buffer工作原理Buffer基本使用ByteBuffer内存类型Channel通道SocketChannelServerSocketChannelSelector选择器NIO对比BIO小结目标了解NIO、熟悉Buffer API、channel、selector,NIO+多线程JAVA NIONIO:new IO,非...

2019-12-29 17:40:15 187

原创 BIO阻塞式网络编程

目录BIO网络编程基本的服务端和客户端,Socket+IO利用多线程技术,解决socketServer线程阻塞的问题Http协议Socket+IO和浏览器进行交互BIO - 阻塞IO的含义BIO网络编程基本的服务端和客户端,Socket+IO。out.write(msg.getBytes(charset)); // 阻塞,写完成serverSocket.accept();/...

2019-12-29 15:44:42 141

原创 TCP/UDP协议

目录目标目标熟悉TCP网络协议相关内容OSI网络七层模型目的是构建最大的网络,分层的意义是让每一层的设计人员,不需要取关注整个网络层次,只需要关注对应的网络层次结构。各层的主要功能低三层目的:屏蔽底层网络复杂性,太过底层。IP协议可以定位到某一台机器,但是无法定位到某一个端口。传输层:承上启下的作用,保证了跨进程跨机器的数据传输,TCP/UDP就是对具体传输层的定...

2019-12-29 15:11:16 305

原创 J.U.C并发工具类

目录目标CountDownLatchSemaphoreCyclicBarrierRunnable和Callablefork/join并发处理框架目标并发工具类:CountDownLatchFork/Join的使用Futrue的使用CountDownLatch倒计数器。共享锁。由AQS共享锁实现。countDown();-》倒计数器减一,并阻塞。await();当co...

2019-12-28 22:22:13 203

原创 并发容器类list_set_queue

目录目标ArrayListCopyOnWriteArrayListSet集合HashSetCopyOnWriteArraySetConcurrentSkipListSetQueue APIArrayBlockingQueueLinkedBlockingQueueConcurrentLinkedQueueSynchronousQueue同步队列PriorityBlocki...

2019-12-28 18:16:47 273 1

原创 并发容器类Map

目录目标HashMap原理ConcurrentHashMapConcurrentSkipListMap目标HashMapConcurrentHashMap认识了解ConcurrentSkipListMapHashMap内部结构和原理线程不安全:扩容时是非原子操作,会存在数据不完整,读的时候会存在问题,线程不安全。从抽象角度,带着问题看源码,看最熟悉的方法,主要关注是什么而...

2019-12-28 14:37:02 116

原创 锁原理之AQS

目录ReadWriteLock目标实现线程安全的hashmap。实现简单的缓存组件。如何使用读写锁。AQS原理。ReadWriteLock使用场景:对集合操作可以实现并发读,互斥写,即给读加读锁,写加写锁。改进提升互斥锁的性能。锁降级:获取写锁后,可以在获取读锁,即拿着写锁,获取读锁。基本原理AQS抽象队列同步器对加锁解锁的公共代码的抽象,try方...

2019-12-27 19:37:59 231

原创 java中一个类实例化的加载顺序

目录目标一个java对象实例化会和什么有关系?总结目标了解一个java对象实例化会执行哪些操作。一个java对象实例化会和什么有关系?基本数据类型引用数据类型static字段static代码块构造函数父类public class A { String sA; //基本数据类型 static int iA;//static字段 //stat...

2019-12-27 16:49:24 96

原创 Lock接口及其实现

目录目标锁的本质Lock APIReentrantLocksynchronized vs Lock读写锁目标ReentrantLock的实现。锁的本质因为资源会产生争抢,会产生线程安全问题,所以提出规则,只有抢到锁,才能访问资源。锁的本质实质是添加了一个规则,怎么样才能访问到资源,获得锁,即获得了资源的访问的资格。获取锁要去抢,和谁创建的没有关系。Lock APIL...

2019-12-27 10:51:41 116

原创 java锁相关

目录目标JAVA中锁的概念同步关键字synchronizedsynchronized底层原理堆内存中的java对象目标锁是访问资源的凭据,会消耗资源。wait会破会Synchronized的原子性,因为会释放锁。Synchronized从使用到原理。JAVA中锁的概念冲突:指数据的不一致性。自旋锁:CAS操作机制,循环尝试等待。乐观锁:不会有冲突,会进行比对判断,不一...

2019-12-26 22:27:37 61

原创 线程安全之原子操作

目录Atomic相关类和CSA机制原子操作存在原子操作的问题。核心在于资源在该操作中保持一致反编译后字节码指令读取- 赋值- 相加分析字节码执行顺序问题原因在t1线程put后,t2线程在t1线程put之前操作,操作了无效数据,导致出现数据一致性问题。和可见性问题的区别可见性:先写后读,无法读到。此原子问题:在写之前就以读取,所以和可见性问题没有...

2019-12-26 17:52:33 126

原创 java内存模型详解-可见性

目录JVM运行时数据区Java内存模型 vs JVM运行时数据区初看java内存模型多线程中的问题从内存结构到内存模型JIT编译器 volatile关键字Shared Variables(共享变量)定义对于同步的规则定义Happens-before先行发生原则final在JMM中的处理Word Traring字节处理double和long的特殊处理再看Java内存模型...

2019-12-26 17:02:16 188

原创 线程池原理

目录目的线程次原理-概念线程池API-接口定义和实现类线程池API-方法定义线程池的基本使用线程池API-Executors工具类线程池原理-任务execute过程线程池创建源码/参数线程池执行源码线程池运用线程数量目的提高性能,减少内存消耗。线程池原理-概念线程池API-接口定义和实现类常用:ThreadPoolExecutor,标准实现。线程池API...

2019-12-26 14:16:25 81

原创 线程封闭

目录概念ThreadLocal局部变量概念ThreadLocal不同的线程操作此变量会拿到不同的结果,跨方法使用没有问题,只要在同一个线程中即可。局部变量栈封闭:局部变量的固有属性之一就是封闭在线程中,他们位于执行线程的栈中,其它线程无法访问这个栈。...

2019-12-26 13:38:42 51

原创 线程通信

目的线程通信的目的是为了实现线程之间的数据交互和相互协作。通信的方式主要以JDK-API为主文件共享/网络共享变量共享线程协作-JDK APIAPI-被弃用的suspend和resume作用:调用suspend挂起目标线程,通过resume可以恢复线程执行。弃用原因:容易写出死锁代码。suspend挂起后不会释放锁,会导致死锁。suspend要比resume后执行,...

2019-12-26 13:09:15 138

原创 CPU缓存和内存屏障

目录目的CPU性能优化手段-缓存多级缓存说明缓存同步协议cpu性能优化手段-运行时指令重排存在的问题内存屏障目的主要是了解CPU在程序性能优化上所做的努力。CPU性能优化手段-缓存目的:减少程序运行的时间开销,从而提高性能。多级缓存说明多级缓存的概念缓存同步协议最终写入主内存以哪个CPU为准?cpu性能优化手段-运行时指令重排目的:将执行快的代码优先执行...

2019-12-26 12:36:38 75

原创 线程中止

目录不正确的线程中止方式-stop正确的中止线程方式-interrupt正确的中止线程方式-标志位不正确的线程中止方式thread.stop();无法保证数据的原子性,会强行中断线程,无法保证线程安全,导致数据不一致,jdk标记为已弃用的状态。在线程睡眠期间,使用stop方式中止线程后,会导致i自增成功,j自增失败。正确的中止线程方式thread.interrupt保证...

2019-12-26 12:11:08 73

原创 线程状态

目录线程状态线程状态的切换线程的状态线程状态切换

2019-12-26 10:14:42 91

原创 java程序运行原理

目录整体预览JVM运行时数据区编译加载创建线程执行JVM执行方法,方法调用原理整体预览编写源代码 .java文件。编译—》.java–>.class.加载类信息:将class文件内容加载到JVM运行时区。执行代码。JVM运行时数据区方法区:JVM用来存储加载的类信息、常量、静态变量、编译后的代码等数据。堆内存:JVM启动时创建,存放对象的实例。可细分为:...

2019-12-26 10:04:07 88

原创 java程序运行原理分析

java程序运行过程详解概述java代码的编写编译翻译class文件源文件分析组成部分JVM内存模型指令码表运行分析总结概述本文主要介绍一个java程序是如何运行的,主要涉及到jvm一些知识点,本文以安装了JRE运行环境,不涉及到环境的安装。java程序运行的主要步骤包括:java程序代码的编写java源文件的编译java源文件代码的执行以下则围绕这几个点来进行详细的分析。jav...

2019-06-28 12:24:10 264

转载 Java集合:整体结构

Java集合:整体结构一、Java中集合  Java中集合类是Java编程中使用最频繁、最方便的类。集合类作为容器类可以存储任何类型的数据,当然也可以结合泛型存储指定的类型(不过泛型仅仅在编译期有效,运行时是会被擦除的)。集合类中存储的仅仅是对象的引用,并不存储对象本身。集合类的容量可以在运行期间进行动态扩展,并且还提供很多很方便的方法,如求集合的并集、交集等。二、集合类结构  Java中的集合包含

2017-05-04 18:23:10 353

原创 spring工作原理

1、spring原理 内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置文件来动态的创建对象,和调用对象里的方法的 。 Spring还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象 进行监督和控制(也就是 在调用这类

2017-05-04 18:21:02 769

原创 hibernate简介和工作原理

Hibernate的核心流程: 从上图中,我们可以看出Hibernate六大核心接口,两个主要配置文件,以及他们直接的关系。Hibernate的所有内容都在这了。那我们从上到下简单的认识一下,每个接口进行一句话总结。 1、Configuration接口:负责配置并启动Hibernate 2、SessionFactory接口:负责初始化Hibernate 3、Session接口:负责持久化

2017-04-20 17:23:59 5782

原创 java简介摘要

java特点:简单、面向对象、分布式、解释性、健壮性、安全、与系统无关、可移植、高性能、多线程和动态的语言。执行的机制:将源代码.java文件编译成.class文件。核心:jdk 、虚拟机、GC Java虚拟机是Java语言底层实现的基础.Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成

2013-12-23 23:55:57 713

空空如也

空空如也

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

TA关注的人

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