李智‘Blog

读了一些书,看了一些文章,编过一些小例程,搞了一些没有什么技术含量的开发工作。


  • 首页

  • 关于

  • 归档

  • 朋友圈

  • 公益404

  • 搜索

vuex页面刷新数据丢失的解决办法

发表于 2020-08-15 | 分类于 前端
字数统计: 763 | 阅读时长 ≈ 3分钟

在vue项目中用vuex来做全局的状态管理, 发现当刷新网页后,保存在vuex实例store里的数据会丢失。

原因:

因为store里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例,store里面的数据就会被重新赋值初始化

阅读全文 »

vuex防抖节流

发表于 2020-08-15 | 分类于 前端
字数统计: 733 | 阅读时长 ≈ 3分钟

在一个电影项目中,我想在电影的列表中,保存下拉的当前位置,防止你切换页面后,再切换回当前的电影列表页,他就又回到电影的第一条数据。
这时候,我不想每次只要滑动一点,就保存当前位置,我想隔一段时间,保存一次,这时候,就可以使用防抖和节流。

阅读全文 »

RocketMQ实现分布式事务原理

发表于 2020-06-01 | 分类于 Java二三事
字数统计: 1,370 | 阅读时长 ≈ 5分钟

一、举个分布式事务场景

列子:假设 A 给 B 转 100块钱,同时它们不是同一个服务上。

目标:就是 A 减100块钱,B 加100块钱。

实际情况可能有四种:

1
2
3
4
5
6
7
1)就是A账户减100 (成功),B账户加100 (成功)

2)就是A账户减100(失败),B账户加100 (失败)

3)就是A账户减100(成功),B账户加100 (失败)

4)就是A账户减100 (失败),B账户加100 (成功)

这里 第1和第2 种情况是能够保证事务的一致性的,但是 第3和第4 是无法保证事务的一致性的。

那来看下RocketMQ是如何来保证事务的一致性的。

阅读全文 »

日语学习笔记

发表于 2020-03-02 | 分类于 杂七杂八
字数统计: 163 | 阅读时长 ≈ 1分钟

​ 动词 形容词1 形容词2 名词

一般现在时 ます い です です

过去时 ました かった でした でした

否定 ません くないです くありません では ありません

过去否定 ませんでした くなかったです くありませんでした では ありませんでした

阅读全文 »

微服务通讯

发表于 2020-01-13 | 分类于 Java二三事
字数统计: 1,431 | 阅读时长 ≈ 7分钟

什么是微服务

  • 微服务架构是一个分布式系统, 按照业务进行划分成为不同的服务单元, 解决单体系统性能等不足。
  • 微服务是一种架构风格,一个大型软件应用由多个服务单元组成。系统中的服务单元可以单独部署,各个服务单元之间是松耦合的。
阅读全文 »

@Async异步调用实践

发表于 2020-01-02 | 分类于 Java二三事
字数统计: 1,993 | 阅读时长 ≈ 10分钟

异步调用对应的是同步调用,同步调用可以理解为按照定义的顺序依次执行,有序性;异步调用在执行的时候不需要等待上一个指令调用结束就可以继续执行。

我们将在创建一个 Spring Boot 工程来说明。具体工程可以参考github代码 github

阅读全文 »

PostgreSQL集群及读写分离实践

发表于 2019-12-29 | 分类于 数据库
字数统计: 1,922 | 阅读时长 ≈ 11分钟

为了方便,只搭建一主一从。首先准备两台服务器,信息如下:

IP 角色 端口
192.168.0.31 master 5432
pgpool-II 9999
192.168.0.32 slave 5432
阅读全文 »

leetcode双指针总结

发表于 2019-12-26 | 分类于 算法
字数统计: 1,917 | 阅读时长 ≈ 9分钟
  • 1. 有序数组的 Two Sum

  • 2. 两数平方和

  • 3. 反转字符串中的元音字符

  • 4. 回文字符串

  • 5. 归并两个有序数组

  • 6. 判断链表是否存在环

  • 7. 最长子序列

双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。

1. 有序数组的 Two Sum

167. Two Sum II - Input array is sorted (Easy)

1
2
Input: numbers={2, 7, 11, 15}, target=9
Output: index1=1, index2=2

题目描述:在有序数组中找出两个数,使它们的和为 target。

使用双指针,一个指针指向值较小的元素,一个指针指向值较大的元素。指向较小元素的指针从头向尾遍历,指向较大元素的指针从尾向头遍历。

  • 如果两个指针指向元素的和 sum == target,那么得到要求的结果;
  • 如果 sum > target,移动较大的元素,使 sum 变小一些;
  • 如果 sum < target,移动较小的元素,使 sum 变大一些。

数组中的元素最多遍历一次,时间复杂度为 O(N)。只使用了两个额外变量,空间复杂度为 O(1)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public int[] twoSum(int[] numbers, int target) {
if (numbers == null) return null;
int i = 0, j = numbers.length - 1;
while (i < j) {
int sum = numbers[i] + numbers[j];
if (sum == target) {
return new int[]{i + 1, j + 1};
} else if (sum < target) {
i++;
} else {
j--;
}
}
return null;
}
阅读全文 »

Java基础整理

发表于 2019-12-26 | 分类于 Java二三事
字数统计: 32,431 | 阅读时长 ≈ 128分钟

1.0 JAVA中的几种基本数据类型是什么,各自占用多少字节。

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

byte:

byte 数据类型是8位、有符号的,以二进制补码表示的整数;最小值是 -128(-2^7);最大值是 127(2^7-1);默认值是 0;byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;例子:byte a = 100,byte b = -50。

short:

short 数据类型是 16 位、有符号的以二进制补码表示的整数最小值是 -32768(-2^15);最大值是 32767(2^15 - 1);Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;默认值是 0;例子:short s = 1000,short r = -20000。

int:

int 数据类型是32位、有符号的以二进制补码表示的整数;最小值是 -2,147,483,648(-2^31);最大值是 2,147,483,647(2^31 - 1);一般地整型变量默认为 int 类型;默认值是 0 ;例子:int a = 100000, int b = -200000。

long:

long 数据类型是 64 位、有符号的以二进制补码表示的整数;最小值是 -9,223,372,036,854,775,808(-2^63);最大值是 9,223,372,036,854,775,807(2^63 -1);这种类型主要使用在需要比较大整数的系统上;默认值是 0L;例子:long a = 100000L,Long b = -200000L。”L”理论上不分大小写,但是若写成”l”容易与数字”1”混淆,不容易分辩。所以最好大写。

float:

float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;float 在储存大型浮点数组的时候可节省内存空间;默认值是 0.0f;浮点数不能用来表示精确的值,如货币;例子:float f1 = 234.5f。

double:

double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;浮点数的默认类型为double类型;double类型同样不能表示精确的值,如货币;默认值是 0.0d;例子:double d1 = 123.4。

boolean:

boolean数据类型表示一位的信息;只有两个取值:true 和 false;这种类型只作为一种标志来记录 true/false 情况;默认值是 false;例子:boolean one = true。

char:

char类型是一个单一的 16 位 Unicode 字符;最小值是 \u0000(即为0);最大值是 \uffff(即为65,535);char 数据类型可以储存任何字符;例子:char letter = 'A';。

阅读全文 »

二分法求sqrt (2)精确到小数点后 10 位

发表于 2019-12-26 | 分类于 Java二三事
字数统计: 82 | 阅读时长 ≈ 1分钟
因为 sqrt(2)约等于 1.4,所以可以在(1.4, 1.5)区间做二分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private static final double TEN = 0.0000000001;

private static double sqrt2() {
double low = 1.4;
double high = 1.5;
double mid = (low + high) / 2;
while ((high - low) > TEN) {
if (high * high > 2) {
high = mid;
} else {
low = mid;
}
mid = (low + high) / 2;
}
return mid;
}
1…345…9
李智

李智

86 日志
13 分类
57 标签
GitHub E-Mail
© 2015 — 2024 李智
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4
博客全站共150.3k字   本站总访问量    您是第个来到的小伙伴