自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

路比的学习空间

欢迎评论交流

  • 博客(21)
  • 收藏
  • 关注

原创 同一个分支maven构建出来的包不一样?

正好解释了为什么这个问题是这两天才出现的,因为他前两天刚刚引入了这个类库并且在不修改sdk版本号的情况下将其上传到远程maven仓库,所以当我们进行发布的时候,就出现问题了。而就在刚刚他修复完sdk后,再一次用相同版本号进行了上传,此时我刚好在执行第三步的排查,更新本地的maven仓库,所以依旧没有找到破绽,因为问题实际上已经修复了。后面我咨询了同事,原来是他这两天在开发sdk时,不小心引入了这个类库,在发现问题之后,又将其注释了,但是前后的两个版本号都是同一个。

2023-07-02 17:30:54 573

原创 解决SSE流被Nginx缓存的问题

拿我们的服务为例子,因为某些历史遗留原因,客户端到服务端实际上存在两个nginx网关,一个是公司层面的网关,一个是用于k8s反向代理的网关,这个时候单纯设置X-Accel-Buffering=no就无效了。如果你的服务使用了nginx网关,可能会出现nginx缓冲sse流的问题,导致的现象是,客户端调用sse接口时,流数据并不是一条条出现的,而是一口气出现的,原因就是nginx网关对流数据进行了缓存。客户端与服务器之间有n个nginx,就要至少在n-1个nginx里面配置好这个header。

2023-07-02 14:52:51 4481

原创 使用Nginx反向代理OpenAI API

由于OpenAI的API在国内无法访问,所以可以通过海外服务器利用Nginx实现反向代理。

2023-03-25 23:06:53 10464 17

原创 Java 基础

java基础

2022-07-14 16:22:06 323 1

原创 计算机网络

分层体系结构

2022-07-14 16:12:19 423

原创 梳理与理解Android中的Handler机制

Handler对于安卓开发者来说并不陌生,相信不少同学都在网上看到过各种各样的有关于Handler机制的文章,所以这里也不再赘述,主要是梳理一下几个类的关系、消息处理流程以及理解线程切换的原理。类的关系我们都知道,Handler中需要关注的无非就是这四个类,Handler、Message、MessageQueue、Looper。从成员变量上看它们的关系如下所示,Handler:持有 Looper、MessageQueueLooper:持有 MessageQueueMessage:持有 Handl

2020-10-25 15:48:14 133

原创 Java线程安全与各种锁

为了便于自己阅读理解,本文整理自《深入理解Java虚拟机》第3版。同步同步是指在多个线程并发访问共享数据时,保证共享数据在同一时刻只被一条线程使用。同步的手段有两种,一种是互斥同步,另一种是非阻塞同步。1. 互斥同步互斥是实现同步的一种手段,临界区、互斥量、信号量都是常见的互斥实现方式。互斥同步是一种悲观的并发策略,它总是认为只要不去做正确的同步措施(如加锁),就肯定会出现问题。乐观锁互斥同步实现的锁,就是悲观锁。Synchronized在Java里面,最基本的互斥同步手段就是synch

2020-10-14 20:36:06 139 2

原创 理解volatile关键字

理解volatile关键字为了便于自己阅读理解,本文整理自《深入理解Java虚拟机》第3版。Java内存模型理解volatile关键字之前需要先了解下Java的内存模型。主内存:Java虚拟机规定所有的变量(不是程序中的变量,它包括了实例字段、静态字段和构成数组对象的元素,但不包括局部变量和方法参数,因为后者是线程私有的)都存储在主内存。工作内存:Java虚拟机中每个线程都有自己的工作内存,它保存了被线程使用的变量的主内存副本,线程对变量的读写操作都必须在工作内存中进行,不能直接读写主内存中的

2020-10-12 20:38:56 110

原创 自己动手造一个 RxJava(三)—— 线程调度

目录自己动手造一个 RxJava 序言目录 1.理解临时任务对象 场景 同步 异步 泛型回调 临时任务对象 组装任务 改装流水线 简单的映射 2.事件的发送与接收 RxJava 的发送和接收原理事件发送接收操作符 just 的实现 3.映射 4.线程调度 subscribeOn 的实现observeOn 的实现利用线程池进行调度关闭线程池结...

2018-08-06 19:17:29 809

原创 自己动手造一个 RxJava(二)—— 事件的发送、接收与映射

目录自己动手造一个 RxJava 序言目录 1.理解临时任务对象 场景 同步 异步 泛型回调 临时任务对象 组装任务 改装流水线 简单的映射 2.事件的发送与接收 RxJava 的发送和接收原理事件发送接收操作符 just 的实现 3.映射 4.线程调度 subscribeOn 的实现observeOn 的实现利用线程池进行调度关闭线程池结...

2018-08-06 19:09:37 1023

原创 自己动手造一个 RxJava(一)—— 理解临时任务对象

自己动手造一个RxJava序言最近在公司做一个数据同步需求的时候,碰到了这样的场景。 客户端从服务器拉取用户账号数据,拿到数据后进行处理并对数据库进行更新操作,最后显示到UI上。我们知道网络操作一般是异步处理的,在回调中拿到数据并进行处理。为了防止主线程阻塞,数据库的操作往往也会放到子线程中去执行,所以同样需要一个回调来判断数据库操作是否成功,最后由于安卓不允许在子线...

2018-08-05 13:52:14 530

原创 Android 面试经验 - Android 进程间的通信

Android 进程间的通信参考资料: 几种进程通信方式的对比总结 Android Binder 机制(一) Binder 的设计和框架 Android 面试收集录14 Android 进程间通信方式 一篇文章了解相见恨晚的 Android Binder 进程间通讯机制 Broadcast、AIDL、ContentProvider、Messager的区别和适用场景目录...

2018-05-09 15:38:12 1720

原创 Android 面试经验 - 类的加载机制

类的加载机制参考资料: Java 类加载机制(阿里面试题) 从经典面试题看java中类的加载机制 面试官:请你谈谈Java的类加载过程 深入理解Java类加载器(ClassLoader)目录类的加载机制目录类加载器启动类加载器扩展类加载器应用程序类加载器自定义类加载器类加载机制全盘负责双亲委派模型缓存机制类加载器中的四个重要方法loadC...

2018-05-09 15:24:01 2109

原创 Android 面试经验 - Java GC(垃圾回收机制)

Java GC(垃圾回收机制)本文根据 怎么在面试时回答Java垃圾回收机制相关问题? 提供的回答思路对 Java性能优化之JVM GC 一文作了一番整理。目录Java GC(垃圾回收机制)目录分代回收机制新生代空间分配执行顺序老年代持久代GC 执行时机回收算法根搜索算法–基础算法复制算法标记-整理算法分代回收机制新...

2018-05-09 15:17:46 2659

原创 Android 面试经验 - Java 内存模型

Java内存模型本文整理自 JVM的内存区域划分,原作者:海 子。目录Java内存模型目录Java执行流程运行时数据区(内存模型)程序计数器Java栈本地方法栈堆方法区Java执行流程Java文件被编译成字节码文件之后,由JVM中的类加载器进行加载,加载完毕之后,交由JVM的执行引擎执行。在程序执行的过程中,JVM会用一段空间来存储...

2018-05-09 15:16:24 537

原创 解决IDEA、PyCharm、PhpStorm及Android Studio中输入法卡住、光标不跟随的问题

2017新版JetBrains全家桶下的各个软件都存在使用中文输入法时出现类似卡住,即光标不跟随的现象。解决办法:删除软件所在根目录下的jre或jre64文件夹,删除后软件会自动使用本机的jre,并可能提示jie已不是最新版,但不影响使用,有需要可以自行下载最新的jdk

2017-07-22 16:37:56 1368

原创 安卓动态加入xml布局并设置id

效果演示代码实现-动态加入布局- 动态设置id效果演示点击添加布局,并为布局中的EditView设置文本代码实现-动态加入布局1.在activity_main.xml中加入按钮,并设置LinearLayout的id<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.

2016-08-25 10:32:06 8802 2

原创 使用Intent实现页面跳转

建一个FActivity.javapackage com.example;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.

2016-06-02 22:53:22 562

转载 补码原理——模运算

在计算机中,减法可以用加法来代替,用的就是补码。说到补码,就得说到“模”这个概念。假如我有一个计算机,它只有四个bit,这四个bit所能表示的值的范围用二进制表示是0000到1111,即从0到15。这样,这个计算机就只能表示这16个数,别的东西它就无法表示了。这个16就是这个计算机的“模”,在这个计算机上进行的计算只能在“模”的表示范围之内。如果我们要计算5-3的值,我们既可以用5减去3,也可以...

2016-03-16 13:43:58 8147 3

原创 new一个动态二维数组并实现内存连续

#include using namespace std;int main(){ int **p;//新建一个二级指针p,即指向指针的指针 p = new int*[3];//开辟3个【用来存储指针(即地址)】的空间,{ p[0] p[1] p[2] },其中p→p[0] *p = new int[12];//开辟12个【用来存储整形】的空间,{ ⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼

2016-03-13 13:09:58 1937

原创 关于delete失败的问题

今天在OJ上提交作业的时候显示出错,然而在DEV上面运行是没有问题的,后来把代码移到VC6.0上才出现了问题,结果把delete语句删掉就通过了。然而一直很不解为什么会出现这样的错误。直到在百度看到《关于DAMAGE: after Normal block的问题》这篇文章。里面说明了“在动态分配的时候,会在数组界限外加一个用来标识数组范围的标志,例如a数组,就会在a[-1]和a[5]有

2016-03-11 19:55:53 944

空空如也

空空如也

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

TA关注的人

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