六阿哥博客

iOS系统常用账户 iOS系统有2个常用账户:root、mobile,默认密码都是 alpine 。 root:最高权限账户,可以操作所有文件,$HOME 是 /var/root 。 mobile:普通权限账户,只能操作一些普通文件,不能操作系统级别的文件,$HOME 是/var/m...

发布 0 条评论

手机越狱 iOS 逆向需要一台越狱设备,当前流行的越狱工具有: unc0ver:https://www.unc0ver.dev/ checkra1n:https://checkra.in/ Taurine:https://taurine.app/ 安装插件和应用 iOS端: Cydia Substrate:俗称基板,手机越狱后默认...

发布 0 条评论

目前跨平台解决方案有很多,各有各的优缺点。项目技术选型是需要根据自己的需求和技术栈,并结合各种跨平台技术的优缺点去选择。我选择 Flutter 的主要原因是我的本职工作是做原生开发,比起 React Native 等以 JavaScript 为主语言...

发布 0 条评论

单例模式是保证一个类仅有一个实例,并提供一个全局访问点。属于创建型,也属于GOF23种设计模式。 适用范围 想确保任何情况下都绝对只有一个实例。 优缺点 优点:在内存里只有一个实例,减少了内存开销;可以避免对资源...

发布 2 条评论

建造者模式是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。用户只需指定需要建造的类型就可以得到它们,建造过程及细节不需要知道。属于创建型,也属于GOF23种设计模式。 适用范围 1.如果一个...

发布 0 条评论

抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,无需指定它们具体的类。属于创建型,也属于GOF23种设计模式。 适用范围 1.客户端(应用层)不依赖于产品类实例如何被创建、实现等细节。2.强调一系列相关的产品对象...

发布 0 条评论

工厂方法模式是定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。属于创建型,也属于GOF23种设计模式。 适用范围 1.创建对象需要大量重复的代码。2.客户端(应用层)...

发布 0 条评论

简单工厂是由一个工厂对象来决定创建出哪一种产品类的实例。属于创建型,但不属于GOF23种设计模式,更像是一种编码的风格和习惯。 学习简单工厂后,对于学习工厂方法、抽象工厂更有帮助。 适用范围 1.工厂类负责创建的对象...

发布 2 条评论

由于 Vue CLI 3 不再使用传统的 webpack 配置文件,导致 WebStorm 无法识别别名,需要手动创建一个 webpack 配置文件。 在项目根目录,创建一个 alias.config.js 文件,写入以下代码: const resolve = dir => require(...

发布 1 条评论

对于习惯使用 IntelliJ IDEA 的玩家,使用 WebStorm 来编写前端代码比使用 Visual Studio Code 更得劲,于是开始折腾。。。 我使用的 WebStorm 版本是 2019.1 ,不同版本界面会有少许区别。 安装插件 首先在 WebStorm 安装 ...

发布 0 条评论

在 Mac 下,我们可以通过安装 Docker Desktop 和 Kitematic 工具以图形化界面管理 Docker 。不过,我通过 Kitematic 安装了几个 Nginx 容器,发现并没有同时帮我们映射 Nginx 配置文件目录和站点目录。所以需要我们手动安装和映射我...

发布 0 条评论

什么是编解码器 每个网络应用程序都必须定义如何解析在两个节点之间来回传输的原始字节,以及如何将其和目标应用程序的数据格式做相互转换。这种换换逻辑由编解码器处理,编解码器由编码器和解码器组成,它们每种都可以将字节流从...

发布 0 条评论

EmbeddedChannel 概述 Netty 提供了它所谓的 Embedded 传输,用于测试 ChannelHandler 。这个传输是一种特殊的 Channel 实现 EmbeddedChannel 的功能,这个实现提供了通过 ChannelPipeline 传播事件的简便方法。 将入站数据或...

发布 0 条评论

Bootstrap 类 引导类的层次结构中包括了一个抽象的父类和两个具体的引导子类: ServerBootstrap 致力于使用一个父 Channel 来接受来自客户端的连接,并创建子 Channel 以用于它们之间的通信。Bootstrap 一般只需要一个单独...

发布 0 条评论

线程模型概述 线程模型确定了代码的执行方式 基本的线程池化模式可以描述为: 从池的空闲线程列表中选择一个 Thread ,并且指派它去运行一个已提交的任务(一个 Runnable 的实现)。当任务完成时,将该 Thread 返回给该列表...

发布 0 条评论