- 博客(34)
- 收藏
- 关注
原创 Java中的异常处理
小编精心为大家准备了一手资料以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术【附】架构书籍BAT面试的20道高频数据库问题解析Java面试宝典Netty实战算法BATJ面试要点及Java架构师进阶资料“连接” 起来。可以通过改写自定义异常的构造方法,来获取到之前异常的信息。实例如下:/**第一个自定义的静态内部异常类*/// 无参构造方法super(“第一个异常”);
2024-06-18 16:34:36
814
原创 2024字节大厂面经分享:Java面试高分宝典!GitHub已标星86
面试前的“练手”还是很重要的,所以开始面试之前一定要准备好啊,不然也是耽搁面试官和自己的时间。我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。18 个人经历与感想普普通通,我的三年大学面试前的“练手”还是很重要的,所以开始面试之前一定要准备好啊,不然也是耽搁面试官和自己的时间。
2024-06-18 13:55:11
529
原创 LeetCode - 82 -删除链表中的重复元素 II - Java
然后去判断 傀儡节点后面是否 具有 两个节点,如果有则判断一下是否两个节点之间的val 值,是否重复。如果重复,我们就将 其重复的val值,记录一下。此时,我们就拿着这个去遍历数组,发现有val值相同的节点,我们的cur.next 直接连走1步(删除这个节点)。就算一开始就是 val值 重复的节点,也不要紧,因为那个时候 cur 还在 傀儡节点newHead那里!不再要求我们删除指定val值的节点,而是我们去寻找链表 val值 重复的所有节点。假设:当前我们已经得知 当前重复节点的 val / x 值。
2024-06-16 21:23:53
159
1
原创 client-go实战之四:dynamicClient
针对以上面试题,小编已经把面试题+答案整理好了针对以上面试题,小编已经把面试题+答案整理好了[外链图片转存中…(img-Gmn4RYWC-1718539821723)][外链图片转存中…(img-M8fNdxay-1718539821723)][外链图片转存中…(img-Esliy5iF-1718539821724)]
2024-06-16 20:10:32
1006
原创 Ehcache缓存设计原理
当对象自从被存放到缓存中后,如果处于缓存中的时间超过了 timeToLiveSeconds属性值,这个对象就会过期,Ehcache将把它从缓存中清除。如果该属性值为0,则表示对象可以无限期地存在于缓存中。当对象自从最近一次被访问后,如果处于空闲状态的时间超过了timeToIdleSeconds属性值,这个对象就会过期,EHCache将把它从缓存中清空。overflowToDisk:true表示当内存缓存的对象数目达到了maxElementsInMemory界限后,会把溢出的对象写到硬盘缓存中。
2024-05-29 12:44:13
315
原创 ArrayList(JDK1
/retainAll():没有一个交集返回true,有交集但不全交也返回true,而两个集合相等的时候,返回false,所以不能根据返回值来确认两个集合是否有交集,而是通过原集合的大小是否发生改变来判断,如果原集合中还有元素,则代表有交集,而元集合没有元素了,说明两个集合没有交集。//这句话就是适应于elementData就空数组的时候,length=0,那么oldCapacity=0,newCapacity=0,所以这个判断成立,在这里就是真正的初始化elementData的大小了,就是为10。
2024-05-29 11:59:27
926
原创 ArrayList 与 LinkedList 的方法及其区别
/ boolean add(E e) 将指定的元素追加到此列表的末尾。// int size() 返回此列表中的元素数// 6// E get(int index) 返回此列表中指定位置的元素。// aaa// eee// E remove(int index) 删除该列表中指定位置的元素// 111// void addFirst(E e) 在该列表开头插入指定的元素// void addLast(E e) 将指定的元素追加到此列表的末尾。
2024-05-29 11:58:55
550
原创 2024年去一线大厂面试先过SSM框架源码这一关!
答:IoC 叫控制反转,是 Inversion of Control 的缩写,DI(Dependency Injection)叫依赖注入,是对 IoC 更简单的诠释。控制反转是把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的"控制反转"就是对组件对象控制权的转移,从程序代码本身转移到了外部容器,由容器来创建对象并管理对象之间的依赖关系。IoC 体现了好莱坞原则 -“Don’tcallme,we willcallyou”。
2024-05-29 11:11:11
659
原创 2024年全新Java学习路线图分享给大家!
动态网页是中级程序员服务器端编程的基础,是高级框架学习的必备课程,后期学习的框架、服务底层都是基于动态网页技术之上的。该板块包括Javaweb核心技术、包括Servlet、Request、Response、Cookie和Session等,通过这些技术的学习可以完成动态站点开发,可更好的完成服务器端与客户的交互,让页面的数据“动”起来,做出小型的应用系统。==========编程强化是对解决实际问题方面做一个深入的了解和应用,是对JavaSE基础的加强,对后期自动以框架和对一些服务框架的底层理解做支撑。
2024-05-29 11:10:40
482
原创 腾讯裸辞三个月后,凭借对Java异步编程的见解顺利拿到阿里offer
需要完整内容的朋友,直接添加小助理vx:SW1927176018 即可免费获取~第7章Spring WebFlux的异步非阻塞处理。第3章基于JDK中的Future实现异步编程。第6章Web Servlet的异步非阻塞处理。第2章显式使用线程和线程池实现异步编程。第4章Spring框架中的异步执行。第5章基于反应式编程实现异步编程。第8章高性能异步编程框架和中间件。第9章Go语言的异步编程能力。
2024-05-28 21:55:27
360
原创 腾讯消息队列CMQ部署与验证
创建集群:=====向 queue添加节点添加节点首先添加前置机向topoc添加节点==========初始化推送节点=======初始化推送节点使用 pushServer ip端口 50012[这个图丢了 方法一样的 过滤出来改为初始化节点IP接可以了]添加接入层注册access [也是pushserver节点IP]添加主题:添加完成后如图:添加节点后 出现版本号才算成功。
2024-05-28 21:54:55
971
原创 年薪30万的Java架构师必会的springboot面试题
使用 JavaConfig 的优点在于: 面向对象的配置。spring-boot-starter-web 嵌入tomcat和web开发需要servlet与jsp支持 spring-boot-starter-data-jpa 数据库支持 spring-boot-starter-data-redis redis数据库支持 spring-boot-starter-data-solr solr支持 mybatis-spring-boot-starter 第三方的mybatis集成starter。
2024-05-28 21:05:08
868
原创 为什么大厂服务并发高却很稳定?分布式服务熔断降级限流利器
在order#getpyament/id接口虽然在order模块因为hystrix线程隔离有自己的线程运行,但是因为原生服务不给力导致自己调用超时从而影响运行的效果。后面的错误就是hystrix熔断的错误了。还记的上面我们order50个并发的timeout的时候会导致getpayment接口异常,当时定位了是因为原生payment服务压力撑不住导致的。这两个是hystrix原生的方法,java实现hystrix会实现两个方法的逻辑,springcloud已经帮我们封装了。这就引出我们的信号量隔离了。
2024-05-28 20:12:26
542
原创 两个通宵熬出来的互联网大厂最新面试题收集整理1000道(七-并发编程-下篇),欢迎点赞收藏!!!
ReadWriteLock 是一个读写锁接口, ReentrantReadWriteLock 是 ReadWriteLock 接口的一个具体实现,实现了读写的分离, 读锁是共享的, 写锁是独占的, 读和读之间不会互斥, 读和写、写和读、写和写之间才会互斥, 提升了读写的性能。主要用于将私有线程和该线程存放的副本对象做一个映射, 各个线程之间的变量互不干扰, 在高并发场景下, 可以实现无状态的调用, 特别适用于各个线程依赖不通的变量值完成操作的场景。cas 是一种基于锁的操作, 而且是乐观锁。
2024-05-28 20:11:21
252
原创 SpringBoot——MyBatisPlus
继承BaseMapper接口之后,会继承一些CRUD方法,我们就可以直接调用了。这里需要继承BaseMapper接口,这里需要配置一个@TableName。MybatisPlus依赖。4.创建service。
2024-05-28 18:14:45
811
原创 SpringBoot-JSR303数据校验
Valid 递归的对关联对象进行校验, 如果关联对象是个集合或者数组,那么对其中的元素进行递归校验,如果是一个map,则对其中的值部分进行校验.(是否进行递归验证)@DecimalMax 被标注的值必须不大于约束中指定的最大值. 这个约束的参数是一个通过BigDecimal定义的最大值的字符串表示.小数存在精度。@DecimalMin 被标注的值必须不小于约束中指定的最小值. 这个约束的参数是一个通过BigDecimal定义的最小值的字符串表示.小数存在精度。
2024-05-28 18:13:39
862
原创 LeetCode - 825 - 适龄的朋友 - Java -在作者看来还算细
用 prev[ i ] - prev[bound] 的结果:就是 处于 【0.5 * i + 7 < age[y]
2024-05-28 17:26:56
400
原创 LayUI时间线优化
width: 31%;width: 31%;z-index: 1;top: 6px;height: 0;width: 0;left: 35%;top: 0;width: 2px;
2024-05-28 17:26:25
617
原创 Go~复合数据类型,数组、Slice、Map、结构体
让我们仔细查看i=3次的迭代。当时x包含了[0 1 2]三个元素,但是容量是4,因此可以简单将新的元素添加到末尾,不需要新的内存分配。然后新的y的长度和容量都是4,并且和x引用着相同的底层数组,如图4.2所示。在下一次迭代时i=4,现在没有新的空余的空间了,因此appendInt函数分配一个容量为8的底层数组,将x的4个元素[0 1 2 3]复制到新空间的开头,然后添加新的元素i,新元素的值是4。新的y的长度是5,容量是8;后面有3个空闲的位置,三次迭代都不需要分配新的空间。
2024-05-28 16:41:25
755
原创 Golong~最新Windows下Go环境+Go mod搭建, 介绍GOROOT、GOPATH、GOPROXY之间关系
在安装完Golang语言的时候,所谓的安装路径其实就是你的GOROOT路径,也就是说GOROOT存放的Golang语言内建的程式库的所在位置,而通常你安装完后,你电脑的环境变数就会设好GOROOT路径,当你开发Golang程式的时候,当你import内建的程式库的时候,并不需要额外安装,而当程式运行后,预设也会先去GOROOT路径下寻找相对应的程式库来运行。GO111MODULE=on,模块支持,go命令行会使用modules,而一点也不会去GOPATH目录下查找。后续使用go mod的时候速度较友好.
2024-05-28 16:40:54
879
原创 leetcode162
(一直保持夹逼的趋势,搜出一个数字即可)解释: 3 是峰值元素,你的函数应该返回其索引 2。输入: nums = [1,2,1,3,5,6,4]解释: 你的函数可以返回索引 1,其峰值元素为 2;你的解法应该是 O(logN) 时间复杂度的。输入: nums = [1,2,3,1]或者返回索引 5, 其峰值元素为 6。
2024-05-26 21:59:31
245
原创 JavaWeb:XML
2.引入xsi前缀. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"//3.parse(URL url, int timeoutMillis):通过网络路径获取指定的html或xml的文档对象。引入xsi前缀. xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
2024-05-26 20:22:29
317
原创 JVM知识梳理
算法思路:以GC ROOT 的对象作为起始点,从这些节点开始向下搜索,走过的路径称为引用链( Reference Chain ) 当一个对象到GC ROOT 时没有任何引用链就会被判”缓刑“,要想真正死亡需要经历两次标记,刚才所说的只是暂时标记了一次,第二次标记的时候系统需要判断该对象是否有必要执行一次finalize() 方法,如果对象没有覆盖,或者是已经调用了一次finalize() 方法 那就判定为不用执行,这时候直接回收了。在虚拟机栈(栈帧中的本地变量表)中引用的对象。堆:线程共享,存放对象实例。
2024-05-25 22:15:28
395
原创 JVM的类加载机制全面解析
验证(Verification)准备(Preparation)解析(Resolution)初始化(Initialization)使用(Using)卸载(Unloading)类加载的全过程,包括其中的几个阶段。
2024-05-25 22:14:58
333
原创 Java线程池实现原理及其在美团业务中的实践
面对业务中使用线程池遇到的实际问题,我们曾回到支持并发性问题本身来思考有没有取代线程池的方案,也曾尝试着去追求线程池参数设置的合理性,但面对业界方案具体落地的复杂性、可维护性以及真实运行环境的不确定性,我们在前两个方向上可谓“举步维艰”。最终,我们回到线程池参数动态化方向上探索,得出一个且可以解决业务问题的方案,虽然本质上还是没有逃离使用线程池的范畴,但是在成本和收益之间,算是取得了一个很好的平衡。
2024-05-25 20:43:57
348
原创 Java线程池实现原理及其在美团业务中的实践(1)
增加线程是通过线程池中的addWorker方法,该方法的功能就是增加一个线程,该方法不考虑线程池是在哪个阶段增加的该线程,这个分配线程的策略是在上个步骤完成的,该步骤仅仅完成增加线程,并使它运行,最后返回是否成功这个结果。线程池运行的状态,并不是用户显式设置的,而是伴随着线程池的运行,由内部来维护。首先,所有任务的调度都是由execute方法完成的,这部分完成的工作是:检查现在线程池的运行状态、运行线程数、运行策略,决定接下来执行的流程,是直接申请线程执行,或是缓冲到队列中执行,亦或是直接拒绝该任务。
2024-05-25 20:43:26
274
原创 Java Review (二十七、集合----- List 集合)
执行①行代码时 ,程序试图删除一个 A 对象 , List 将会调用该A对象的equals()方法依次与集合元素进行比较,如果该 equalsO方法 以某个集合元素作为参数时返回 true , List将会删除该元素——A 类重写了 equalsO方法 , 该方法总是返回 true。List 集合代表一个元素有序 、可重复的集合,集合中每个元素都有其对应的顺序索引。相比较父接口 Collection,由于 List 是有序集合 , 因此 List 集合里增加 了一些根据索引来操作集合元素的方法。
2024-05-25 18:18:33
365
原创 Java Review (二十七、集合----- List 集合)(1)
执行①行代码时 ,程序试图删除一个 A 对象 , List 将会调用该A对象的equals()方法依次与集合元素进行比较,如果该 equalsO方法 以某个集合元素作为参数时返回 true , List将会删除该元素——A 类重写了 equalsO方法 , 该方法总是返回 true。而 LinkedList 内部以链表的形式来保存集合中的元素,因此随机访问集合元素时性能较差,但在插入、删除元素时性能比较出色(只需改变指针所指的地址即可)。,无须程序保证该集合的同步性。
2024-05-25 18:18:02
356
原创 Alibaba内部出品“Java初学者宝典”,助你从入门到精通,轻松就业无压力
Servlet基础、HTTP协议、 Servelt 工作原理、Servlet生命周期。web概述、HTML概述、 HTML文本处理、图像、超链接、表格、表单。访问控制、final、 static(类方法, 常量,类)、JSP语法、JSP运行原理、转发、重定向、JSP开发常见问题。JavaScript基础语法、函数、事件、重用属性。文件上传、下载、验证码、二维码、Excel文件解析。CSS概述、CSS语法、CSS选择器、重用属性。类之间的关系(关联、依赖、泛化、聚集)JSTL、EL表达式、过滤器、监听器。
2024-05-25 15:07:59
416
原创 Alibaba内部出品JavaEE开发手册( MVC+ Spring+MyBatis )和Redis
讲解Spring MVC主要的流程、HandlerMapping 的应用、控制器Controller、处理适配器(HandlerAdapter)、视图和视图解析器,然后讨论传递参数、注解、数据校验、消息转换和国际化等应用。掌握NoSQL的优势和应用方法,掌握Redis的常用数据类型和主要命令以及一 一些基本的特性(比如事务)和用法,并教会你在Java和Spring环境中使用它。第14章 Spring MVC的初始化和流程。第7章 MyBatis的解析和运行原理。第9章 Spring IoC的概念。
2024-05-25 15:07:29
411
原创 2024-5-9【CCF】【1041
bool cmp(students a,students b){//结构体排序。//计算人数 //错误理解题意。i++){//遍历输入。i++){//遍历输入。struct students{//结构体。cin>>n>>m;cin>>n>>m;
2024-05-25 13:59:36
237
原创 2024-5-26【单链表】【结构体】【含注释】
void deleteNodeByAppoin(struct Node* headNode,int posData)//删除结点 (从头开始)void insertNodeByHead(struct Node* headNode,int data)//插入结点。//新结点的指针 指向 插入位置结点的指针指向的位置。//前一个结点指针直接指向删除结点后的结点。if(posNode == NULL){ // 为空不存在。if(posNode == NULL)//删除结点不存在。
2024-05-25 13:59:06
270
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人