自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (7)
  • 收藏
  • 关注

原创 详解 Java 泛型

java

2023-02-06 17:58:00 266 1

原创 接口优化技巧,那叫一个优雅!

java 接口

2023-02-03 14:14:51 321

原创 灰度发布是什么?

java

2023-01-18 15:44:17 760

原创 优雅API接口设计

java API接口

2023-01-18 14:42:56 261

原创 mysql底层数据存储原理

mysql数据存储原理

2023-01-18 11:00:14 1011

原创 一、Eureka源码分析

一、前言Spring Cloud Eureka是Spring Cloud Netflix微服务套件中的一部分,主要负责实现微服务架构中的服务治理功能,包括服务注册和服务发现。本文从源码的角度,分析Eureka的服务治理机制。二、Eureka服务治理机制在Eureka服务治理架构中有三种角色,分别是:服务注册中心Eureka提供的服务端,提供服务的注册和发现功能服务提供者提供服务的应用,需要将自己提供的服务注册到Eureka,以供其他应用发现服务消费者消费者...

2022-03-17 16:35:15 1955

原创 二、Eureka之server端集群节点发现,数据同步

一、前言Eureka服务端封装了一个集群节点管理的类名称为PeerEurekaNodes 通过名称翻译出来为对等的Eureka节点集合,可以看出这个类是对eureka服务端集群节点抽象,下面通过源码查询eureka是怎么管理与发现节点信息//eureka server 集群节点 集合类 帮助管理维护集群节点@Singletonpublic class PeerEurekaNodes {/** * 集群节点集合 */private volatile List<P...

2022-03-17 16:35:02 911

原创 十、API网关

一、前言API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。网关应当具备以下功能:性能:API高可用,负载均衡,容错机制。 安全:权限身份认证、...

2022-03-17 16:34:48 343

原创 hashmap面试题

hashmap1.8中的hash函数简单的说就是对key做hashCode操作,然后将得到的32为散列值向右位移16位,再与hashCode做异或计算。实质上是把一个数的低16位与他的高16位做异或运算static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);}首先 h = ...

2022-03-17 16:34:35 1581

原创 一、大数据简介

一、前言大数据就是主要解决海量数据的存储和海量数据的分析计算问题的一个领域。二、大数据特点(4V)三、大数据应用场景四、大数据部门组织结构...

2022-03-17 16:34:16 2560

原创 TreeMap排序是怎么样的?

1.TreeMap是如何实现去重和排序的?TreeMap实现了SortedMap接口,它是一个key有序的Map类。TreeMap的默认排序规则:TreeMap并不是根据插入的顺序来排序,而是根据key元素的 compareTo 方法来排序。Map<Integer, Object> map = new TreeMap<>();map.put(5, new Object());map.put(10, new Object());m...

2022-03-14 07:30:55 9902

原创 Java关键字final、static使用总结

一、final根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。final类不能被继承,没有子类,final类中的方法默认是final的。final方法不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。final不能用于修饰构造方法。注意:父类的private成员方法是不能被子类方法覆盖的,因此pr...

2022-03-14 07:30:38 767

原创 从地址栏输入URL到显示页面都发生了什么?

主要分下面六步:1、DNS解析2、TCP连接3、发起HTTP请求4、处理请求5、浏览器渲染6、TCP连接断开1、DNS解析如我们在浏览器中输入www.atest.com,浏览器会发送一个DNS查询请求报文,其内容为域名www.atest.com 所对应的IP地址是什么?DNS 的查询请求报文需要使用运输层的UDP协议封装成UDP用户数据报文,其首部中的源端口字段值在短暂端口号49151~65535中挑选一个未被占用的端口号用来表示DNS客户端进程进程,例如...

2022-03-14 07:30:12 327

原创 TCP与UDP的区别

一、前言TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP。二、TCP/IP网络模型计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议(protocol)。TCP/IP 是互联网相关的各类协议族的总称,比如:TCP,UDP,IP,FT...

2022-03-14 07:29:59 65637 7

原创 HTTP与HTTPS的区别

一、HTTP与HTTPS的区别HTTP 的URL 以http://开头,而HTTPS 的URL 以https://开头 HTTP 是不安全的,而 HTTPS 是安全的 HTTP 标准端口是80 ,而 HTTPS 的标准端口是443 在OSI 网络模型中,HTTP工作于应用层,而HTTPS 的安全传输机制工作在传输层 HTTP 无法加密,而HTTPS 对传输的数据进行加密 HTTP无需证书,而HTTPS 需要CA机构wosign的颁发的SSL证书二、什么是Http协议无状态协议?怎么解决H..

2022-03-14 07:29:45 662

原创 IPv6和IPv4的区别

IPv6和IPv4的区别:其实是IP地址数量不同。IPv6,顾名思义,就是IP地址的第6版协议。我们现在用的是IPv4,你的外网地址可能是这样一串数字:59.123.123.123。IPv4的地址是32位,总数有43亿个左右,还要减去内网专用的192、170地址段,就更少了。IPv6的地址是128位的,大概是43亿的4次方,地址极为丰富,几乎是取之不尽的,打个比方,地球上的每一粒沙子都能分配到自己的地址。目前上网是共用公网IP,换成IPv6之后,连路灯都可以有独立IP。...

2022-03-14 07:29:31 716

原创 Get 和Post请求的区别

GET和POST是HTTP请求的两种基本方法最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。HTTP协议中的两种发送请求的方法HTTP是什么?HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。你要给GET加上request body,...

2022-03-14 07:29:15 100

原创 SPI机制是什么?

一、SPI机制是什么?spi全称为 (Service Provider Interface),是JDK内置的一种服务提供发现机制。SPI是一种动态替换发现的机制,一种解耦非常优秀的思想。spi的工作原理: 就是ClassPath路径下的META-INF/services文件夹中, 以接口的全限定名来命名文件名,文件里面写该接口的实现。然后再资源加载的方式,读取文件的内容(接口实现的全限定名), 然后再去加载类。spi可以很灵活的让接口和实现分离, 让api提供者只...

2022-03-14 07:28:59 17503 4

原创 Java NIO 零拷贝

一、什么是零拷贝零拷贝描述的是CPU不执行拷贝数据从一个存储区域到另一个存储区域的任务,这通常用于通过网络传输一个文件时以减少CPU周期和内存带宽。二、零拷贝给我们带来的好处:减少甚至完全避免不必要的CPU拷贝,从而让CPU解脱出来去执行其他的任务减少内存带宽的占用通常零拷贝技术还能够减少用户空间和操作系统内核空间之间的上下文切换三、Linux系统的“用户空间”和“内核空间”从Linux系统上看,除了引导系统的BIN区,整个内存空间...

2022-03-14 07:28:38 1011

原创 CAS原理

CAS的英文为Compare and Swap 翻译为比较并交换。CAS加volatile关键字是实现并发包的基石。没有CAS就不会有并发包,synchronized是一种独占锁、悲观锁,java.util.concurrent中借助了CAS指令实现了一种区别于synchronized的一种乐观锁。什么是乐观锁与悲观锁?悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样当第二个线程想拿这个数据的时候,第二个线程会一...

2022-03-14 07:28:17 364

原创 list去重方法

List去重方案 方案一:借助Set的特性进行去重 方案二 : 利用set集合特性保持顺序一致去重 方案三 : 使用list自身方法remove()-->不推荐 方案四 : 遍历List集合,将元素添加到另一个List集合中 方案5 : 使用Java8特性去重 1.方案一:借助Set的特性进行去重/** * 去除重复数据 * 由于Set的无序性,不会保持原来顺序 * @param list */public static List<String&

2022-03-13 08:07:49 1448

原创 BIO、NIO、AIO、 的原理及区别与应用场景

同步阻塞IO(JAVA BIO):BIO【同步阻塞】在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,其实就是服务端创建一个ServerSocket, 然后就是客户端用一个Socket去连接服务端的那个ServerSocket, ServerSocket接收到了一个的连接请求就创建一个Socket和一个线程去跟那个Socket进行通讯。接着客户端和服务端就进行阻塞式的通信,客户端发送一个请求,服务端Socket进行处理后返回响应,在响应返回前,客户端那边就阻塞等待,什么事情也...

2022-03-13 08:07:37 443 1

原创 HashMap工作原理

HashMap 内部是如何存储数据的?工作原理是什么?java1.7 hashMap 底层实现是数组+链表.java1.8 hashMap 底层实现是数组+链表+红黑树.1、hashmap 是怎么保存数据的?在hashmap 中有这样一个结构Node implenets Map.entity{hashkeyvaluenext}当我们像hashMap 中放入数据时,其实就是一个Enity{...

2022-03-13 08:07:23 332

原创 ArrayList和LinkedList实现原理

一、ArrayList实现原理ArrayList就是动态数组,ArrayList并不是线程安全的,允许 null 的存在,是有序的,初始容量大小为10,当超过容量后,会进行扩容,以原来容量的1.5倍来扩容,如之前的容量为10,下次扩容扩大到10 + 5,ArrayList的最大长度为 2^32 .当删除数组中间的元素,后面的元素都会向前移动。随着向ArrayList中不断添加元素,其容量也自动增长。自动增长会带来数据向新数组的重新拷贝,这种操作的代价是很高的,因此,如果可预知数据量的多少...

2022-03-13 08:07:12 1280

原创 HashSet和LinkedHashSet

一、HashSet实现原理总结HashSet的实现原理总结如下:①是基于HashMap实现的,默认构造函数是构建一个初始容量为16,负载因子为0.75 的HashMap。封装了一个 HashMap 对象来存储所有的集合元素,所有放入 HashSet 中的集合元素实际上由 HashMap 的 key 来保存,而 HashMap 的 value 则存储了一个 PRESENT,它是一个静态的 Object 对象。②当我们试图把某个类的对象当成 HashM...

2022-03-13 08:06:58 860

原创 面向对象的六大原则

面向对象编程中的六大原则1. 单一职责原则(Single Responsibility Principle)即一个类只负责一项职责。2. 里氏替换原则(Liskov Substitution Principle)子类可以扩展父类的功能,但不能改变父类原有的功能3. 依赖倒置原则(Dependence Inversion Principle)高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。4. 接口隔离原则(Interface Segregatio

2022-03-13 08:06:45 2293

原创 五、观察者模式

定义观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变,它定义了对象间一种一对多的依赖关系,使得每当一个对象改变状态,所有依赖于它的对象都会得到通知并被自动更新。场景一个微信公众号服务,不定期发布一些消息,关注公众号的就可以收到推送消息,取消关注就不能收到。观察者模式结构图在观察者模式中有如下角色:Subject:抽象主题(抽象被观察者...

2022-03-13 08:06:28 111

原创 四、代理模式

代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的访问。通俗的来讲代理模式就是我们生活中常见的中介。举个例子来说明:假如说我现在想买一辆二手车,虽然我可以自己去找车源,做质量检测等一系列的车辆过户流程,但是这确实太浪费我得时间和精力了。我只是想买一辆车而已为什么我还要额外做这么多事呢?于是我就通过中介公司来买车,他们来给我找车源,帮我办理车辆过户流程,我只是负责选择自己喜欢的车,然后付钱就可以了。用图表示如下:为什么要用代理模式?中介隔离作用:在某些...

2022-03-13 08:06:14 71

原创 三、策略模式

一、定义定义一系列的算法,把每一个算法封装起来, 并且使它们可相互替换。比如骑自行车、坐公交、坐火车、坐飞机、坐火箭等等,这些出行方式,每一种都是一个策略。Context:用来操作策略的上下文环境。 Stragety:策略的抽象。 ConcreteStragetyA、ConcreteStragetyB:具体的策略实现策略模式简单实现这回我们还举武侠的例子,张无忌作为一个武林侠会遇到很多的对手,如果每遇到一个对手都用自己最厉害的武功去应战这显然是不明...

2022-03-13 08:06:01 162

原创 二、工厂模式

一、简单工厂模式简单工厂模式又 叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。public abstract class Operation { public abstract float getResult(float firstNumber, float secondNumber);}//把符号都当做对象处理,实现此接口public class ...

2022-03-13 08:05:37 93

原创 volatile是否存在伪共享问题?

1.什么是伪共享和共享?在探讨LongAdder是如何解决伪共享问题之前,我们要先梳理清一个概念,什么是伪共享和共享?共享在Java编程里面我们可以这样理解,有一个Share类,它有一个value的属性。如下:public class Share{ int value;}我们初始化Share的一个实例,然后启动多个线程去操作它的value属性,此时的Share变量被多个线程操作的这种情况我们称之为共享。大家都知道...

2022-03-12 14:51:04 514

原创 volatile的原理

一、前言 volatile关键字是Java虚拟机提供的的最轻量级的同步机制,它作为一个修饰符,用来修饰变量。它保证变量对所有线程可见性,禁止指令重排,但是不保证原子性。volatile是如何保证可见性的呢?我们先来看下java内存模型(jmm)Java虚拟机规范试图定义一种Java内存模型,来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台上都能达到一致的内存访问效果。 为了更好的执行性能,java内存模型并没有限制执行引擎使用处理器的特定寄...

2022-03-12 14:47:11 147

原创 JVM中那些类可以作为GCRoot对象

一:jvm内存回收算法一般有两种1、引用计数法:如果有地方引用该对象,该对象的引用计数就+1,如果引用失效的话就减一。计数器为0的对象不可以被使用。2、可达性分析法:如果我们将一些GC Roots对象作为起始点,从这些节点向下搜索,搜索到的路径为引用链,如果有一些对象没有任何引用链相连,那么这个对象对于GC Roots是不可达的,即使它们之间可能相互产生关联,所以将其判定为可回收对象试想一下,如果有两个对象互相引用,比如objA.instance = objB, ...

2022-03-12 14:43:12 1433

原创 JVM调优-工具

一、JDK内置工具1.监控工具jpsjstat2.故障排除工具jinfojmapjstackjcmdjhatjhsdb3.可视化工具jhsdbjconsolevisualvmjava mission control二、第三方工具memo...

2022-03-12 09:12:10 4122

原创 垃圾回收器

一、垃圾回收器1.Serial 年轻代 串行回收器,采用的是复制回收算法 ,单线程的2.PS(Parallel Scavenge) 年轻代 并行回收器,采用的是复制回收算法,多线程的3.ParNew 年轻代,配合CMS的并行回收,采用的是复制回收算法,多线程的4.Serial Old 老年代,串行回收器,采用的是标记整理回收算法,单线程的5.Parallel Old 老年代,并行回收器,采用的是标记整理回收算...

2022-03-12 09:09:13 204

原创 垃圾回收算法

一、典型的垃圾回收算法1. 标记-清除算法(Mark-Sweep)2. 复制算法(Copying)3. 标记-整理算法(Mark-Compact)4. 分代收集算法1. 标记-清除算法(Mark-Sweep)分为两个阶段,标注和清除。标记阶段标记出所有需要回收的对象,清除阶段回收被标记的对象所占用的空间。该算法最大的问题是内存碎片化严重,后续可能发生大对象不能找到可利用空间的问题。...

2022-03-12 09:04:36 5302

原创 JVM基本原理,内存模型

一、前言根据 JVM 规范,JVM 内存共分为虚拟机栈VM stack、堆heap、方法区Method Area、程序计数器Program Counter Register、本地方法栈Native Method Stack五个部分。如下图,咋们分别对这五个区域进行详细的原理讲解。方法区:它用于存储已被虚拟机加载的类信息,常量,静态变量,即时编译(JIT)后的代码等数据。由于程序中所有的线程共享一个方法区,所以访问方法区的信息必须确保线程是安全的。如果有两个线程同时...

2022-03-12 08:57:21 180

原创 二十、数据库的高可用是怎么实现的?

高可用,即High Availability,是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。单机部署谈不上高可用,因为单点故障问题。高可用都是多个节点的,我们在考虑MySQL数据库的高可用的架构时,需要考虑这几个方面:如果数据库节点宕机,需要尽快回复,保证业务不受宕机影响。 从数据库节点的数据,尽可能跟主节点数据实时保持一致,至少保证最终一致性。 数据库节点切换时,数据不能缺失。1.1 主从或主主半同步复制用双节点数据库,搭建单向或者双向的半同步复制

2022-03-12 07:49:26 1259

原创 ArrayList底层(1.7和1.8)变化

jdk1.7:当实例化ArrayList时,创建长度为10的object[ ] ;jdk1.8:当实例化是,创建object[ ] ,初始化为 { },并没有长度。当添加第一个元素时,创建长度为10的数组。1.7类似,饿汉式1.8类似,懒汉式1.8的优点:延迟数组的创建,节省内存....

2022-03-12 07:49:13 439

原创 ArrayList.contains(Object)

查看list中是否有这个值,时间复杂度是 O(n)底层实现:public boolean contains(Object o) { return indexOf(o) >= 0;}遍历了n次public int indexOf(Object o) { if (o == null) { for (int i = 0; i < size; i++) if (elementData[i]==null)

2022-03-12 07:48:47 81

cocos2dx小游戏

Cocos2dx c++小游戏,打飞机,cocos2dx初学者

2014-03-18

小熊弹琴的flash游戏

小熊弹琴的flash游戏,很好玩的,卡通动画类型,好玩

2014-03-14

rcp学习,资料,很有用请下载

sssssssssssssssssssrcp学习,资料,很有用请下载

2010-09-23

extjs源代码下载动态改变组建

动态改变组建,extjs源代码下载动态改变组建,欢迎下载

2010-06-19

陈治文视频教程ext源代码

学习extjs的学员下载,extjs源代码 Javaweb开发

2009-10-02

历年来的java面试题

历年来java面试题,有答案,读者可以多看看,很有好处

2009-02-11

jsp数据库开发实例

jsp+Javabean的论坛系统 使用的是mysql数据库;实现上传功能

2008-11-15

空空如也

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

TA关注的人

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