自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(496)
  • 资源 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 Java中的大数处理:BigInteger与BigDecimal深度解析

在 Java 中,intlongfloat和double等基本数值类型受限于固定位数,无法满足高精度或超大数值的计算需求。例如,long最大仅支持约 9×10¹⁸,而金融计算中常需精确到小数点后多位,避免舍入误差累积;密码学(如 RSA 算法)则涉及数百位的整数运算。为此,Java 提供了java.math包中的 BigInteger(任意精度整数)和 BigDecimal(任意精度十进制数)。需要注意的是,大数对象是不可变的,且所有运算必须通过方法调用(如add()multiply()

2025-12-12 09:31:06 627

原创 Metaclasses Demystified: Controlling Class Creation

角色对象实例→obj是MyClass的实例类MyClass→ 是type的实例(即类本身也是一个对象)元类type或其子类 → 创建类的对象👉元类 = 类的类(Class of Classes)虽然大多数时候你不会直接用到元类,但它确实是 Python 强大灵活性的体现之一。需要在类定义阶段进行自动化处理(如注册、校验、增强)想让类具有某种“模板式”的共性行为构建高级框架(如 Django ORM、SQLAlchemy、FastAPI)

2025-12-12 09:14:10 734

原创 Java包装类与自动装箱拆箱深度解析

装箱:将基本类型自动转换为包装对象。例如:int prim = 42;// 等价于 Integer.valueOf(42)拆箱:将包装对象自动转换回基本类型。例如:Integer wrap = 42;// 等价于 wrap.intValue()

2025-12-11 09:31:08 878

原创 从 yield 到协程:高级迭代器与生成器深度解析

在 Python 中,和是两个关键概念。for__iter__()__iter__()__next__()手动编写迭代器类需要自己管理状态(比如计数器),容易出错。而用yield关键字就能自动完成状态保存!这里,yield让函数暂停并记住当前位置,下次调用next()时继续执行——无需手动维护变量!生成器还支持懒加载(按需计算)、内存高效,且代码更简洁易读。这是 Python 实现“迭代协议”的优雅方式,也是现代数据处理的基础能力。yield from。

2025-12-11 09:14:08 769

原创 Java System与Runtime类:深度交互运行环境

在企业级 Java 应用中,System与Runtime类不仅是环境交互的桥梁,更是实现可观测性与运行控制的关键。例如,通过可动态适配阿里云 ECS 实例的 CPU 资源,而则能安全读取部署环境变量,避免硬编码。// 安全获取环境配置(推荐用于微服务)然而,过度依赖反射或直接调用会破坏类型安全并削弱可移植性。应优先使用 Jakarta EE 或 MicroProfile 提供的标准 API,而非底层系统调用。

2025-12-10 09:31:12 494

原创 深入解析上下文管理器与 with 语句

在 Python 中, 语句不仅仅是一个用来自动关闭文件的小技巧,它是一种强大的资源管理范式,甚至被著名 Python 大师 Raymond Hettinger 称为“几乎和子程序一样重要”的语言特性。它的核心在于:将 setup 和 teardown 的逻辑封装成一个可复用的上下文管理器(context manager)。这比手动调用 更安全、更简洁。但真正的威力远不止于此。Hettinger 曾打了个妙喻:比如我们自定义一个 类,模拟一个“镜像世界”:输出:为什么其他语言没做到这点?很多语言

2025-12-10 09:14:07 498

原创 Java toString() 方法:对象字符串表示详解

在 Java 中,每个对象都自动继承自类,因此天然拥有toString()方法。该方法用于返回对象的字符串表示,在调试、日志记录(如阿里云日志服务)或控制台输出时被频繁调用。默认实现的toString()类名@十六进制哈希码。当你执行字符串拼接(如"" + obj)或调用时,Java 会自动调用。若未重写该方法,输出信息对开发者几乎无意义。考虑一个实际场景:在知乎后台系统中打印用户订单对象。若未重写toString(),你只能看到;因此,toString()。

2025-12-09 09:31:14 921

原创 Python collections模块深度解析

Python标准库中,、、等基础容器类型已能满足大多数场景。但当你的项目涉及日志分析、配置管理或数据管道处理时,你会发现它们的局限性——比如无法自动处理缺失键、不支持快速两端插入删除,或者需要手动维护顺序。这时,模块就是你的利器!它提供了多种高级容器类型,专为复杂数据结构设计,且全部内置,无需额外安装(如阿里云函数计算或腾讯云Serverless环境也原生支持)。2. 实战用例日志系统:用统计错误频率配置管理:用合并多层配置这些工具让你的代码更简洁、性能更优,是进阶Python开发的必备技能

2025-12-09 09:14:12 815

原创 Java对象相等性:深入理解equals与hashCode

在 Java 应用开发中,正确实现对象相等性至关重要。无论是使用HashMap缓存用户会话(如阿里云函数计算中的上下文对象),还是在HashSet中去重微博动态,都依赖于equals()和hashCode()的合理实现。==equals()默认情况下,仅执行引用比较。若需按值比较(例如两个不同User实例具有相同 ID 即视为相等),必须重写equals()。同时,根据 Java 规范,equals()hashCode(),以确保相等对象拥有相同哈希码,否则会导致哈希集合(如HashMap)行为异常。

2025-12-08 09:31:13 735

原创 深入理解Python描述符机制

如果一个类实现了__set__方法(无论是否调用),它就是一个数据描述符。print("获取属性")print("设置属性")class C:I = C()I.d = 1 # 输出: 设置属性print(I.d) # 输出: 获取属性此时,即使你在实例I.__dict__中添加同名键d,也不会“遮蔽”类中的描述符——因为数据描述符优先级更高!print(m.name) # 输出: Alice这种模式广泛应用于 SQLAlchemy 或自研 ORM 中,实现“虚拟属性”与真实数据的无缝衔接。

2025-12-08 09:14:04 974

原创 Java异常抛出机制:throws声明与throw语句深度解析

Java 的异常体系以 为根类,分为两大分支: 和 。 表示 JVM 内部严重错误(如内存溢出),通常不可恢复,程序员一般不捕获;而 才是我们日常处理的重点。 又分为两类:Java 异常模型的核心哲学是 “快速失败”(Fail-fast) 和 错误检测与处理分离:业务逻辑集中在 块,错误处理交由 块,使代码更清晰、健壮。这种设计让异常沿调用栈透明传播,确保问题不会被静默忽略——这正是构建高可靠系统(如阿里云中间件或知乎后端服务)的关键基础。在 Java 中, 语句用于主动抛出异常对象,从而中断当前

2025-12-07 09:31:05 820

原创 掌握Python装饰器:超越基础

在 Python 中,装饰器是一种优雅的方式来增强函数行为,而无需修改原函数代码。它常用于日志记录、性能监控或权限检查等场景。我们以一个实用的计时装饰器为例,一步步教你写出自己的第一个装饰器。

2025-12-07 09:14:11 713

原创 Java异常类型深度解析:Checked vs. Unchecked

在 Java 中,检查型异常(Checked Exceptions)是指所有不继承自或Error的Exception子类。根据《Java 语言规范》,这类异常必须在编译期被显式处理——要么用try-catch捕获,要么在方法签名中通过throws声明,否则代码无法通过编译。检查型异常代表程序无法控制但可预期的外部风险,例如文件不存在、网络中断或数据解析失败。典型的例子包括和。throw new FileNotFoundException("配置文件读取失败: " + path);此处。

2025-12-06 12:09:51 1178

原创 Java异常处理:基础与Try-Catch深度解析

构建高韧性 Java 应用,关键在于将异常视为系统设计的一等公民,而非事后补救。具体性(使用如而非笼统的Exception)、透明性(通过throws显式传播或记录异常)和可恢复性(提供回退逻辑或用户引导)。最小化 try 范围:避免大段代码包裹,精准定位风险点;有意义的日志:使用 SLF4J 记录上下文,如log.error("文件读取失败: {}", filePath, e);;正确传播异常:对 checked exception 遵循“捕获或声明”原则;用户友好反馈。

2025-12-06 11:54:56 693

原创 Java枚举:定义类型安全的常量集合

Java枚举:类型安全的常量集合 Java枚举(enum)提供了一种类型安全的常量定义方式,解决了传统public static final int/string常量的三大缺陷:类型不安全、运行时不可读和脆弱的编译依赖。 核心特性: 每个枚举常量都是该类型的唯一实例,继承自java.lang.Enum 编译器自动生成构造逻辑和name()/ordinal()方法 支持添加字段、构造函数和方法,将数据与行为绑定 可实现接口和定义抽象方法,实现多态行为 在类加载阶段通过静态初始化完成实例化 最佳实践: 确保枚举

2025-11-23 16:02:29 720

原创 深入理解Java传统日期时间:Date与Calendar剖析

Java 日期时间处理的历史变迁 从 Java 1.0 的 Date 到 1.1 的 Calendar,再到 Java 8 的 java.time 包,Java 日期时间 API 经历了从混乱到规范的发展历程。早期 Date 存在设计缺陷(如年份偏移1900、月份0基),Calendar 虽有所改进但仍存在线程安全和API晦涩问题。新的 java.time 包解决了这些问题,提供不可变、线程安全的类如 LocalDateTime 和 ZonedDateTime,并通过 DateTimeFormatter 解

2025-11-19 09:31:45 770

原创 Java StringBuilder 与 StringBuffer 深度对比

本文深入解析Java中可变字符串的核心机制与应用实践。首先指出不可变String在高频修改场景的性能缺陷,引出StringBuilder和StringBuffer的解决方案。重点对比二者线程安全性差异:StringBuffer通过同步确保线程安全,而StringBuilder在单线程下性能更优。文章揭示了底层均基于可扩展char[]缓冲区的实现原理,并强调toString()会进行防御性拷贝。特别提醒常见陷阱,如equals()未重写、并发误用等问题。最后建议API设计优先采用CharSequence接口以

2025-11-18 09:31:45 468

原创 Java静态与实例初始化块执行顺序深度解析

Java 初始化机制包括静态初始化块、实例初始化块和构造器的严格执行顺序:静态块在类加载时执行一次,实例块在对象创建时执行,构造器最后执行。静态块用于类变量初始化(如预计算数据),实例块用于对象初始化(如final字段赋值)。初始化顺序在继承中表现为父类→子类,字节码层面通过new-dup-invokespecial指令实现。实际应用中,静态块适合全局缓存(如信用卡有效期列表),而实例块可共享构造逻辑。需注意静态块应避免复杂I/O操作,测试时可通过反射重置状态。合理使用初始化机制能提升代码复用性和健壮性。

2025-11-17 09:31:44 960

原创 Python软件设计模式解析与实战

摘要:Python中的设计模式应用 本文介绍了设计模式在Python面向对象编程中的实践应用,包括创建型和结构型两大类设计模式: 创建型模式:重点介绍了单例模式(确保类唯一实例)、工厂方法和抽象工厂(灵活管理对象创建),并提供了Python实现示例。 结构型模式:详细讲解了适配器(接口转换)、装饰器(动态扩展功能)、组合(构建层次结构)、门面(简化子系统)和代理(控制访问)等模式,配以Python代码说明。 文章强调设计模式在提高代码可维护性、灵活性和扩展性方面的重要价值,特别指出Python由于其动态特性

2025-11-16 09:48:42 888

原创 Java引用类型转换:向上转型与向下转型深度解析

Java引用类型转换与多态机制 Java中的引用类型转换分为向上转型和向下转型。向上转型是安全的隐式转换,如Object obj = new String();向下转型则需显式声明,如String s = (String) obj,并使用instanceof检查类型安全。 多态机制使得父类引用可指向子类对象,运行时调用实际类型的方法重写版本。Java 14+的模式匹配语法instanceof String str进一步简化了安全类型检查。 数组转换存在协变风险,可能导致运行时异常。合理使用泛型可避免大部分转

2025-11-16 09:31:40 990

原创 Java封装:数据隐藏的艺术与实践

面向对象编程中,封装通过隐藏内部实现细节和提供受控访问接口,显著提升代码可维护性、安全性和模块化程度。Java通过访问修饰符(private/public等)和规范方法(getter/setter)实现封装,其核心优势在于: 可维护性:内部实现可自由修改而不影响调用方 安全性:防止外部直接操作敏感数据 模块化:清晰定义公共API边界 高级封装模式包括: 不可变对象(如String) 建造者模式(复杂对象构造) Java14+记录类(简化数据载体) 合理运用封装能有效降低系统耦合度,是构建健壮企业应用的基础。

2025-11-15 09:31:40 769

原创 Python代码性能分析与优化

Python性能优化指南:剖析与优化实践 本文系统介绍了Python代码性能优化方法。首先强调先剖析后优化的原则,推荐使用cProfile模块进行准确性能分析。文章详细解析了Python特有的性能问题,包括GIL限制、循环/函数调用效率、数据结构选择等常见瓶颈,并提供了实际优化案例(如使用numpy替代原生循环)。 核心优化策略包括: 优先优化分析发现的真正性能瓶颈 使用高效算法和数据结构 向量化操作和内置函数应用 合理使用lru_cache等装饰器 文章还介绍了高级分析工具如line_profiler和m

2025-11-15 09:14:45 561

原创 Java构造器:对象创建的基石

Java 构造器是对象初始化的核心机制,分为无参、带参和重载三种类型。构造器必须与类名同名且无返回类型,若未显式定义则编译器生成默认无参构造器。使用 this() 可链式调用同类构造器,而继承时 super() 确保父类正确初始化,遵循静态块→父类构造→子类初始化的严格顺序。高级模式如构建器(Builder)处理多参场景,工厂方法优化实例创建,record 类实现不可变对象。枚举构造器隐式 private,在类加载时初始化常量;记录类自动生成规范构造器,支持紧凑语法添加校验逻辑。这些特性共同保障了 Java

2025-11-14 11:45:08 880

原创 Python 日志与调试的最佳实践

Python的logging模块为日志记录和系统调试提供了强大支持,其核心组件包括Logger、Handler、Formatter和Filter。通过basicConfig()可快速配置基础日志,适用于小型脚本;而复杂项目则建议使用Logger对象,支持多处理器和精细控制。日志级别(DEBUG至CRITICAL)区分信息严重程度,结合结构化日志(如JSON格式)可提升可读性和分析效率。在多线程/进程环境中,该模块保持线程安全,并通过配置文件实现灵活部署。合理使用日志能有效监控程序运行、快速定位问题,是软件开

2025-11-14 09:14:38 406

原创 Java方法详解:定义、调用与参数传递

Java方法核心概念包括方法签名(方法名+参数类型)、重载规则(参数列表不同)以及参数传递机制(传值调用)。方法重载通过参数差异化实现,需注意自动装箱和varargs的解析优先级。Java8引入Lambda表达式简化行为参数化,提升代码复用性与可读性。反射机制(Method.invoke)支持动态方法调用,但需权衡性能与安全性,适用于框架开发等特殊场景。这些特性共同构成了Java方法调用的核心体系,广泛应用于阿里云、微博等大型系统开发中。

2025-11-13 09:31:41 574

原创 Python数据序列化:Pickle与JSON的深度解析

Python数据序列化工具对比摘要 Python提供了pickle和json两种主要序列化工具,各具特色。pickle作为Python专用二进制格式,能高效处理复杂对象如自定义类实例,但存在安全风险,仅适合可信环境。json是通用的文本格式,支持跨语言交互且更安全,但仅处理基本数据类型。性能方面,pickle的二进制操作比json文本转换更高效。选择时需权衡安全性、可读性、性能及跨语言需求,json适合公开数据交换,pickle则适用于内部Python对象持久化。

2025-11-13 09:14:32 744

原创 Java二维数组:内存模型与实战应用

在Java中,二维数组是处理矩阵/表格数据的核心结构,本质上是"数组的数组"。其内存布局特性对性能影响显著:基本类型数组(如int[][])比对象数组(如Integer[][])更高效,因避免了对象头和指针间接访问。使用时应关注缓存局部性,优先行优先遍历。虽结构简单但应用广泛,适用于图像处理、科学计算等场景。当处理稀疏数据时,HashMap等替代方案更优。

2025-11-12 09:31:47 418

原创 Python 处理 CSV 和 Excel 文件的全面指南

Python提供了多种方式处理CSV和Excel文件。对于CSV文件,标准库csv模块可通过reader和writer对象实现读写操作,支持自定义方言格式。Excel文件处理需借助第三方库如openpyxl,它能创建/修改.xlsx文件,支持单元格数据读写、样式设置和多表操作。两者各有优势:CSV适合简单数据交换,Excel则适用于复杂表格处理。Python凭借丰富的库生态,能高效完成数据导入、清洗和导出任务。 (注:摘要共135字,严格控制在150字以内)

2025-11-12 09:14:45 1396

原创 Java一维数组:创建、遍历与实战应用

Java 数组是存储固定数量同类型元素的基础数据结构。数组分为基本类型数组和引用类型数组,具有长度固定、访问高效的特点。数组声明需使用 new 关键字,元素会自动初始化(数值为0,布尔为false,对象为null)。常见的初始化方式包括静态初始化(直接赋值)和动态初始化(运行时赋值)。数组遍历推荐使用传统for循环(需索引时)或增强for-each循环(仅读取时)。java.util.Arrays类提供了排序、查找、复制等高效方法。开发中需注意空指针和数组越界异常,做好边界检查。掌握数组操作是构建复杂数据结

2025-11-11 09:31:37 951

原创 Python REST API Consumption and Creation

REST API是构建现代Web服务的核心,Python凭借简洁语法和丰富库支持成为开发首选。本文介绍了REST架构的基本原理,包括无状态性、统一接口等特征,以及GET/POST等HTTP方法。重点演示了Python中requests库的高效使用,并从Flask/FastAPI框架对比出发,展示了API开发实践。同时强调了API安全的关键措施,如HTTPS加密和JWT认证机制,为开发者提供了从基础到进阶的完整参考方案。

2025-11-11 09:14:36 960

原创 Java循环详解:掌握For、While与Do-While

Java循环结构详解:while、do-while与for循环的对比 本文系统介绍了Java的三种主要循环结构及其应用场景。while循环采用"先判断后执行"模式,适合不确定迭代次数的任务;do-while循环保证至少执行一次,常用于输入验证;for循环则通过三段式结构(初始化-条件-更新)精准控制确定次数的迭代。文章还分析了break和continue语句的控制机制,并指出过度使用可能降低代码可读性。每种循环结构都配有典型用例和常见错误提示,帮助开发者根据具体需求选择最合适的循环方式,

2025-11-10 09:31:42 422

原创 Python数据库连接:SQLite与MySQL深度解析

Python数据库连接与操作摘要 Python通过DB-API标准(PEP-249)提供统一数据库操作接口,支持SQLite、MySQL等主流数据库。 SQLite特性 轻量级嵌入式数据库,无需独立服务器 单文件存储,适合小型应用和原型开发 Python内置支持(sqlite3模块) 典型应用场景:本地存储、移动应用、快速原型 MySQL特性 服务端数据库,支持高并发和大数据量 需要安装额外驱动(mysql-connector-python/pymysql) 适合生产环境和复杂应用 基本操作流程 建立连接

2025-11-10 09:14:34 502

原创 Java变量与数据类型:代码的基石

文章摘要:Java 中的变量分为基本类型和引用类型,具有严格的数据类型定义与作用域规则。基本类型(如int、boolean)直接存储值,而引用类型(如String、数组)存储对象地址。Java 10引入的var关键字支持局部变量类型推断,简化代码但不影响类型安全。变量作用域分为类级、方法级和块级,需注意初始化要求,字段变量有默认值而局部变量必须显式初始化。理解这些核心概念是编写健壮Java程序的基础。

2025-11-09 11:17:24 827

原创 Python性能优化技术全解析

Python性能优化涉及算法优化、内置模块使用、并行计算及工具分析。关键点包括:选择高效算法(如Timsort)、利用NumPy/Pandas向量化操作,使用multiprocessing绕过GIL限制,并通过cProfile等工具定位瓶颈。对于I/O密集型任务,多线程仍有效,而CPU密集型任务需多进程处理。合理使用生成器、缓存和高效数据结构(如NumPy数组)可显著提升性能。

2025-11-09 09:14:38 391

原创 Java:掌握核心概念为何至关重要

Java 核心原理与演进摘要 Java 历经近30年发展,从JDK 1.0到Java 21持续演进,其生命力源于对核心原理的坚持与创新。现代Java面临多核架构挑战,通过虚拟线程(Project Loom)、原子类等机制优化并发性能,但Java内存模型(JMM)和happens-before规则始终是线程安全的基础。类型系统方面,泛型虽受类型擦除限制,Record类型则简化了不可变对象建模。面向对象设计需平衡继承与组合,遵循开闭原则构建可扩展系统。尽管语法糖和API不断丰富,深入理解线程机制、内存可见性等底

2025-11-08 11:40:40 1104

原创 Python内存管理与垃圾回收机制深度解析

Python内存管理机制简介:CPython通过引用计数和垃圾回收器(GC)实现自动内存管理,开发者无需手动操作。引用计数机制跟踪对象使用情况,当计数归零时自动回收。GC则处理循环引用问题,通过标记-清除-终结三阶段工作。内存泄漏可能因未释放引用或循环引用导致,可通过gc模块和tracemalloc工具调试。优化策略包括使用弱引用避免循环引用、合理使用缓存、及时删除不再需要的对象等。理解这些机制有助于编写更高效的Python程序。

2025-11-08 11:27:47 1168

原创 Python 异步编程:使用 async/await 实现高效并发

摘要 异步编程是处理I/O密集型应用的高效方法,通过协程(coroutine)和事件循环(event loop)实现非阻塞并发。Python使用async def定义协程,await等待异步操作完成。与传统同步模型相比,异步编程允许程序在等待I/O时切换任务,显著提升性能。核心工具包括asyncio库、aiohttp网络请求库,以及async for和async with等异步语法结构。实践中需区分并发与并行,根据任务类型(I/O密集型或CPU密集型)选择合适方案。常见错误包括混用阻塞/非阻塞调用,建议使用

2025-11-08 09:14:32 1073

原创 Python 多线程与多进程详解

Python并发编程:多线程与多进程 本文介绍了Python中的两种并发编程方式:多线程(threading)和多进程(multiprocessing)。核心区别在于内存管理:线程共享内存而进程独立内存,这影响了它们在数据共享和通信上的不同实现方式。 多线程适合I/O密集型任务,但由于全局解释器锁(GIL)限制,在CPU密集型任务中表现不佳。多进程通过独立内存绕过GIL限制,更适合CPU密集型任务。 文章详细讲解了: 线程/进程的创建方式 进程间通信(IPC)机制如Queue和Pipe 同步工具Lock的使

2025-11-07 09:14:39 1096

原创 Python 元类与类创建机制深度解析

Python元类机制是控制类创建的高级特性,默认由type实现。元类继承type并重写__new__和__init__方法可自定义类创建过程。典型应用包括:强制类属性约束、自动注册类、实现单例模式和接口检查。此外,元类支持面向切面编程,如为方法自动添加日志功能。虽然功能强大,但元类较复杂,应谨慎使用,特别适合框架开发和系统设计场景。理解元类有助于深入掌握Python的面向对象机制。

2025-11-06 09:14:36 660

原创 Python 描述符协议深度解析与实战应用

Python描述符协议解析 描述符(Descriptor)是Python中控制属性访问的强大机制,通过实现__get__、__set__和__delete__方法拦截属性操作。描述符本质上是独立类,可绑定到其他类的属性上,实现属性访问的定制化控制。 核心应用包括: 数据验证与转换 日志记录 ORM字段映射(Django/SQLAlchemy等框架) 实现property和slot等内置功能 最佳实践: 使用Python 3.6+的__set_name__自动获取描述符名 注意描述符间的优先级关系 避免直接在

2025-11-05 09:14:40 1013

Manning.F#.Deep.Dives.2014.12.pdf

Manning.F#.Deep.Dives.2014.12

2023-08-08

Manning.Neo4j.in.Action.2014.12.pdf

Manning.Neo4j.in.Action.2014.12.pdf

2023-08-08

通讯录 代码大全

基本上实现了通讯的基本信息,用了列表框,并实现了按钮颜色的设置在其中还可以对其进行简单的修改

2011-10-23

系统设计 算法实现 线性规划

系统设计用vc6.0实现、造船和选址等问题

2011-10-23

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除