- 博客(50)
- 收藏
- 关注
原创 在dos中运行java程序,出现Exception in thread "main" java.lang.NoClassDefFoundError的原因
在dos中运行java程序,若出现Exception in thread “main" java.lang.NoClassDefFoundError,可以检查一下几项:环境变量配置注意JAVA_HOME、classpath、path是否配置正确。注意格式编译: javac HelloWorld.java执行: java Hello
2013-05-24 09:55:46 4513 2
转载 Android开发配置篇——Eclipse配置
http://developer.android.com/sdk/index.html1. 下载Eclipse在前面我们配置好了JDK环境后,就可以开始配置Android的集成开发环境了,官方Google推荐的集成开发环境为Eclipse,所以我们就以Eclipse作为集成开发环境。无论是在Linux平台上开发还是在Windows平台上开发,我们只需要下载相应平台的Eclipse版
2013-04-23 20:19:55 1451
转载 Android开发配置篇——Windows平台JDK安装
下载Java的开发包JDKJDK有好几个类型版本,我们只需要选择Java SE类型的版本就行了。 进入网页: http://www.oracle.com/technetwork/java/javase/downloads/index.html如下图: http://www.oracle.com/technetwork/java/javase/downloads/index.
2013-04-23 20:16:21 1545
转载 数据库约束——用户定义完整性(User-defined Integrity)
用户自定义完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。主要包括非空约束、唯一约束、检查约束、主键约束、外键约束1、非空约束(Not Null Constraint) 这个可能大家都了解,就是我们在添加那个表 userinfo,在id、name后面都添加了not null,就是有些列不能把它设为空,相信大家都理解,我就说下我在一个英文
2012-10-29 16:06:48 14675
原创 存储过程
存储过程是SQL 语句和流程控制语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程的基本用法创建存储过程create procedure sp_name@[参数名] [类型],@[参数名] [类型]asbegin.........end调用存储过程exec sp_name [参数名]删除存储过程drop procedure sp_
2012-10-29 15:11:16 1731
原创 struct与union
struct(结构)是一种构造类型,它是由若干“成员”组成的。 每一个成员可以是一个基本数据类型或者又是一个构造类型。在说明和使用之前必须先定义它。定义一个结构的一般形式为:struct 结构名{ 成员列表}变量名;struct 有对齐方式:不对齐的数据存取在x86上影响速度,对齐即是多分配一些字节,填充无用数据,以空间的损失来换取消率。自然对齐(natural a
2012-10-22 00:32:24 1325
原创 一个整数N除以2余1,除以3余2,除以4余3,...,除以10余9,但除以11余0,计算符合该条件的最小整数
一个整数N满足如下条件:N%2=1N%3=2N%4=3...N%9=8N%10=9N%11=0计算符合该条件的最小整数由以上规律可以得知(N+1)是2,3,...10的公倍数,且N可以被11整除我们可以求得2,3,...10的最小公倍数为2520,而2520-1=2519刚好可以被11整除。因此N=2519原文作者:MaggieDor
2012-10-20 14:02:12 7569
原创 两个人约好12:00-13:00之间见面,先到的人等后到的人不超过15分钟,等待时间超过15分钟,先到的人会离去,问两人相遇的概率。
两个人约好12:00-13:00之间见面,先到的人等后到的人不超过15分钟,等待时间超过15分钟,先到的人会离去,问两人相遇的概率。设两个人到达的时间分别为x,y。将12:00~13:00这个时间段看做0~1的话,15分钟即是1/4。由题设得,0若两人相遇,则 |x-y| 用图表示为即中间部分的面积,为1-2*[(1/2)*(3/4)2] = 7/16
2012-10-20 13:24:46 17049
转载 面向对象基本原则
面向对象设计的原则是面向对象思想的提炼,它比面向对象思想的核心要素更具可操作性,但与设计模式相比,却又更加的抽象,是设计精神要义的抽象概括。形象地将,面向对象思想像法理的精神,设计原则则相对于基本宪法,而设计模式就好比各式各样的具体法律条文了。面向对象设计原则有6个:开放封闭原则,单一职责原则,依赖倒置原则,Liskov替换原则,迪米特法则和接口隔离原则或合成/聚合复用原则(不同资料略有不
2012-10-19 20:49:51 4504
转载 IP地址中的保留地址
保留IP地址的分配互联网上的IP地址统一由一个叫IANA(Internet Assigned Numbers Authority,互联网网络号分配机构)的组织来管理。根据用途和安全性级别的不同,IP地址还可以大致分为两类:公共地址和私有地址。公用地址在Internet中使用,可以在Internet中随意访问。私有地址只能在内部网络中使用,只有通过代理服务器才能与Internet通信。一
2012-10-19 19:35:54 20586
转载 输入facebook的URL按下回车后究竟发生了什么
作为一名软件开发或是网络技术人员,你应该对Web应用程序的运行原理和协议交换,以及涉及到的技术:如浏览器、HTTP、HTML、Web服务器和请求处理程序等都有所了解才行。在这篇文章中,我们将深入探讨你访问某个URL时发生的一系列事情。 1、你在浏览器中输入某个URL 我们从这里开始: 图 1 2、浏览器查找该域名对应的IP地址 图
2012-10-17 01:10:24 2448
原创 c语言中各种数据类型的长度
char/signed char/unsigned char: 1个字节;char*(即指针变量): 2个字节(16位编译器)4个字节(32位编译器)8个字节(64位编译器)short int: 2个字节int/unsigned int: 2个字节(16位编译器)4个字节(32/64位编译器)long int: 4个字节float:
2012-10-17 00:27:09 8471
原创 原码、补码和移码
原码使用原码表示二进制数是,最高位是符号位(其中0为正,1为负),其它位为数值位。如8个二进制位表示的最大整数是01111111,即127。补码计算机使用补码进行加减运算。正数的补码与原码相同,负数的补码是将原码除符号位外的各位取反,然后再最低位加1得到的。如15的原码为00001111,补码也是00001111。而-15的原码为10001111,补
2012-10-16 19:22:43 2733
原创 十进制数转换成N进制数
将一个十进制整数转换为N进制的方法有除N取余法所谓除N取余法,就是将一个是进制数除以N,得到一个商和一个余数,并记下这个余数r0。然后将商作为被除数除以N,得到一个商和一个余数,并记下这个余数r1。不断重复以上过程,直到商为0为止。假设一共除了m次,则得到的N进制整数从高位到低位为r(m-1) ... r2 r1 r0。
2012-10-16 19:07:49 25170 1
原创 洗牌算法
用1到54代表54张牌,实现洗牌算法。我的思路是使用一个顺序保存了这54个整数的list来代表原始牌堆,新建一个长度为54的数组array来保存打乱后的牌。第一次取1-54中的一个随机数r1,然后将list中下标为r1的那项的值保存在array[0]中,再将list中下标为r1的那项remove。第二次取1-53中的一个随机数r2,然后将list中下标为r2的那项的值保存在array[
2012-10-14 22:54:37 1996 2
原创 逆波兰式(后缀表达式)
一个表达式的逆波兰式可以用如下方法获得:将表达式写成二叉树的形式,然后将二叉树的节点以中序的方式输出即是逆波兰式。比如E=a+b*(c-d)/e-f二叉树形式为正好插着画板于是。。= =!因此E的后缀表达式为abcd-*e/+f-
2012-10-14 22:23:28 2715
转载 sql语句执行顺序
sql语法的分析是从右到左 一、sql语句的执行步骤:1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。3)视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。4)表达式转换, 将复杂的 SQL 表达式转换为较简单的等效连接表达式。5)选择优化器,不同的优化器一般产生不同的
2012-10-13 23:32:11 1571
原创 用容积为15升和27升的两个杯子向一个水桶中注水,可以精确向一个水桶中注入多少升水呢
用容积为15升和27升的两个杯子向一个水桶中注水,可以精确向一个水桶中注入多少升水呢?选项有A.53 B.25 C.33 D.52设杯子X容量15升,杯子Y容量27升。若将杯子Y装满水,再倒入X中使X装满水,杯子Y中将剩余12升水。若将杯子X装满水两次,依次倒入Y中使Y装满水,第二次杯子X中将剩余3升水。因此使用X,Y肯定可以准确的量出3升,12升,15升和27升水。而
2012-10-13 22:15:30 16625 4
原创 导致数据库中数据不一致的原因
数据库中有可能会存在不一致的数据。造成数据不一致的原因主要有:数据冗余如果数据库中存在冗余数据,比如两张表中都存储了用户的地址,在用户的地址发生改变时,如果只更新了一张表中的数据,那么这两张表中就有了不一致的数据。并发控制不当比如某个订票系统中,两个用户在同一时间订同一张票,如果并发控制不当,可能会导致一张票被两个用户预订的情况。当然这也与元数据的设计有
2012-10-13 22:00:49 10997 3
原创 java中的抽象类与接口
一个抽象类只能作为其他类的基类,它不能被实例化。含有抽象方法的类必然是抽象类。但是抽象类中的方法不必是抽象的。我们不能将一个抽象类定义成final的。抽象类的具体子类中必须实现抽象类的所有抽象成员。否则必须将子类也定义为抽象类。抽象类可以被声明。接口是特殊的抽象类,所有方法都必须是抽象的和public的。与普通抽象类不同的是,接口中不能有构造方法,不能含有普通成员变
2012-10-01 02:40:56 1649 3
原创 java中的垃圾回收
相对于c语言的这种由开发人员显式的分配内存、释放内存,如果处理不当往往会造成内存泄露的问题。java的垃圾回收机制监视java程序的运行,自动释放不再使用的对象的内存。java使用软指针(指向对象引用的指针)来跟踪对象的所有引用。并使用一个对象表将软指针映射为对象的引用。垃圾收集器以单独的线程在后台运行,通过软指针依次检查每个对象。垃圾收集器会不定时的检查对象的各个引用,如果一个对象没有任何的
2012-09-30 23:26:11 1110
原创 java中的final关键字
final变量如果在变量前加final关键字,则这个变量一旦被初始化,便不可再改变。如果一个final变量是类成员变量,则必须被初始化,且只能被初始化一次。方法中的参数也可以是final变量。这在我们需要传递引用型的变量时非常有用,因为有时候我们并不希望调用函数修改该变量而影响到原函数中对象的值。因此将引用型变量设为final类型可以有效方式变量被调用参数修改。此时在调用方法中只可
2012-09-30 21:44:43 937
原创 java类的构造器
提供构造器可以确保在创建对象时,编译器自动调用构造器进行初始化。java中采用了构造器与类名相同的机制,以确保编译器可以知道应该调用哪个方法。使用构造器提高了代码的可读性,也有助于减少错误。 构造器是特殊的方法,它没有返回值。如果我们的类中没有构造器,编译器会自动创建一个默认构造器。它是无参的。如果我们在类中定义了构造器(无论是否有参数),编译器都不会再自动创建默认构造器。我们
2012-09-24 00:40:13 1353
原创 java中的移位运算符
移位运算符是在数字的二进制形式上进行平移。主要有左移(>)以及无符号右移(>>>)。左移运算符(带符号右移运算符(>>)的运算规则为:按二进制形式将数字右移相应位数,低位舍弃,高位正数补零,负数补1。无符号右移运算符(>>>)的运算规则为:按二进制形式将数字右移相应位数,低位舍弃,高位补零。int a=-8;System.out.println(a << 2);Syst
2012-09-19 00:54:28 1257
原创 java三目运算符boolean?x:y中的类型转换
下面的代码是面试宝典上的一道题目:int a=5;System.out.println("a="+((a这段代码的输出是9.0。因为三目运算符中有一个10.9,java会根据运算符的精度类型进行自动类型转换。因此9会变为9.0char x='x';int i=10;System.out.println(false?i:x);System.out.println(
2012-09-18 00:17:42 8334 1
原创 Java中的自增操作符与中间缓存变量机制
我们来看这样一段程序:public static void main(String[] args){ int i, sum1, sum2; i=0; sum1 = (i++)+(i++); System.out.println("sum1="+sum1); i = 0; sum2 = (++i)+(++i)
2012-09-17 01:51:04 7909 1
原创 Java中的Set与hashCode
我们知道Java中的Collection分为List和Set。List中的元素是有序和可重复的,而Set中的元素无序且不可重复。由于Set中的元素是不可重复的,在每次向一个Set中插入新的元素时,如果没有hashCode,就需要遍历整个集合检查是否已经存在该元素。这样会使Set的效率非常低下。使用哈希算法可以提高从元素集合中查找一个元素的效率。根据集合元素的hashCode来将元素
2012-09-16 04:31:43 2884
原创 C#中包含子类集合的类的Equals方法重写
最近的项目中,对于单元测试,我们使用NMock来模拟测试方法中依赖的方法的行为。我们在定义模拟方法的参数值和返回值时遇到了问题。当参数或返回值为一个对象时,我们必须重写它的Equals方法来使模拟值与实际的值匹配。因此我会为每个实体类重写Equals和GetHashCode方法。我们有这样一个类:public class ShippingRequest{ IEnumera
2012-09-15 02:48:04 2808
原创 Java中的枚举类型
enum关键字是一个看似很小的特性。使用这个关键字,我们可以创建一个枚举类型。事实上,在使用enum关键字创建新的枚举类型时,其实是创建了一个java.lang.Enum 类的子类。枚举中每个指定的值都可以看做是该类的一个实例。不过我们并不需要在意枚举的本质,只需要将它当做一种创建数据类型的方式,然后可以将获得的类型直接使用即可。在项目开发过程中,我们经常需会用到一些常量,比如
2012-09-14 01:39:11 3409
原创 单例模式(Singleton Pattern)
单例模式确保一个类只有一个实例,并提供一个全局访问点。某些对象我们只需要一个,比如线程池、缓存、注册表等等。如果这些类拥有多个实例,可能会产生很多问题。使用单例模式可以确保我们使用的这些全局资源只有一份。一个经典的单例模式的实现:public class Singleton{ private static Singleton uniqueInstance; private Si
2012-09-13 01:38:28 1290
原创 什么是java泛型
什么是泛型呢?我们首先写一个最简单的泛型类来说明:public class Generics { //T是type的简称,可以使用任何名称代替 private T o; //泛型成员变量 public Generics(T o){ this.o=o; } public T getObject() { return o; } public void setObject(T
2012-09-12 00:04:49 6120
转载 如何在Java中避免equals方法的隐藏陷阱
译者注 :你可能会觉得Java很简单,Object的equals实现也会非常简单,但是事实并不是你想象的这样,耐心的读完本文,你会发现你对Java了解的是如此的少。如果这篇文章是一份Java程序员的入职笔试,那么不知道有多少人会掉落到这样的陷阱中。原文转自http://www.artima.com/lejava/articles/equality.html 三位作者都是不同领域的大拿,有兴趣的读者
2012-09-11 22:25:12 1061
原创 【算法】一个小算法的非递归方式的两种实现
某幢大楼有100层。你手里有两颗一模一样的玻璃珠。当你拿着玻璃珠在某一层往下扔的时候,一定会有两个结果,玻璃珠碎了或者没碎。这幢大楼有个临界楼层。低于它的楼层,往下扔玻璃珠,玻璃珠不会碎,等于或高于它的楼层,扔下玻璃珠,玻璃珠一定会碎。玻璃珠碎了就不能再扔。现在让你设计一种方式,使得在该方式下,最坏的情况扔的次数比其他任何方式最坏的次数都少。也就是设计一种最有效的方式。解决方案1(一个
2012-09-10 21:48:34 4430 2
原创 java中的静态变量、静态方法与静态代码块
我们知道类的生命周期分为装载、连接、初始化、使用和卸载的五个过程。其中静态代码在类的初始化阶段被初始化。而非静态代码则在类的使用阶段(也就是实例化一个类的时候)才会被初始化。静态变量可以将静态变量理解为类变量(与对象无关),而实例变量则属于一个特定的对象。静态变量有两种情况:静态变量是基本数据类型,这种情况下在类的外部不必创建该类的实例就可以直接使用静态
2012-09-09 17:49:43 9186
原创 java中的参数传递与引用
有些java书籍在介绍java中的传参时都说,不论是基本类型还是对象类型,都是传值。这种说法不能算错,但往往让很多初学java的人感到很困惑。因为这里所说的传值与c++中简单变量的传值已经不是同一个概念。对于java传参,我觉得更准确一点的描述是,不论参数是什么类型,传递的都是参数的副本。对于基本类型的变量,传递值的副本。对于引用类型的变量(包括对象与数组),传递引用的副本。由于引
2012-09-09 01:02:42 1158
原创 【排序算法】鸡尾酒排序的实现与分析
以升序排序为例:算法思路鸡尾酒排序即双向的冒泡排序,是冒泡排序的轻微变形。它的主要思路是对于一组无规律排放的数字,先找到最大的数字放到最后一位,在反向找到最小的数字放到第一位。然后再找第二大的数字放到倒数第二位,再找第二小的数字放到第二位。以此类推,直到所有数字有序排列。代码实现public class CocktailSort
2012-09-07 23:20:18 3642 1
原创 【排序算法】冒泡排序的实现与分析
以升序排序为例:实现方法将所有的待排序的n个数字放入数组中。从第1个数字开始遍历数组,两两比较数组中的元素,如果前者大于后者,则将两者位置进行交换。一次遍历后,最大值将排在最后一个位置上。然后对前n-1个元素做第二次遍历和交换,遍历后第二大的数字将被排到数组的倒数第二个位置。以此类推。代码实现public class BubbleSort {
2012-09-07 00:41:29 1300
转载 各种排序算法及其复杂度
稳定的 冒泡排序(bubble sort) — O(n^2) 鸡尾酒排序(Cocktail sort,双向的冒泡排序) — O(n^2) 插入排序(insertion sort)— O(n^2) 桶排序(bucket sort)— O(n); 需要 O(k) 额外空间 计数排序(counting sort) — O(n+k); 需要 O(n+k) 额外空间 合并
2012-09-06 23:20:24 1503 2
原创 java中类与对象的生命周期
类的生命周期.java源文件经过编译后会生成相应的字节码文件(.class)。jvm通过解释器翻译字节码文件并在系统中执行。而java类的生命周期就是其字节码文件装载、连接、初始化、使用、和卸载的整个过程。装载。jvm找到需要装载的类,将类的信息装载到jvm的方法区中。然后在堆区实例化一个java.lang.Class对象,作为方法区中的类的
2012-09-06 00:21:36 2598
转载 人生最不值得你去做的30件事
玛丽亚·罗宾森(Maria Robinson)说过,"没有人可以回到过去重新开始,但每一个人都可以从现在开始创造全新的未来。"所言极是,不过在你开始这样的人生转变之前,你须得放弃那些拖你后腿且不值得你去做的事情才行。下文谈到的30个想法就是不错的着手点:1、不要把时间浪费在错误的人身上。人生短暂,所以你不该把你的宝贵岁月与压榨你幸福的人分享。假如别人真的需要你,他们自会腾出
2012-09-05 22:52:45 1464 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人