IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者
首页 / Java地带
IT 2018-07-05 13:32:32 / 累计浏览 2,720

修改Linux交换空间的使用率

这篇讲的是如何调整 Linux 系统对交换空间(swap)的使用倾向,核心是控制一个名为 `vm.swappiness` 的内核参数。 文章解释说,这个参数的默认值是 60,数值越大,系统就越倾向于将内存中的数据交换到 swap 分区。作者指出,将其设为 0 并不会完全禁用 swap,只是最大限度地避免使用它。通过 `sysctl -q vm.swappiness` 命令可以查看当前设置。 修改参数需要编辑 `/etc/sysctl.conf` 文件,添加一行 `vm.swappiness=10`,然后重启系统生效。如果不想重启,也可以用 `sysctl -p` 动态加载,但建议操作前先清空 swap。文章给出了清空 swap 的具体命令:`swapoff -a && swapon -a`。 文章最后还补充了 Linux 内存分配的一个关键机制:系统会优先使用物理内存,即使程序关闭,其占用的内存也可能被用作缓存,以加快后续访问。调整 swappiness 参数的目的,就是尽量利用物理内存,减少因使用 swap 而带来的性能开销。

本机暂存
IT 2015-01-04 23:05:15 / 累计浏览 1,720

NUMERIC和DECIMAL的区别是什么?

这篇讲的是SQL Server中两个容易混淆的精确数值类型:NUMERIC和DECIMAL。文章开篇就点明,在功能上它们是完全同义的,都用于精确存储数值,最大精度都是38位,主要区别体现在类型定义的细微处。 核心差异在于精度(p)和小数位数(s)的约束关系:对于decimal(5,2)这样的定义,p=5代表总位数(小数点左右数字之和),s=2指定小数位数。文章特别强调,p和s必须满足 0 ≤ s ≤ p ≤ 38。另一个关键点是,在Transact-SQL看来,decimal(5,5)和decimal(5,0)会被视为不同的数据类型,这种对精度组合的严格区分影响着存储和计算。 在数据转换方面,文章给出了明确的警示:从decimal/numeric转换到float/real会导致精度损失,而从整数或货币类型转换过来则可能引发溢出。这些细节对于设计需要严格数值一致性的金融或科学计算系统尤为重要。 总的来说,这篇文章厘清了这两个类型的表面相似与本质联系,适合所有需要处理精确数值的数据库开发者,帮助他们在定义表结构时做出更清晰、无歧义的选择。

本机暂存
IT 2013-08-02 13:29:59 / 累计浏览 4,100

JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述

这篇从Web2.0时代JavaScript的角色演变谈起,指出在敏捷开发中借助JS框架是效率与深度的双赢,并重点对比了几大主流框架的特性与适用场景。 作者将JQuery评为首推的五星级框架,理由在于其体积小巧、学习曲线平缓、强大的DOM操作与灵活的UI扩展性。Extjs和YUI则凭借出色的UI组件,更适配后台管理系统或网盘这类复杂交互的应用。Dojo功能最为全面,尤其适合需要离线存储、数据网格等企业级特性的产品,但代价是庞大的体积和陡峭的学习成本。Mootools则以其纯正的面向对象设计和低耦合的模块化见长。 文章的核心观点是:没有“最好”的框架,只有“最适合”的选择。开发者应依据项目实际需求来决策,如果感到迷茫,不妨从最灵活的JQuery入手开始实践。

本机暂存
IT 2013-08-02 13:27:44 / 累计浏览 2,720

Java包的静态导入import static和import的区别

作者从Java 5引入的静态导入特性出发,详细对比了普通的`import`与`import static`在语法和使用上的区别。普通导入让我们能直接使用类名调用其静态成员,而静态导入则能进一步省去类名前缀,使得代码书写更简洁。 文章通过`System.out.println()`和`Integer.MAX_VALUE`等具体例子展示了这一点。使用静态导入后,冗长的`System.out.println(…)`可以简化为`out.println(…)`,`Integer.toHexString(42)`则变为`toHexString(42)`。这在需要频繁调用同一类静态方法或常量时,确实能提升编码的简洁度。 不过,作者也提醒了它的适用场景和注意事项。静态导入更适合存在大量重复调用的代码段,若仅有零星使用,直接写全称反而更清晰。同时,需要警惕命名模糊问题,例如同时静态导入`Integer`和`Long`后直接使用`MAX_VALUE`会导致编译器错误,因为它无法判断你指的是哪一个。 总的来说,这篇文章讲清楚了如何在代码简洁与可读性之间找到平衡点,帮助开发者更有效地运用这一语法糖。

本机暂存
IT 2013-08-02 13:26:49 / 累计浏览 1,940

编程中的硬编码问题

这篇文章切中了编程中一个看似简单却影响深远的痛点——硬编码。作者从基础概念讲起,解释了硬编码就是将可变变量用一个固定值代替,这会导致程序后续修改异常困难。通过清晰的代码对比(如 `if(a==2)` 与 `if(a==b)`,或圆面积计算中直接使用 `3.14` 与定义变量 `V_PI`),直观展示了硬编码与灵活编码的关键差异。 文章不止于概念,更深入分析了硬编码在实际业务场景中的危害。例如,用中文字符串“拟制中”做条件判断,一旦系统国际化就会失效;或将特定管理员姓名写死在逻辑里,一旦人员变动程序便会出错。这些例子点明了硬编码带来的维护噩梦和系统脆弱性。 核心观点很明确:硬编码是为了短期方便而埋下的长期隐患。作者主张,无论是在条件判断、常量定义还是环境适配(如仅针对IE的JavaScript代码)上,都应通过设置常量、变量或采用动态配置的方式,让编码变“软”,从而提升系统的可维护性和扩展性。这对于开发者和设计者都是一种重要的警示。

本机暂存
IT 2013-06-02 19:40:33 / 累计浏览 3,800

Java将Object对象转换为String的总结合集

这篇讲的是Java开发中一个高频却容易出错的细节:如何将Object对象稳妥地转换为String字符串。作者直接从常见的三种转换方式切入——Object.toString()、强制类型转换(String)object,以及String.valueOf(object)。 文章没有停留在简单介绍,而是深入剖析了每种方法的“脾气”和陷阱。比如,直接调用toString()必须警惕null指针;强制转换看似语法正确,但在运行时可能因类型不符而抛出ClassCastException;而看似万能的String.valueOf(),在传入null时返回的是字符串“null”而非null引用,这个细微差别足以导致后续的判断逻辑出现严重错误。 作者通过源码片段和代码对比,把这些容易踩坑的点讲得非常透彻。后半部分还扩展到了Integer包装类与基本类型转换、不同进制间的转换,以及字节数组与数值类型互转等实用技巧,内容相当扎实。对于需要经常处理数据类型转换的Java开发者来说,这是一篇能帮你理清思路、避开常见错误的实用指南。

本机暂存
IT 2013-05-19 23:29:31 / 累计浏览 3,140

PhpIniDir的应用以及php.ini-dist和php.ini-recommended的区别

在PHP配置管理中,PhpIniDir指令决定了php.ini文件的查找路径,这对环境部署至关重要。PHP5更新了查找顺序,优先检查PHPIniDir设置(仅适用于Apache模块),然后依次是注册表键值、环境变量、PHP或服务器目录,最后才是Windows默认目录。文章建议在Apache2中直接通过httpd.conf配置PHPIniDir,例如设置PHPIniDir 'C:/php',同时提醒在NTFS系统上需确保服务器有读取权限,避免常见部署问题。 文章还对比了php.ini-dist和php.ini-recommended两个初始配置文件。php.ini-dist是PHP安装时的默认选项,适合开发环境,提供标准设置便于调试;而php.ini-recommended则增强了安全性配置,比如限制错误显示和潜在危险函数,专为生产环境设计。官方文档明确指出,php.ini-dist仅适用于开发,上线前应切换到php.ini-recommended,并参考PHP安全手册进行额外调整。 这种对比清晰指出了两者在场景适配上的差异,帮助开发者根据部署阶段选择合适配置,避免因误用开发设置而引入安全风险,强调了配置细节在PHP应用中的实际影响。

本机暂存
IT 2013-05-19 23:28:29 / 累计浏览 2,300

如何通过修改注册表来添加删除Windows的系统服务

这篇讲的是如何通过修改注册表来管理Windows系统服务,特别是在默认工具不灵活时提供更底层的控制方法。在系统维护中,清理无用服务或添加自定义服务是常见需求,但直接操作注册表需要谨慎,文章详细拆解了关键步骤。 删除服务部分介绍了三种实用方法:使用sc命令行工具(如“sc delete KSD2Service”),直接编辑注册表删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下的键值,以及处理特殊情况——例如服务由系统进程保护时,需先结束进程或进入安全模式再操作。这些方法覆盖了从简单命令到深度清理的不同场景。 添加服务部分则深入讲解如何通过注册表创建新服务项,并设置必要的键值:DisplayName(服务名称)、ImagePath(程序路径)、Start(启动类型,值2为自动,3为手动,4为禁止)等。文章以添加QQ程序为服务为例,展示了如何逐步配置并验证效果。 通过这些方法,用户可以灵活地控制服务启动状态和系统资源,解决服务冲突或优化性能。文章提供了具体技术细节和注意事项,避免常见误操作,适合需要精细管理Windows环境的系统管理员参考。

本机暂存