`
andyhu1007
  • 浏览: 199490 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
文章列表
在C语言里堆(heap)和栈(stack)里的区别 简单的可以理解为: heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。 stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表 在Java ...
Don’t cache HTML Use Cache-Control: no-cache for dynamic HTML pages Use the Last-Modified header with the current file time for static HTML Cache everything else forever For all other file types set an Expires header to the maximum future date your web server will allow Modify URLs by appen ...
HTTP Digest access authentication 是一种http验证方法。Digest验证方法有意替换非加密的基本获取认证方法,它允许用户通过安全的方式,而不是以非加密的白文形式在网络中发送密码。Digest验证本质上是MD5加密+nonce值的使用。(nonce:number used once,这个值由服务器生成,并在客户端作为被加密数值的一部分进行加密生成一个response用于服务端的验证,这个值使用一次之后并过期。)   同时,被加密数值中还有一个hexadecimal request counter (nc),每次request,它必须比上次的值要大,否则攻击者可 ...
   salt经常由一组随机的比特位组成,它跟密码一起,作为生成加密密码的输入参数。salt数据增加了字典式攻击的复杂性:每个bit都会使字典式攻击需要的存储和计算加倍。      salt值有时候会被保密,这样,在密码数据库丢失时,会使破解密码的复杂性大大增加。加密协议包括SSL和Ciphersaber都使用salt。      salt的好处是:当salt足够大时,针对加密数据的简单字典式攻击几乎变得不可能。要么就是需要太大的空间,要么就是需要太长的时间。      比如,一个用户的密匙被盗了,而且据所知他使用了200,000个英文单词里的一个作为密码。系统使用32位的salt。由于salt ...
    公匙加密法 也称不对称加密法,就是说:用于加密的钥匙和用于解密的钥匙并不相同。密匙要保持不被泄露,而公匙一般都会广泛传播。进来的消息通过公匙加密,然后接收者用密匙打开。公匙和密匙虽然是精确相关的,但是基本上不可能通过公匙得出密匙。       相反的,密匙加密法也称为对称加密法,它使用同一个key来加密和解密。使用密匙加密法,发送者和接收者都需要事先知道key,或者跟消息一起传送。       公匙加密法主要的两种用处:       公匙加密:用公匙加密的消息只能被密匙解密,所以,这可以保证消息不被泄露,起到保密作用。     数字证书:发送者发送的用密匙签名的消息,可以被拥有公匙的任何 ...
   元编程的正式定义是编写“会写程序”的程序:反射,动态语言的“打开类”等等。   元编程改变了你的语法辞典,给你提供了更多表达自己的方式。   Final 的存在代表了语言设计者的态度:他们不信任使用该语言的人们。                                                                                 ----------- <The Productive Programmer>  
Car car = new CarImpl(); MarketingDescription desc = new MarketingDescriptionImpl(); desc.setType("Box"); desc.setSubType("Insulated"); desc.setAttribute("length", "50.5"); desc.setAttribute("ladder", "yes"); desc.setAttribute(" ...
1. 字节码分析: FindBugs       正确性   可能是逻辑错误的地方 不良实践   违反基本编码实践(例如覆盖equals() 方法而没有同时覆盖hashCode() 方法) 迷惑   难懂的代码,奇怪的用法,反常的做法,糟糕的代码     2. 源码分析: PMD   可能的bug       例如空的try...catch 块 死代码
  重复是软件开发中最大的阻力,没有之一。     DRY是写出良好代码的根本原则。
   一直不知道原来windows的命令行也可以检索命令历史。     在 Windows 中,键入先前命令的前一部分然后敲下 F8 。 Shell 就会对匹配你刚才输入的前一部分内容的历史命令执行一次反向搜索。你可以不断地按下 F8 来继续查看匹配的命令列表。如果你想看命令的历史纪录,键入 F7 ,你最近的历史记录会显示在一个列表中,你可以利用上下箭头键来选择命令。                                                                                 --------- 《The Productive Progr ...
    在“开始”按钮之下创建一个文件夹,其中包含你每天都会用到的应用程序快捷方式。你可以将这个文件夹命名为“跳转” (Jump) 并用“ j ”作为快捷键,这样你就可以键入 Windows-J 来访问它。          要注意的是,其中每一个菜单项都以该文件夹范围内唯一的单个字母作为前缀,这样有利于应用程序的快速加载。加载文件夹中的每一个应用程序只需两个按键: Windows-J[< 唯一字母 >] 便可加载该应用。                                                                              ...
  博客从space 搬家到:http://blog.huzhenbo.name 。     我的大部分东西都在google上了,就这样被一步步套牢。希望google别倒。
  Web Service CXF  实战1- 服务定义       Web Service CXF 实战2- 代码生成     Web Service CXF 实战3- 服务实现     讲得不错。                        转载自鬼脸阳的IT 生活。  
     Dependency inversion principle : High level modules should not depend upon low level modules. Both should depend upon abstractions. Abstractions should not depend upon details. Details should depend upon abstractions.        Advantage:        a. You do not have to develop the lower level module ...
  编译 :编译器是一个把一种计算机语言翻译成另一种计算机语言的计算机程序,而编译指其过程。     解释 :解释器是指执行一个编程语言指令的计算机程序,而解释指其过程。     编译型语言和解释型语言之间并没有绝对的区分,因为很多解释系统同样干了一些翻译工作,就像编译器一样。一个解释器可能通过以下方式执行代码:      1. 直接执行源代码。    2. 把源代码翻译成一些中间代码,然后立即执行之。    3. 先通过解释系统中的编译器把源代码显示得翻译成一种预编译代码,然后执行它。      从某种意义上说,cpu就是一个机器指令的解释器。      举个例子:对于ruby语言而言,解释就 ...
Global site tag (gtag.js) - Google Analytics