Linux常用命令(待完善)
此文章记录Linux常用命令,方便日后查阅使用。 命令格式 文件和目录操作 1.查看当前路径 2.列出目录内容 3.切换目录 4.创建目录 5.删除文件或目录 6.新建文件或更新文件时间戳:touch 8.复制文件 9.查看文件内容 11.打印字符串到屏幕 13.查询历史命令 系统监控相关命令
消息队列学习记录
RabbitMQ如何保证消息的可靠性?从3个层面上考虑,包括生产端,Broker端,消费端。 生产端 使用消息确认机制ack 生产者端在发生消息后可以注册一个回调函数,用于监听消息是否成功送达Broker。 如果消息成功写入队列,RabbMQ会返回一个ack; 如果失败(如队列不存在、交换机不可达),会返回nack。 Broker端 1.持久化 对象 属性 说明 Queue durable=true 队列在服务器重启后仍存在 Exchange durable=true 交换机持久化 Message deliveryMode=2 消息持久化(1=非持久化,2=持久化) 注意:即使设置了持久化,也只能防止 服务器宕机 的消息丢失,不能防止 未被消费就删除...
八股_java基础
概念1.说说java的特点面向对象 平台无关性:一次编译到处运行 内存管理:自动管理内存和回收不再使用的对象 2.java的优势和劣势是什么?优势: 跨平台,一次编译到处运行 生态丰富,有各种框架和类库 内存管理,垃圾自动回收 严格的面向对象,复用性和可维护性优秀 天然支持多线程,方便并发编程 安全性方面:java有安全模型,比如支持沙箱机制,适合网络编程 稳定性方面:企业级应用长期使用,版本更新比较注重向后兼容 劣势 内存占用大,jvm本身也占用内存 性能开销较c++,Rust大 执行效率较慢,比如微服务启动时间比go慢 语法繁琐,开发效率比较低 3.Java为什么是跨平台的?因为java运行在jvm上,jvm会将编译后的class文件根据平台的不同翻译成不同平台对应操作系统的机器码。 因此不同平台需要安装各自版本的jvm才能运行java程序。 4.JVM,JDK,JRE三者的关系jdk包括jre,jre包括jvm。 5.为什么java解释和编译都有?Java 同时采用 解释执行 和 编译执行(JIT 编译)的结合方式,主要是为了在 启动速度 和...
苍穹外卖复盘(待完善)
JWT简介JWT,全称json web tokens, 用于对应用程序上的用户进行身份认证。 JWT的结构JWT由三部分组成,用 . 分隔。像这样 Header.Payload.Signature Header:是一个json对象,标识这个令牌(token)的类型(type)和签名的算法,算法默认是HMAC SHA256(写成HS256),例如: 1234{ "typ":"JWT", "alg":"HS256"} 最后,将上面的 JSON 对象使用 Base64URL 算法(详见后文)转成字符串。 Payload:也是一个json对象,用于存放实际需要传递的数据。JWT提供了7个官方字段供选用。 iss(issuer):签发人 exp(expiration time):过期时间 sub(subject):主题 aud(audience):受众 nbf(Not Before) : 生效时间 iat(Issued At) : 签发时间 jti(JWT ID) :...
设计模式
面向对象设计原则 单一职责原则(SRP)一个类应该仅有一个引起它变化的原因。(职责划分明确,避免类承担过多功能导致高耦合) 开闭原则(OCP)软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。(通过抽象和多态实现功能扩展,而非直接修改原有代码) 里氏替换原则(LSP)所有引用基类的地方必须能透明地使用其子类的对象。(子类必须能够完全替代父类,不破坏原有功能逻辑) 依赖倒转原则(DIP)高层模块不应该依赖低层模块,两者都应该依赖抽象;抽象不应该依赖细节,细节应该依赖抽象。(通过接口 / 抽象类解耦实现类,降低模块间直接依赖) 接口隔离原则(ISP)客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。(细化接口设计,避免胖接口导致的强制实现冗余方法) 合成复用原则(CRP)尽量使用对象组合 /...
苍穹外卖
微信登录功能实现采用HTTPS 调用1GET https://api.weixin.qq.com/sns/jscode2session 请求参数 属性 类型 必填 说明 appid string 是 小程序 appId secret string 是 小程序 appSecret js_code string 是 登录时获取的 code,可通过wx.login获取 grant_type string 是 授权类型,此处只需填写 authorization_code 返回参数 属性 类型 说明 session_key string 会话密钥 unionid string 用户在开放平台的唯一标识符,若当前小程序已绑定到微信开放平台帐号下会返回,详见 UnionID...
SQL
...
JavaWeb
socket我们可以通过Socket技术(它是计算机之间进行通信的一种约定或一种方式),实现两台计算机之间的通信,Socket也被翻译为套接字,是操作系统底层提供的一项通信技术,它支持TCP和UDP。而Java就对Socket底层支持进行了一套完整的封装,我们可以通过Java来轻松实现Socket通信。 要实现Socket通信,我们必须创建一个数据发送者和一个数据接收者,也就是客户端和服务端,我们需要提前启动服务端,来等待客户端的连接,而客户端只需要随时启动去连接服务端即可,它们默认采用的是TCP协议进行连接。 socket实现双向通信(Tcp)主线程用于发送消息,子线程用于接收消息。 服务端: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354package com.dmw.socket;import java.io.*;import java.net.*;public class Server { public...
JS代理和模块
代理(proxy) 它可以理解为进行某个操作前先拦截统一操作后再执行。借助 Proxy,你可以在不直接修改目标对象的前提下,对其行为进行定制。 1234567891011121314151617181920212223const target = { message1: "hello", message2: "everyone"};const handler = { get(target, prop, receiver) { return `拦截获取属性: ${prop}, 值为: ${target[prop]}`; }, set(target, prop, value, receiver) { console.log(`拦截设置属性: ${prop} 为 ${value}`); target[prop] = value; ...