首先,笔者可以说:Java不存在传递引用的情况,Java只有一种传递方法就是传值。 一、首先来明确一下”值传递”和”引用传递的”区别 值传递:是对所传递参数进行一次副本拷贝,对参数的修改只是对副本的修改,函数调用结束,副本丢弃,原来的变量不变(即实参不变) 引用传递:参数被传递到函数时,不复制副本,而是直接将参数自身传入到函数,函数内对参数的任何改变 […]

所谓哈希表(HashTable,又叫散列表),是存储键值对Key-value)的表,之所以不叫它Map(键值对一起存储一般叫做Map),是因为它下面的特性:它能把关键码(key)映射到表中的一个位置来直接访问,这样访问速度就非常快。其中的映射函数称为散列函数(Hash function)。 1) 对于关键字key, f(key)是其存储位置,f则是散列函数 2) 如果key1 != key2 但是 […]

先上一个集合概图:   Collection接口 集合层次结构树的根接口。一个Collection表示一组元素对象。Collection接口是所有集合对象都必须实现的接口。一些Collection接口的实现允许重复元素,而另外一些则不允许。Java平台没有提供任何对这个接口的直接实现,但是提供了一些更加专用的子接口,比如Set接口和List接口。 下面是Collection接口的声明: […]

今天遇到一个新的需求,需要读取Excel里面的数据,然后保存到数据库里面。 我本来是打算用Java来写的,但是嫌Java麻烦,所以就找了下怎么使用PHP来读取Excel里面的数据。 我google了一下,找到phpExcelReader时一个可用去读Excel文件内容的一个PHP类。 下载地址:http://sourceforge.net/projects/phpexcelreader/ 文件名: […]

我们都知道Java语言是跨平台的,但是为什么Java能跨平台呢? 因为Java程序编译之后的代码是不能被硬件系统直接运行的代码,而是一种“中间码”—–字节码。然后不同的硬件平台上转有不同的Java虚拟机(JVM),所以我们在下载JDK的时候会有提供不同平台的版本。不同硬件平台的JVM可以把字节码再“翻译”成所对应的硬件平台能够执行的代码。因此对于Java编程者来说,不需要考 […]

Java自动装箱、拆箱是JDK1.5以后才引入的新的内容,在许多情况下装箱和拆箱是由编译器自行完成的。 自动装箱就是将基本数据类型封装为对象类型,来符合Java的面向对象。例如: Integer num = 10;//声明一个Integer对象 Integer num = new Integer(10);//以上的声明就是用到了自动装箱,相当于这句。 自动拆箱就是将对象重新传化成基本数据类型: / […]

封装(encapsulation) 类使得数据和对数据的操作集合在一起,从而对使用该类的其他人来说,可以不用管它的具体实现,而只要知道它的功能,从而实现所谓的信息隐藏。 继承(inheritance) 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或者新的功能,也可以使用父类的功能,但不能选择性的继承父类。这样是代码的复用变得十分简单,能够大大缩短开发周期,降低开发费 […]

在JAVA中,有六个不同的地方可以存储数据: 1.寄存器(register).这是最快的存储区,因为它位于不同于其他存储区的地方—-处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不直接控制,也不能在程序中感觉到寄存器存在的任何迹象。 2.堆栈(stack)。位于通用RAM中,但通过它的的“堆栈指针”可以从处理器那里获取支持,堆栈指针若向下移动,则分配新的内 […]

定义:成员变量分为实例变量和静态变量。实例变量属于某一个具体的实例,必须在类实例化之后才能真正存在或使用,不同的对象拥有不用的实例变量。而静态变量被该类所有的对象公有,是属于类的,不需要实例化就可以直接调用。 方法也分为实例方法和静态方法。其中实例方法必须在类实例化之后通过对象来调用,而静态方法可以直接通过类本身来调用。静态方法是属于类的,而实例方法是属于每一个对象的。 静态方法和实例方法的区别: […]

好久没有更新博客了,趁着现在复习Java,随便就把Java里面的部分笔记拿出来分享给大家! 首先说明String类型不是基本数据类型,它被定义成类,属于引用数据类型.String是不可变的对象,因此在每次对String类型进行改变的时候都会生成一个新的String对象,然后将指针指向新的String对象, 比如:String str = “my”; //假设str指向地址0 […]