自定义博客皮肤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)
  • 收藏
  • 关注

原创 为了弄懂分布式“花了整整三天”,物联网java开发用到的技术

由于互联网的快速发展,以往的单体架构顶不住这么多的需求,这么复杂的业务,这么大的流量。单体架构的优势在于前期快速搭建、快速上线,并且方法和模块之间都是内部调用,没有网络的开销更加的高效。从某方面来说部署也方便,毕竟就一个包,扔上去。不过随着企业的发展,业务的复杂度越来越高,内部耦合极其严重,导致牵一发而动全身,开发不易,测试不易。并且无法根据热点服务进行动态的伸缩,比如商品服务访问量特别大,如果是单体架构的话我们只能把整个应用复制多份集群部署,浪费资源。因此拆分势在必行,微服务架构就这么来了。

2021-12-10 18:31:13 782

原创 业务中台的困境、及可能的解,java面试题库网站

以下是一个同学的真实反馈:“星环在外面宣传的是业务方7*24想发就发,实际远远做不到,很多限制,效率很低,体验过才知道多恶心。”认知成本====整个星环体系不可谓不复杂,里面有一堆的新概念——业务身份、活动(Activity)、领域服务(Domain Service)、领域能力(Ability)、扩展点(ExtensionPoint),扩展实现(Extension)、奥创、Lattice、业务容器…通过下面新人的日报片段,可以感受下其高昂的认知成本。KISS是一种美德,正如尼古拉斯所说:

2021-12-10 18:29:33 417

原创 不懂Ribbon原理的可以进来看看哦,分析RibbonClientConfiguration完成了哪些核心初始操作

| IClientConfig | DefaultClientConfigImpl | 管理配置接口 || IRule | ZoneAvoidanceRule | 均衡策略接口 || IPing | DummyPing | 检查服务可用性接口 || ServerList | ConfigurationBasedServerList | 获取服务列表接口 || ILoadBalancer | ZoneAwareLoadBalancer | 负载均衡接口 || ServerListUpdater |

2021-12-10 18:27:44 552

原创 【恋上数据结构】串匹配算法(蛮力匹配、KMP【重点】、Boyer-Moore、Karp-Rabin、Sunday

蛮力(Brute Force)KMPBoyer-MooreKarp-Rabin / Rabin-KarpSunday下面用 tlen 代表文本串 text 的长度,plen 代表模式串 pattern 的长度;蛮力(Brute Force)==================================================================================以字符为单位,从左到右移动模式串,直到匹配成功 ;蛮力算法有..

2021-12-09 18:20:50 178

原创 【并发编程】java并发编程,java面试视频讲解

}public static void main(String[] args) throws InterruptedException {//开启三个线程 t1 t2 t3Thread t1 = new Thread(() ->{add();});Thread t2 = new Thread(() ->{add();});Thread t3 = new Thread(() ->{add();});long starTime = System.curre

2021-12-09 18:18:44 75

原创 【Spring Cloud 1】分布式架构入门,redis技术笔记

1、什么是领域/子领域(Domain/Subdomain)领域是与某个特定问题相关的知识和行为。比如支付平台就属于特定的领域,只要是这个领域,都会有账户、会记、收款、付款、风控等核心环节。所以,同一个领域的系统都具有相同的核心业务,他们要解决的问题的本质是一致的。一个领域本质上可以理解为就是一个问题域,只要是同一个领域,那问题域就相同。所以,只要我们确定了系统所属的领域,那这个系统的核心业务,即要解决的关键问题、问题的范围边界就基本确定了。在日常开发中,我们通常会将一个大型的软件系统拆分成若干个子系统。

2021-12-09 18:16:38 786

原创 【Spring AOP】AOP 底层实现原理 ,java大学实用教程第四版作业题答案

POP (Producer Oriented Programing)面向过程(方法、函数)编程 —— C以过程为基本单位的程序开发,通过过程间的彼此协同,相互调用,完成程序的构建。OOP (Object Oritened Programing)面向对象编程 —— Java以对象为基本单位的程序开发,通过对象间的彼此协同,相互调用,完成程序的构建。AOP (Aspect Oriented Programing)面向切面编程 = Spring动态代理开发以切面为基

2021-12-09 18:14:42 201

原创 【Redis实战】Redis的两种持久化机制RDB和AOF,GitHub标星8k

(1)客户端向服务端发送写操作(数据在客户端的内存中)。(2)数据库服务端接收到写请求的数据(数据在服务端的内存中)。(3)服务端调用write这个系统调用,将数据往磁盘上写(数据在系统内存的缓冲区中)。(4)操作系统将缓冲区中的数据转移到磁盘控制器上(数据在磁盘缓存中)。(5)磁盘控制器将数据写到磁盘的物理介质中(数据真正落到磁盘上)。三、持久化的方式Redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外一种是A

2021-12-09 18:12:34 130

原创 【Java面试】第一章,java入门资料百度云资源

答案:理论:第六章:SpringCould组件有哪些,他们的作用是什么(说七八个)?微服务的CAP是什么?BASE是什么?_廖志伟-CSDN博客设计模式(说五六个)答案:理论:第七章:用生活的案例解释23种设计模式_廖志伟-CSDN博客Redis支持的数据类型以及使用场景,持久化,哨兵机制,缓存击穿,缓存穿透答案:[理论:第《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容

2021-12-09 18:10:58 407

原创 【Java】ArrayList实现原理浅析,laravelrabbitmq面试题

this.elementData = EMPTY_ELEMENTDATA;} else {throw new IllegalArgumentException("Illegal Capacity: "+initialCapacity);}}2.1.3 集合参数的构造函数a.将集合转化成数组 b.判断数组的长度,length!=0;true,判断数组类型是否为Object类型数组?->否,拷贝elementData的数据,拷贝为Object数组,赋值给elementData false:设

2021-12-09 18:09:29 110

原创 【Java 集合框架】Java 的泛型和包装类,你要的spring知识大纲已整理好了

2. 预备知识-包装类(Wrapper Class)2.1 基本数据类型和包装类的对应关系2.2 包装类介绍2.3 装箱(boxing)和拆箱(unboxing)2.4 自动装箱(autoboxing)和自动拆箱(autounboxing)2.5 包装类面试题1. 预备知识-泛型(Generic)====================================================================================..

2021-12-09 18:07:49 103

原创 【Java 核心技术卷 I】,java基础知识书籍推荐

该代码由于在嵌套的两个块中出现了同名变量,无法通过编译注意:在 C++ 中,可以在嵌套的块中重定义一个变量。在内层定义的变量会覆盖在外层定义的变量。1.2 条件语句《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享【易错点】: 在循环中,检测两个浮点数是否相等需要格外注意,如for(double x=0; x!=10; x+=0.1);上述循环不会结束,.

2021-12-09 18:06:00 91

原创 【Jackson 技术专题】全方位系统化学习和使用指南,周六福java开发面试流程

@JsonAnySetter 用于属性或者方法,设置未反序列化的属性名和值作为键值存储到 map 中 @JsonAnySetter public void set(String key, Object value) { map.put(key, value); }@JsonAnyGetter 用于方法 ,获取所有未序列化的属性 public Map<String, Object> any() { return map; }在了解 Jackson 的基本用法后,下面详细地介绍它的一..

2021-12-09 18:04:18 173

原创 【网络信息安全】PKI 技术,javaee企业级应用开发教程百度云

9.1.1 CA认证与数字证书数字证书的创建和使用数字证书的作用和特点X.509 数字证书各部分的含义X.509 数字证书的格式9.1.2 信任关系与信任模型(1)认证机构的严格层次结构模型(2)分布式信任结构模型(3)Web 模型(4)以用户为中心的信任模型(5)交叉认证9.2 PKI的组成9.2.1 认证机构CA 密钥对的生成和管理发布并维护作废证书列表 CRL9.2.2 证书库9....

2021-12-08 18:52:30 262

原创 【数据结构与算法】将5个文件中的一千万年龄合并到一个新文件中

}生成随机数方法:private static Random r = new Random();/**一次性生成1亿数据@return*/public static int[] getRandomNum1() {int num = GlobalVariable.arrLenth;int arr[] = new int[num];int i = 0;while ( i < num){arr[i] = r.nextInt(GlobalVariable.DATA_FIEL

2021-12-08 18:50:25 96

原创 【数据结构与算法 10】算法的时间复杂度和空间复杂度,java算法面试问题

一个用高级语言编写的程序在计算机上运行时所消耗的时间取决于下列因素:算法采用的策略、方法;编译产生的代码质量;问题的输入规模;机器执行行指定的速度;一个算法是由控制结构(顺序、分支和循环)和原操作(指固有数据类型的操作)构成的,则算法时间取决于两者的综合效果。为了便于比较同一个问题的不同算法,通常的做法是,从算法中选取一种对于所研究的问题(或算法类型)来说是基本操作的原操作,以该基本操作的重复执行的次数作为算法的时间量度。三、时间复杂度1、时间频度一个算法执行所消耗的.

2021-12-08 18:48:19 282

原创 【实习之T100开发】T100 Q查询开发流程,想学习linux

规格单位单位说明数量单价含税金额未税金额税额1. azzi900建立程序代号cxmq666===========================================================================================2. azzi910建立作业代号cxmq666=======================================================================

2021-12-08 18:44:14 407

原创 【云计算大数据】Spark数据倾斜解决方案,java程序设计简明教程答案

1、你在自己的程序里面找找,哪些地方用了会产生shuffle的算子,groupByKey、countByKey、reduceByKey、join2、看loglog一般会报是在你的哪一行代码,导致了OOM异常。或者看log,看看是执行到了第几个stage。spark代码,是怎么划分成一个一个的stage的。哪一个stage生成的task特别慢,就能够自己用肉眼去对你的spark《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》【docs.qq.com/doc/DSm

2021-12-08 18:42:38 1494

原创 【Spring Boot 25】探索ApplicationContextAware接口,高级java工程师年薪

我们可以进行xml加载并进行初始化ApplicationContext appContext = new ClassPathXmlApplicationContext(“applicationContext-common.xml”);UserService userService = (UserService)appContext.getBean(“userService”);但是这样就会存在一个问题:因为它会重新装载applicationContext-common.xml并实例化上下文bean,如

2021-12-08 18:41:10 263

原创 【Redis缓存】- 入门,java教程从入门到精通pdf百度云

1、什么是Redis2、什么是 NOSQL【1】NOSQL 和关系型数据库比较【2】非关系型数据库的优势【3】关系型数据库的优势3、主流 NOSQL 产品二、Redis 环境搭建1、Redis 下载安装【1】下载【2】解压一、Redis 概述==========1、什么是RedisRedis是一款高性能的NOSQL系列的非关系型数据库,是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供测试数据,50个并发执行100000个请求,读的速度是110000

2021-12-08 18:39:30 153

原创 【Oracle小技巧】手把手教你玩转SQL Plus命令行,kafka容器化技术

##上传对应主机版本iso文件scp rhel-server-7.9-x86_64-dvd.iso root@10.211.55.110:/soft##挂载系统iso镜像源mount -o loop /soft/rhel-server-7.9-x86_64-dvd.iso /mnt##配置yum镜像源mv /etc/yum.repos.d/* /tmp/echo “[local]” >> /etc/yum.repos.d/local.repoecho “name = local”

2021-12-08 18:37:42 2161

原创 【MySQL系列3】MySQL执行计划EXPLAIN详细说明和举例,java工作三年面试题

const 类型eq_refreffulltextref_or_nullindex_mergeunique_subqueryindex_subqueryrangeindexALLNULLExtraUsing filesortUsing indexUsing index conditionUsing MRRUsing whereUsing temporaryMySQL系列文章汇总====..

2021-12-08 18:36:00 392

原创 从CPU缓存模型到 JMM 来理解 volatile 关键字,spring基础教程

i = i + 1;按照上面分析,主要分为如下几步:从主存读取i的值,复制一份到高速缓存中。CPU执行执行执行对i进行加1操作,将数据写入高速缓存。运算结束后,将高速缓存中的数据刷新到内存中。多线程环境下,可能出现什么现象呢?初始时,两个线程分别读取i的值,存入各自所在的CPU高速缓存中。线程T1进行加1操作,将i的最新值1写入内存。此时线程T2的高速缓存中i的值还是0,进行加1操作,并将i的最新值1写入内存。最终的结果i = 1而不是i = 2,得出结论

2021-12-07 14:53:44 100

原创 什么是事务数据库?,rabbitmq消息队列底层原理

第二个原因是我们所描述的事务数据库始终处于正确且一致的状态,而不管所涉及的所有技术可能发生何种故障。没有人愿意将信息存储在一个系统中,该系统的数据可能会因为允许无效操作而变得不连贯,或者在服务器宕机时可能会丢失信息。当然,并非每个用例都是关键任务,但很多都是,在这些情况下,事务数据库可以提供巨大的业务价值。当然,并不是每个数据库系统本质上都是事务性的。一些系统只专注于记录丢失的信息或不需要支持事务功能的信息。在考虑您的用例时,重要的是密切关注您需要这些功能的程度,并将您的期望与潜在数据库系统遵守事务数据库

2021-12-07 14:51:39 289

原创 什么是Spring-Cloud、需要掌握哪些知识点?,TCP的三次握手、四次挥手

所谓 熔断 就是服务雪崩的一种有效解决方案。当指定时间窗内的请求失败率达到设定阈值时,系统将通过 断路器 直接将此请求链路断开。也就是我们上面服务B调用服务C在指定时间窗内,调用的失败率到达了一定的值,那么 Hystrix 则会自动将 服务B与C 之间的请求都断了,以免导致服务雪崩现象。其实这里所讲的 熔断 就是指的 Hystrix 中的 断路器模式 ,你可以使用简单的 @HystrixCommand 注解来标注某个方法,这样 Hystrix 就会使用 断路器 来“包装”这个方法,每当调用时间超过指定时

2021-12-07 14:49:33 115

原创 什么是NoSQL?为什么要使用NoSQL数据库?,java入门教材

大数据对数据存储的挑战(3高):高并发读写需求: 对于实时性、动态性要求较高的社交网站,往往需要并发度达到每秒上万次的读写请求,需要数据库有着极高的并发负载。高性能存储和访问需求: 随着动态交互网站Web2.0的兴起,产生的数据爆发式增长,面对海量的数据传统的数据库的效率非常低,对于非关系型数据库是基于键值对的,数据处理过程不需要经过SQL层的解析,效率相对很高。高扩展性: 传统的关系型数据库很难实现水平扩展,当需要扩容时,关系型数据库往往需要进行停机维护与数据迁移,而这对于24小时不间断

2021-12-07 14:47:37 213

原创 什么是JVM?,java面试笔试题大汇总

方法区:当JVM的类装载器加载.class文件,并进行解析,把解析的类型信息放入方法区。Java栈和PC寄存器由线程独《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享享JVM栈是线程私有的,每个线程创建的同时都会创建JVM栈,JVM栈中存放的为当前线程中局部基本类型的变量(java中定义的八种基本类型:boolean、char、byte、short、int、long、

2021-12-07 14:45:29 139

原创 互联网安全架构,java教程视

如何防御?防御思路:1,写一个过滤器判断http请求头Referer域中的记录来源的值,如果和当前访问的域名不一致的情况下,说明该图片可能被其他服务器盗用。2,通过动静分离或者前后端分离。通过nginx配置。@WebFilter(filterName = “imgFilter”, urlPatterns = “/imgs/*”)public class ImgFilter implements Filter {@Value("${domain.name}")private String dom

2021-12-07 14:40:45 439

原创 SpringBoot系列:Spring Boot集成Spring Cache,使用EhCache,vue分屏视频教程

<ehcache xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”xsi:noNamespaceSchemaLocation=“http://ehcache.org/ehcache.xsd”updateCheck=“false”><defaultCache maxElementsInMemory=“10000” eternal=“false” timeToIdleSeconds=“600”timeToLiveSecon

2021-12-05 14:50:54 104

原创 SpringBoot系列:Spring Boot热部署,集成devtools,Java全套视频

所以,妈妈再也不用担心我改完代码编译时间太长了。devtools配置比较简单,在Eclipse和IDEA上略有不同。Eclipse配置devtools首先我们需要引入spring-boot-devtools依赖,然后并设置spring-boot-maven-plugin下configuration的fork节点值为true。然后开启eclipse的自动编译即可。IDEA配置devtools对于IDEA,同样的,我们需要引入spring-boot-devtools,并设置fork节点为true

2021-12-05 14:48:46 234

原创 java教程——泛型

问题二:我们往 add() 方法里改传 selfMap 可以吗?解:肯定是不可以的,我们在 java教程——泛型(一)中的 向上转型 的时候说过 selfMap 不是 selfMap 的子类,所以,报错是可想而知的。当 selfMap 作为函数参数时,该如何传一个 selfMap 呢?这个时候 extends通配符 就起作用了,我们可以这么写,代码如下:package test;import java.lang.reflect.Field;i.

2021-12-05 00:08:19 123

原创 java教程——反射

System.out.println(e);}}}class Student extends Person{public void hello(){System.out.println(“我是来自Student的Hello”);}}class Person {public void hello(){System.out.println(“我是来自Person的Hello”);}}对于上述代码中的三步,我来谈谈自己的理解:对于第一步 获取 Class 实例 其实三种方法任选

2021-12-05 00:06:46 88

空空如也

空空如也

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

TA关注的人

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