自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HBase学习

2. 物理存储结构:HDFS不能修改,除非删除重写,或者追加Hbase底层是(k,v)形式,key由几部分组成:rowkey(行键)+column Family(列簇) + Column Qualifier(列名) + Time Stamp(时间戳),value由value组成。

2024-08-28 16:26:36 408

原创 TensorFlow Object Detection

TensorFlow Object Detection学习

2024-07-09 16:46:22 668

原创 关于代码如何重构的问题

满足基本SOLID原则1.单一职责原则一个类只负责完成一个职责或者功能,不要存在多于一种导致类变更的原因。单一职责原则通过避免设计大而全的类,避免将不相关的功能耦合在一起,来提高类的内聚性。同时,类职责单一,类依赖的和被依赖的其他类也会变少,减少了代码的耦合性,以此来实现代码的高内聚、松耦合。但是,如果拆分得过细,实际上会适得其反,反倒会降低内聚性,也会影响代码的可维护性。2.开放-关闭原则添加一个新的功能,应该是通过在已有代码基础上扩展代码(新增模块、类、方法、属性等),而非修改已有代码(修改

2021-09-08 09:27:51 125

原创 Spring如何解决循环依赖的

采用三级缓存机制

2021-04-06 21:44:03 116

原创 关于HashMap在多线程中不安全引起死锁问题

通过看源码,可以得出死锁发生在扩容数组时复制链表的时候,也就是resize的transfer方法上/** * * 往表中添加元素,如果插入元素之后,表长度不够,便会调用resize方法扩容 */ void addEntry(int hash, K key, V value, int bucketIndex) { Entry<K,V> e = table[bucketIndex]; table[bucketIndex] = new.

2021-04-01 17:31:18 735

原创 docker 下载速度慢

配置加速源修改文件 vi /etc/docker/daemon.json{ "registry-mirrors": [ "http://f42ebfb9.m.daocloud.io" ] }重启 docker 服务systemctl restart docker

2021-03-30 13:35:31 274

原创 Java集合排序问题

List排序compare(String o1, String o2)方法返回的是-1,则排序时o1在前,o2在后,如果返回的是1,则排序时o2在前,o1在后。升序排列时,直接o1-o2的值就可以确定。以下示例为对号段排序,小号段排在前面Collections.sort(codeRowList, new Comparator<String>() { public int compare(String o1, String o2) {

2021-03-29 17:29:24 252

原创 SpringCloudAlibaba(五)分布式配置中心Nacos

概念现在微服务存在的问题配置文件增多,不好维护修改配置文件需要重新发布什么是配置中心:一句话:统一管理配置, 快速切换各个环境的配置相关产品:百度的disconf 地址:https://github.com/knightliao/disconf阿里的diamand 地址:https://github.com/takeseem/diamondspringcloud的configs-server: 地址:http://cloud.spring.io/spring-cloud-config

2021-03-28 21:09:27 115

原创 SpringCloudAlibaba(一)服务治理Nacos以及负载均衡

概念什么是注册中心(服务治理)服务注册:服务提供者provider,启动的时候向注册中心上报自己的网络信息服务发现:服务消费者consumer,启动的时候向注册中心上报自己的网络信息,拉取provider的相关网络信息核心:服务管理,是有个服务注册表,心跳机制动态维护,服务实例在启动时注册到服务注册表,并在关闭时注销。为什么要用微服务应用和机器越来越多,调用方需要知道接口的网络地址,如果靠配置文件的方式去控制网络地址,对于动态新增机器,维护带来很大问题主流的注册中心:zookee

2021-03-28 20:02:48 554

原创 SpringCloudAlibaba(四)链路追踪系统

概念分布式应用架构虽然满足了应用横向扩展的需求,但是运维和诊断的过程变得越来越复杂,例如会遇到接口诊断困难、应用性能诊断复杂、架构分析复杂等难题,传统的监控工具并无法满足,分布式链路系统由此诞生核心:将一次请求分布式调用,使用GPS定位串起来,记录每个调用的耗时、性能等日志,并通过可视化工具展示出来AlibabaCloud全家桶还没对应的链路追踪系统,我们使用Sleuth和zipking(内部使用的鹰眼)抛两个常见的问题微服务调用链路出现了问题怎么快速排查?微服务调用链路耗时长怎么定位是哪个

2021-03-28 19:54:05 775

原创 SpringCloudAlibaba(三)微服务网关

概念API Gateway,是系统的唯一对外的入口,介于客户端和服务器端之间的中间层,处理非业务功能 提供路由请求、鉴权、监控、缓存、限流等功能统一接入智能路由AB测试、灰度测试负载均衡、容灾处理日志埋点(类似Nignx日志)流量监控限流处理服务降级安全防护鉴权处理监控机器网络隔离主流的网关:zuul:是Netflix开源的微服务网关,和Eureka,Ribbon,Hystrix等组件配合使用,依赖组件比较多,性能教差kong: 由Mashape公司开

2021-03-28 19:10:01 197

原创 SpringCloudAlibaba(二)高并发下微服务的问题以及Sentinel的高可用

高并发下存在的问题微服务拆分多个系统,服务之间互相依赖,可能会由于系统负载过高,突发流量或者网络等各种异常情况 导致服务不可用。面向失败编程不要外界影响不被请求拖垮上游服务下游服务高并发下的微服务容错方案限流漏斗,不管流量多大,均匀的流入容器,令牌桶算法,漏桶算法熔断保险丝,熔断服务,为了防止整个系统故障,包含当前和下游服务 下单服务 -》商品服务-》用户服务 -》(出现异常-》熔断风控服务降级抛弃一些非核心的接口和数据,返回兜底数据 旅行箱的例子:只带核心的物品,抛弃非核心

2021-03-28 16:49:22 617 1

原创 JVM

JVMJVM分三部分:类装载子系统字节码执行引擎执行字节码文件,并且修改程序计数器,推动程序运行,还会启动GC垃圾收集线程GCGC回收算法是可达性分析算法,他会从GC ROOT对象向下查找引用的对象,直到找不到引用的对象,在最后一个对象和ROOT之间的对象都是非垃圾对象在第一次minor GC回收后,垃圾对象会在eden区被回收,非垃圾对象会被放进S0区,此时非垃圾对象就是存活者当eden快满的时候,再次触发GC回收,此时重复第一次GC回收操作,s0中的非垃圾对象会被放进s1,垃

2021-03-26 20:48:49 1141

转载 Redis

1. 概述Redis 是什么?Redis(Remote Dictionary Server ),即远程字典服务 !是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库, 并提供多种语言的API。redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。免费和开源!是当下最热门的 NoSQL 技术之一!也被人们称之为结构化数据库!Redis 能干嘛?1、内存存储、持久化

2021-03-24 19:35:53 145

原创 JUC并发

什么是JUC线程和进程进程:一个程序,QQ.exe Music.exe 程序的集合;一个进程往往可以包含多个线程,至少包含一个!Java默认有几个线程? 2 个 mian、GC线程:开了一个进程 Typora,写字,自动保存(线程负责的)对于Java而言:Thread、Runnable、Callable线程有几个状态:public enum State { // 新生 NEW, // 运行 RUNNABLE, // 阻塞 BLOCKED, // 等待,死死地等 WAIT

2021-03-21 23:21:40 301

原创 SpringBoot框架详解

SpringBoot框架

2021-03-18 23:07:46 4334

原创 MySQL事务相关

事务4个特性事务满足ACID原则,即A: Atomicity(原子性)一个事务中的所有操作,要么全部完成,要么全部不完成,最小的执行单位。C:Consistency(一致性)事务执行前后,都处于一致性状态。I:Isolation(隔离性)数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。D:Durability(持久性)事务执行完成后,对数据的修改就是永久的,即便系统故障也不会丢失。事务的隔离级别隔离

2021-03-17 16:40:37 109

原创 Maven项目导入依赖没反应

idea-Maven项目经常Reimport没反应如果遇到idea-Maven项目更新没反应,可以尝试在控制台输入:mvn complile命令,可以知道报错是什么!如此处指的是settings.xml标签配置错误导致无法更新

2021-03-14 17:47:47 1176

原创 Java注解和反射

Java注解和反射注解Annotation是从JDK5.0开始引入的新技术.Annotation的作用:不是程序本身,可以对程序作出解释.(这一点和注释(comment)没什么区别)可以被其他程序(比如:编译器等)读取.Annotation的格式︰注解是以"@注释名"在代码中存在的,还可以添加一些参数值﹐例如:@SuppressWarnings(value=“unchecked”).Annotation在哪里使用:可以附加在package , class , method , field等

2021-03-08 23:45:37 193

原创 Java多线程

多线程详解

2021-03-07 00:30:44 89

原创 Java代理模式

Java代理模式1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需修改,可以通过代理的方式来扩展该方法代理模式的关键点是:代理对象是对目标对象的扩展,并会调用目标对象.静态代理模式package thread;//接口interface Marry { void

2021-03-06 14:16:54 88

原创 Java异常

Java异常Error和Exception的区别: Error通常是灾难性的致命的错误,是程序无法控制和处理的,当出现这些异常时,Java虚拟机(JVM)一般会选择终止线程;Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能的去处理这些异常。实际应用中的经验总结处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理在多重catch块后面,可以加一个catch (Exception)来处理可能会被遗漏的异常对于不确定的代码,也可以加上 try-catch,处理

2021-03-01 20:10:24 62

原创 Java内部类

Java内部类内部类就是在一个类的内部在定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对B类来说就是外部类了。一个java类中可以有多个class类,但是只能有一个public cLass成员内部类静态内部类局部内部类匿名内部类...

2021-03-01 18:56:39 118 1

原创 Java面向对象的三大特征

Java面向对象的三大特征封装private < protect < public属性私有,Getter and Setter优点:提高程序的安全性,保护数据隐藏代码的实现细节统一接口系统的可维护性继承继承(extends)的本质是对某一批类的抽象,从而实现对现实世界更好的建模。一个子类只有一个父类,一个父类有多个子类super:super调用父类的构造方法,必须在构造方法的第一个super必须只能出现在子类的方法或者构造方法中super和this不能同时

2021-02-28 00:02:00 160

原创 Java创建对象后的内存分析

Java创建对象后的内存分析简单对象首先方法区里面装载Application类main()方法,方法区常量池:“旺财”,Application的main方法先创建对象Pet,所以方法区继续装载Pet类的main方法,创建类属性,name = null,age = 0,以及创建Pet的方法shout()dog对象实例化后,引用创建在栈里,地址放在堆里;下一步,Application的main方法给dog属性赋值,所以堆里的dog属性从方法区拿到常量“旺财”,int值3方法区实际可以理解为堆里

2021-02-27 16:30:40 81

转载 正则表达式之零宽断言详解

前言什么是零宽断言,为什么要使用零宽断言怎样使用零宽断言概念零宽断言,大多地方这样定义它,用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像 \b ^ $ < > 这样的锚定作用,用于指定一个位置,这个位置应该满足一定的条件(即断言),因此它们也被称为零宽断言。我的理解是在一个限定位置的字符串之前或之后进行匹配查找。所以零宽断言,执行过程分两种情况,如果是正向断言,应该是这样的:第一步,判断判断断言是否为真(即是否满足一定条件)第二步,如果满足条件,则进行下

2021-02-25 14:40:56 1707

原创 运算符相关

位运算2<<3:指2左移3位,即2乘以2三次,即 222*2 = 16字符串拼接""放在前面,则后面都是字符串拼接;""放在后面,则前面计算完,再转为字符串;

2021-02-23 21:50:48 69

原创 数据类型与类型转换补充

数据类型相关知识补充整数拓展int i = 10; //十进制int i = 010; //八进制0int i = 0x10; //十六进制0x 0~9 A~F浮点数拓展//float 有限,离散,舍入误差,大约,接近但不等于最好完全使用浮点数进行比较,银行使用BigDecimalfloat f = 0.1f; //0.1double d = 1.0/10; //0.1System.out.println( f==d); //falsefloat d1 = 23131

2021-02-23 19:46:27 218

原创 Java运行环境相关

Java运行环境相关JDKJava Development KitJREJava Runtime EnvironmentJVMJava Virtual MachineJDK>JRE>JVM安装需要的设置配置环境变量:JAVA_HOME -->选择jdk所在目录,例:D:\Program Files\Java\jdk1.8.0_202、配置环境变量:PATH -->...

2021-02-23 00:12:04 56

原创 markdown编辑器使用方法

MarkDown使用笔记二级标题##空格三级标题###空格四级标题####空格字体粗体 2个*号包夹斜体 1个*号包夹既是粗体又是斜体 3个*号包夹废弃的字体 2个~号包夹引用这是引用;只需要输入>分割线三个-:—空格三个*: ***空格图片图片:超链接点击跳转列表1.空格2.空格3.空格AB-空格表格| 名字 | 性别 | 生日 | || ---- | ---- | --------- | ----a

2021-02-22 20:34:28 151

空空如也

空空如也

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

TA关注的人

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