G1 GC工作原理: 内存布局 将堆划分为多个大小相等的Region(默认2048个,每个1-32MB) Region类型:Eden、Survivor、Old、Humongous(大对象) 大对象(超过Region 50%)直接分配到Humongous区域 GC过程 Young GC(Minor G...
软件架构设计全解析(含详细解释与案例)
软件架构设计全解析(含详细解释与案例) 一、架构基础认知:本质与核心价值 1.1 架构的定义 软件架构的本质是“在复杂系统中平衡性能、功能和演进性的综合结构化决策”,其核心目的是解决软件系统面临的三大复杂度:技术复杂度(如多语言协同、分布式部署)、业务复杂度(如跨场景流程、多角色需求)、管理复杂度(如大规模团队协作、迭代效率)。 从来源看,架构一词源自“建筑”,类比建筑架构对房屋安全...
Java对象和内存分配
实例变量和类变量 父类构造器 父子类的内存控制 final 修饰富豪
Flutter 常见问题
1. 生成模版代码 dart run build_runner build 2. intl 国际化文件生成命令 flutter gen-l10n 打包命令 打 AAB 包(Google Play 正式发布推荐) flutter build appbundle --release --dart-define=ENV=prod 打 ipa 包(Apple Store 正式发布推荐)...
Android Emulator 下载失败修复
日志 Packages to install: - Android Emulator (emulator) Preparing "Install Android Emulator v.36.2.12". Downloading https://dl.google.com/android/repository/emulator-darwin_aarch64-14214601.zip An ...
Java数组和内存分配 - 数组使用
关于数据内存管理一个重要知识点 关于数组变量和数组对象两个概念。 数组变量只是一个引用变量(有点类似于C语言中的指针),而数组对象是保存堆内存空间的连续内存空间。 对于数组执行初始化,其实不是堆数组变量进行初始化,而是在堆内存中创建数组对象 - 就是为该数组对象分配一块连续的内存空间,这块连续的内存 空间就是数组的长度。比如有个数组 public static void main...
Claude Opus 4.5 发布:AI编码的下半场,已经开始
《Claude Opus 4.5 发布:AI编码的下半场,已经开始》 11月24日,Anthropic 推出 Claude Opus 4.5,被称为当前全球最强编码与自主代理模型。行业的反应几乎一致:这不是一次普通的版本升级,而是工作方式的分水岭。 过去一年,AI 写代码还像一个聪明的实习生——能辅助、能补全、能生成基础项目,但还需要我们把控结构、拆任务、调 bug。而 Opus 4....
Java数组和内存分配 - 数组初始化
数组初始化 Java 数组时静态的. Java 是典型的静态语言(什么是静态语言,见 《Java 是静态语言,静态语言是什么,那与动态语言的区别?》)。 因此 Java 数组在编译时就已经确定了大小,即在运行时是不可变的。Java 程序中,数组必须经过初始化才能使用。 所谓初始化,就是为数组分配内存空间和创建实际的对象。数组有两种初始化方式:静态初始化和动态初始化。 静态初始化 初始化...
Java 是静态语言,静态语言是什么,那与动态语言的区别?
要理解Java是静态类型语言,以及它和动态类型语言的核心区别,关键要抓住「类型绑定/类型检查的时机」——这是两类语言最本质的差异。下面先拆解Java作为静态类型语言的核心特征,再通过对比讲清和动态语言的区别。 一、先明确核心概念 静态类型语言(如Java、C++、C#):变量的「数据类型」在编译期就确定(绑定),且编译期会严格检查类型是否匹配,不允许类型错误的代码通过编译。 动态...
模拟器网络设置代理
列出所有模拟器名称( emulator -list-avds # 列出所有模拟器名称(如:Pixel_5_API_33) 执行代理命令启动 emulator -avd 模拟器名称 -http-proxy http://代理IP:端口 # 示例:emulator -avd Pixel_5_API_33 -http-proxy http://127.0.0.1:8888 公众号名...