`
wen866595
  • 浏览: 264440 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
编程是对创造的训练。 好的体系容不得任何错误。 创造操作系统,就是去创造一个所有应用程序赖以允许的基础环境--从根本上来说,就是在制定规则:什么可以接受,什么可以做,什么不可以做。事实上,所有的程序都是在制定规则,只不过操作系统是在制定最根本的规则。 你可以从不同的角度看问题,直到灵光突现地认识到:问题之所以成为问题只在于你的方法错了。 一个真正的程序在运行之前,必须已经接近完成。 人们需要看到事情的进展。 贪欲从来就不是善的。 最好的领导者不是让手下做他要求他们做的事情,而是让手下做他们自己想要做的事。同时,最好的领导者也明白,当手下犯错时,要让他们自己有能力纠正而不要总是自 ...

js跨域

    博客分类:
  跨域的安全限制都是指浏览器端来说的 , 服务器端是不存在跨域安全限制的 。     下面是JQuery1.7 关于 jsonp 的说明: 如果指定了script 或者 jsonp 类型,那么当从服务器接收到数据时,实际上是用了 < script > 标签而不是XMLHttpRequest 对象。这种情况下, $.ajax() 不再返回一个 XMLHttpRequest 对象,并且也不会传递事件处理函数,比如 beforeSend 。
  2012-9-17 控制台的问题已解决,是由于未显式指定String.getBytes()方法的字符编码导致。 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++       2012-09-14 : 之前的翻译主要是个概述,很多内容都省略了,最近遵从原文进行了更详细的翻译、补充,目前已完善到第7章,附件已更新。   前段时间用Scala做了个实现,需要JDK7,基本上可以运行了,不过还存在一个问题:打包在控制台运行时,发送的消息如果含有中文时会失败;而直接在Eclipse下编译运行则不存在这样的 ...
Java常用的集合类型有 List 、 Set 、 Map ,容器一般也有线程安全与非线程安全之分, java.util 包下的线程安全类一般都是废弃不用的,应该使用 concurrent 包下面的线程安全类。     1.1.  容器的一般使用 A、 声明容器时要指定泛型的类型,可避免编译器警告和强类型转换。     B、 如果一个方法的返回一个容器,不要返回null ,应该返回空的容器以避免空指针异常
数组是一种效率最高的存储和随机访问对象引用序列的方式,数组有固定的尺寸,是同一数据类型的集合。 数组相比其他容器具有效率、类型和保存基本类型的优势,缺点是数组只是个存储机制,没有丰富的方法可用,也没有自动扩容的机制。   1.1.  基本类型与性能优势 数组可以持有基本类型,而容器则不能,容器看起来能够持有基本数据类型,其实是通过自动装箱拆箱机制,把基本类型转为对应的包装类型对象。自动装箱拆箱是需要开销的,而且对象占用的内存更多。   1.2.  Java数组协变类型导致运行时异常 Java数组是可以协变类型的,即一个 String 数组也是一个
源的初始化与关闭是非常常见的操作,也是很容易出错的地方。Java里一般使用try-catch-finally来处理这个问题,在JDK7增加了try-with-resource。 1.1.  try-catch-finally 下面是个有错误的举例: public void copy_error(File src, File dst) throws IOException { FileInputStream fin = new FileInputStream(src); FileOutputStream fout = new FileOutputStream(dst); ...

闭包扫盲

    博客分类:
来源:http://martinfowler.com/bliki/Closure.html 闭包本质上是一个可以作为函数调用的参数的代码块。 闭包与C语言的指针、Java的匿名内部类的区别有两点: 1、形式上的区别,闭包可以引用它们定义时可见的变量。Java内部类可以只能引用常量,闭包可以引用一些可见的局部变量。 闭包的关键是:它是个代码块加上对它来自的环境的绑定。 2、简单清晰的使用方法。Java匿名类没有广泛使用的一个原因就是使用复杂,简洁的用法会促进使用。
1.1.  String API String对象是不可变的,那些看似改变了对象的方法其实是返回新的 String 对象,有一些方法使用时是要注意的。   A、 substring、 subSequence 方法。 String底层是使用字符数组来存储的, substring 、 subSequence 方法返回新的String 或 CharSequence ,共享底层的字节数组,因为它是不可变的,这能提升性能,但也能导致问题。
工作近3年,完全从零开始开发的项目较少,基本上都是接手别人的项目,在阅读别人的代码时,发现有些错误总是重复出现,这些错误有的是很低级的。所以最近在写一些文档,把自己知道的容易出错的、一些更好的编码方式和以前记录的一些笔记记录下来,希望对刚入门的程序员有所帮助。   附件是我目前完成的,在github上建立了一个项目:https://github.com/wen866595/program_idiom 。欢迎有兴趣的一起参与。    
首先引用API中的说明文档:   一个简单的服务提供者加载设施。   服务 是一个熟知的接口和类(通常为抽象类)集合。服务提供者 是服务的特定实现。提供者中的类通常实现接口,并子类化在服务本身中定义的子类 ...
  Java7 的文件API可以把zip、jar文件看作是一个文件系统,访问文件系统都可以使用Path及相关的类进行。   下面是创建zip压缩文件的示例: private static void create() { Map<String, String> env = new HashMap<>(); env.put("create& ...
转自:http://blog.csdn.net/waitfor_/article/details/7213288     例如,5!=120,其末尾所含有的“0”的个数为1;10!= 3628800,其末尾所含有的“0”的个数为2;20!= 2432902008176640000,其末尾所含有的“0”的个数为4。 这里先给出其计算公式,后面给出推导过程。令f(x)表示正整数x末尾所含有的“0”的个数,则有:        当0 < n < 5时,f(n!) = 0;        当n >= 5时,f(n!) = k + f(k!), 其中 k = n / ...

TCP多路复用

 
一个Socket地址是由(IP地址:端口号)组成的。     对于TCP 和 UDP 来说,将传入的分组报文匹配到某个套接字的过程是一样的,可以归纳为一下几点: 1、 套接字数据结构中的本地端口号必须与传入的分组报文的目的端口号相匹配。 2、 在套接字数据结构中,任何包含了通配符(* )的字段可以匹配分组报文中的相应字段的任何值。 3、 如果有一个以上的套接字数据结构与传入的分组报文地址的四个字段匹配,那么通配符最少的获得该分组报文。     确定本地或远程的地址和端口号 对于Ser

TCP连接关闭

 
关闭机制的工作流程是:应用程序通过调用套接字的close方法或shutdownOutput方法表明数据已经发送完毕。此刻,底层的TCP实现首先将留存在SendQ队列中的数据传输出去(还要依赖于另一端RecvQ队列的剩余空间),然后向另一端发送 ...

TCP连接建立

  TCP的开放握手也称为 3 次握手( 3 - way handshake ),因为这通常包括 3 条消息:一条从 客户端到服务器端的 连接请求 ,一条从 服务器端到客户端的确认信息 ,以及另一条从 客户端到服务器端的确认消息 。 ...
Global site tag (gtag.js) - Google Analytics