- 博客(643)
- 资源 (16)
- 问答 (1)
- 收藏
- 关注

原创 Https 加密原理
1)CA 证书中的 数字签名Hash值,就是用证书的私钥进行加密后的值(证书的私钥不在 CA 证书中,证书的公钥在CA证书中)。加密用的密钥和解密用的密钥是同一个,比较有代表性的是 DES和AES 加密算法。
2024-09-01 11:14:54
1336

原创 Http/Https 请求慢的解决办法
2.HTTP2.0多路复用通过多个请求 共享一个 TCP 连接的方式,解决了HTTP request层面的 队头阻塞(HOL blocking ,即Head of Line blocking)的问题,即解决了HTTP 1.x中的队头阻塞问题,但TCP层面的队头阻塞问题(由于丢失或延迟的数据包导致重传阻塞)并未解决,基于QUIC(Quick UDP Internet Connections)的HTTP/3基本可以解决队头阻塞问题。和传统的 tcp socket 相似,基于 tcp 协议,提供双向的数据通道。
2024-08-25 11:23:59
986

原创 谈iphone电话短信增强工具kuaidail软件的实现
首先声明,本人不是kuaidail软件的实现作者,是在做相关的项目过程中,想到了也实现了类似的功能,kuaidail软件本身并没有公布相关实现细节,所以在此分享一下。在这里,可以了解kuaidail软件的一些安装效果:http://bbs.app43.com/thread-15553-1-1.html一、总述 kuaidail运行于越狱平台的ios系统上,与其说它是一
2024-07-25 19:14:19
2357
1

原创 c++ 大整数类CCBigInteger 加减法功能的实现
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。助您在编程路上越走越好!
2024-06-04 19:18:41
3166
2

原创 软件行业理论太多 实践太少
一、中心思想 本文将从理论和实践的角度分析在软件行业理论与实践的差距,将着重表达提高实践在整个软件行业的作用和意义;但是,本文不会刻意贬低理论的价值,理论同样非常重要。二、软件行业理论密切依赖于实践 软件行业理论和实践似乎比其它行业更加密切,原因就在于使用它的实在太多了,不论国防、科技、教育、互联网以及日常生活。所以,分析软件行业理论和实践可以举的例子特别多。也
2024-05-27 19:40:59
2164
4

原创 做产品,请不要忽视技术的重要
其实,它和金钱的关系是一样的,金钱不是万能的,但是没有金钱是万万不能的。技术在软件行业所处的位置比较高这是毋庸置疑的,当然,这并没有说创意、产品、市场地位不高,应该说,它们有时有的所处的地位较低,有时所处的地位偏高,甚至很高。其实,对开发的要求还是挺高的,各种辩证思维都集中在一起,敢于坚持该坚持的,敢于放弃自己错误的想法而学习别人好的建议,能够很好地对于完美和不完美做正确判断,这是每个开发都要学会的辩证思维。其实,这里,一切其实不是以开发为核心,但是却必须依赖开发的技术,前面是个可能的,后面是个必须的。
2024-05-21 19:41:08
6660
23

原创 JVM内存参数调优大展神威
例如,若-XX:SurvivorRatio=8,则一个Survivor区域的大小将是Eden区域大小的1/8。例如,若 -XX:NewRatio=3,则新生代占整个堆的1/4,老年代占3/4。直接内存不是java虚拟机规范中定义的内存区域。
2024-04-29 13:44:05
704
1

原创 MinGW与Cygwin傻傻分不清楚
Cygwin 提供完整的类Unix 环境,是一个在Windows平台上运行的类UNIX模拟环境,它提供了一个UNIX模拟DLL以及在其上层构建的多种可以在Linux系统中找到的软件包。其主要目标是模拟UNIX/Linux环境,使得开发者可以在Windows上进行与UNIX/Linux相似的开发工作,或者将UNIX/Linux下的应用程序移植到Windows上。MinGW 环境下编译出来的程序,只能在Windows下跑,源码在linux环境下编译多半通不过,因为使用到了Windows下的API。
2024-04-15 18:19:22
2700

原创 Java泛型中 T 和 ? 傻傻分不清楚
而 T 表示了集合[所有Java类型,包括String,Integer,Character等系统定义的,或者用户定义的类型]中的一个成员。由于容器的具体类型未知,如果往容器添加元素,无法确保添加进去的具体数据是该容器具体类型的子类还是父类,因此存在类型不安全问题,所以是不允许往容器里添加数据的。使用T时,Java的类型参数支持多重限定,如
2024-04-11 18:46:44
1673

原创 Windows内核--GUI显示原理(6.1)
图形子系统内核部分win32k.sys 通过DDI接口操作显示驱动, 显示驱动通过ENG接口调用win32k.sys. Vista开始增加DWM进程,DWM(Desktop Window Manager)和以往的绘制最大的差异是屏幕绘制不再是各个App单独决定的,而是在后台视频存储区绘制之后再渲染。Aero效果、立体和翻转效果等都得益于DWM.
2023-01-02 13:01:44
1883
2

原创 Windows内核--驱动程序和内核(1.6)
内核态驱动程序一般是和内核共同属于内核空间,驱动程序有能力访问内核大部分数据结构。内核根据需要,调用驱动程序执行相应的IO操作,如果驱动程序有异常,可以认为内核不稳定。一般情况下发生故障处理,典型的就是崩溃(dump)并重启, Windows的典型行为是蓝屏。
2022-12-25 15:40:50
1906

原创 Windows内核--子系统(3.5)
子系统是用户层概念。在Windows内核之上,如果想要执行类UNIX应用程序,就是POSIX子系统,如果要类似OS/2环境,就是OS/2子系统。 如何能模拟出不同子系统呢? 一般需要子系统用户态应用程序和相关DLL支援。
2022-12-04 13:50:37
3343

原创 Windows内核--源代码在哪里?(1.1)
利用WinDbg调试Kernel, 可以得到内核数据结构,参照WRK源代码和深入解析Windows操作系统可以猜测到内核源码的可能长相,结合IDA等反编译工具和Windbg可以获取内核全貌。微软官方并不完全公开源代码, 想清楚Windows技术内幕,就需要逆向工具。大部分人能看到这篇帖子, 想必已经用过Windows系统多年了...
2022-11-02 11:34:32
3249

原创 线程问题的核心: 怎么退出线程才是合适的----小话多线程(2)
作者:陈曦 日期:2012-8-5 16:13:36环境:[Mac 10.7.1 Lion Intel i3 支持64位指令 gcc4.2.1 xcode4.2 苹果开源代码Libc-763.11]转载请注明出处每日总结:优秀的架构都是类似的,垃圾的架构一般都是一个原因:代码内部原理掌握得不够Q1: main函数中最后用return 0; 和使用 exit(
2012-08-05 16:18:03
13274
9

原创 词法分析,让状态机旋转地更猛烈些吧----小话c语言(21)
作者:陈曦日期:2012-6-16 10:21:31环境:[Mac 10.7.1 Lion Intel-based x64 gcc4.2.1 xcode4.2] 转载请注明出处Q:对于编译过程的词法分析,到底应该使用什么方式?A:可以肯定的是,必然要对需要处理的数据挨个字符判断,然后在恰当的位置截断,得到一个个的token.Q:为什么得挨个字符都判断
2012-06-16 10:19:45
7835
6

原创 要理解解释器,做一个小解释器----小话c语言(20)
作者:陈曦日期:2012-6-12 11:31:12环境:[Mac 10.7.1 Lion Intel-based x64 gcc4.2.1 xcode4.2] 转载请注明出处Q:解释器来源于什么?A:如果说是广义的解释器,那么可以把它理解成翻译器,只要能将一种被看成原始的东西翻译成需要的东西,处理的东西就可以被称为解释器。从编程语言角度,解释器更多
2012-06-12 11:31:46
8563
8

原创 大整数阶乘的计算 N!
1、先说小点的数的阶乘计算:// n! unsigned long fac(int n){ if(n == 0) return 1; else return n * fac(n - 1);}2、如果需要稍微提高效率,还可以:unsigned long fac_ex(int n){ if(n == 0 || n == 1) return 1;
2012-03-05 22:58:32
2982
1
原创 编译器可以设定int和long的长度吗?int类型的长度为什么不统一?64位编译器int类型依然是32位?%l %h和%d %o %u %x?%ld和%d的区别?
摘要:C语言中int和long的长度由编译器决定,64位系统中int通常保持32位,long可能为64位。由于历史兼容性,int长度不统一,而longlong作为扩展类型引入。格式符如%ld和%d的差异在于处理不同字节长度,建议使用大写L避免混淆。不同编程语言对整型后缀有不同规范,但普遍建议避免小写l。编译器选项如gcc-m32/m64可调整目标代码位数,从而影响类型长度。文章还探讨了各平台整型实现的差异及使用注意事项。
2025-06-08 11:39:19
1037
原创 为什么Swift不允许字符串使用===判断?Swift字符串默认编码?字符串默认编码?哪些编程语言支持字符串插值?各式各样的字符串类型?
摘要:本文探讨Swift字符串特性,包括为何禁用===运算符(因其为值类型),以及默认编码从ASCII/UTF-16转向UTF-8的演进。对比各语言(如C/C++、Java、Python等)的字符串编码差异,分析主流语言对字符串插值的支持方式(如C#的$语法、JS的模板字面量),解析插值技术的实现本质(如C#通过string.Format转化)。最后列举不同语言的字符串类型设计特点(如Go的值类型字符串、JS的基本字符串与对象区别),为开发者提供跨语言字符串处理的技术参考。(149字)
2025-06-08 11:20:57
976
原创 软件都用哪些编程语言写的?我心目中最友好的编程语言?编程语言风格?Swift编程语言?
软件都用哪些编程语言写的?我心目中最友好的编程语言是什么?各种变成语言的分格?Swift编程语言的特点及兼容性是什么?
2025-06-07 13:51:17
714
原创 ARC和GC的区别?ARC可以管理CoreFoudation库的“对象“指针吗?ARC是何时引入的?哪些编程语言提供GC(Garbage Collection)机制?不同编程语言的内存管理?
摘要:本文对比了ARC(自动引用计数)和GC(垃圾回收)两种内存管理机制,指出ARC是编译期优化而GC是运行时机制。文章解答了ARC不能管理CoreFoundation对象指针的问题,并介绍ARC于2011年在ObjC中引入。列举了Java/C#/Python等提供GC的语言,分析不同语言的内存管理策略差异,说明高级语言倾向GC而低级语言需手动管理。最后提及Swift采用ARC机制及如何获取ObjC对象的引用计数。(149字)
2025-06-07 13:37:17
696
原创 Carbon库的没落?什么是macOS的五大API法王?Cocoa和Cocoa Touch是什么语言写成的?编程语言中什么是框架?
摘要:Carbon是macOS早期的C语言开发框架,后因64位兼容性问题被基于Objective-C的Cocoa取代。Cocoa及其移动版CocoaTouch是苹果主要开发框架,包含Foundation和AppKit/UIKit组件。macOS五大API包括Cocoa、Carbon、POSIX、X11和Java。框架是预定义代码库,如Spring、WPF等,简化开发流程。苹果技术生态现已以Cocoa为核心,Carbon自2017年起完全淘汰(注:与Google的Carbon语言无关)。
2025-06-02 11:02:01
903
原创 常量一定在定义时初始化吗?为什么C#有const和readonly两种常量关键字?const常量的不同形式?变量或常量修改?
本文探讨了编程语言中常量(const)的相关概念和使用差异。主要内容包括:常量初始化规则(如C#的const和readonly区别)、不同语言对常量的实现方式(C/C++/Java/Python等)、const指针的解读方法、const对代码大小的影响,以及字符串常量的修改问题。文章指出,常量定义时应初始化以避免修改,不同语言对常量的处理各有特点(如C的"不可修改变量"与C++的真正常量),并解释了const与指针组合的解读方法。最后强调字符串字面量在多语言中的保护机制,提醒开发者注意不
2025-06-02 10:41:54
740
原创 为什么有的编程语言允许字符串和整数相加?字符串和整数比较?字符串拼接?格式串详解?字面量?
本文探讨了编程语言中字符串和数值类型的操作差异及格式化输出。主要内容包括:1. 语言对字符串与整数相加的不同处理方式,如C#/Java的隐式转换与Swift的类型安全要求;2. 字符串比较的合法性差异,C允许而Python禁止;3. 主流语言的字符串拼接方法对比;4. 格式化字符串详解,涵盖对齐、小数位、不同进制等输出格式;5. 字面量的类型规则及范围限制。文章通过具体代码示例,展示了不同语言在类型操作上的设计哲学和实现差异,为开发者理解语言特性提供了实用参考。
2025-06-01 11:45:08
788
原创 Windows搭建Swift语言编译环境?如何构建ObjC语言编译环境?Swift如何引入ObjC框架?Interface Builder的历史?
【摘要】本文介绍了在Windows系统搭建Swift和Objective-C编译环境的方法,包括安装Swift工具链和GNUstep开发套件。详细讲解了Swift引入ObjC框架的方式,以及IBOutlet/IBAction在Interface Builder中的作用。同时回顾了Interface Builder的历史演变,解释了Xcode中Storyboards和Playground的功能特点。文章还提供了Objective-C在Windows/Linux环境下的具体编译命令和解决方案,适合需要跨平台开发
2025-06-01 11:31:45
1149
原创 Xcode和GCC/clang的爱恨情仇?如何在不打开Xcode执行其中的命令行工具?安装多个Xcode版本如何避免冲突?编译器和IDE?
本文梳理了Xcode开发工具的核心功能与使用技巧。主要内容包括:Xcode从GCC到clang+LLVM的编译器演进,通过xcrun命令行工具调用Xcode功能,多版本Xcode的管理方法,以及Playground交互式开发环境的特性。文章还解析了Storyboards界面设计、InterfaceBuilder发展历程、CoreData数据管理框架和文档型应用模板等关键功能,并对比了编译器与IDE的关系。最后介绍了不同语言的推荐IDE环境和Xcode的编译目录结构,为开发者提供了全面的Xcode使用指南。(
2025-05-31 10:13:32
943
原创 如何获取Swift变量的内存内容?Swift如何让整数计算溢出不抛出异常?Windows搭建Swift语言编译环境?Swift结构体或枚举mutating的本质?Swift guard比if判断好?
Swift语言特性与应用指南: 本文介绍了Swift语言的多个核心特性与实用技巧,包括如何通过Mems工具查看变量内存内容,使用溢出操作符(&+/-/*)处理整数计算,以及在Windows平台搭建编译环境的方法。深入解析了mutating关键字对结构体/枚举的修改机制,对比了guard与if语句的防卫优势。概述了Swift作为现代编程语言的安全、高效、开源等特性,支持跨平台开发并与Objective-C兼容。最后提供了Swift版本演进和平台支持情况,帮助开发者更好地掌握这门语言。
2025-05-31 09:51:32
968
原创 如何反向验证某个feature在特定标准才开启?case语句fallthrough?如何理解Swift “case let xxx:“?case语句可以动态筛选?
本文探讨了switch/case语句在不同语言中的实现差异。主要内容包括:1)C++17的switch初始化表达式验证方法;2)Swift和Go语言默认break的设计优势;3)Swift的模式匹配语法解析;4)各语言对case动态筛选的支持程度比较;5)switch语句的起源与演变;6)fallthrough机制在各语言中的实现差异。文章通过对比C/C++、Swift、Java、C#、Kotlin等语言特性,展示了switch/case语句设计的多样性和演进趋势,特别强调了现代语言在安全性方面的改进。
2025-05-25 09:52:37
868
原创 多行字符串文本?各式各样的字符串类型?字符和字符串?
本文探讨了不同编程语言中字符和字符串的表示方法差异。主要内容包括:1)字符和字符串的表示形式(单/双引号);2)多行字符串的实现方式(三引号、原始字符串等);3)各语言对字符类型的处理差异(如C语言中字符本质是整型);4)字符串换行规则及特殊处理;5)不同语言的字符串类型特点(如C的char*/C++的string/Python的无差别处理等)。文章通过对比C/C++、Python、Java、JavaScript等语言的实现细节,帮助开发者理解字符串处理的异同点。
2025-05-25 09:34:36
895
原创 元组可以比较大小吗?一次返回多个值?编程语言的元组?声明变量一定需要指定类型吗?
摘要:本文探讨了编程语言中元组(tuple)的特性与应用。元组作为一种不可变的多元素数据结构,在C#、Python、Swift等语言中支持,可用于一次返回多个值。文中对比了不同语言对元组的支持程度,详述了元组的初始化方法、类型推导机制(如var/auto关键字),并指出元组比较大小的规则因语言而异。文章还分析了现代编程语言的类型推导发展趋势,强调元组在简化代码、避免临时结构体方面的优势。
2025-05-24 13:05:37
741
原创 一元运算符“-“一定要和变量名连在一起吗?一些新颖或简化的运算符?为什么逻辑运算符有设计成短路处理?运算符优先级有没有通用原则?
摘要:本文探讨了编程语言中运算符的使用规则与特性。一元运算符"-"通常不需要与变量名相连,但Swift等语言有特殊要求。文章分析了自增自减、正负号等一元运算符的可叠加性,以及Swift、Kotlin引入的简化运算符。解释了逻辑运算符短路处理的必要性,并详细比较了C、C++、Java等语言的运算符优先级规则。特别指出前缀/后缀自增自减运算符在不同视角下的优先级解释差异。文章为程序员提供了跨语言的运算符使用参考。(150字)
2025-05-24 12:11:18
764
原创 求余或求模有负数参与, 不同语言结果不同?编程语言运算符?基本运算?
不同编程语言在处理负数参与求余或求模运算时,结果可能不同,这主要取决于各语言采用的取整规则。例如,C语言等采用“向零取整”规则,而Python则采用“向下取整”规则。C语言从C99标准开始,规定了当除数和被除数有负数时,商和余数的符号行为。此外,不同语言对运算符的支持和优先级也有所不同,如Python使用“/”进行全除,“//”进行整除,而VB则使用“/”进行浮点除法。这些差异要求开发者在跨语言编程时需特别注意,以确保运算结果的正确性。
2025-05-18 10:33:53
904
原创 哪些编程语言支持字符串插值?字符串拼接?为什么有的编程语言允许字符串和整数相加?字符串操作?
文章探讨了不同编程语言对字符串插值的支持情况及其实现方式。字符串插值是一种将变量或表达式嵌入字符串的技术,许多现代编程语言如C#、Python、Swift、JavaScript等均支持此功能,而C、C++、Java等则通过其他方式模拟。文章还讨论了字符串插值与其他技术的组合、其本质、以及字符串拼接和类型转换等操作。不同语言对字符串操作的支持程度各异,反映了各自的设计哲学和用户需求。
2025-05-18 10:19:08
646
原创 连续赋值?多变量初始化?变量初始化?赋值运算符?
文章探讨了编程语言中多变量初始化和赋值运算符的使用。首先,介绍了连续赋值和不同类型的多变量初始化方法,如C语言中的i=j=k=0,以及Swift和Rust中的元组初始化。接着,讨论了如何在初始化时省略部分变量,以及不同编程语言中变量初始化的形式,如C++的指派初始化器和Python的简单赋值。此外,文章还比较了赋值运算符=和相等比较运算符==的区别,并指出了一些编程语言中可能出现的误用情况。最后,提到了C语言早期的一些复合赋值运算符,如=+,并强调了正确使用赋值运算符的重要性。
2025-05-17 10:07:59
993
原创 布尔(bool)类型的起源?布尔类型?整数和布尔类型作为条件真假?逻辑运算符?
布尔类型起源于英国数学家布尔,他成功地将逻辑运算与数学结合,因此用“布尔”表示逻辑的“真”和“假”。布尔类型最早在编程语言Algol 60中提出。早期的编程语言如C/C++使用整数表示布尔值,0为False,非0为True。随着编程语言的发展,布尔类型被明确为一种独立的数据类型,如C++中的bool、Java中的boolean等,以减少与数值的直接运算。不同编程语言在布尔类型的实现上有所差异,例如Ruby中0代表真,而Python中空容器和空字符串被视为假。逻辑运算符如&&、||、!用于判断
2025-05-17 09:57:07
520
原创 隐式/显式类型转换?编程语言的类型转换?其它类型转换成数值类型?其它类型转换成字符串?类型转换?
文章摘要:本文探讨了编程语言中的类型转换,包括隐式和显式转换。隐式转换由编译器自动完成,常用于简化不同类型变量的互操作,但可能带来风险。显式转换需要程序员手动进行,如C#中的强制转换,但并非总是成功。文章还讨论了数值与布尔类型的转换、浮点数与整数的转换、以及在不同编程语言中类型转换的具体实现和注意事项。此外,还涉及了父类与子类的转换、枚举的使用,以及如何检测数据类型。最后,文章提供了关于类型转换的API和编程技巧,帮助读者更好地理解和应用类型转换。
2025-05-11 09:51:31
952
原创 数值溢出保护?数值溢出应该是多少?Swift如何让整数计算溢出不抛出异常?类型最大值和最小值?
本文探讨了不同编程语言中数值溢出的处理方式。C/ObjC/C++等语言通常依赖程序员控制溢出,而Swift等语言在编译或运行时检测溢出并报错。Swift还提供了特殊的溢出运算符来处理可能的溢出情况。C#和Java允许通过特定选项或API进行溢出检查,而Python和JavaScript通过扩展数值类型或使用大整数类型来减少溢出问题。文章还介绍了如何检测溢出、有符号与无符号数的溢出区别、自动类型转换对溢出的影响,以及各语言中类型最大值和最小值的定义。总体而言,不同语言对数值溢出的处理策略各异,反映了它们在安全
2025-05-11 09:43:42
831
原创 short变量赋值为32768, 实际为什么是-32768?不同语言的不同进制字面量?字面量?编程语言的基本类型?
在编程中,short类型变量赋值为32768时实际为-32768,原因是32768超过了short类型(2字节)的最大值32767,导致溢出,变为-32768。不同编程语言支持不同进制的字面量表示,如十进制、八进制、十六进制和二进制,部分语言还支持特定前缀表示不同进制。字面量是直接表示值的常量,广泛用于各种编程语言中,其默认类型通常是int或double,但超出默认类型范围的字面量可能引发错误或溢出。编程语言的基本类型大同小异,常见的有整型、浮点型、字符型等,某些语言还提供无符号类型和其他扩展类型。
2025-05-10 10:21:52
457
DRAM技术精解(第二版 中文) DDR3-DDR4-DDR5-LPDDR3-LPDDR4-LPDDR5.pdf
2022-04-24
DRAM Technology DDR3_DDR4_DDR5_LPDDR3_LPDDR4_LPDDR5技术精解.pdf
2021-01-31
JESD79-E_DDR 中文注释解读 v2.2.pdf
2021-07-17
DRAM技术精解(中文) DDR3-DDR4-DDR5-LPDDR3-LPDDR4-LPDDR5.pdf
2021-10-02
JESD209-5-LPDDR5-注释解读v1
2024-07-04
JESD209-4B-LPDDR4 注释解读 v3
2024-07-04
DRAM技术精解(第三版 中文)
2024-07-04
JESD209-4B-LPDDR4 中文解读 v2.3
2022-10-23
DRAM技术精解(第三版 中文) DDRX LPDDRX
2022-10-23
JESD79-3 DDR3 Technology.pdf
2021-11-13
JESD79-4 DDR4解读.pdf
2021-10-13
JESD209-4B_LPDDR4 中文注释解读.pdf
2021-06-18
JESD209-3 LPDDR3精解.pdf
2021-11-26
JESD79-3 DDR3精解.pdf
2021-10-25
JESD209-4_3 LPDDR4 LPDDR3精解.pdf
2021-12-12
JESD79-5_4_3 DDR5 DDR4 DDR3精解.pdf
2021-11-21
JESD209-4C LPDDR4解读.pdf
2021-08-01
JESD79-3F_DDR3 中文注释解读 v3.pdf
2021-07-18
JESD79-4B DDR4 JESD79-3F DDR3 精解.pdf
2021-11-16
Android十年终极开发经验_助您不走弯路_快速晋级Android架构师
2021-08-08
DDR4为何没有类似LP3的CA training或者LP4的CBT?
2020-12-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人