MISC
未读Sun API 介绍Sun API 是一个低价的 gpt 中转 API,支持 gpt3.5 gpt4 Claude3 全系列模型。
价格优惠,仅需 0.8元即可购买 1 美刀额度,只要官方价格的 十分之一
官方同等计费方式,不限时间,按量计费,明细可查,每一笔消耗都公开透明。
官网地址:Sun API (api.csun.site)
支持模型
如何充值支持微信、支付宝付款,前往 充值页面 输入金额,点击相应付款方式,付款成功即可完成充值。
计费规则总的来讲,就是我们后台用美元计费,与 open AI 的模型价格保持一致,折扣体现在充值的时候。目前是 1 折 1 美元只需要 0.8 人民币,详细以充值页面价格为准。
请求明细查看在本网站的日志界面可以查看到每一次调用的明细
提示是用户使用时输入到模型的所有信息消耗的 token 数,补全是模型输出的所有信息消耗的 token 数 ,提示和补全都是要扣费的。
所有模型的计费方式,就是基于消耗的多少token来计算价格。 大部分情况下,你都可以使用 1 汉字 = 2 token 来近似估算中文聊天的中文所需 token 数。但这并不是绝对 ...
LinkedList 是 Java 中 java.util
包提供的一个类,它实现了 List
接口,并且提供了双向链表的结构,维护了长度、头节点和尾节点,此外,还实现了
Deque 和 Queue
接口,可以按照队列、栈和双端队列的方式进行操作
LinkedList 的特点如下:
按需分配空间,不需要预先分配很多空间。
不可以随机访问,按照索引访问效率比较低,必须从头或尾顺着链表查找,时间复杂度为
。
不管列表是否已排序,只要是按照内容查找元素,效率都比较低,必须逐个比较,时间复杂度为
。
在两端添加、删除元素的效率很高,时间复杂度为 。
在中间插入、删除元素,要先定位,效率比较低,时间复杂度为 ,但修改本身的效率很高,时间复杂度为
用法
LinkedList 的构造方法与 ArrayList
类似,有两个:一个是默认构造方法,另外一个可以接受一个已有的
Collection,如下所示:
12public LinkedList();public LinkedList(Collection<? extends E> c) ...
ArrayList 是 Java 中的一个动态数组实现类,可以根据需要自动调整数组的大小
基本用法ArrayList 是一个泛型容器,内部采用动态数组实现:
可以随机访问,按照索引位置进行访问的时间复杂度是 ;
除非数组已排序,否则按照内容查找元素效率比较低,时间复杂度是 ;
添加元素时重新分配和复制数组的开销被摊平了,添加 N 个元素的效率为 ;
插入和删除元素的因为需要移动元素,时间复杂度为 。
新建 ArrayList 需要实例化泛型参数,比如:
12ArrayList<Integer> intList = new ArrayList<Integer>();ArrayList<String> strList = new ArrayList<String>();
ArrayList 的主要方法有:
123456789101112131415public boolean add(E e) //添加元素到末尾public boolean isEmpty() //判断是否为空public int size() //获取长度public ...
1. KEYS pattern 模糊查询Redis 的 KEYS 命令用于按模式匹配查找所有符合条件的 key:
1KEYS pattern
其中 pattern 可以使用 通配符:
符号
含义
示例
*
匹配任意数量(包括 0 个)字符
KEYS user:* 匹配所有以 user: 开头的 key
?
匹配任意一个字符
KEYS user:?? 匹配 user:01、user:ab
[]
匹配指定范围内的一个字符
KEYS user:[0-9] 匹配 user:0~user:9
\
转义字符
KEYS foo\*bar 匹配键名 foo*bar
但是 KEYS 会 遍历整个数据库,在 key 很多(百万级)时会阻塞 Redis,导致线上性能问题,不推荐线上使用
2. SCAN 游标迭代模糊查询SCAN 命令是为了解决 KEYS 命令的阻塞问题而设计的。它是一种基于游标的迭代器,每次只返回一小部分结果,不会阻塞服务器
1SCAN cursor [MATCH pattern] [COUNT count]
c ...
1. 枚举的基本使用枚举使用 enum 这个关键字来定义,例如为了表示衣服的尺寸定义一个枚举类型 Size
123public enum Size { SMALL, MEDIUM, LARGE}
Size 包括三个值,分别表示小、中、大,值一般是大写字母,多个值之间以逗号分隔
可以这样使用 Size
1Size size = Size.MEDIUM;
Size size 声明了一个变量 size,它的类型是 Size,size=Size.MEDIUM 将枚举值 MEDIUM 赋值给 size 变量
枚举变量的 toString() 方法返回其字面值,枚举类型还有一个 name() 方法也返回其字面值
123Size size = Size.MEDIUM;System.out.println(size.toString());System.out.println(size.name());
输出
12MEDIUMMEDIUM
枚举值可以使用 equals() 方法和 == 进行比较,结果相同
1234Size size = Size.MEDIUM;System. ...
通过下面这个 demo 来介绍继承中的类加载、对象创建、方法调用和变量访问的过程
Base 类
Base 包括一个静态变量 s,一个实例变量 a,一段静态初始化代码块,一段实例初始化代码块,一个构造方法,两个方法 step 和 action
12345678910111213141516171819202122232425262728293031public class Base { public static int s; private int a; static { System.out.println("基类静态代码块,s:" + s); s = 1; } { System.out.println("基类实例代码块,a:" + a); a = 1; } public Base(){ System.out.println("基类构造方法,a:" + a); a = 2; } protected void step(){ Syst ...
switch 语句和 if-else 语句都是条件控制语句,为什么说 switch 语句效率比 if-else 语句高呢?
要回答这个问题,我们先要了解条件控制语句的底层原理是什么。
在计算机底层程序最终都会转换成一条条的指令,CPU 有一个程序计数器(PC),指向下一条要执行的指令,CPU 根据程序计数器的指示加载指令并且执行。
指令大部分是具体的操作和运算,执行完一条指令后,程序计数器会自动指向挨着的下一条指令。
但有一些特殊的指令,称为跳转指令,if-else 语句实际上就会转换为这些跳转指令。
跳转指令会修改程序计数器的值,让 CPU 跳到一个指定的地方执行。
跳转指令有两种:
条件跳转:检查某个条件,满足则进行跳转;
无条件跳转:直接进行跳转。
下面一个简单的if语句:
12345if (a > b) { c = 1;} else { c = 2;}
可能被编译为类似这样的汇编代码:
123456789; 假设a在eax,b在ebx,c在ecxCMP eax, ebx ; 比较a和bJLE else_branch ; 如果a<=b, ...
这是一款完全免费的,基于阿里云通义千问(Qwen)AI 的 OCR 文字识别插件,为 Pot-APP 提供强大的图像文字识别能力,该插件具备:
全能识别:普通文本/数学公式/代码块/验证码一网打尽
智能优化:自动保留 Markdown 格式,LaTeX 公式精准转换
多账号护航:Cookie 智能轮换机制保障服务稳定性
深度定制:支持自定义 AI 提示词和模型选择
安装指南
基础准备访问 Pot 官网 下载安装客户端
获取插件前往 GitHub Releases 下载最新插件包
插件安装打开 Pot 设置 → 文字识别 → 添加外部插件 → 选择下载得到的 plugin.com.pot-app.qwen-ocr.potext 文件
配置Cookie 获取
登录 Qwen 官网
按 F12 打开开发者工具
发起任意对话后,在「网络」标签中捕获 completions 请求的 Cookie
参数设置建议
多账号配置:使用英文逗号分隔多个 Cookie 提升稳定性
模型选择:默认 qwen-max-latest 已优化识别效果
提示词定制:专业用户可自定义识别指令优化特定场 ...
使用 SSH 密钥登录比密码登录更安全、更便捷。配置 SSH 密钥登录主要分为两个步骤:
生成密钥对
将公钥上传到服务器
生成密钥对首先需要在自己的电脑上生成密钥对,密钥对由一个私钥和一个公钥组成:
私钥 (id_ed25519): 必须严格保密,留存在你的本地电脑上,相当于你的“身份证明”。
公钥 (id_ed25519.pub): 可以安全地分享,需要被放置在你想登录的服务器上,相当于一把“锁”。
打开终端,使用 ssh-keygen 命令来生成密钥
1ssh-keygen -t ed25519 -C "[email protected]"
-t ed25519: 使用 Ed25519 算法。如果你的系统很老不支持,可以换成 rsa -b 4096。
-C "[email protected]": 添加一段注释,通常用邮箱来标识这个密钥是谁的、用在哪台电脑上,方便管理。
运行命令后,根据系统提示进行操作:
Enter file in which to save the key (…): 保存密钥的位置,直接回车即可,会使用默认路径(通常是 ~/. ...
MISC
未读闲来无事,想要折腾下 GitHub 的主页,虽然没什么代码,但是漂亮了才有生产力嘛
创建仓库美化 GitHub 的主页很简单,只需要新建一个和我们用户名同名的仓库,并且添加一个 README.md 文件即可
我们后续在这个 README.md 文件中写的内容都会展现在主页上
GitHub 会提示我们这是一个 ✨ special ✨ 仓库,您可以使用它来为您的 GitHub profile 添加 README.md
创建成功后,GitHub 已经为我们自动添加了一些初始化内容,接下来我们就可以通过修改这个文件来美化我们的主页
基本信息编辑个人基本信息可以借助 profilinator.rishav.dev 这个网站
这是一个可视化 profile 生成工具,仅需要在对应窗口中输入或者选择相应的内容,工具会自动生成 Markdown 脚本
脚本编辑完成以后,直接复制粘贴到我们的 README.md 即可,可以帮助我们便捷的生成美观的个人基本信息
贪吃蛇默认情况下,GitHub 主页的提交热力图是这样的
我们可以将其变成一个有趣的贪吃蛇动画
在仓库中先新建一个 workflow 文 ...