02 2023 档案
摘要:程序开发过程中,最重要的一步是数据交互,也就是服务之间的数据通信,涉及到通讯需要有通讯协议,数据的序列化与反序列化,从早期使用的xml,到现今流行的json,再到protobuf,这些都是为了解决通讯的效率问题。 Protobuf 简介 Protobuf 全称是Protocol buffers,是G
阅读全文
摘要:前言 开发中遇到一个简单问题,一个接口对第三方api有依赖,而且是依赖三个,导致这个接口的响应速度完全依赖于第三方接口的响应速度,前期开发并未考虑性能问题,将三个依赖的API请求做成串行,导致的结果是接口总耗时是三个api接口耗时的总和,接口响应变得巨慢无比,前端经常说接口动不动就超时,通过性能分析
阅读全文
摘要:前言 平常开发过程中总是会有数据映射转换,比如 DO转DTO,DTO转VO,通常的做法就是get/set方法,实体字段数量很大的时候就会写大量的转换,涉及到每个字段,重复的工作量大,并且很容易在赋值的过程中写错,于是会选择一些第三方的工具类来做对应的转换,如:Spring BeanUtils / C
阅读全文
摘要:java 基础知识 成员内部类,局部内部类,匿名内部类,静态内部类 成员内部类 在外部类内部直接定义(不在方法内部或代码块内部)的类就是成员式内部类,它可以直接使用外部类的所有变量和方法,即使是 private 的。外部类要想访问内部类的成员变量和方法,则需要通过内部类的对象来获取。 成员式内部类如
阅读全文
摘要:git分支及命名规范 | 分支 | 命名 | 说明 | | | | | | 主分支 | master | 主分支,所有提供给用户使用的正式版本,都在这个主分支上发布 | | 开发分支 | dev | 开发分支,永远是功能最新最全的分支 | | 功能分支 | feature-* | 新功能分支,某个功
阅读全文
摘要:集合操作 guava对现有jdk 中集合进行了扩展并进行了一系列优化使集合使用起来更加方便。 不可变集合 在开发中很多时候是需要使用不可变集合,不可变集合顾名思义就是说集合是不可被修改的。集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变。比如我们在购物场景中,用户选完商品最后生成购物清
阅读全文
摘要:Atom插件简介 Atom 代码编辑器支持 Windows、Mac、Linux 三大桌面平台,是完全开源的一款软件,所有源码都公布再GitHub上,开发团队将 Atom 称为一个“为 21 世纪创造的可配置的编辑器”,其丰富的插件与好看的界面让很多使用者入迷,其所有插件也是开源,所以支持高度定制化,
阅读全文
摘要:环境 服务器CentOS 7.6 Redis版本 6.0.6 Redis 版本选择 Redis的版本号规范借鉴了Linux的体系。格式:主版本号.次版本号.修订版本号 其中需要注意的是次版本号为奇数代表非稳定版本,偶数则代表稳定版本,且奇数版本是下一个偶数版本的开发版本。所以在选择Redis作为生产
阅读全文
摘要:题目 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为
阅读全文
摘要:简述 之前使用github记录一些开发中遇到的问题以及解决方案,但是github访问速度总是让人感觉到不如意,毕竟服务器在国外, 而gitee是一个类似与github的平台,优势在于访问速度很快,github的功能它基本都有,所以选择转战到gitee平台. Hexo 作为一个快速、简洁且高效的博客框
阅读全文
摘要:title: handler 理解 date: 2019-03-19 16:41:45 tags: android categories: Android description: handler在Android中一直有着很重要的地位,之前对handler只会使用,也只知道一些浅显的注意点,对han
阅读全文
摘要:线程与进程的区别 一个进程属于一个独立的运行空间,可以理解为一个程序或者一个应用,而线程属于进程中的一个执行任务,线程是进程的一个子集,维度不同,一个进程可以有多个线程,每个线程处理的任务可以都不同,不同的进程有不同的内存空间,而一个进程中的所有线程是共享同一片内存空间的.每个线程又有自己单独的栈内
阅读全文
摘要:简介 MMKV是由Tencent团队开源出来的数据存储方案,基于 mmap 内存映射的 key-value 组件,其方式与sharedpreferences 相似,在Android开发中可以使用MMKV完全替代sharedpreferences,MMKV底层序列化/反序列化使用 protobuf 实
阅读全文
摘要:dp是什么,sp呢,有什么区别 Density-independent pixel (dp)独立像素密度。标准是160dip.即1dp对应1个pixel,,屏幕密度越大,1dp对应 的像素点越多。 上面的公式中有个dpi,dpi为DPI是Dots Per Inch(每英寸所打印的点数),也就是当设备
阅读全文
摘要:Android 外链启动app 方式 在 manifest配置需要启动的acivity <intent-filter> <!--接收外部跳转--> <action android:name="android.intent.action.VIEW" /> <!--表示该页面可以被隐式调用,必须加上该项
阅读全文
摘要:Android 混淆相关 基本混淆 -include {filename} 从给定的文件中读取配置参数 -basedirectory {directoryname} 指定基础目录为以后相对的档案名称 -injars {class_path} 指定要处理的应用程序jar,war,ear和目录 -out
阅读全文
摘要:话外 MySQL算是目前最流行的关系学数据库管理系统,但是MySQL中的「My」含义是什么?可能能很多人都会说命名者想与使用者搞好关系,直接翻译成「我的SQL」,让使用者倍感亲切,其实真实原因是MySQL创始人Monty 其女儿名为 My Widenius,Monty1995年创建MySQL时直接用
阅读全文
摘要:layout: title title: MySQL 漫谈(三) date: 2020-11-29 17:49:18 tags: MySQL description: #知识积累 categories: "MySQL" 前言 前一阵子遇到生产服务器频繁GC问题,花了很多时间定位问题,最后通过分析du
阅读全文
摘要:前言:Google Guava和Apache Commons具有相似的功能,Guava库提供了很多优秀的功能为了弥补Java中很多不足,Guava库与2007年开源,至今都为活跃的迭代状态,可见其生命力的顽强,所以Guava库很是值得学习。 Optional NPE终结者 作为java开发人员,无论
阅读全文
摘要:一条 Select 语句是如何执行的 我们在使用mysql时,使用最多的就是查数据,当我们输入select 语句后,mysql 如何给我们返回对应的数据的? MySQL基本架构 MySQL分为Server层和存储引擎层两个部分,Server 层包括: 连接器 查询缓存 分析器 执行器等,以及所有的内
阅读全文
摘要:简介 MyBatis什么? 官网给出的答案是:MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java PO
阅读全文
摘要:简介:通过前两篇文章redis一些原理性知识基本都知道了,但是在实际开发中redis的一些问题和使用场景缺还不太熟悉,本文主要讲实际开发中使用redis的一些问题与使用场景. Redis和DB数据一致性 通常情况下我们是使用redis作为一个中间缓存,方式请求数据直接到DB,所以数据有两份,redi
阅读全文
摘要:前言 实际开发中,我们写入数据时不是单表写入,往往需要同时写入多个表,比如创建一个用户需要在A表中写入账户信息,在B表中写入名字年龄等信息,实际中在A表中写入成功,B表中写入失败,此时如果不添加事务回滚那就造成脏数据,所以B表中写入失败后我们需要将A表的写入回滚,通俗地讲就是两个写入必须都成功或者都
阅读全文
摘要:前言 当我们使用Spring 体系时,应用一个依赖的类只要加上@Autowired或者@Resource 就能直接使用了,但是正常很多情况下应用的类与被应用的存在相互依赖的关系,这样就会出现循环依赖,Spring是怎样解决循环依赖的? 循环依赖是什么? 通常情况下,说Spring循环依赖的问题都默认
阅读全文
摘要:前言 创建一个bean的定义时候,可以创建一个模版(recipe)通过bean定义的类定义去创建一个真实的实例。bean定义是模版(recipe)的概念很重要,因为这意味着,与使用类一样,可以从一个模版(recipe)创建多个对象实例.我们不仅可以控制要插入到从特定bean定义创建的对象中的各种依赖
阅读全文
摘要:前言 在开发Spring项目时,经常会发现很多xml配置项,比如接入mybatis时会通过配置对应的xml,将一些数据库链接信息配置好,或者使用redis时通过xml的方式将redis链接信息配置完,但是Spring也提供通过注解的方式配置Spring项目,所以Spring项目应该通过注解配置还是x
阅读全文
摘要:BeanDefinition 继承 Java 中继承是其面向对象的基石之一,继承就是之类继承父类的特征与行为,使得子类实例具有父类实例域或方法,或子类从父类继承方法,使得子类具有父类相同的行为. Spring的继承又是怎样? bean 定义可以包含很多的配置信息,包括构造函数的参数,属性值,容器的具
阅读全文
摘要:简介 通常情况下我们可以通过xml方式定义Bean,但是很多时候有特殊的要求我们需要自定义bean,在Spring体系下我们如何自定义Bean? Spring 下的实体都是通过容器来管理其生命周期,实体的创建与销毁都与Spring容器管理有关,我们自定义实体的时候如何能够做到让我们的实体与Sprin
阅读全文
摘要:前言 开发时遇到服务总是莫名其妙的停止,本地调试毫无异常,能够正常启动运行,在测试环境发布后也能正常调用,就是运行一段时间后服务完全无响应了,通过翻报错日志发现出现OOM导致服务异常,于是拉了dump文件进行分析,借此学习了JVM相关知识,以及自己总结的一些编码中的注意事项。 JVM运行时内存布局
阅读全文
摘要:前言 总是会听到别人问Spring是啥? Spring Framework Spring boot Spirng clound 有啥区别? Spring 是一个技术生态圈,而 Spring Framework/Spring boot ....构建出Spring生态圈,Spring Framework
阅读全文
摘要:前言 Ioc控制管理这所有实例,在开发中我们只需要在合适的时机拿到我们需要的实例进行使用,我们怎么能够简单的获取到这些加载的实例? 依赖注入(DI) 通过查看官网依赖注入的方式有两种: 构造方法注入 setter方法注入 通过代码来验证这两种注入方式: 通过配置xml 来指定注解方式,分别可以通过构
阅读全文

浙公网安备 33010602011771号