`
xuexing
  • 浏览: 24044 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论
文章列表

委托概念

    博客分类:
  • c#
C# 中的委托和事件引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见 ...
所谓句柄实际上是一个数据,是一个Long (整长型)的数据。 句柄是 WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。WINDOWS句柄有点象C语言中的文件句柄。 从上面的定义中的我们可以看到,句柄是一个标识符,是拿来标识对象或者项目的,它就象我们的姓名一样,每个人都会有一个,不同的人的姓名不一样,但是,也可能有一个名字和你一样的人。从数据类型上来看它只是一个16位的无符号整数。应用程序几乎总是通过调用一个WINDOWS函数来获得一个句柄,之后其他的WINDOWS函数就可以使用该句柄,以引用 ...
Thread.interrupt() 使用不当,导致程序无法退出(转) 原文出处:http://blog.chenlb.com/2009/07/incorrect-use-thread-interrupt-cause-not-exit.html Java Thread.interrupt() 使用不当,导致多线程程序无法正常退出。前段时间写的一个多线程程序:一个子线程基本是死循环地从任务池里取出任务(取的时候,没有任务会阻塞),并运行可用的任务。没有任务了,完成的时候 main 线程调用子线程的中断,抓到中断后退出子线程的死循环。 上面的程序已经正常的运行了几个月了,是一天运行一次而已。近 ...
比较全面的Java线程转换图
上午去面试的时间和面试官当时问了什么SSH之类的东西,不是很清楚。 后来聊起线程,说到join方法,我就说join方法是一个合并意思,从网上看到的,呵呵。不过这个说法也比较准确,因为当你直接调用了start()方法之后,你调用join方法。其实就可以看作是调用一个普通的run方法,当run方法执行完之后,你的主线程才能往下执行。当你用一个带参数的join方法,当主线程等待的时间超过了时间参数值的,则主线程与子线程就又是并发执行。这里要注意,当构建一个线程,但没有调用start()方法的之前调用join方法是没有任何作用。
要点 读完所有的评论以后,问题终于明白了,至少在一个主要问题上产生了混淆。某些评论认为我的节选是错的,因为对象是按引用传递的。 对象确实是按引用传递的;节选与这没有冲突。节选中说所有 参数都是按值 -- 另一个参数 -- 传递的。下面的说法是正确的:在 Java 应用程序中永远不会传递对象,而只传递对象引用。因此是按引用传递对象。但重要的是要区分参数是如何传递的,这才是该节选的意图。Java 应用程序按引用传递对象这一事实并不意味着 Java 应用程序按引用传递参数。参数可以是对象引用,而 Java 应用程序是按值传递对象引用的。 C++ 和 Java 应用程序中的参数传递 Java 应用程 ...
Java内存泄漏是每个Java程序员都市遇到的问题,程序在当地运行完全合理,可是布署到远端就会出现内存无局限的增长,最后体系瘫痪,那么怎样最快最好的检测程序的安稳性,避免体系崩盘,作者用自已的亲身体验与各位网友 ...
Java程序性能优化技巧 :Java程序性能优化技巧 生成对象时,合理分配空间和大小: Java中的很多类都有它的默认的空间分配大小,对于一些有大小的对象的初始化,应该预计对象的大小,然后使用进行初始化。  例如:我们在使用 Vector,当声明Vector vect=new Vector()时,系统调用:public Vector() {// 缺省构造函数 this(10); // 容量是 10;}  缺省分配10个对象大小容量。当执行add方法时,可以看到具体实现为:..public synchronized boolean add(Object o) { modCount++; ensur ...
昨天写完一个程序发现是用到预编译的数据库,但是当循环执行到1W多的时间就出现CPU运行突然达到100%,但是内存没有任何变化,之后CPU占用率瞬间就又降到0%,从昨天一直折腾到今天,分析了许多原因,最后通过调试发现是由于执行到1W多的时间,该线程就进入到无法执行的死循环中,至于这个问题一直无法理解,我把程序放在服务器上执行的完全完全正确,那么就可以得出是由于数据量过大,PC机的内存不足,导致内存不足,CPU的占用率升高。
Java语言相比C++的一个很大优势就是 Java可以自动管理内存的回收,这大大减少了程序员的负担。然而,Java并不是杜绝了所有的内存问题,还是会有内存泄漏的问题,只不过原因和C++是不一样的,所以出现得比较少。Java的内存垃圾回收机制是从程序的主要运行对象开始检查引用链,当遍历一遍后发现没有被引用的孤立对象就作为垃圾回收。详细说明可以看ibm developerworks上的文章(http://www-900.ibm.com/developerworks/cn/java/j-leaks/index_eng.shtml)。在现在代码检查工具越来越先进的情况下,C++的内存漏洞检查已经变得容 ...
在Socket编程中,要采用多线程去处理网络流,客户端需要不停的去监听端口中是否有数据过来,这里采用基本的流收发,DataInputStream在所有的read方法都是阻塞的,只有available这一个方法是非阻塞的,当我判断是否有流的时间,采用available但网络流无数据的时间造成了无限循环,使CPU的占用比达到50%,当去掉这个判断之后,当调用read方法的时间就阻塞到哪里,这样CPU的占用比为0%(约等于),可见我们在写程序的时间,要时刻关注我们程序里面的死循环,最好是在if后面加上else输出一句话,或者DEBUG一下。我倾向于前者,更加直观。
java 的基本数据类型是不存在有符号和无符号这种东西的. JAVA中的基本数据类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。 Java简单数据类型       简单类型   大小   范围/精度         float   4   字节   32位IEEE   754单精度         double   8   字节   64位IEEE   754双精度         byte   1字节   -128到127         short   2   字节   -32,768到32,767         int ...
一、引言 对数据库索引的关注从未淡出我的们的讨论,那么数据库索引是什么样的?聚集索引与非聚集索引有什么不同?希望本文对各位同仁有一定的帮助。有不少存疑的地方,诚心希望各位不吝赐教指正,共同进步。[最近首 ...
今时今日,众多企业在数据管理中所面临的主要挑战之一是如何从海量数据中获得更多的价值,尤其是从企业自身一点一滴辛苦积累起来的数据中获取价值。为了应对这个问题,近年来,很多公司都在信息技术系统上进行了巨额 ...
楔子: 问题:假设一个文件中有9亿条不重复的9位整数,现在要求对这个文件进行排序。 一般解题思路: 1、将数据导入到内存中 2、将数据进行排序 (比如插入排序、快速排序) 3、将排序好的数据存入文件 难题: 一个整数为4个字节 即使使用数组也需要900,000,000 * 4byte = 3.4G内存 对于32位系统,访问2G以上的内存非常困难,而且一般设备也没有这么多的物理内存 将数据完全导入到内存中的做法不现实 其他解决办法: 1、导入数据库运算 2、分段排序运算 3、使用bit位运算 解决方案一:数据库排序 将文本文件导入到数据库,让数据库进行索引排序操作后提取数据到文件 优点: ...
Global site tag (gtag.js) - Google Analytics