自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 技术干货:JVM架构体系与GC命令全梳理,建议收藏

先看user defined classloader是否缓存了,如果缓存了,就直接返回,如果没有,委派父classloader去加载,如果父缓存了,就直接返回,否则再委派给父classloader;JVM通过双亲委派模型进行类的加载,先交给其最底层父类去加载,父类无法加载时才自己试着去加载。garbage first, G1:它将整个Java堆划分为多个大小相等的独立区域(Region),虽然还保留有新生代和老年代的概念,但新生代和老年代不再是物理隔离的了,它们都是一部分Region(不需要连续)的集合。

2024-06-19 04:36:47 701

原创 Android组件化和插件化开发简单介绍

随着APP版本不断的迭代,新功能的不断增加,业务也会变的越来越复杂,APP业务模块的数量有可能还会继续增加,而且每个模块的代码也变的越来越多,这样发展下去单一工程下的APP架构势必会影响开发效率,增加项目的维护成本,每个工程师都要熟悉如此之多的代码,将很难进行多人协作开发,而且Android项目在编译代码的时候电脑会非常卡,又因为单一工程下代码耦合严重,每修改一处代码后都要重新编译打包测试。,导致非常耗时,最重要的是这样的代码想要做单元测试根本无从下手,所以必须要有更灵活的架构代替过去单一的工程架构。

2024-06-19 04:33:15 828

原创 Android校招:没想到吧,挂了我头条客户端,我进了抖音客户端(1)

**帮你在现在的基础上,重新梳理和建立 Android 开发的知识体系。**无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会在这份资料中有所一些收获。

2024-06-19 04:00:11 1020

原创 微服务下的持续集成-Jenkins自动化部署GitHub项目

一、前言只从公司用了Jenkins后就很想写这个了,因为这个真真真的是太方便了,想起小农刚工作的时候,那个时候部署项目怎么部署呢?

2024-06-19 03:58:28 694

原创 Android开发,你所不知道的Android原生开发的现状

例如,在装有Android Auto的汽车中,应用程序挂起和随后的崩溃会分散驾驶员的注意力,这可能会导致非常不幸的后果。这个库比Room还要老,但是据我了解,在过去的一年左右的时间里,它已经被重写了很多。如果您的公司已经雇用了许多后端开发人员,或者您需要实现许多服务器端逻辑,这可能不是最佳解决方案,但是对于仅在后端执行CRUD操作的初创企业和个人来说,这可能会是一种好的选择。如果您的PM坚持使用此功能,请向他们展示以上链接,并向他们解释,后台任务需要花费数百小时的时间来实现,而且带来的麻烦多于收益。

2024-06-19 03:28:25 516

原创 实战篇:断点续传?文件秒传?手撸大文件上传

将大文件拆分成小文件,将小文件上传\下载,最后再将小文件组装成大文件;:在文件分块的基础上,将每个小文件采用单独的线程进行上传\下载,如果碰到网络故障,可以从已经上传\下载的部分开始继续上传\下载未完成的部分,而没有必要从头开始上传\下载;:资源服务器中已经存在该文件,其他人上传时直接返回该文件的URI。

2024-06-19 03:15:22 241

原创 Android应用开发--MP3音乐播放器代码实现(一)

/ 在调用stop后如果需要再次通过start进行播放,需要之前调用prepare函数。//把各项参数恢复到初始状态。

2024-06-19 02:55:34 986

原创 大牛吐血总结干货-关于-Spring-中-getBean-的全流程源码解析

所以,它为了适应各类的需求,变得越来越复杂了。而这部分知识的深入学习绝对不只是为了应付八股文,更多的是考虑到在日常的 Spring 使用中遇到复杂问题时有没有一个大致知晓的流程,可以快速定位问题,以及此类需求的技术实现方案是否能在以后的应用开发中起到一定的指导作用,因为它是一种设计方案的具体实现。typeCheckOnly,typeCheckOnly,用于判断调用 getBean 方法时,是否仅是做类型检查,如果不是只做类型检查,就会调用 markBeanAsCreated 进行记录。

2024-06-19 02:33:55 557

原创 Android基础进阶 - 消息机制 之Native层分析

用于执行对需要监听的文件描述符(fd)的操作,比如EPOLL_CTL_ADDfd:需要监听的文件描述符;epoll_event:需要监听的事件** epoll_wait:等待事件的到来**等待事件的到来,有三种情况会触发返回** epoll和eventfd结合使用**eventfd中无数据,线程触发epoll_wait()的等待,该线程处于阻塞,另外一个线程通过往eventfd中write数据,使描述符可读,epoll返回,这就达到了唤醒的目的。

2024-06-19 02:24:33 571

原创 Android人脸识别的初步学习

人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别的一系列相关技术,通常也叫做人像识别、面部识别。

2024-06-19 01:55:20 990

原创 图片提取文字功能很神奇?Java 几行代码搞定它!

近日浏览网上一些图片提取文字的网站,觉得甚是有趣,花费半日也做了个在线图片识别程序,完成了两个技术方案的选择,一是tesseract+python flask的方案实现,二是tesseract+spring web的技术解决方案,并简作论述,与君共勉。当前最新稳定版本是4.x.x基于LSTM,源码可从找到tesseract的GitHub: tesseract.找到。即tesseract包括一个视觉字符识别引擎libtesseract和命令行程序tesseract。一、tesseract-ocr介绍。

2024-06-19 01:53:51 448

原创 Android-第十节JSON讲解

/把字节流转化成字符流。

2024-06-19 01:21:29 571

原创 Android 面试题之 BroadcastReceiver 使用+实例

Override@OverrideLog.e(getClass().getName(),“点击R.id.btn_send”);intent.putExtra(“scc”, “真的帅”);break;点击发送静态广播,实现效果如下。

2024-06-19 00:51:52 823

原创 分布式事务与分布式系统

在第二阶段中,当协调者向发送 commit 消息请求之后,发生了局部网络异常或者发送 commit 请求过程中协调者发生了故障,会出现部分参与者接收到 commit 消息并进行提交,而其他参与者未收到 commit 消息则无法提交,于是整个事务中就会出现数据不一致的现象。在扣减库存而言,则解冻该库存数量。第一阶段 预处理阶段:事务协调者(事务管理器)给每个参与者(资源管理器)发送 Prepare 消息,每个参与者要么直接返回失败 ,要么在本地执行事务,写本地的 redo 和 undo 日志,但不提交。

2024-06-19 00:50:23 468

原创 Android 百度翻译API(详细步骤+源码)

开头,后续参数使用&,其他的就是字符串的拼接了,一目了然。这种写代码的方式虽然像是套娃一样,一层一层的,看起来好像很复杂的样子,但是其实是有一个思路串联起来的,由上到下,思路清晰就很好理解,我个人觉得比把所有代码写在一个方法里要好。这里就是OkHttp的简单使用了,而这里我写了两个访问地址,区别就是一个是https一个是http,不知道这两个区别的自行百度,没有解释的必要。这里先判断了输入框的值是否为null或者“”,不是则改变翻译按钮的文字显示,并且不可点击,给用户一种正在翻译的假象。

2024-06-19 00:23:14 1038

原创 优质高效!GitHub大佬的微服务资源库太强了,看完我粉了!

最重要的原因在于spring cloud中的几乎所有的组件都使用Netflix公司的产品,然后在其基础上做了一层封装。**可以说是开发者的懒人神器,**作为一名 Java 程序员如果你已经厌恶了传统的开发模式,希望有一个全新的框架可以提供快速开发,简单集成的编程体验,强烈建议你学习了解 Spring Boot。由于篇幅原因,这些微服务笔记(Spring Cloud,Docker,K8S,Spring Cloud Alibaba,SpringBoot)都整理成了文档免费分享。Docker学习笔记。

2024-06-18 12:35:42 394

原创 习题9-5 通讯录排序 (20分)

输入第一行给出正整数n(

2024-06-18 08:47:49 345

原创 一文彻底掌握Apache Hudi异步Clustering部署

Clustering注意:所有策略都是分区感知的,后两种策略仍然受到第一种策略的大小限制的约束。

2024-06-18 08:11:42 722

原创 【redis源码分析】Redis Sentinel 是如何实际解决分布式共识问题的

/failover_start_time 可以理解为一个锁,直到上次故障转移的时间超过failover_start_time 的两倍,才可以开始新的故障转移,默认三分钟。if (sentinelStartFailoverIfNeeded(ri)) //判断是够可以进行故障转移。//检查是否存在主观下线的节点。//其他 Sentinel 节点会回复一个标志位,如果为 true,则代表他也认为那个节点下线了。//如果当前处理的是主节点,还需要递归处理主节点实例下的slaves 和 sentinels。

2024-06-18 07:32:46 658

原创 「高并发秒杀」微信抢红包实战案例

群里有小伙伴咨询微信红包的架构,对于我来说,显然是不知道的,但是写一个相对高并发的抢红包案例还是完全可以的。

2024-06-18 06:58:35 616

原创 《零基础》MySQL 连接的使用(二十)

在前几章节中,我们已经学会了如何在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。本章节我们将向大家介绍如何使用 MySQL 的 JOIN 在两个或多个表中查询数据。你可以在 SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询。:获取两个表中字段匹配关系的记录。**LEFT JOIN(左连接):**获取左表所有记录,即使右表没有对应匹配的记录。

2024-06-18 06:21:45 668

原创 《系统设计》—架构师必备知识—系统设计基础—0001

在没有并发存在的系统中,请求被顺序执行,此时响应时间为吞吐量的倒数。例如系统支持的吞吐量为 100 req/s ,并发用户数不是越高越好,因为如果并发用户数太高,系统来不及处理这么多的请求,会使得过多的请求需要等待,存储服务器的冗余需要使用主从复制来实现,当主服务器故障时,需要提升从服务器为主服务器,这个过程称为切。将多台服务器组成集群,使用负载均衡将请求转发到集群中,避免单一服务器的负载压力过大导致性能降低。如果系统存在伸缩性问题,那么单个用户的请求可能会很快,但是在并发数很高的情况下系统会很慢。

2024-06-18 05:44:49 249

原创 《剑指offer》之顺时针打印矩阵

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.我们先直接思路解题,代码不是很简洁,但是思路算是比较清晰,先判断数组是否为空。//最外层从右往左输出,注意排除和前面的从左往右重复。//最外层从下往上输出,注意排除和前面的从上往下重复。//最外层从左往右输出。//最外层从上往下输出。

2024-06-18 05:11:27 305

原创 《RocketMQ技术内幕:RocketMQ架构设计与实现原理》书籍勘误表

TransientStorePool transientStorePool:堆外内存池,该内存池中的内存会提供内存锁定机制。代码清单中3-13中代码for循环错乱,粘贴代码时,由于重新排版,导致}号错乱。作者也会尽量跟进社区重大更新,对其进行解读,也会在该文中添加动态。

2024-06-18 04:35:23 589

原创 《Java并发编程的艺术》读后笔记-Java中的13个原子操作类(第七章)

等于意味着AtomicInteger的值没有被其他线程修改过,则将 AtomicInteger的当前数值更新成next的值,如果不等compareAndSet方法会返回false,程序会进入for循环重新进行compareAndSet操作。代码中首先构建一个user对象,然后把user对象设置进AtomicReferenc中,最后调用compareAndSet方法进行原子更新操作,实现原理同AtomicInteger里的compareAndSet方法。那么问题来了,如何原子的更新其他的基本类型呢?

2024-06-18 04:05:50 897

原创 “牛客网”难倒万人的 Java 面试题后,已助我收获 8 个大厂 offer

程序员面试没有捷径可言,努力刷题一步一个脚印最终才能获得 offer!

2024-06-18 03:30:12 325

原创 [Mysql教程系列]介绍一下MySQL索引设计规范

合理的索引会加快查询速度(包括UPDATE和DELETE的速度,MySQL会将包含该行的page加载到内存中,然后进行UPDATE或者DELETE操作),不合理的索引会降低速度。前缀索引能有效减小索引文件的大小,提高索引的速度。索引根据左前缀原则,当建立一个联合索引(a,b,c),则查询条件里面只有包含(a)或(a,b)或(a,b,c)的时候才能走索引,(a,c)作为条件的时候只能使用到a列索引,所以这个时候要确定a的返回列一定不能太多,不然语句设计就不合理,(b,c)则不能走索引。

2024-06-18 02:48:11 992

原创 TCP的三次握手和四次挥手详解

服务端接收到SYN=1的客户端建立连接的请求, 服务器端向客户端发送应答(响应):SYN=1, ACK=1 ,seq=y, ack=x+1,发送完服务器进入SYN-REVD状态(接收到客户端的syn请求, 并已经响应了客户端的syn请求报文)服务端收到结束标志FIN=1后,响应客户端: ACK=1, ack=u+1, seq=v, 服务端进入CLOSE_WAIT状态(关闭等待状态), 此时还可以发送数据。1.ACK=1, 1确认收到 2. ack=x+1, 希望对方下一次发送, 从序号x+1开始。

2024-06-18 02:14:42 232

原创 SpringloC容器的依赖注入源码解析(7)—— doCreateBean之剩余逻辑(解决循环依赖的源头)

这一行执行的,这里只是将getEarlyBeanReference注册进去,实际执行的地方是前面尝试从缓存里获取bean的地方,即AbstractBeanFactory的doCreateBean方法里。方法,所以有可能会被赋值为全新的对象,一旦被赋值了全新的对象之后if里面是false,进入到前面的。// 确保根据名称获取到的的已注册的Bean和正在实例化的Bean是同一个。// 判断是否是早期引用的bean,如果是,则允许其提前暴露引用。// 这里是一个匿名内部类,为了防止循环引用,尽早持有对象的引用。

2024-06-18 01:41:47 356

原创 Spring-Bean的作用域和生命周期

在Bean容器启动会读取bean的xml配置文件,然后将xml中每个bean元素分别转换成BeanDefinition对象。,作用域仅在基于web的Spring ApplicationContext情形下有效,当处理请求结束,request作用域的bean实例将被销毁。的Http Session中,容器会返回该Bean的同一个实例,仅在使用portlet context时有效。而对不同的Session请求则会创建新的实例,该bean实例仅在当前Session内有效。,而且我们每次获取到的对象都。

2024-06-18 01:12:20 378

原创 Spring Boot 2(2)

如果有这样的需求也是可以用的,但是原则上还是推荐以上面的典型结构来定义,这样也可以少写一些注解,代码更加简洁。通常我们会在应用主类中做一些框架配置扫描等配置,我们放在root package下可以帮助程序减少手工配置来加载到我们希望被Spring加载的内容。用于编写Web层相关的实现,比如:Spring MVC的Controller等。中的Controller定义,就无法初始化Controller中定义的接口。与应用主类的位置是整个结构的关键。中,所以按照上面的规则定义的所有其他类都处于。

2024-06-17 21:36:48 243

原创 Redis中的限流八股文

在编写系统时候有时候我们的系统在设计的时候就已经估算到了最大请求负载了,如果大量的请求超过系统所能承受着的值时,那么系统可能随时挂掉,所有聪明程序员就想到了请求限流来控制系统的可用和稳定性。以系统限制用户行为为例子,比如一秒内进行某个操作5次,这种行为应该进行限制,滑动窗口就是记录一个滑动的时间窗口内的操作次数,操作次数超过阈值则进行限流。滑动窗口算法将一个大的时间窗口分成多个小窗口,每次大窗口向后滑动一个小窗口,并保证大的窗口内流量不会超出最大值,这种实现比固定窗口的流量曲线更加平滑。

2024-06-17 21:05:51 233

原创 MySQL:第一次看到有人把MYSQL主从复制讲解的这么清楚

简单来说:Mysql的复制(replication)是一个。实现整个复制操作主要由三个进程完成的,其中两个进程在Slave(Sql进程和IO进程),另外一个进程在 Master(IO进程)上。要实施复制,首先必须打开Master端的功能,否则无法实现。因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。复制的详细过程:(1)Slave上面的IO进程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容。

2024-06-17 20:30:07 291

原创 mybatis以及mysql常见问题

4.mysql使用循环生成测试数据4.1.创建存储过程BEGINSET i=1;SET i=i+1;END WHILE;END//4.2.使用这个存储过程4.3.使用完成之后可以删除这个存储过程5.解决连接数据库提示Authentication plugin ‘caching_sha2_password’ cannot be loaded的问题5.1 管理员权限运行命令提示符,登陆MySQL5.2 修改账户密码加密规则并更新用户密码。

2024-06-17 20:01:52 773

原创 LeetCode114 二叉树展开为链表 ---二叉树题 三种解法 (递归) (迭代) (前驱节点)

给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null。展开后的单链表应该与二叉树顺序相同。解法一 : 递归解法。

2024-06-17 19:32:55 923

原创 java项目如何打包?

外面的编译.bat运行了之后,classes文件夹会出现tool,里面就是三个class文件,说明一件编译成功了。意思就是先创建一个classes文件夹,然后配置classpath,编译当前目录下所有的java文件。tool*.class 是指将当前tool目录下所有的文件都打入jar包。tools.jar 是打成后的jar包名称;-cvf 是打jar时的参数,写上就可以;打包脚本我放在了classes文件夹。jar 是打jar的命令符;步骤 1 编写编译的脚本。

2024-06-17 19:01:14 256

原创 Java毕业设计-校园二手图书交易

在这里插入图片描述](https://img-blog.csdnimg.cn/b28acaac6283470b870ef855fc8a2df6.png?buyBookResult.setMessage(“余额不足,请先充值”);buyBookResult.setMessage(“找不到该书籍”);buyBookResult.setMessage(“请先登录”);result.setMessage(“充值成功”);

2024-06-17 18:31:59 642

原创 java基础面试题2

在Java中,对象序列化表示将对象表示为字节序列。字节包括对象的数据和信息。可以将序列化的对象写入文件/数据库,然后从文件/数据库中读取并反序列化。代表对象及其数据的字节可用于在内存中重新创建对象。当您需要通过网络发送对象或存储在文件中时,通常使用序列化。网络基础结构和硬盘只能理解位和字节,而不能理解Java对象。序列化将Java对象转换为字节,然后通过网络发送或保存。实体类都要实现序列化接口!!!

2024-06-17 18:03:41 185

原创 Java~当HashMap中key为对象时为何要重写hashCode和equals

但是此时运行main输出还时null, 我们查看get方法, 会发现, 即使我们person2到达了正确的单链表上, 但是对单链表进行遍历, 判断key是否相同的时候, 使用的是equals进行, 判断的, 而equals如果不重写, 其默认还是使用==进行物理地址的判断相等。这时我们就发现, 由于person和person2都是分别new的对象, 所以其物理地址自然不同, 所以其hash值自然不同, 所以就找不到输出为null。map.put(person, “第一名”);//获取person2。

2024-06-17 17:26:03 360

原创 Java Script

所以这个叫做arguments的东西也是个对象,而且是一个特殊的对象,它的属性名是按照传入参数的顺序来的,第一个参数的属性名是’0’,第二个参数的属性名是’1’,以此类推,并且它还有个length属性,存储的是当前传入函数参数的个数,很多时候我们把这种对象叫做类数组对象。就是再function函数中不需要定义,但却可以直接用来获取所有参数的变量。在Javascript语言中,所有的变量,都可以作为一个boolean类型的变量去使用。全等于: === 除了做字面值的比较之外,还会比较两个变量的数据类型。

2024-06-17 16:53:57 814

空空如也

空空如也

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

TA关注的人

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