盘她源码
ACE是个很有用的开放源代码的C++网络编程开发包,利用它比直接用API更有利于代码的健壮性,可移植性,并相对简单。估计大家刚接触ACE时,都有一定难度,说不定就半途放弃了,这是我学ACE两天中的总结,基本上不成文,但我想研究到ACE的你一定会明白下文的意思。一、ACE官方主页:我下载的是LatestBetaKit中的ACE.zip(LatestRelease中的压缩包好像有问题,我有WinRAR3.30解压缩报错)二、解压缩后放在D盘D:\ACE_wrappers三、在D:\ACE_wrappers\ace目录下新建文件config.h加入一行#include"ace/config-win32.h"四、编译:用VC6.0打开D:\ACE_wrappers\ace\ace.dsw左侧显示ACEDLLclassesACELIBclasses或1、从菜单上选择“编译”,“放置可远行配置”,选择你需要的工程配置“编译”,“重建全部”(或任一,如ACEDLL-Win32MFCDebug)此过程可能持续半小时至一个小时不等或2、从菜单上选择“编译”,“批构建”,选择你需要的工程配置此过程可能持续二至四个钟头产生的.lib文件位于D:\ACE_wrappers\ace\下,产生的.dll文件位于D:\ACE_wrappers\bin\下同样打开ace_static.dsw编译ACEs.libACEsd.libACE_RMCasts.libACE_RMCastsd.libTMCasts.libTMCastsd.libACE生成的dll和lib文件的命名规则:(d=debug,s=static)debug-aced.lib、debug+static-acesd.lib、release-ace.lib、release+static-aces.lib五、样例程序的编译用VC打开D:\ACE_wrappers\tests\tests.dsw“编译”,“批构建”六、自写程序的工程配置中篇:ACE程序员教程.pdf中的样例程序:网址:将网页上的原代码复制到一新建文件,并命名为server.cpp用VC打开,编译,重建全部,弹出对话框,“Thisbuildcommandrequire“,点”是“会出现以下错误如果有“Cannotopenincludefile:'ace/SOCK_Acceptor.h':Nosuchfileordirectory”工程-设置-C/C++:Preprocessor,附加包含路径:D:/ACE_wrappers如果有“Youmustlinkagainstmulti-threadedlibrarieswhenusingACE(checkyourprojectsettings)”工程-设置-C/C++:CodeGeneration-Userun-timelibrary:DebugMultithreadedDll如果有“errorC2065:'ACE_ERROR':undeclaredidentifier”errorC2065:'ACE_DEBUG':undeclaredidentifier#include"ace/Log_Msg.h"errorC4716:'ace_main_i':mustreturnavalue在main中加入return0;“errorLNK2001:unresolvedexternalsymbol"__declspec(dllimport)int__cdecl”工程-设置-Link-Input:对象/库模块:添加aced.lib附加库路径:D:\ACE_wrappers\ace编译client中遇到的问题1、errorC2039:'sprintf':isnotamemberof'ACE_OS'#include"ace/OS_NS_stdio.h"2、errorC2039:'strlen':isnotamemberof'ACE_OS'#include"ace/OS_NS_string.h"3、errorC2059:syntaxerror:'?'错误在这一句:ACE_DEBUG((LM_DEBUG,?UsageegX\n?));将?改为"4、无法找到动态链接库aced.dll于指定的路径为系统变量PATH加上D:\ACE_wrappers\bin静态包含:工程-设置-C/C++-预处理程序定义中加入,ACE_AS_STATIC_LIBS例1server编译后生成server.exe16Kserverd.exe97Kservers.exe124Kserversd.exe669K(servers.exe较适合发布)例2client编译后生成client.exe16Kclientd.exe97Kclients.exe124Kclientsd.exe669K(clients.exe较适合发布)测试clients127.0.0.11919servers1919下面是马维达老师写的:(转自huihoo)发表于:3/31/2003-04:24翻译的一点小东西,希望能对大家有帮助。其实也不敢称为是翻译的,水平太烂了,大家将就着看吧:)使用MicrosoftVisualC++在win32平台上生成和安装ACE:注意:关于MSVC5.0和ServicePack3的使用有一些问题,过去一些用户在sp2中使用良好的代码在sp3种却会引发一些问题。感谢Bill的细心查找,这一神秘的问题被解决了。答案?(哦,这儿有一个好答案。。。)这可能是因为有多个版本的sp3较早版本的sp3有一些bug,而后来的版本修正了这些错误,从微软网站上下载的1998年6月16日版本的sp3是一个良好的版本。如果X03-50158是那些拥有sp3的光盘序列号的一部分,那么这些版本也是良好的。但是不管任何版本的sp3,其STL的实现都有错误,详细情况请浏览。感谢BenEng对这些错误的修正。现在的SP4(希望只有一个版本)已经修正了STL中的死锁问题。我们现在将不再积极的支持MSVC4.X以及以前的版本,ACE可和这些编译器一起工作但是可能会丢失一些好处。1.将ACE分发包界压缩到一个目录中,这将在那个目录中生成一个包含ACE的目录ACE_wrappers。接下来的步骤中假设ACE分发包被解压缩到ACE_ROOT=C:\ACE_wrappers中,因此ACE将会存在于ACE_ROOT\ace目录中。2.在ACE_ROOT\ace目录中创建一个文件,命名为config.h,其内容为:#include"ace/config-win32.h"3.在VC++中加载ACE的工程文件(ACE_ROOT\ace\ace.dsw)4.每个工程都会包含多个配置,这些配置是Debug/Release,MFC/Non-MFCh和Static/Dynamic库版本等选项的混合。确定你所需要的构造(例如,调试代码需要ACE的调试版本)。所有这些不同的配置可以为你提供一些便利,你可以或者采用不同的模式以构造不同配置的应用,或者通过改变ace\config.h来改变在NT上的不同配置。注意:如果你使用动态连接,请保证ACE_ROOT\bin被添加到你的path环境变量中,否则你将在运行程序的时候碰到寻找ace.dll或者aced.dll的问题。5.如果你在WindowsNT或者Windows2k上构建ACE,你可以马上开始构造她而不需任何改变,如果你在Windows9x/me上构建,那么你必须在ACE_ROOT\ace\config.h.的#include块之前添加一行:#defineACE_HAS_WINNT40这将在ACE中移掉一些WinNT/Win2K中特有的代码。6.如果你希望使用MSVC自带的标准C++头文件(C++StandardDraft2种定义的iostream,cstdio…..),则应该在ACE_ROOT\ace\config.h.的#include块之前添加一行:#defineACE_HAS_STANDARD_CPP_LIBRARY17.如果需要和MFC一起使用,增加如下定义到你的config.h文件中,注意,如果你想使用spawn一个新的线程,则必须保证使用THR_USE_AFX标志来spawn线程。#defineACE_HAS_MFC1缺省的,ACE工程使用MSVC运行时的动态DLL版本,你也可以选择使用ACE的不关心运行时库的静态(LIB)版本。我们选择仅与动态运行时库连接的原因在于基本上所有的NT机器上都会安装这些库,而我们则可以因此而减小代码的大小。如果你希望ACE与MFC的静态版本连接,则可以在config.h中定义ACE_USES_STATIC_MFC。然而,如果你希望静态的连接所有的库(包括MSVC运行时库),就需要自己修改工程文件了。8.如果要构建ACE的静态版本,则需要在config.h中定义ACE_AS_STATIC_LIBS,此宏在那些希望使用ACE的静态版本的应用工程中也必须定义。作为一个可选项,你可以在#includestatementinACE_ROOT\ace\config.h.之前添加一行:#defineACE_NO_INLINE来取消函数内联从而减小静态库(和你的运行码)的大小。9.ACEDLL和LIB库的命名规则:我们使用如下的规则明明使用MSVC的ACE的DLL和LIB文件。"Library/DLLname"+(是静态库吗?"s":"")+(包含调试信息?"d":"")+{".dll"|".lib"}在MSVC环境中使用ACE的信息可以在这里找到。-----------------------------------------------------------------------一、安装TAO,需要先编译并安装ACE。二、ACE的编译和安装步骤见。如果你英文程度还可以的话,最好直接阅读这两篇文档。说到底,中文文档只是“权宜之计”;汉语并不太适合进行逻辑性的表述。但我还是把其中的一些段落编译如下(VC6.0+ACE-5.2.1+TAO-1.2.1):ACE的编译与安装一般规则ACE中的许多特性可以通过在$ACE_ROOT/ace/config.h中定义一些宏来进行修改。这些宏应该总是在包括针对你的平台的配置文件之前出现。但是,如果你想要取消/重定义在针对特定平台的配置文件中定义的宏,#undef应该在配置文件之后出现。如果你计划在多种平台上编译ACE,你也许需要考虑克隆源码树。步骤:1.将ACE发布文件解压缩到某个目录中,在其中将会创建含有所有文件的ACE_wrappers目录。在下面的步骤中,ACE_wrappers目录将以ACE_ROOT为名来指称。2.在ACE_ROOT\ace目录中创建一个名为config.h的文件,在其中包含:#include“ace/config-win32.h”3.现在加载ACE的项目文件(ACE_ROOT\ace\ace.dsw)。4.其中的每个项目都含有若干不同的配置(可混合Debug/Release、MFC/Non-MFC、Static/Dynamiclibrary版本)。你可以从中选择你所需的配置,或是使用ace/config.h来进行调整。注意:如果你使用动态链接库,在运行使用ACE的程序时,确定你在PATH中包括了ACE_ROOT\bin。5.如果你的系统平台是WinNT或2000,那么无需任何改动你就可以开始编译了。如果是Windows9x/Me,你需要在ACE_ROOT\ace\config.h中的#include语句之前增加:#defineACE_HAS_WINNT406.如果你想要使用MSVC标准C++头(iostream、cstdio……),在ACE_ROOT\ace\config.h中的#include语句之前增加:#defineACE_HAS_STANDARD_CPP_LIBRARY17.要与MFC一起使用ACE,再增加下面的定义:#defineACE_HAS_MFC1注意如果你想要通过CWinThread派生新线程,一定要设置THR_USE_AFX。在缺省情况下,所有的ACE项目都使用DLL版本的MSVC运行时库。尽管如此,你仍然可以选择使用static(LIB)版本的ACE库。如果你想要将MFC作为静态库链接进ACE,你可以在config.h文件中定义ACE_USES_STATIC_MFC。但如果你想要静态链接所有的东西(包括MSVC运行时库),你就需要自己修改ACE的项目文件。8.ACE的静态版本是通过定义ACE_AS_STATIC_LIBS来编译的。在链接静态ACE库的应用项目中也应该使用这个宏。你也可以在config.h文件中增加#defineACE_NO_INLINE来取消函数内联并减小静态库(和你的可执行程序)的大小。9.ACEDLL和LIB的命名方案:"Library/DLL名"+(是否为静态库?"s":"")+(是否启用了Debugging?"d":"")+{".dll"|".lib"}10.配置完毕后编译即可。选择dll版本,编译生成的dll文件在ACE_ROOT\bin中,相应的lib文件在ACE_ROOT\ace中。ACE测试各测试程序在ACE_ROOT\tests中。在其中也有一个工作空间文件可用来编译所有的测试程序(tests.dsw)。一旦你编译了所有测试程序(可使用批编译),你可以运行tests目录中的perl脚本run_test.pl或批处理文件run_tests.bat来进行所有测试。TAO的编译与安装确定VC的CL.EXE在你的访问路径上。设置ACE_ROOT或TAO_ROOT环境变量。例如:setACE_ROOT=C:\ACE_wrappersTAO最好放置在ACE_wrappers(这也是缺省情况)。1.确定ACE已经编译和安装。2.确定ACE_wrappers\bin已在“Tools|Options”中的“ExecutableDirectories”中列出。如果在MSVC下使用TAO_IDL编译器就需要进行此设置。3.加载tao\TAO.dsw,并编译TAO库。4.要编译Cubit测试,加载performance-tests\Cubit\TAO\IDL_Cubit\IDL_Cubit.dsw,并编译客户和服务器。TAOACE.dswTAOACE.dsw是一个VisualC++5.0/6.0工作空间文件,它加载的项目包括ACE、TAO、TAO_IDL(编译器)、gperf、orb服务库,以及一些单独的可执行程序(比如NamingService,等等)。它可以用于编译所有的用于编译/运行TAO应用的文件。三、我选择编译的是dll版本(Release),并在ACE的config.h文件中定义了“#defineACE_HAS_STANDARD_CPP_LIBRARY1”。编译后我所得到的ace.dll的大小是1.13MB,相应的ace.lib的大小是1.77MB;TAO.dll的大小是1.47MB,相应的TAO.lib的大小是2.74MB。所有文件约有MB,包括源程序、编译生成的中间文件,等等,但有些例子及服务我没有编译。祝学有所成!马维达-------------------------------------将ACE与VC6集成在一起一.打开Tools>Options>Directories加入以下内容:ExecutableFile:C:\ACE_wrappers\binIncludeFile:C:\ACE_wrappers\C:\ACE_wrappers\TAOC:\ACE_wrappers\TAO\orbsvcsLibraryFiles:C:\ACE_wrappers\aceC:\ACE_wrappers\TAO\taoC:\ACE_wrappers\TAO\orbsvcs\orbsvcsSourceFiles:C:\ACE_wrappers\aceC:\ACE_wrappers\TAO\taoC:\ACE_wrappers\TAO\orbsvcs\orbsvcs二.加入C:\ACE_wrappers\bin到系统环境变量path中三.设置系统变量ACE_ROOT=C:\ACE_wrappersTAO_ROOT=C:\ACE_wrappers\TAO
② 用c语言编写的程序怎么把它做成可以运用的软件
1、建立一个可执行过程是先把源程序编译成目标文件(带.OBJ扩展名的机器代码文件),然后再把目标文件通过连接程序转换成可执行文件(带.EXE扩展名)。
2、执行过程不同的开发环境有的不同,这里以TC2.0为例说明:
a、单个文件源代码的编译:
假设文件名为:hello.c,文件内容为:main(){printf("Hello World.");}
1)用TC2.0集成环境生成可执行文件:
在TC集成环境IDE中打开源代码文件hello.c,然后按F9,即可生成可执行文件hello.exe。
2)从命令行直接编译、连接,生成可执行文件:
在命令行执行tcc可以编译c语言源文件,并把它连接成可执行文件。
格式:tcc [选择项 选择项 选择项 ...] 文件名 文件名,如:tcc hello
b、多个文件源代码的编译:
1)先后输入并编辑4个文件,并以file1.c、file2.c、file3.c、file4.c存储在磁盘上。
2)在编译状态下,建立一个“项目文件”,它不包括任何程序语句,而只包括组成程序的所有文件的文件名 file3 file1 file2 file(扩展名可以省略)
3)将以上内容存盘,文件名自定,但扩展名必须为.prj(表示为工程文件)。
4)在TC环境中的Project菜单找到Project name,打开刚存的.prj文件。
5)按F9进行编译连接。
6)按Ctrl+F9,运行可生成的可执行程序。
c、多文件也可以在命令行单个编译,然后连接。
③ 怎么把图片文件在SQL server数据库中保存为二进制记录(注:不是用图片路径),最好有源代码。
首先在SQL Server中建立一个图片存储的数库表,ImageData Column为图象二进制数据储存字段,ImageContentType Column为图象文件类型记录字段,
ImageDescription Column为储蓄图象文件说明字段,ImageSize Column为储存图象文件长度字段,结构如下:
CREATE TABLE [dbo].[ImageStore] (
[ImageID] [int] IDENTITY (1, 1) NOT NULL ,
[ImageData] [image] NULL ,
[ImageContentType] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[ImageDescription] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
[ImageSize] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] 向数据库中存入图片:using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Data.SqlClient;namespace UpLoadFile
{
/// <summary>
/// Summary description for UpLoadImage.
/// </summary>
public class UpLoadImage : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button btnUpload;
protected System.Web.UI.WebControls.Label txtMessage;
protected System.Web.UI.WebControls.TextBox txtDescription;
protected System.Web.UI.HtmlControls.HtmlTable Table1;
protected System.Web.UI.HtmlControls.HtmlInputFile UP_FILE;//HtmlControl、WebControls控件对象
protected Int32 FileLength = 0;
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
if(!Page.IsPostBack)
{
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.btnUpload.Click += new System.EventHandler(this.btnUpload_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void btnUpload_Click(object sender, System.EventArgs e)
{
HttpPostedFile UpFile = this.UP_FILE.PostedFile; //HttpPostedFile对象,用于读取图象文件属性
FileLength = UpFile.ContentLength; //记录文件长度
try
{
if (FileLength == 0)
{ //文件长度为零时
txtMessage.Text = "<b>请你选择你要上传的文件</b>";
}
else
{
Byte[] FileByteArray = new Byte[FileLength]; //图象文件临时储存Byte数组
Stream StreamObject = UpFile.InputStream; //建立数据流对像
//读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
StreamObject.Read(FileByteArray,0,FileLength);
//建立SQL Server链接
SqlConnection Con = new SqlConnection("uid=sa;pwd= ;initial catalog=EE;data source=127.0.0.1;Connect Timeout=90");
String SqlCmd = "INSERT INTO ImageStore (ImageData, ImageContentType, ImageDescription, ImageSize) VALUES (@Image, @ContentType, @ImageDescription, @ImageSize)";
SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
CmdObj.Parameters.Add("@Image",SqlDbType.Binary, FileLength).Value = FileByteArray;
CmdObj.Parameters.Add("@ContentType", SqlDbType.VarChar,50).Value = UpFile.ContentType; //记录文件类型
//把其它单表数据记录上传
CmdObj.Parameters.Add("@ImageDescription", SqlDbType.VarChar,200).Value = txtDescription.Text;
//记录文件长度,读取时使用
CmdObj.Parameters.Add("@ImageSize", SqlDbType.BigInt,8).Value = UpFile.ContentLength;
Con.Open();
CmdObj.ExecuteNonQuery();
Con.Close();
txtMessage.Text = "<p><b>OK!你已经成功上传你的图片</b>";//提示上传成功
}
}
catch (Exception ex)
{
txtMessage.Text = ex.Message.ToString();
}
} }
}
将数据库中的图片数据读出来显示:using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Data.SqlClient;namespace UpLoadFile
{
/// <summary>
/// Summary description for ReadImage.
/// </summary>
public class ReadImage : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
if(!Page.IsPostBack)
{
string id = Request.QueryString["ImgID"]; //得到图片的ID if (id != ""&& id != null && id != string.Empty)
{
ShowImage( id);
}
}
} #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion public void ShowImage(string id)
{
int ImgID = Convert.ToInt32(id); //ImgID为图片ID
//建立数据库链接
SqlConnection Con = new SqlConnection("uid=sa;pwd= ;initial catalog=EE;data source=127.0.0.1;Connect Timeout=90");
String SqlCmd = "SELECT * FROM ImageStore WHERE ImageID = @ImageID";
SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
CmdObj.Parameters.Add("@ImageID", SqlDbType.Int).Value = ImgID;
try
{
Con.Open();
SqlDataReader SqlReader = CmdObj.ExecuteReader();
SqlReader.Read();
Response.ContentType = (string)SqlReader["ImageContentType"];//设定输出文件类型
//输出图象文件二进制数制
Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]);
Response.End();
Con.Close();
}
catch
{
Response.Write("<script>alert('该图片不存在');</script>");
return;
} }
}
}
④ java软件开发的代码规范
1、组织与风格
(1).关键词和操作符之间加适当的空格。
(2).相对独立的程序块与块之间加空行
(3).较长的语句、表达式等要分成多行书写。
(4).划分出的新行要进行适应的缩进,使排版整齐,语句可读。
(5).长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
(6).循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分。
(7).若函数或过程中的参数较长,则要进行适当的划分。
(8).不允许把多个短语句写在一行中,即一行只写一条语句。
(9).函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格。
注:如果大家有兴趣可以到安安DIY创作室博客,有相关说明性的文章和解释。
2、注解
Java 的语法与 C++ 及为相似,那么,你知道 Java 的注释有几种吗?是两种?
// 注释一行
/* ...... */ 注释若干行
不完全对,除了以上两种之外,还有第三种,文档注释:
/** ...... */ 注释若干行,并写入 javadoc 文档
注释要简单明了。
String userName = null; //用户名
边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。
在必要的地方注释,注释量要适中。注释的内容要清楚、明了,含义准确,防止注释二义性。
保持注释与其描述的代码相邻,即注释的就近原则。
对代码的注释应放在其上方相邻位置,不可放在下面。对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每个域的注释应放在此域的右方;
同一结构中不同域的注释要对齐。
变量、常量的注释应放在其上方相邻位置或右方。
全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及存取时注意事项等的说明。
在每个源文件的头部要有必要的注释信息,包括:文件名;版本号;作者;生成日期;模块功能描述(如功能、主要算法、内部各部分之间的关系、该文件与其它文件关系等);主要函数或过程清单及本文件历史修改记录等。
/**
* Copy Right Information : Neusoft IIT
* Project : eTrain
* JDK version used : jdk1.3.1
* Comments : config path
* Version : 1.01
* Modification history :2003.5.1
* Sr Date Modified By Why & What is modified
* 1. 2003.5.2 Kevin Gao new
**/
在每个函数或过程的前面要有必要的注释信息,包括:函数或过程名称;功能描述;输入、输出及返回值说明;调用关系及被调用关系说明等
/**
* Description :checkout 提款
* @param Hashtable cart info
* @param OrderBean order info
* @return String
*/
public String checkout(Hashtable htCart,
OrderBean orderBean)
throws Exception{
}
javadoc注释标签语法
@author 对类的说明 标明开发该类模块的作者
@version 对类的说明 标明该类模块的版本
@see 对类、属性、方法的说明 参考转向,也就是相关主题
@param 对方法的说明 对方法中某参数的说明
@return 对方法的说明 对方法返回值的说明
@exception 对方法的说明 对方法可能抛出的异常进行说明
3、命名规范
定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失。(这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性)较短的单词可通过去掉元音形成缩写;要不然最后自己写的代码自己都看不懂了,那可不行。
较长的单词可取单词的头几发符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级。
使用匈牙利表示法
Package 的命名
Package 的名字应该都是由一个小写单词组成。
package com.neu.util
Class 的命名
Class 的名字必须由大写字母开头而其他字母都小写的单词组成,对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。
public class ThisAClassName{}
Class 变量的命名
变量的名字必须用一个小写字母开头。后面的单词用大写字母开头
userName , thisAClassMethod
Static Final 变量的命名
static Final 变量的名字应该都大写,并且指出完整含义。
/**
*DBConfig PATH
**/
public static final String
DB_CONFIG_FILE_PATH =com.neu.etrain.dbconfig;
参数的命名
参数的名字必须和变量的命名规范一致。
数组的命名
数组应该总是用下面的方式来命名:
byte[] buffer;
而不是:
byte buffer[];
方法的参数
使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字:
SetCounter(int size){
this.size = size;
}
4、文件样式
所有的 Java(*.java) 文件都必须遵守如下的样式规则:
版权信息
版权信息必须在 java 文件的开头,比如:
/*
* Copyright ? 2000 Shanghai XXX Co. Ltd.
* All right reserved.
*/
其他不需要出现在 javadoc 的信息也可以包含在这里。
Package/Imports
package 行要在 import 行之前,import 中标准的包名要在本地的包名之前,而且按照字母
顺序排列。如果 import 行中包含了同一个包中的不同子目录,则应该用 * 来处理。
package hotlava.net.stats;
import java io.*;
import java.util.Observable;
import hotlava.util.Application;
这里 java。io.* 使用来代替InputStream and OutputStream 的。
Class
接下来的是类的注释,一般是用来解释类的。
/**
* A class representing a set of packet and byte counters
* It is observable to allow it to be watched, but only
* reports changes when the current set is complete
*/
接下来是类定义,包含了在不同的行的 extends 和 implements
public class CounterSet
extends Observable
implements Cloneable
Class Fields
接下来是类的成员变量:
/**
* Packet counters
*/
protected int[] packets;
public 的成员变量必须生成文档(JavaDoc)。proceted、private和 package 定义的成
员变量如果名字含义明确的话,可以没有注释。
存取方法
接下来是类变量的存取的方法。它只是简单的用来将类的变量赋值获取值的话,可以简单的
写在一行上。
/**
* Get the counters
* @return an array containing the statistical data. This array has been
* freshly allocated and can be modified by the caller.
*/
public int[] getPackets() { return Array(packets, offset); }
public int[] getBytes() { return Array(bytes, offset); }
public int[] getPackets() { return packets; }
public void setPackets(int[] packets) { this.packets = packets; }
其它的方法不要写在一行上
构造函数
接下来是构造函数,它应该用递增的方式写(比如:参数多的写在后面)。
访问类型 (public, private 等.) 和 任何 static, final 或 synchronized 应该在一行
中,并且方法和参数另写一行,这样可以使方法和参数更易读。
public
CounterSet(int size){
this.size = size;
}
克隆方法
如果这个类是可以被克隆的,那么下一步就是 clone 方法:
public
Object clone() {
try {
CounterSet obj = (CounterSet)super.clone();
obj.packets = (int[])packets.clone();
obj.size = size;
return obj;
}catch(CloneNotSupportedException e) {
throw new InternalError(Unexpected CloneNotSUpportedException: +
e.getMessage());
}
}
类方法
下面开始写类的方法:
/**
* Set the packet counters
* (such as when restoring from a database)
*/
protected final
void setArray(int[] r1, int[] r2, int[] r3, int[] r4)
throws IllegalArgumentException
{
//
// Ensure the arrays are of equal size
//
if (r1.length != r2.length || r1.length != r3.length || r1.length != r4.length)
throw new IllegalArgumentException(Arrays must be of the same size);
System.array(r1, 0, r3, 0, r1.length);
System.array(r2, 0, r4, 0, r1.length);
}
toString 方法
无论如何,每一个类都应该定义 toString 方法:
public
String toString() {
String retval = CounterSet: ;
for (int i = 0; i < data.length(); i++) {
retval += data.bytes.toString();
retval += data.packets.toString();
}
return retval;
}
}
main 方法
如果main(String[]) 方法已经定义了, 那么它应该写在类的底部.
5、代码可读性
避免使用不易理解的数字,用有意义的标识来替代。
不要使用难懂的技巧性很高的语句。
源程序中关系较为紧密的代码应尽可能相邻。
6、代码性能
在写代码的时候,从头至尾都应该考虑性能问题。这不是说时间都应该浪费在优化代码上,而是我们时刻应该提醒自己要注意代码的效率。比如:如果没有时间来实现一个高效的算法,那么我们应该在文档中记录下来,以便在以后有空的时候再来实现她。
不是所有的人都同意在写代码的时候应该优化性能这个观点的,他们认为性能优化的问题应该在项目的后期再去考虑,也就是在程序的轮廓已经实现了以后。
不必要的对象构造
不要在循环中构造和释放对象
使用 StringBuffer 对象
在处理 String 的时候要尽量使用 StringBuffer 类,StringBuffer 类是构成 String 类的基础。
String 类将 StringBuffer 类封装了起来,(以花费更多时间为代价)为开发人员提供了一个安全的接口。当我们在构造字符串的时候,我们应该用 StringBuffer 来实现大部分的工作,当工作完成后将 StringBuffer 对象再转换为需要的 String 对象。比如:如果有一个字符串必须不断地在其后添加许多字符来完成构造,那么我们应该使用StringBuffer 对象和她的 append() 方法。如果我们用 String 对象代替StringBuffer 对象的话,会花费许多不必要的创建和释放对象的 CPU 时间。大家可以来安安DIY创作室一起讨论。
避免太多的使用 synchronized 关键字避免不必要的使用关键字 synchronized,应该在必要的时候再使用她,这是一个避免死锁的好方法。
7、编程技巧
byte 数组转换到 characters
为了将 byte 数组转换到 characters,你可以这么做:
Hello world!.getBytes();
Utility 类
Utility 类(仅仅提供方法的类)应该被申明为抽象的来防止被继承或被初始化。
初始化
下面的代码是一种很好的初始化数组的方法:
objectArguments = new Object[] { arguments };
枚举类型
JAVA 对枚举的支持不好,但是下面的代码是一种很有用的模板:
class Colour {
public static final Colour BLACK = new Colour(0, 0, 0);
public static final Colour RED = new Colour(0xFF, 0, 0);
public static final Colour GREEN = new Colour(0, 0xFF, 0);
public static final Colour BLUE = new Colour(0, 0, 0xFF);
public static final Colour WHITE = new Colour(0xFF, 0xFF, 0xFF);
}
这种技术实现了RED, GREEN, BLUE 等可以象其他语言的枚举类型一样使用的常量。
他们可以用 '==' 操作符来比较。
但是这样使用有一个缺陷:如果一个用户用这样的方法来创建颜色 BLACK new Colour(0,0,0)
那么这就是另外一个对象,'=='操作符就会产生错误。她的 equal() 方法仍然有效。由于这个原因,这个技术的缺陷最好注明在文档中,或者只在自己的包中使用。
8、编写格式
代码样式
代码应该用 unix 的格式,而不是 windows 的(比如:回车变成回车+换行)
文档化
必须用 javadoc 来为类生成文档。不仅因为它是标准,这也是被各种 java 编译器都认可的方法。使用 @author 标记是不被推荐的,因为代码不应该是被个人拥有的。
缩进
缩进应该是每行2个空格. 不要在源文件中保存Tab字符. 在使用不同的源代码管理工具时Tab字符将因为用户设置的不同而扩展为不同的宽度.如果你使用 UltrEdit 作为你的 Java 源代码编辑器的话,你可以通过如下操作来禁止保存Tab字符, 方法是通过 UltrEdit中先设定 Tab 使用的长度室2个空格,然后用 Format|Tabs to Spaces 菜单将 Tab 转换为空格。
页宽
页宽应该设置为80字符. 源代码一般不会超过这个宽度, 并导致无法完整显示, 但这一设置也可以灵活调整. 在任何情况下, 超长的语句应该在一个逗号或者一个操作符后折行. 一条语句折行后, 应该比原来的语句再缩进2个字符.
{} 对
{} 中的语句应该单独作为一行. 例如, 下面的第1行是错误的, 第2行是正确的:
if (i>0) { i ++ }; // 错误, { 和 } 在同一行
if (i>0) {
i ++
}; // 正确, { 单独作为一行
} 语句永远单独作为一行.如果 } 语句应该缩进到与其相对应的 { 那一行相对齐的位置。
括号
左括号和后一个字符之间不应该出现空格, 同样, 右括号和前一个字符之间也不应该出现空格. 下面的例子说明括号和空格的错误及正确使用:
CallProc( AParameter ); // 错误
CallProc(AParameter); // 正确
不要在语句中使用无意义的括号. 括号只应该为达到某种目的而出现在源代码中。下面的例子说明错误和正确的用法:
if ((I) = 42) { // 错误 - 括号毫无意义
if (I == 42) or (J == 42) then // 正确 - 的确需要括号
9、代码编译
1.编写代码时要注意随时保存,并定期备份,防止由于断电、硬盘损坏等原因造成代码丢失。
2.同一项目组内,最好使用相同的编辑器,并使用相同的设置选项。
3.合理地设计软件系统目录,方便开发人员使用。
4.打开编译器的所有告警开关对程序进行编译。
5.在同一项目组或产品组中,要统一编译开关选项。
6.使用工具软件(如Visual SourceSafe)对代码版本进行维护。如果大家有不明白的可以到安安DIY创作室留言。
10、可移植性
Borland Jbulider 不喜欢 synchronized 这个关键字,如果你的断点设在这些关键字的作用域内的话,调试的时候你会发现的断点会到处乱跳,让你不知所措。除非必须,尽量不要使用。
换行
如果需要换行的话,尽量用 println 来代替在字符串中使用
。
你不要这样:
System.out.print(Hello,world!
);
要这样:
System.out.println(Hello,world!);
或者你构造一个带换行符的字符串,至少要象这样:
String newline = System.getProperty(line.separator);
System.out.println(Hello world + newline);
PrintStream
PrintStream 已经被不赞成(deprecated)使用,用 PrintWrite 来代替它。
⑤ 推荐一些常用电脑软件
http://www.seekerbase.com/bbs/dispost.asp?BoardID=36&PostID=8219&Page=0
WinRAR v3.42 简体中文注册版 V3.50 Beta 7流行好用的压缩工具,支持鼠标拖放及外壳扩展,完美支持 ZIP 档案,内置程序可以解开 CAB、ARJ、LZH、TAR、GZ、ACE、UUE、BZ2、JAR、ISO 等多种类型的压缩文件;压缩率相当高,具有分卷压缩、制作自解压文件、加密压缩等功能
=====下载工具=====
点此下载—FlashGet v1.65 国际版 v1.65 注册机1.65 注册码:fgf- 大名鼎鼎的多任务多线程断点续传下载管理器,被誉为国内王牌下载工具。可以说是一个集速度与管理于一身的下载软件。其最大的特点就在于对下载文件的管理,通过JetCar下载的文件可按树状结构分门别类的保存起来,新版本已经支持MMS、RTSP等流媒体文件下载
Net Transport v1.94c提起下载,人们马上就会想到NetAnts、FlashGet等传统的下载利器。它们凭借着断点续传和多线程下载等实用功能而闻名于世。可是,随着宽带的普及就渐渐显出了疲态。宽带一话不再满足于在WEB或者是ftp服务器上下载文件。流媒体成了他们新的话题。网上广泛流传的流媒体下载工具是Stream VCR,可是它只支持单线程下载,使得下载速度大大减慢。Net Transport支持HTTP、FTP、MMS和RSTP协议,除了RSTP协议外,对于其他的协议均能实现多线程的断点续传
PUB Downloader v1.6 简体中文版 所谓PUB就是Public ftp的简称,您常在下载文件碰到需要使用PUB Downloader软体下载时,是不是就没辄了呢!不要怕!就是使用此软体来下载一些经过转换保护的Public ftp服务器内的文件。使用方法:先将密码网址复制贴到密钥输入栏里,按连线完后点选左上角资料指定下载到何处,再选择pub里你欲下载的档案再按play键即可
eMule 简体中文版 0.46a VeryCD Build 0611
eMule 0.45b CN-4 Bulid 159 中文安装版(中国驴)推荐使用中国驴的Mod eMule是以eDonkey2000网络为基础的新型P2P文件分享工具,不但提供了所有eDonkey的标准功能,还提供了许多额外的功能,比如支持上榜、证书等,因而受到许多网友的喜爱
KuGoo(酷狗) 2.052 KuGoo是国内最大的P2P音乐共享软件,拥有超过数亿的共享文件资料,深受全球用户的喜爱,拥有近千万使用用户。 最新的V2版本给予用户更多的人性化功能,实行多源下载,提升平时的下载速度,经测试,最快可以达到500K/S,更快更高效率的下载搜索的歌曲。国内最先提供在线试听功能,方便用户进行选择性的下载,减少下载不喜欢的歌曲哦。娱乐主页每天会提供大量最新的娱乐资讯,欧美、中文和日韩的最新大碟,单曲排行下载让你轻松掌握最前卫的流行动态,充分享受KuGoo和您的精彩娱乐生活。 酷狗具有强大的搜索功能,支持用户从全球KUGOO用户中快速检索所需要的资料,还可以与朋友间相互传输影片、游戏、音乐、软件、图片。 快速下载功能:KUGOO拥有强大的网络连接功能,支持局域网、外网等各种网络环境,支持断点续传,实现超高速下载,。 KuGoo具备了的聊天功能,并且可以与好友共享传输文件,让聊天,音乐,下载变得更加互动,还附带多功能的播放器。 文件共享让您可以立即与伙伴之间共同分享自己电脑里的文件、数据、音乐等等。为你建立一个自由、自主、安全的世界局域网。
=====BT工具====
BitTorrent Plus! II 正式版 1.2 一个多点下载且源码公开的P2P软件,使用非常方便,就像一个浏览器插件。与以往http、FTP、 pub等下载人越多,速度越慢的方式迥然不同,BT下载的特点简单的说就是:下载的人越多,速度越快。时下BT已经成为网上交流资源最新、最酷的方式
BitComet 0.59 稳定版推荐BT用户使用,对内网用户尤其适用 BitComet是基于BitTorrent协议的p2p文件分享免费软件,支持多任务下载,文件有选择的下载;磁盘缓存,减小对硬盘的损伤;只需一个监听端口,方便手工防火墙和NAT/Router配置;在WindowsXP下能自动配置支持Upnp的NAT和XP防火墙,续传做种免扫描,速度限制等多项实用功能,以及自然方便的使用界面
BitSpirit 比特精灵 多国语言版 3.0.1.090 正式版 比特精灵(BitSpirit)是一款完全免费、高速稳定、功能强大、简单易用的BT下载软件。自发布以来以其稳定高速,功能强大,使用人性化的特点,日益受到广大用户的青睐
贪婪BT(GreedBT) v2.7.1 多语言版 贪婪BT(ABC)是在 The Shad0w''''''''s Bittorrent experimental S-5.7.6 的基础上改进而来。The Shad0w''''''''s Bittorrent experimental则是在原始的Bittorrent上改进而来。贪婪BT是应该说是超强的Bittorrent客户端,单窗口多任务,资源消耗少。ABC是一个非常棒的单窗口BT客户端,稳定,占内存非常小,速度快
=====中文输入工具=====
拼音加加 3.11 正式版 3.11 增强版
紫光拼音输入法增强版 4.0 m3 build 2
微软拼音输入法 2003 官方正式增强版
极点中文 v4.4 正式版
龙文输入平台 v3.93正式版 优秀汉字输入软件,五笔、拼音混合输入,无需切换,自动加词、反查编码等功能可以使你输入效率更高,免费使用
智能陈桥五笔v5.601
=====FTP客户端工具==
FlashFXP v3.2.0 汉化正式版注册码在安装过程中的许可协议里面注册方法请详见汉化说明 功能强大的FXP/FTP软件,融合了一些其他优秀FTP软件的优点,如像CuteFTP一样可以比较文件夹,支持彩色文字显示;像BpFTP支持多文件夹选择文件,能够缓存文件夹;像LeapFTP一样的外观界面,甚至设计思路也差相仿佛。支持文件夹(带子文件夹)的文件传送、删除;支持上传、下载及第三方文件续传;可以跳过指定的文件类型,只传送需要的文件;可以自定义不同文件类型的显示颜色;可以缓存远端文件夹列表,支持FTP代理及Socks 3&4;具有避免空闲功能,防止被站点踢出;可以显示或隐藏“隐藏”属性的文件、文件夹;支持每个站点使用被动模式等
CuteFTP Pro v7.1.06.07 汉化版汉化包中附带 BetaMaster 的破解补丁,请自行破解最好的FTP客户程序之一,如果你是CuteFTP老版本的用户,你会发现很多有用的新特色。目录比较,宏目录上载和下载,远程文件编辑,以及IE风格的工具条等等,定会令你爱不释手
FTPRush v1.0 RC6 build 0568 着名的FTP客户端FTPRush(以前叫UltraFXP)是一个高性能的FTP客户端, 通过它你可以轻松地上传下载和FXP(Ftp服务器之间的文件传输),, 完全多线程的构造, 让你自由自在地存取FTP服务器的资源, 下面列出一些主要的特性:多站台支持、多IP地址、脚本、FTP 代理、多语言支持、容易使用、多线程内核、自动CRC校验、快速连接、站台捷径等等
=====邮件客户端工具====
Foxmail v5.0.800.0 简体中文版 国内着名的Internet电子邮件客户端软件,支持全部的Internet电子邮件功能。有中文版和英文版。中文版在国内拥有众多用户,英文版的用户遍布全球二十多个国家。真正的多用户,多帐户,多POP3支持;邮箱目录树结构,可以无限建立子邮件夹和子邮箱;不再是MDI(多文档)窗口。如写邮件窗口是独立的,可视面积更大,切换更方便等
虽说平凡得如路旁一棵草,但生命和个性总是属于自己的。
【我爱的人名花有主】
【爱我的人惨不忍睹】
【不是在放荡中变坏】
【就是在沉默中变态】
发帖时间:2005-9-3 1:18:49
标题:RE:电脑装机常用软件大全
作者:梦醒时分 [编辑] [删除] [引用] 第[2]楼
DreamMail v3.0.0.5 简体中文版 DreamMail是一款专业的电子邮件软件,用于管理和收发电子邮件,支持 Windows 98/ME/NT4/2000/XP/2003 等操作系统。它采用多用户和多帐号方式来管理电子邮件,支持SMTP、eSMTP、POP3、Hotmail、Yahoo等邮件协议,真正采用多线程高速收发邮件。附带增强型远程管理,可以直接查看服务器上邮件的内容、可以在服务器上直接删除邮件;邮件过滤器、黑名单及白名单等组合使用,能有效对付垃圾邮件;DreamMail 能自动检测破坏性邮件,增强系统安全;另外,DreamMail 还支持特快专递、语音邮件、匿名发送及群组发送等
Becky! v2.21.03 汉化版Name:crsky Code:6507-3437-f766 eMail:[email protected]
虽说平凡得如路旁一棵草,但生命和个性总是属于自己的。
【我爱的人名花有主】
【爱我的人惨不忍睹】
【不是在放荡中变坏】
【就是在沉默中变态】
发帖时间:2005-9-3 1:19:00
标题:RE:电脑装机常用软件大全
作者:梦醒时分 [编辑] [删除] [引用] 第[3]楼
=====光盘虚拟刻录工具==
Daemon Tools v3.47 汉化版 一个非常棒的虚拟光驱软件,安装后不需重起即可使用,它支持PS机格式,支持加密光盘,最大的好处是可以把从网上下载的CUE、ISO、CCD、BWT、MDF等镜像文件Mount成光盘直接使用,不需要再把他们解开了
Alcohol 120%v1.9.5 Build 2802 这个光盘刻录软件的完整解决方案,能完整的仿真原始光盘片,让你能不必将光盘映像文件刻录出来便可以使用虚拟光驱执行虚拟光盘且其效能比实际光驱更加强大;支持多种映像档案格式,你可以利用其它软件所产生的光盘映像文件直接挂载进Alcohol 120%之虚拟光驱中,便可直接读取其内容;你也可以直接将CD、DVD或光盘映像文件刻录至空白 CD-R / CD-RW / DVD-R / DVD-RW / DVD-RAM / DVD+RW 之中,而不必透过其它的刻录软件,方便你对光盘及映像文件的管理
WinISO v5.3 简体中文特别版
UltraISO Media Edition 简体中文版 7.6.1.1125
注册码在安装过程中的许可协议里面 7.5.5.1012SN:73BE-8D23-18C6-1D1D 一个类似于WinISO的ISO文件编辑工具,界面友好,方便的双窗口操作,能制作启动光盘映像。和WinISO相对比,可能制作启动光盘镜像的能力要强,而且网友反映稳定性也好于WinISO
DVDIdle Pro v5.9.3.0 多国语言版 大家经常让自己的DVD-ROM用于DVD影片播放,从头到尾勤奋的DVD得不到丝毫的休息,有时候还碰到花碟滥碟,严重影响了DVD的寿命....,而DVDIdle可以缓解这一问题,它利用了Smart Read-Ahead技术,将相关资料存储到硬盘的缓存中,以减轻DVD-ROM的工作负担,能够延长DVD-ROM的使用寿命为原来的2-8倍
=====图像浏览工具====
ACDSee PowerPark 7.0 Build 102 V7.0 Build 102汉化补丁注意:这是 ACDSee 7.0 build 102 PowerPack 的简体中文补丁,适用于 ACDSee 7.0 build 102 PowerPack 版本,也可用于标准版。安装时建议使用 Trial 模式安装,汉化后即为破解版,无需激活。 ACDSee是目前最流行的数字图象处理软件,它能广泛应用于图片的获取、管理、浏览、优化甚至和他人的分享!使用 ACDSee,你可以从数码相机和扫描仪高效获取图片,并进行便捷的查找、组织和预览,超过 50 种常用多媒体格式被一网打尽!作为最重量级看图软件,它能快速、高质量显示您的图片,再配以内置的音频播放器,我们就可以享用它播放出来的精彩幻灯片了。Acdsee 能处理如Mpeg之类常用的视频文件。此外ACDSee是您最得心应手的图片编辑工具,轻松处理数码影像,拥有的功能像去除红眼、剪切图像、锐化、浮雕特效、曝光调整、旋转、镜像等等,还能进行批量处理哦
ACDSee Classic v2.44 汉化版 高性能的看图程序,支持 BMP,GIF,JPG,TGA,TIF 等各种常见的图形文件格式,图片打开速度极快;ACDSee Classic版本并不包含太多的功能,可以说是一个纯粹的看图软件,所以要比ACDSee小得多
黄河Flash播放器 v7.63 “黄河Flash播放器”,可以播放各类Flash文件,使用不规则界面,可保存列表文件、打开开列表文件、清空列表,可以自定义列表,自动更新功能、从IE中拖放播放、IE右键播放功能等
=====屏幕截图工具====
HyperSnap-DX v5.63.00 汉化版 提供专业级影像效果,也可让您轻松地抓取屏幕画面。支持抓取使用DirectX技术之游戏画面及DVD视频,并且采用新的去背景功能让您将抓取后的图形去除不必要的背景;预览功能也可以正确地显示您的图打印出来时会是什么模样等
TechSmith SnagIt v7.22 v7.22汉化补丁Name:crsk Code:BF3909BC382BB17988 一个强大的屏幕捕捉程序,不仅能捕捉Windows下的屏幕,也能捕捉DOS的,存盘支持的图形格式也很多;它不仅可以撷取整个画面,还可以做动态影像撷取,文字撷取等,其功能之强大,让人无法想象
=====网络浏览工具====
Internet Explorer v6.0 Build 2800 简体中文完全版
MyIE2 v0.9.27.68 豪华版 Maxthon 傲游浏览器 豪华版 1.3.1 Maxthon 是一个高度可定制的强大 Web 浏览器. 它基于 Internet Explorer 内核(可能正是您当前使用的默认浏览器), 这意味着它的效果和您在 IE 中看到的效果完全相同, 同时它还给您提供如下的额外功能... 多页面浏览界面、鼠标手势、超级托拽、隐私保护、广告猎手、Google Bar 支持、外部工具栏、自定义皮肤在经过一年多的开发, 在 1.0 版本即将发布之际, MyIE2 最终更名为 Maxthon.这样做的主要原因是我们需要一个更能表现它的强大和不会引起误会的名称(不知道大家还记得 MyIE3 事件没有). 与 MyIE2 一样, Maxthon 也是免费软件, 它继承了 MyIE2 的所有强大功能, 并在易用性和用户亲和力方面着重进行了改善.感谢这些日子的支持. 让我们做得更好!
GreenBrowser 多语言版 3.1.0730GreenBrowser作为一款IE内核多页面浏览器,不断汇集各家长处和经验,并吸取来自用户的反馈,以及自身独到的创新设计,力争实现更实用、更易用、更快捷、更稳定的宗旨。就象名字所言,绿色、免费、免安装。一用上她,无论是从网页的浏览效率、全方位的鼠标操作性、用户定制的多样化、方便细致的搜索栏、自动执行脚本插件等各种特性中,您都能切实的体验到她所带来的网上生活的方便感和贴心感
Mozilla Firefox 1.0.6简体中文版Mozilla Firefox是一个自由的,开放源码的浏览器,适用于 Windows, Linux 和 MacOS X平台,它体积小速度快,还有其它一些高级特征,主要特性有:标签式浏览,使上网冲浪更快;可以禁止弹出式窗口;自定制工具栏;扩展管理;更好的搜索特性;快速而方便的侧栏.这个版本做了脱胎换骨的更新,代码更优秀,功能更强大,包括安装程序,界面和下载管理器都作了改进。精品汉化插件使用方法:点击 '菜单"--"工具"--''扩展'',把.xpi文件拖进弹出窗口里,稍后就可以看到Firefox会询问你是否要安装这个插件,点击是即可,重启浏览器
GoSuRF Browser 2005 2.62.508.6225最IN的多页面浏览器!重现最逼真的IE界面,并提供多项贴心功能: 加强对网页图片、文字的保存,一拖就存。强大的广告过滤,可以阻挡弹出窗口和各种广告条。 超强的网页病毒保护,能防止恶意代码的袭击。稳定的工作,对意外崩溃时进行数据保护。提供方便的在线翻译和浏览代理,冲浪无障碍。 快速准确的分类搜索,轻松获得讯息
⑥ 现在学习python看什么书比较好
Python是一种多功能语言。它经常用作Web应用程序的脚本语言,嵌入到软件产品中,以及人工智能和系统任务管理。它既简单又强大,非常适合初学者和专业程序员。下面精选了51本高质量的Python书籍。里面涵盖各种各样的书籍,其中包含适用于初学者,中级和高级程序员的,也有针对特别领域的,例如,着重于编写Python游戏的,在Python界口碑极好的……最最重要的是,里面的所有的书籍都提供免费下载。
下面来看看书单。
Python核心编程第三版(中文版)
推荐几本高质量的Python书籍
1、《像计算机科学家一样思考Python》
本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程,这是一本实用的学习指南,适合没有Python编程经验的程序员阅读,本书的第2版与第1版相比,做了很多更新,将编程语言从Python 2升级成Python 3
2、《Dive Into Python 3》
这本书是Python语言的实践指南,每一章都是由一个真实、完整的代码开始,接着对其进行解释分析,最后在结尾进行总结,内容涵盖了 Python 3 及其与 Python 2 的区别
3、《Python编程快速上手》
本书是一本面向实践的Python编程使用指南。本书的目的,不仅是介绍Python语言的基础知识,而且还通过项目实践教会读者如何应用这些知识和技能。
4、《流畅的Python》
2017年最佳Python进阶书籍,本书由奋战在Python开发一线近20年的Luciano Ramalho执笔,Victor Stinner、Alex Martelli等Python大咖担纲技术审稿人,从语言设计层面剖析编程细节,兼顾Python 3和Python 2,告诉你Python中不亲自动手实践就无法理解的语言陷阱成因和解决之道,教你写出风格地道的Python代码。
5、《Python Cookbook 中文版》
本书覆盖了Python应用中的很多常见问题,并提出了通用的解决方案。书中包含了大量实用的编程技巧和示例代码,非常适合具有一定编程基础的Python程序员阅读
6、《Python编程:从入门到实践》
本书是一本针对所有层次的Python 读者而作的Python 入门书,理论与实践相结合,前面部分是基础知识,后面有实战项目帮助你更好地运用这些知识。
7、《Python自然语言处理》
本书提供了非常易学的自然语言处理入门介绍,该领域涵盖从文本和电子邮件预测过滤,到自动总结和翻译等多种语言处理技术。本书针对Python 3和NLTK 3进行了更新,而且书中准备了充足的示例和练习,可以帮助你:
8、《Python游戏编程快速上手》
这本书通过编写一个个小巧、有趣的游戏来教授Python编程,并且采用直接展示游戏的源代码并通过实例来解释编程的原理的方式。