行内技术
(7)Visual Studio菜单和工具条编程实战
菜单和工具条是所有Windows编程当中非常重要的一个技术,从本次讲座开始,我们给大家详细介绍在VisualStudio2005中,如何实现菜单和工具条。本次讲座所提供的例子也非常具有实用性。[video]http://p.you.video.sina.com.cn/player/outer_player.swf?auto=1&vid=25088696&uid=1400161487[/video]
2013-3-5525
Java源代码的折行规则
一些企业在招聘程序员的时候,总会特意提出一个要求,即要求具有良好的编码规范。确实现在程序开发人员已经不在是单枪匹马的单干,而是讲究团体作战。此时就要求团队内的乘员都可能够恪守代码的编写规范,这对于乘员之间共享代码、排错等作业都具有非常现实的意义。这在Java语言中当然也不例外。笔者借这次机会,就跟大家分享一下Java源代码的折行规则。虽然这基本不涉及到功能层面的内容,但是对于提高代码的阅读性却有不可替代的作用。一、代码的最大长度。虽然在Java的编译器中对于代码的最大长度没有硬性的规定。但是如果代码的长度太长,超过了编译器的最当行宽,显然阅读起来比较麻烦。为此根据笔者的经验,通常情况下J...
2013-3-5536
Linux环境下入侵工具Knark的分析及防范
本文讨论了Linux环境下攻击者入侵成功以后常常使用的一些后门技术,并且对最著名的rootkit工具之一?knark进行了详细的分析,并且指出了在发现系统被入侵以后如何发现是否是kark及如何恢复。  什么是"rootkit"?  入侵者入侵后往往会进行清理脚印和留后门等工作,最常使用的后门创建工具就是rootkit。不要被名字所迷惑,这个所谓的“rootkit”可不是给超级用户root用的,它是入侵者在入侵了一太主机后,用来做创建后门并加以伪装用的程序包。这个程序包里通常包括了日志清理器,后门等程序。同时,程序包里通常还带有一些伪造的ps、ls、who、w、nets...
2013-3-5731
用C#实现全屏幕截图
今天一位同事想写一个全屏幕截图的代码。当然要实现的第一步是能够获取整个屏幕的位图,记得Win32API的CreateDC,BitBlt等函数可以使用。于是上网查了下,果然屏幕截图用这些函数。但winform已经可以把API都忘记了,所以得寻找一个无Win32API的实现方式。综合了网上的实现,以及自己的一些设计,实现思路如下:1.开始截图时,创建一个与屏幕大小一样的位图,然后用Graphics.CopyFromScreen()把屏幕位图拷贝到该位图上。这是很关键的一步,这样所有的操作就都可以在该位图上进行了,而无实际屏幕无关了。...
2013-3-5613
Java语言中Timer类的简洁用法
所有类型的Java应用程序一般都需要计划重复执行的任务。企业应用程序需要计划每日的日志或者晚间批处理过程。一个J2SE或者J2ME日历应用程序需要根据用户的约定计划闹铃时间。不过,标准的调度类Timer和TimerTask没有足够的灵活性,无法支持通常需要的计划任务类型。在本文中,Java开发人员TomWhite向您展示了如何构建一个简单通用的计划框架,以用于执行任意复杂的计划任务。  把java.util.T...
2013-3-5639
JAVA进阶:一个简单Thread缓冲池的实现
在应用中,我们常常需要Thread缓冲池来做一些事以提高程序的效率和并发性。本文演示了如何利用Queue这种数据结构实现一个简单的Thread缓冲池。一个Thread缓冲池可以设计成以下这样:缓冲池由几个工作Thread和一个Queue组成,Client负责把任务放到Queue里面(put方法),而工作Thread就依次取出这些任务并执行它们(get方法)。Queue的一个经典实现是使用一个循环数组(这个实现在很多数据结构的书上都有介绍),如一个大小为size的数组,这个循环数组可以被想象成首尾相连的一个环。oldest指向Queue中最老的数据所在的位置,next指向下一个可以放新数据...
2013-3-5542
ASP.NET中实现模版的动态加载
ASP.NET中,经常会使用到templates(模版)功能,比如在datagrid,datalist,repeater等控件中,使用templates,将会大大增强其功能。以往,我们一般是在设计程序时,就已经设置好控件中的模版是怎样的了。但是,有的时候,可能我们需要动态加载模版,比如,当你要求你的应用程序的界面风格随着用户的需求而变化时,你就需要到动态加载模版的功能了。但要注意的是,并不是所有的web控件都支持模版功能,而且要注意,哪些控件支持模版的哪些功能,下面简单列出了一些支持模版功能的控件:Repeater控件,支持的模版有:Hea...
2013-3-5488
Java Swing中键盘事件的处理
在jdk1.2中,分别针对Jcomponent和Text类的对象定制了不同的处理键盘事件的方法:在Jcomponent中,定义了registerKeyboardAction方法,使用这个方法来将需要处理的键盘事件以及处理事件的行为绑定在一起。Text类中具有keymap对象,同Jcomponent中的处理方法类似,这个对象保存着需要处理的键盘事件和对应的行为。  而在jdk1.3中,使用一种新的方法来处理键盘事件,它将jdk1.2的两种方法整合在一起。不需要区分被处理的是Jcomponent还是Text类型的组件。它定义了两个新的类:InputMap和ActionMap。他们均是简单的表...
2013-3-5543
Java多线程设计模式:了解wait/notify机制
通常,多线程之间需要协调工作。例如,浏览器的一个显示图片的线程displayThread想要执行显示图片的任务,必须等待下载线程downloadThread将该图片下载完毕。如果图片还没有下载完,displayThread可以暂停,当downloadThread完成了任务后,再通知displayThread“图片准备完毕,可以显示了”,这时,displayThread继续执行。  以上逻辑简单的说就是:如果条件不满足,则等待。当条件满足时,等待该条件的线程将被唤醒。在Java中,这个机制的实现依赖于wait/notify。等待机制与锁机制是密切关联的。例如:  &...
2013-3-5578
JAVA基础:解读内存优化编程
一.代码优化  内存会溢出肯定和代码逃不了关系,99.99%学java的人都知道垃圾回收器是java的一大优点并据此来嘲笑C++。显然这个特性为代码编写者省了不少事,但这个特性却带来了不少隐患。举个例子在游戏当中经常有不同场景的切换,如从游戏逻辑退到主菜单逻辑,对游戏逻辑对象的态度很多人会选择忘记等待垃圾回收器来收尸。乍看之下似乎并无不妥垃圾回收器会来善后。实际上垃圾回收器并非实时的,它不像C++的Delete语句马上释放不用的内存。当从游戏逻辑切换到主菜单逻辑这时两个对象同时存在很可能这时内存就不够用了。读到这里很多人会发现实际上垃圾回收器在j2me上并不怎么好用,从一个角...
2013-3-5554
JAVA文件中获取该项目的相对路径方法
1.基本概念的理解  绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:\xyz\test.txt代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。  相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在Servlet中,"/"代表Web应用的跟目录。和物理路径的相对表示。例如:"./"代表当前目录,"../"代表上级目录。这种类似的表示,也是属于相对路...
2013-3-5639
ASP错误处理
简单介绍asp是很简单的,以至于许多的研发者不会去思考错误处理。错误处理能够让您的应用程式更加合理。我看到过很多个用asp编写的商业网站,大多数都忽略了错误处理。错误的类型有三种主要的错误类型:编译错误:这种错误出现一般都是代码的语法问题。因为编译错误而导致辞asp停止运行。运行错误这个错误是发生在您准备运行asp时的。例如:假如您试图给一个变量赋值,但是却超出了该变量允许的范围。逻辑错误逻辑错误是最难被发现的,这种错误经常是一种结构错误,电脑是发现不了的。这就需要我们彻头彻尾地检查我们的代码。因为编译错误一般是和逻辑错误一起发生的,一般都能显示出来,所以我们担心的就只是运行错误。他都终...
2013-3-5638
用VB创建FTP组件(get)
基本步骤:1、用一个InternetOpen调用设置环境。2、调用InternetConnect函数与主机连接。3、调用FtpGetFile达到文件。4、关闭第1、2步创建的句柄,用InternetCloseHandle函数。现在来仔细看看每一步:1、通过调用InternetOpen函数设置环境。下面是VB特定调用这一函数的声明:PrivateDeclareFunctionInternetOpenLib"wininet.dll"Alias...
2013-3-5666
VB.net2008精彩实例,窗体应用技巧
本篇文章的主要开发环境是VisualStudio2008,VisualStudio系列产品一直以来都提供了强大的控件功能,然而我们利用这些控件可以编写出功能强大的应用程序。本文主要利用微软的最新.net开发工具为大家展示窗体特效的应用方法,为大家介绍创建炫酷的透明化窗体以及浮动型窗体的一些技巧。很适合.net开发工具的初学者,具有一定的实用价值。打开VisualStudio2008在文件(File)菜单上,单击新建项目(NewProject)。&...
2013-3-5627
用VB.net2008打造你的影音播放器
本篇文章的主要开发环境是VisualStudio2008,VisualStudio系列产品一直以来都提供了强大的控件功能,然而我们利用这些控件可以编写出功能强大的应用程序。本文主要利用微软的最新.net开发工具为大家展示一个应用程序的开发过程,让大家对添加/引用控件更加熟悉,很适合.net开发工具的初学者,具有一定的实用价值。打开VisualStudio2008在文件(File)菜单上,单击新建项目(NewProject)。在新建项目...
2013-3-5583
探讨ASP.NET MVC框架内置AJAX支持编程技术
传统型ASP.NETWebForms是基于同时包含了表现层和后台代码的Web页面,所以,紧随其后出现的ASP.NETAJAX,特别是这个框架的服务器端控件并没有像它们本应该的那样光芒四射。于是,很多跟随AJAX时髦的ASP.NET开发者只是向ASP.NET页面中随意地放置一些UpdatePanel控件以便使其程序实现基本的AJAX支持。实际上,这只是防止了页面的“闪烁”,而根本上页面还是进行了完整的回发,并且要经历整个页面的生存周期。为了消除ASP.NETWebForms所依赖的页面回寄和ViewState等复杂技术,微软又推出...
2013-3-5558
JAVA高手解析XML配置文件的读取操作
Java和XML是黄金组合,网上已经有很多文章介绍,XML作为电子商务中数据交换,已经有其不可替代的作用,但是在平时系统开发中,我们不一定都用到数据交换,是不是无法使用XML了?当然不是,现在已经有一个新趋势,Java程序的配置文件都开始使用XML格式,以前是使用类似windows的INI格式。(Java中也有Propertiesy这样的类专门处理这样的属性配置文件)。使用XML作为Java的配置文件有很多好处,从Tomcat的安装配置文件和J2ee的配置文件中,我们已经看到XML的普遍应用,让我们也跟随流行趋势用XML武装起来。现在关键是如何读取XML配置文件?有好几种XM...
2013-3-5680
java操作Excel的一种方法
MS的电子表格(Excel)是Office的重要成员,是保存统计数据的一种常用格式。作为办公文档,势必要涉及到的电子文档的交换,Excel是一种在企业中非常通用的文件格式,打印和管理也比较方便。在一个Java应用中,将一部分数据生成Excel格式,是与其他系统无缝连接的重要手段。在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI。其中jExcelAPI是一个韩国程序员的作品,虽然没有POI那样血统高贵,但是在笔者的使用过程中,感觉简单方便,对中文支持非常好,功能也比较强大。它的下载地址是:http://www.andykhan.com/jexcelap...
2013-3-5647
SQL Server与Oracle实施成本上的差异
SQLServer与Oracle这两个数据库,除了在一些技术上有明显的差异外,在实施成本上也有比较大的差别。下面笔者就这方面内容发表一些自己的观点,希望能够跟大家一起交流。  一、Oracle基于JAVA开发,具有很多开源的工具支持。  SQLServer与Oracle数据库两者一个最大的区别,就是其应用平台的差异。现在SQLServer数据库只能够部署在微软的操作系统上。而Oracle数据库其不但可以支持微软的操作系统,而且还可以支持开源的操作系统,如Linux等等。正是因为Oracle数据库是在JAVA技术平台上开发的,所以...
2013-3-5559
详解database link的设置和使用
databaselink,它是用来更方便的一个数据库中访问另一个数据库(包括本地和远程的,道理一样)在本地建立的。即数据库连接只是连到别的数据库的快捷方式。  一、设置具体有两种  第一种:  根据远端的信息用NetManager设置好能连接远端的服务及监听程序。 createpublicdatabaselinkfwq12  connecttofzeptidentifiedbyneu  using’fjept’//fjept为刚刚配置好的服务名  第二种: ...
2013-3-5601