摘要: 1. String 类 String 类是属于不可变类,任何对String的操作都会引起新的String对象的产生 String a = "a"; //假设a指向地址0x0001 a = "b";//重新赋值后a指向地址0x0002,但0x0001地址中保存的"a"依旧存在,但已经不再是a所指向的,a 已经指向了其它地址。 因此String的操作都是改变赋值地址而不是改变值操作Java代码StringS1=“abc”;For(intI=0;I<10000;I++){S1+=“def”;S1=“abc”;} 这样操作后,如果GC没 阅读全文
posted @ 2011-08-11 18:33 petercao 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 通俗的说,inflate就相当于将一个xml中定义的布局找出来. 因为在一个Activity里如果直接用findViewById()的话,对应的是setConentView()的那个layout里的组件. 因此如果你的Activity里如果用到别的layout,比如对话框上的layout,你还要设置对话框上的layout里的组件(像图片ImageView,文字TextView)上的内容,你就必须用inflate()先将对话框上的layout找出来,然后再用这个layout对象去找到它上面的组件,如: Viewview=View.inflate(this,R.layout.dialog_l... 阅读全文
posted @ 2011-08-11 14:51 petercao 阅读(309) 评论(0) 推荐(0) 编辑
摘要: volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:short flag;void test(){do1();while(flag==0);do2();} 这段程序等待内存变量flag的值变为1(怀疑此处是0,有点疑问,)之后才运行do2()。变量flag的值由别的程序更改,这个程序. 阅读全文
posted @ 2011-08-11 11:00 petercao 阅读(401) 评论(0) 推荐(0) 编辑
摘要: Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。常用的Socket类型有 阅读全文
posted @ 2011-08-11 10:48 petercao 阅读(682) 评论(0) 推荐(0) 编辑
摘要: 本文翻译自Nalaka Gamage的《Why is programming unique profession》的演讲稿。 1. 简介 有些人说编程很难,有些人认为很容易。 编程不仅依赖于你的能力,而且还取决于你工作的态度。 编程的确很难,但比起那些需要伪装、欺骗和表演来生活的恶棍或者小丑来说,真 阅读全文
posted @ 2011-08-11 10:45 petercao 阅读(532) 评论(0) 推荐(0) 编辑
摘要: Transact-SQL编程规范1. 概述1.1. 基本原则以大小写敏感编写SQL语句。尽量使用Unicode 数据类型。优先使用连接代替子查询或嵌套查询。尽量使用参数化SQL查询代替语句拼接SQL查询。禁止使用[拼音]+[英语]的方式来命名SQL对象或变量。尽量使用存储过程代替SQL语句。1.2. 基本规范建议采用Pascal样式或Camel样式命名数据库对象。大写T-SQL语言的所有关键字,谓词和系统函数。2. 命名规范在一般情况下,采用Pascal样式或Camel样式命名数据库对象,使在开发基于数据库应用程序的时候通过ORM工具生成的数据访问代码不需要调整就符合程序开发语言(比如C#)命 阅读全文
posted @ 2011-08-09 16:40 petercao 阅读(836) 评论(0) 推荐(0) 编辑
摘要: 何谓“持久化”持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。何谓“持久层”持久层(Persistence Layer),即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。何谓“对象数据映射(ORM)”ORM-Object/Relational Mapper,即“对象-关系型数据映射组件”。对于O/R,即 Object(对象)和Relational(关系型数据),表示必须同时使用面向对象和关系型数据进 阅读全文
posted @ 2011-08-09 16:33 petercao 阅读(2499) 评论(0) 推荐(0) 编辑
摘要: 原文出处:http://www.cnblogs.com/qianxudetianxia/archive/2011/06/12/2035974.htmlgit是免费的开源的分布式的版本控制系统。我说的直白点,要强调的点是每个git clone下来的版本库都是一个完整的版本库,包括所有的历史记录和版本信息,不需要依赖网络,这点在使用的过程中你一定会有感触,git不是盖的。git很快,但是这点我没有大的感觉;git易于使用,相对svn而言,我不觉得git比之简单,但是总体来说git还是比较容易的,尤其是服务器端的部署非常简易。本文仅仅介绍一下git的简单使用。关于一些不常用的东西尽量会过滤掉。1.基 阅读全文
posted @ 2011-07-20 16:36 petercao 阅读(272) 评论(0) 推荐(0) 编辑
摘要: Android源码下载(Ubuntu下拉取Android源码)http://www.cnblogs.com/qianxudetianxia/archive/2011/05/29/2060636.html最近在研究Launcher,所以不得Git源码下来看。今天我讲一下如何在Windows环境下Git源码,还以(Launcher为例).1.首先下载一个叫Msysqit工具。下面是下载地址。http://code.google.com/p/msysgit/2.安装,一直下一步,安装完毕。3.新建一个文件夹,用来存放我们Git下来的源代码。我在e:\下建立一个git文件夹,如下图:4.右击git文件 阅读全文
posted @ 2011-07-20 16:32 petercao 阅读(262) 评论(0) 推荐(0) 编辑
摘要: Git是一个分布式源代码版本管理控制程序.“Git是一个由林纳斯·托瓦兹为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。”- 维基百科中文。http://zh.wikipedia.org/zh-cn/Gitmsysgit和TortoiseGit的开发进展很快,我们在windows平台上使用的git,越来越强大了。虽然相比Linux下面的GIT还有很大差距,但相比其它版本控制系统,git 还是可以 笑傲江湖。它有如下优点:1. 它足够稳定,linux的核心就是用它来托管的。数G大的源码仓库,依然稳定如山。2. 它足够快,是所有版本控制程序中最快的一个。3. 它 阅读全文
posted @ 2011-07-20 16:23 petercao 阅读(1775) 评论(0) 推荐(0) 编辑