自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring之BeanFactory和FactoryBean接口的区别,Java知识点思维导图

接口和实现类public interface IUserService {public void doSome();}public class UserServiceImpl implements IUserService {public UserServiceImpl(){System.out.println("–被实例化了–");}@Overridepublic void doSome() {System.out.println(“UserServiceImpl 。。。 被执行了”)

2021-11-21 14:32:12 384

原创 SpringCloud微服务架构实战:商家权限体系设计及开发,springboot教程详解

private String name;private String email;private String phone;《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享private String address;private String linkman;@DateTimeFormat(pattern = “yyyY-MM-dd HH:mm:ss”)@column

2021-11-21 14:27:02 327

原创 SpringCloud-Alibaba之Sentinel热点参数限流,springboot原理图

用户 ID 为参数,针对一段时间内频繁访问的用户 ID 进行限制那Sentinel是怎么进行热点参数限流的呢?热点参数我们先对代码进行一些改造,在控制器增加个方法我们增加了testHot方法,并在此方法上面增加了注解@SentinelResource;对于 @SentinelResource 注解方式定义的资源,若注解作用的方法上有参数,Sentinel 会将它们作为参数传入 SphU.entry(res, args)。比如上面的方法里面 a 和 b 会分别作为第一个和第二个参数传入.

2021-11-21 14:23:49 528

原创 SpringBoot的自动配置原理,java大数据处理技术

简单来说,这个注解可以帮助我们自动载入应用程序所需要的所有默认配置。如果你的类路径下有tomcat-embedded.jar包,那么你很可能就需要TomcatServletWebServerFactory我们点进去看一下,发现有两个比较重要的注解:@AutoConfigurationPackage:自动配置包@Import:给IOC容器导入组件1.2.1 @AutoConfigurationPackage网上将这个**@AutoConfigurationPackage注解解释成自动

2021-11-21 14:17:38 361

原创 SpringBoot学习(一),java多线程面试题目

org.springframework.bootspring-boot-maven-plugin这个POM文件有几个重要的事情。第一个是指定maven构建将创建WAR存档的行:war**第二个是POM文件具有父POM依赖性。**这允许下载许多Spring和非Spring依赖项并将其链接到此项目中:org.springframework.bootspring-boot-starter-parent2.0.5.RELEASE三个是将Java编译设置为使用JDK 1.8的属性定义:..

2021-11-21 14:14:25 127

原创 SpringBoot+shiro+mybatis实现权限登录,Nginx面试

@SpringBootTestclass CsyApplicationTests {@Autowiredprivate UserMapper userMapper;@Testvoid contextLoads() {User admin = userMapper.queryUserByUsername(“admin”);System.out.println(admin.toString());Permissions permission = userMapper.queryPermissio

2021-11-21 14:05:42 117

原创 【阿里数据库面试题解】MySQL高可用原理

若主备库机器的系统时间设置不一致,不会导致主备延迟的值不准吗?不会的。因为,备库连接到主库时,会通过执行SELECT UNIX_TIMESTAMP()函数获得当前主库系统时间。若此时发现主库系统时间与自己不一致,备库在执行SBM计算时,会自动扣掉该差值。在网络正常时,日志从主库传给备库所需时间很短,即t2-t1非常小。即网络正常情况下,主备延迟的主要来源是备库接收完binlog和执行完该事务之间的时间差。所以主备延迟最直接的表现是,备库消费中转日志(relay log)的速度,比主库生产binlo.

2021-11-20 17:26:34 610

原创 【阿里年薪百万数据库面试】MySQL会丢数据吗?

一个事务的binlog不该被拆开,不论事务多大,也要确保一次性写入。这就涉及binlog cache的保存问题。系统给binlog cache分配了一片内存,每个线程一个,但是共用同一份binlog文件。参数 binlog_cache_size控制单个线程内binlog cache所占内存的大小。若超过该参数值,就要暂存到磁盘。事务提交时,执行器把binlog cache里的完整事务写入binlog,并清空binlog cache。binlog写盘状态TODO图中的:write把日志写

2021-11-20 17:23:50 66

原创 【设计模式】原型模式:如何快速的克隆出一个对象

BlogStats blogStats = entry.getValue();if(blogStats.getStatus() == 0){changeDatas.put(id,blogStats);}}return changeDatas;}public static void main(String[] args) {print(mapCache);//获取修改的数据Map<Integer, BlogStats> changeData = getChangeData();

2021-11-20 17:20:25 1026 1

原创 【计算机网络 22】基础知识总结

二、传输层协议的作用体现在应用层协议TCP和UDP协议内指定不同的端口即可对应一个应用层的协议端口代表主机服务的侦听"门牌号",不管是TCP还是UDP,带上门牌号,它就能帮你找到主机上的对应服务例如我们在浏览器访问某个网站地址,这个动作会被我们本机上的80端口侦听到,并处理你的网络请求我们主机上常见的应用层协议端口:HTTP默认使用TCP的80端口标识FTP默认使用TCP的21端口标识SMTP默认使用TCP的25端口标识POP3默认使用TCP的110端口HTTPS默.

2021-11-20 17:17:45 562

原创 【深入理解JVM】详解GC日志参数配置及日志分析

GCTest类的执行时,JVM参数配置:-Xms1m-Xmx1m-XX:+PrintGCDetails-XX:+PrintGCTimeStamps-XX:+PrintGCDateStamps执行后控制台输出如下图,准备下一步详细分析GC日志。二、GC日志参数配置1、堆空间参数-Xms:初始堆大小 默认物理内存的1/64(小于1GB)空余堆大小小于40%时,JVM就会增大堆直到-Xmx的最大限制-Xmx:最大堆大小 默认物理内存的1/4(小于1GB)空余堆大小大于70%时,J

2021-11-20 17:14:31 858

原创 【并发编程】安全发布对象—单例模式升级版

一种错误的发布,当一个对象还没有构造完成时,就使它被其他线程所见1、发布的对象只需要被它需要的线程被看见2、避免对象逸出发布错误对象:import java.util.Arrays;//线程不安全的//发布对象public class Student {private String[] student = {“张三”,“李四”,“王五”};public String[] getStudent(){return student;}public static void main(Stri

2021-11-20 17:11:57 523 1

原创 【大厂必考之JVM】02:堆的内存结构及GC垃圾回收机制

===================================================================新生区:新生区分为三部分,一块较大的Eden(伊甸)空间和两块较小的Survivor(幸存者)空间,默认比例为8:1:1。养老区永久存储区/元空间:JDK1.8之后元空间替代永久区新生区和养老区是垃圾回收的主要区域。新生区和养老区的面积比是1:2逻辑结构物理结构1.1新生区新生成的对象全部优先存放在新生区中,新生区对象朝生

2021-11-20 17:08:44 89

原创 【商城应用】商城搜索流程

如上图所示,这个入口的搜索范围是最大的,为什么这么说呢,后面大家就知道了。为了提高我们用户的体验,所以一般不会在首页直接弹出输入键盘,而是跳转到一个新的页面,如下所示:![](https://note.youdao.com/yws/api/group/76450073/noteresource/43BE24F54AAE4【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】浏览器打开:qq.cn.hn/FTf 开源分享B82814772BD73590D37/vers

2021-11-20 17:06:07 700

原创 【Spring教程】框架搭建和基本配置

一、下载开发包二、 创建web工程引入相应jar包三、JavaBean四、创建Spring的配置文件五、创建测试类六、控制台输出一、下载开发包官网下载路径:http://projects.spring.io/spring-framework/二、 创建web工程引入相应jar包spring-aop-4.1.6.RELEASE.jarspring-aspects-4.1.6.RELEASE.jarspring-beans-4.1.6.REL...

2021-11-20 17:03:29 218

原创 【SpringBoot搭建个人博客】- 前端页面展示(一

底部就是比较常规的一些功能,显示了博主的微信二维码,最新文章和博客运行时间二、博文详情1.博文标题及信息展示了文章首图、标题、等信息![](https://img-blog.csdnimg.cn/2020042222184365.jpeg?x-oss-process=image/【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】浏览器打开:qq.cn.hn/FTf 开源分享watermark,type_ZmFuZ3poZ.

2021-11-20 17:01:01 487

原创 【并发编程系列12】从Java线程池的常用4种写法深入分析线程池(Thread Pool)的实现原理

package com.zwx.concurrent.threadPool;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class TestThreadPool {public static void main(String[] args) {//FixedThreadPool - 固定线程数ExecutorService fixedThreadPool = Ex

2021-11-19 17:20:04 314

原创 【大数据】Mac下安装hadoop-scala-spark,java开发三层架构

2、安装hadoop(1)配置ssh:ssh-keygen -t rsa   =>  一直enter  =>  cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys =>  确认mac已关闭防火墙和开启远程登录(系统偏好设置下:安全与隐私=>防火墙 关闭 ;共享 => 远程登录 打钩)(2)【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实

2021-11-19 17:17:05 1400

原创 【备战秋招冲击大厂】Java面试题系列,java入门教程全套

8. 线程的创建方式启动线程有如下三种方式:继承Thread类创建线程类(1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。(2)创建Thread子类的实例,即创建了线程对象。(3)调用线程对象的start()方法来启动该线程。package com.thread;public class FirstThreadTest extends Thread{int i = 0;//重写run方法,run方法的方

2021-11-19 17:14:22 108

原创 【Spring 高级注解】,linux视频剪辑

@Configuration:配置 Bean=========================================================================================1、Spring 在 3.x 提供的新的注解@Configuration,用于替换 XML 配置文件@Configurationpublic class AppConfig {}配置 Bean 在应用的过程中替换了 XML 具体什么内容呢?2、使用了 @Configur

2021-11-19 17:10:57 492

原创 【Spring Cloud 3】分布式架构下的高可用设计与可伸缩设计

增加服务器四、加速静态内容访问速度 CDNCDN 全称是 Content Delivery Network,中文释义是内容分发网络。CDN 的作用是把用户需要的内容分发到离用户最近的地方进行响应,这样用户能够快速获取所需要的内容。CDN 本质上就是一种网络缓存技术,能够把一些相对稳定的资源放到距离最终用户较近的地方,一方面可以节省整个广域网的带宽消耗,另外一方面也可以提升用户的访问速度、改善用户体验。五、如何实现高可用1、入口层入口层,通常指Nginx和Apache等层面的东西,负责.

2021-11-19 17:07:58 109

原创 【Spring Cloud 12】分布式架构下的高可用设计与可伸缩设计

应用的容错设计、服务降级、限流的自我保护数据量(数据分片、读写分离)三、分布式架构下的可伸缩性设计垂直甚至提升硬件能力水平伸缩增加服务器四、加速静态内容访问速度 CDNCDN 全称是 Content Delivery Network,中文释义是内容分发网络。CDN 的作用是把用户需要的内容分发到离用户最近的地方进行响应,这样用户能够快速获取所需要的内容。CDN 本质上就是一种网络缓存技术,能够把一些相对稳定的资源放到距离最终用户较近的地方,一方面可以节..

2021-11-19 17:04:45 120

原创 【Spring Boot实战与进阶】自定义事件及监听,分布式系统架构设计

2、@EventListener注解的方式监听3、使用容器中发布事件示例三(配置文件)1、自定义事件2、定义事件监听器3、使用容器中发布事件4、application.properties中配置5、控制台输出这里的自定义事件及监听,其实早在Spring框架就有完善的事件监听机制。Spring的事件为Bean与Bean之间的消息通信提供了支持。当一个Bean处理完任务后,希望另一个Bean知道并能做相应的处理,这时就需要让另一个Bean监听当前Bean的..

2021-11-19 17:01:39 520

原创 【Quarkus 技术系列】,rabbitmq教程视频

在讨论夸克斯(Quarkus)之前,我们先了解一下什么是云原生。为什么说下一代 Java 云原生服务就是 Quarkus?云原生架构简介Cloud Native(云原生),这是一个既陌生又熟悉的名词,它是 Matt Stine 提出的一个概念,它是一个思想的集合,包括:DevOps、持续交付(Continuous Delivery)、微服务(MicroServices)、敏捷基础设施(Agile Infrastructure)、康威定律(Conways Law)等。Cloud Native(云..

2021-11-19 16:58:51 1348

原创 【Java面试题总结 3】Java多线程篇,java线程池原理图

结论:yield()从未导致线程转到等待/睡眠/阻塞状态。在大多数情况下,yield()将导致线程从运行状态转到可运行状态,但有可能没有效果。八、为什么说 Synchronized 是非公平锁?当锁被释放后,任何一个线程都有机会竞争得到锁,这样做的目的是提高效率,但缺点是可能产生线程饥饿现象。九、请谈谈 volatile 有什么特点,为什么它能保证变量对所有线程的可见性?volatile只能作用于变量,保证了操作可见性和有序性,不保证原子性。在Java的内存模型中分为主内存和工作内存,Java

2021-11-19 16:56:12 396

原创 【Java面试题总结 3】Java多线程篇(1),nginx入门到精百度云

乐观锁认为对一个对象的操作不会引发冲突,所以每次操作都不进行加锁,只是在最后提交更改时验证是否发生冲突,如果冲突则再试一遍,直至成功为止,这个尝试的过程称为自旋。乐观锁没有加锁,但乐观锁引入了ABA问题,此时一般采用版本号进行控制;也可能产生自旋次数过多问题,此时并不能提高效率,反而不如直接加锁的效率高;只能保证一个对象的原子性,可以封装成对象,再进行CAS操作;十二、请尽可能详尽地对比下 Synchronized 和 ReentrantLock 的异同。1、相似点它们都是阻塞式的同步,也就是

2021-11-19 16:53:28 105

原创 【Java知识点详解 4】Java泛型详解,淘宝特价版java面试

?表示不确定的类型五、使用泛型时的注意事项============1、在定义一个泛型类时,在“<>”之间定义形式类型参数,例如:“class TestGen<K,V>”,其中“K”,“V”不代表值,而是表示类型。2、实例化泛型对象时,一定要在类名后面指定类型参数的值(类型),一共要有两次书写。3、使用泛型时,泛型类型必须为引用数据类型,不能为基本数据类型,Java中的普通方法,构造方法,静态方法中都可以使用泛型,方法使用泛型之前必须先对泛型进行声明,可以使用任意字母,一般都

2021-11-18 13:56:02 284

原创 【C语言基础系列】数组使用指南,轻松拿到了阿里Java高级开发工程师的offer

定义数组后,就是使用数组了。在使用数组时,只能引用单个数组元素,而不能一次引用整个数组。数组元素的引用需要指定下标(下标从0开始,不能越界),形式为:数组名 [下标];下标可以是整型表达式。它的合理取值范围是[0,数组长度 - 1],上面定义的数组a就有10个元素a[0], a[1],…,a[9],注意不能使用a[10],会出现数组越界异常。例如定义一个长度为5的数组,相应下标地址存储元素内容如下(数组下标的不能超过数组长度 - 1):数组元素的使用方法与同类型的变量完全相同。例如:int k,

2021-11-18 13:53:03 815

原创 「并发原理专题」AQS的技术体系之CLH、MCS锁的原理及实现,java架构和java开发

在SMP架构下,CLH更具有优势。在NUMA架构下,如果当前节点与前驱节点不在同一CPU模块下,跨CPU模块会带来额外的系统开销,而MCS锁更适用于NUMA架构。加锁逻辑1.获取当前线程的锁节点,如果为空,则进行初始化;2.同步方法获取链表的尾节点,并将当前节点置为尾节点,此时原来的尾节点为当前节点的前置节点。3.如果尾节点为空,表示当前节点是第一个节点,直接加锁成功。如果尾节点不为空,则基于前置节点的锁值(locked==true)进行自旋,直到前置节点的锁值变为false。...

2021-11-18 13:50:20 256

原创 《重构 改善既有代码的设计 3》代码的可理解性应该是我们虔诚追求的目标

2、合并条件表达式如果你有一系列条件测试,都得到相同的结果,你就可以将这些测试合并为一个条件表达式,并将这个条件表达式提炼出成为一个独立函数。3、合并重复的条件片段在条件表达式的每个分支上有着相同的一段代码,将这段重复代码转移到条件表达式之外。4、移除控制标记以break语句或return语句取代控制标记。5、使用卫语句取代嵌套条件表达式使用卫语句表现所有特殊情况。如果某个条件极为罕见,就应该单独检查该条件,并在该条件为真时立刻从函数中返回,这样的单独检查常常被称为“卫语句”。6、以多态取

2021-11-18 13:46:53 118

原创 《OpenCV编译》七、编译OpenBLAS,java远程控制实现原理

5、依次输入如下指令安装工具:conda config --add channels conda-forgeconda install -y cmake flang clangdev perl libflang ninja6、使用vcvarsall x64激活64位的MSVC环境:C:\CodeTools\VS2017\Professional\VC\Auxiliary\Build\vcvars64.bat7、以上需要的工具确认都安装完成后,进入Miniconda3安装路径/Library/

2021-11-18 13:43:54 2093

原创 《JAVA并发编程实战》—,rabbitmq实战指南百度云

});}countDownLatch.await();executorService.shutdown();System.out.println(“count:”+count);}private static void add() {count++;}}这个代码的意思很简单,就是先定义5000个请求,200个线程同时执行。请求的操作是对count++。所以预期的结果应该是5000个请求,count++ 5000次,所以输出结果应该为5000.在main方法中写的是创建线程池-连接线程池-

2021-11-18 13:40:41 166

原创 “金三银四”程序员不得不刷的四大系列面试题,springboot常用注解面试题

开源框架系列Mybatis有关于Mybatis的整个面试专题一共有将近40个不同的知识点,在问题之间相互延伸,层层递进。从最基础的Mybatis是什么、Mybatis的优点有哪些,到Mybatis里面的动态Sql的设定等等,从而全面了解Mybatis的运用原理。例题:Q:MyBatis实现一对一有几种方式?具体怎么操作的?A:有联合查询和嵌套查询,联合查询是几个表联合查询,只查询一次,通过在resultMap里面配置association节点配置一对一的类就可以完成;嵌套查询是先查一个表,根据这个

2021-11-18 13:37:35 743

原创 “996”为什么还没实行?我还等着早点下班呢,分布式宝典:限流+缓存+通讯

我一个在广州上班的朋友小李,在我去广州出差期间,与他聊天的时候发出了这样的牢骚,我刚开始还以为是他开玩笑的,后面深聊才知道,他一般都是到了晚上十点以后才下班。小李所在的公司不大,就十来个开发人员,办公室隔了两间,一间大家的,一间老板的。老板的人际关系网不错,公司的项目全靠老板出去接,说白了,就是一家全外包公司(不管项目好坏、大小、类型,来自哪个公司,全都接)。事情的起因就是,前两年他们老板接了一个烫手的项目,甲方要得急,给的工期远远少于预估时间。无奈之下,老板给每个人都发了一个1000元的红包,要他们集

2021-11-18 13:34:47 178

原创 SSM 最简单最全面的整合Spring+SpringMVC+Mybatis三大框架 快速搭建

org.mybatismybatis${mybatis.version}org.mybatismybatis-spring1.2.2org.mybatis.generatormybatis-generator-core1.3.5mysqlmysql-connector-java5.1.29junitjunit4.11testjavax.servletjstl1.2javax.servlet.jspjsp-api2.2.1-b03..

2021-11-18 13:32:08 356

原创 SpringBoot统一日志处理原理,4年小Java的心路历程

日志门面与日志实现在日志框架选型之前,我们先了解一个概念,什么是日志门面?日志门面,不是具体的日志解决方案,它只服务于各种各样的日志系统,允许最终用户在部署其应用时使用其所希望的日志实现来使用日志功能。而日志实现则是基于对应的日志门面的规范来实现的具体日志功能的框架,常见的日志门面与日志实现关系如下:日志门面日志实现JCL、SLF4j、jboss-loggingLog4j、 JUL(java.util.logging) Log4j2、 Logback每一种日志框架输出信.

2021-11-18 13:29:23 126

原创 Mac下vagrant从安装到体验,目前最全的《Java面试题及解析》

![在这里插入图片描述](https://img-blog.csdnimg.cn/201908181149038【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】开源分享完整内容戳这里81.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly94aW5jaGVuLmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_7

2021-11-17 17:34:41 699

原创 Linux学习总结-Xshell安装与使用,java语言程序设计与数据结构进阶篇

点击免费授权页面:输入姓名,邮箱点击下载:![在这里插入图片描述](https://img-blog.csdnimg.cn/20210211103541173.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】开源分享完整内容戳这里_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0x6eTQxMDk5.

2021-11-17 17:31:41 281

原创 Linux下安装Elasticsearch,java程序设计教程pdf居锦武

我们将安装包上传到:/home/ly目录解压缩:tar -zxvf elasticsearch-6.2.4.tar.gz我们把目录重命名:mv elasticsearch-6.3.0/ elasticsearch进入,查看目录结构:3.修改配置进入config目录:cd config需要修改的配置文件有两个:Elasticsearch基于Lucene的,而Lucene底层是java实现,因此我们需要配置jvm参数。编辑jvm.options:vim jvm.options配置如

2021-11-17 17:28:58 91

原创 LinkedList(JDK1,java高级程序设计pdf

所以只要继承类实现了 listIterator 方法,它不需要再额外实现什么即可使用。对于随机访问集合类一般建议继承 AbstractList 而不是 AbstractSequentialList。LinkedList 和其父类一样,也是基于顺序访问。所以 LinkedList 继承了 AbstractSequentialList,但 LinkedList 并没有直接使用父类的方法,而是重新实现了一套的方法。另外,LinkedList 还实现了 Deque (double ended queue),Deq

2021-11-17 17:25:34 35

空空如也

空空如也

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

TA关注的人

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