自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Android开发技术栈 android开发技能

例如炒股的一些APP。比如是基础组件2出现问题,由于在Debug模式下,基础组件2作为app可以独立运行的,因此可以很容易地对该模块进行单独修改,调试.最后修改完后只需要重新编译一次整个项目即可。(2)主工程多组件开发模型 在"单工程"模型的基础上,将业务层中的各业务抽取出来,封装成相应的业务组件,将基础库中各部分抽取出来,封装成基础组件,而主工程是一个可运行的app,作为各组件的入口(主工程也被称之为壳程序).这些组件或以jar的形式呈现,或以aar的形式呈现.主工程通过依赖的方式使用组件所提供的功能.

2024-07-21 14:53:53 15

原创 Spring的IOC

有了IOC容器后,把创建和查找依赖对象的控制权交给容器,由容器进行注入组合对象,所以对象与对象之间是松散耦合,这样也方便测试,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活。:它们是同一个概念的不同角度描述,由于控制反转概念比较含糊(可能只是理解为容器控制对象这一个层面,很难让人想到谁来维护对象关系),所以2004年Martin Fowler又给出了一个新的名字:“依赖注入”,相对IOC而言,“依赖注入”明确描述了“被注入对象依赖IOC容器配置依赖对象”。

2024-07-21 14:42:49 879

原创 如何进行Mysql优化?(sql优化层面和服务器优化层面)

select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序,id相同,执行顺序从上至下,id值越大,优先级越高,越先执行。:显示索引的那一列被使用了,如果可能的话,是一个常数,哪些列或常量被用于查询索引列上的值。:根据表统计信息及索引选用情况,大致估算出找到所需的记录所需读取的行数,这个数量越小越好。:显示可能应用在这张表中的索引,一个或多个,但不一定实际使用到。:表示索引中使用的字节数,可通过列计算出查询中使用的索引的长度。:查询的表行占表的百分比。

2024-07-21 14:41:02 232

原创 JVM的GC的主要区域以及各自的GC机制

暂停GC回收线程外的所有线程。2.然后使用标记-清除/整理算法,标记出所有的可以访问的对象并做个指定的标记,之后遍历堆内存,把未标记的对象进行收回。:与线程栈很类似,线程栈执行的是Java方法,本地方法栈执行的是native方法,用于与java外面的环境交互,如硬件,操作系统。标记-清除算法清除结束后的内存空间是不连续的,由此衍生出标记-整理算法(空闲的空间是连续的)2. 如果正在执行的是线程栈中的方法,则这个计数器记录的是正在执行的虚拟机字节码指令地址。

2024-07-21 14:38:03 814

原创 JVM的GC算法

(6)分区算法:将整个堆空间氛围连续的不同小区间,每一小区间都独立使用,独立回收,并可以控制一次回收的小区间数量。一般来说,在相同条件下,堆空间越大,进行一次垃圾回收的所需的时间就越长,并根据目标停顿时间的要求,每次合理地控制回收部分小区间,而不是回收整个堆空间,则可以有效减少一次垃圾回收所产生的停顿时间。

2024-07-21 14:37:21 84

原创 ElasticSearch基础知识

由上文可以得出结论,对于非结构化数据,传统的关系型数据库无法提供完善的数据检索功能而目前对于非结构化数据支持最好的开源工具包,目前就是Apache 的 Lucene了Lucene本身并不是一个搜索引擎,只是一个为软件开发人员提供的jar包,以方便的在目标系统中实现全文检索的功能,或者基于lucene建立搜索引擎目前基于lucene而实现的搜索引擎,主要是 Solr 和 Elasticsearch。Solr 和 Elasticsearch 都是比较成熟的全文搜索引擎,能完成的功能和性能也基本一样。

2024-07-21 14:35:54 548

原创 JAVA的IO演化过程

linux内核将所有外部设备都当成一个文件来操作,对文件的读写操作会调用内核提供的系统命令,然后返回一个file descriptor(fd 文件描述符)。同理,对一个socket的读写,也会返回一个socketfd(socket描述符)。描述符本质上来说是一个数字,指向内核中的一个结构体(文件路径、数据区等一些属性)阻塞I/O模型。

2024-07-21 14:32:34 832

原创 Redis的缓存雪崩、缓存穿透、缓存击穿

有了缓存预热后,系统刚上线,用户也可以直接查询实现被预热的缓存数据。如果不进行预热,那么Redis初始状态数据为空,系统上线初期,对于高并发的流量,都会访问数据库,会对数据库造成流量的压力。:指访问一个缓存和数据库中都不存在的key,由于这个key在缓存中不存在,则会到数据库中查询,数据库中也不存在这个key,无法将该数据加到缓存中,所以每次都会访问数据库导致数据库压力增大。:将大量请求访问缓存中的一个key时,该key过期了,导致这些请求都直接去访问数据库了,短时间大量的请求可能会将数据库击垮。

2024-07-21 14:30:34 227

原创 Redis的线程模型

它是单线程的,因此Redis才叫做单线程的模型。多个socket可能并发的产生不同的操作,每个操作对应不同的文件事件,但是IO多路复用程序会监听多个socket,会将socket放入一个队列中排队,每次从队列中取出一个socket给事件分派器,事件分派器再把socket给对应的事件处理器。文件事件处理器是单线程模式运行的,但是通过IO多路复用机制监听多个socket,可以实现高性能的网络通信模拟,又可以跟内部其他单线程的模块进行对接,保证了Redis内部的线程模型的简单性。

2024-07-21 14:29:44 120

原创 Redis过期数据的删除策略

由于Redis是一个NoSQL数据库,所以经常会将数据设置过期时间,等待过期时间结束的时候,就会删除数据,但是,大量的数据在同一时间到期进行删除的时候,不是百分之百把目标删除,而是在内存占用与CPU占用之间寻找一种平衡,CPU忙的时候就不要添乱了。定时删除,就是我们使用的一种删除策略,创建一个定时器,当key设置有过期时间,且过期时间达到,由定时任务立即执行对键的删除操作。定期删除是Redis周期性轮询Redis库中的时效性数据,采用随机抽取的策略,利用过期数据占比的方式控制删除频率。

2024-07-21 14:29:11 110

空空如也

空空如也

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

TA关注的人

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