问题描述新手机登录telegram,输入手机号,接下来让我输入邮箱以及验证码,起初一切正常,当输入完验证码后弹出短信以及付费页面,如图
解决方案11.1. 下载俄版telegram或telegram x,如图(登录不会弹出付费界面)
1.2. 登录之后如图操作找到确认手机号可用状态
1.3. 确认可用后重新使用手机号登录原版telegram,这次不会弹出付费页面(我的没弹)解决方案22.1. 下载俄版telegram或telegram x,如前图(俄版登录不会弹出付费界面)2.2. 登录之后如图找到,create passkey,创建通行密钥
2.3. 回到原版telegram使用通行密钥登录(会自动弹出,如果有通行密钥)tips1:尝试了一些网上的解决办法没解决后开始思考,使用了新手机号登录,填写邮箱验证后直接就上去了,思路产生!是因为手机号方面的问题,并且不是+86的原因(因为新手机号无非就是另一个+86),此时我的俄版是登录状态的,发现有关于手机号的验证提示,似乎找到闭环,验证手机号可用后再次尝试原版登录,这次没有要我填写邮箱,而是通过我账号绑定的邮箱发送了验证码,输入验 ...
开发环境若依框架:https://doc.ruoyi.vip/
技术栈
后端
123456789101112131415161718SpringBoot 简化Spring应用配置与开发SpringCloud: SpringCloud Alibaba Nacos 注册中心与配置中心 SpringCloud Alibaba Sentinel 服务熔断与降级(限流) SpringCloud Alibaba Task 定时任务 SpringCloud GateWay 网关(访问服务要经过网关) SpringCloud OpenFeign 微服务通信组件 SpringCloud LoadBalancer 负载均衡器Mybatis-plus 持久层框架,依赖MybatisRedssion 操作redis的框架ThreadPoolExecutor 线程池Lombok 自动生成方法Knife4J 接口可视化文档Mysql 数据库Redi ...
jps -l 查看java的进程信息,-l表示列表方式查看 //jdkjstack 1234 查看id为1234的进程信息 //jdkjconsole 查看java程序控制台 //jdk
Runtime.getRuntime().availableProcessors() 获取cpu核心数量Runtime.getRuntime().totalMemory() 获取Java虚拟机的初始堆内存总量Runtime.getRuntime().maxMemory() 获取Java虚拟机试图使用的最大堆内存量
java -XX:+PrintCommandLineFlags -version 查看使用的垃圾收集器
spring boot admin SpringCloud的健康监测组件nacos配置中心默认找bootstrap.yml文件进行增强配置
idea多启动,例tomcat:配置参数-Dserver ...
同步异步并发并行悲观锁:操作时加锁,避免冲突乐观锁:操作时不加锁,检测到冲突后重试非公平锁:允许插队执行,性能高,可能导致一些线程长期拿不到锁公平锁:严格保证执行顺序,会非常影响性能jre java运行环境,包含核心类库和运行所需组件jvm java程序运行的虚拟机,java程序就运行在jvm中jdk java开发环境,包含jre和开发工具包CAS 是cpu的并发原语,原语的执行是连续的且不可被中断,保证c和s的原子性(但获取操作对象这段时间可能有并发操作)
SPU Standard Product Unit(标准化产品单元),泛指一类商品,这种商品具有相同的属性SKU Stock Keeping Unit(库存量单位),SKU即库存进出计量的单位。
JVM(Java Virtual Machine) java虚拟机JVM的作用:加载并执行Java字节码文件(.class)-加载字节码文件、分配内存(运行时数据区)、运行程序JVM的特点:一次编译到处运行、自动内存管理、自动垃圾回收
java执行器JVM执行引擎由解释器和即时编译器组成解释器:逐条解析和执行字节码指令即时编译器(JIT Compiler):将字节码动态地编译为本地机器码,会缓存热点代码复用执行,提高效率。
native方法区Native Method Stack:本地方法栈存储了从java代码中调用本地方法时所需的信息。是线程私有的。native方法是用来与C/C++对接的,通过JNI(java本地接口规范)调用C/C++函数使用,或C/C++调用java方法。
PC寄存器(Program Counter Register)每个线程都有一个程序计数器,是线程私有的,保证程序执行顺序。是一个指针,指向方法区中的方法字节码(用来存储指向下一条指令的地址,即将要指向的指令代码由执行引擎读取下一条指令。
类加载器ClassLoader
负责 ...
JUC:并发工具包java.util.concurrent基本使用lock与synchronized区别
lock是工具包,synchronized是java关键字
lock需要手动释放锁,synchronized由jvm管理
lock支持悲观锁/乐观锁,取消/退出机制,synchronized是非公平锁,不支持取消/退出机制
1234567891011121314Lock 锁接口 ReentrantLock 可重入锁,默认悲观锁 构造: new ReentrantLock(true) 创建锁对象时,设置为乐观锁 方法: tryLock() 尝试获取锁,获取成功返回true,获取失败返回false,避免阻塞过久 tryLock(long,TimeUnit) 在设定时间内尝试获取锁,获取成功返回true,获取失败返回falseReadWriteLock 读写锁接口 ReentrantReadWriteLock 读写锁,支持锁降级 构造: ...















