您的位置:首页 > 编程语言 > Java开发

java编程自学记录(day05)

2016-08-20 08:36 127 查看
数据的复制与扩容

(1)数组变量额度赋值,是并不会复制数组对象,是两个变量引用了同一个数组对象。

(2)数组的复制的本质是创建了新数组,将原来数组的内容复制过来。

(3)扩容:创建新数组,新数组容量大于原数组,将原数组内容复制到新数组,

 并且丢弃原数组,简单说,就是更换更大的数组对象。

 很多方法都使用了数组的扩容。

 

排序算法

(1)要会冒号排序:比较相邻的元素,大的向后交换。

(2)Arrays类包含了大量的基础排序算法,在实际使用时可以直接调用。

递归调用

(1)方法中调用方法本身。

(2)优势:简练,只需考虑一层逻辑即可,但是需要有经验。

(3)递归一定要有结束条件。否则会造成栈溢出。

(4)递归深度不能太深。否则会造成栈溢出。

二进制基础

(1)16进制是2进制的简写,其实就是2进制。

(2)记补码的另一个方式:

 所有位全部为1时,表示值为-1

 第一位为1,后面都为0时,表示最小值

 第一位为0,后面全为1时,表示最大值。

移位运算

(1)左移:<<  最低位补0

(2)算数右移:>> 最高位补原数据的最高位(才能保持符号不变)

(3)逻辑右移:>>> 最高位补0

(4)移位运算符的优先级比四则运算低

面向对象

(1)类

 1)类是一个概念抽象的定义。简单说类就是分类

 2)类定义了该类型对象的数据结构,称之为“成员变量”,同时,也定义了一些

 可以被调用的功能,称之为“方法”。

 3)类是用于构建对象的模板,对象的实质就是内存中的一块存储区域,存储数据,

 其数据结构由定义它的类来决定

(2)对象的创建

 1)当一个类的定义存在后,可以使用new运算创建该类的对象,对象穿件的过程

 一般成为类的实例化

 2)对象是在堆中创建的,创建后,对象的元素初始值为0值,与数组相似。

(3)引用类型

 1)除了8种基本类型之外,用类名(接口、数组)生命的变量称为引用类型变量,

 就,简称引用。

 2)引用类型变量的值中存储的是某个对象在内存中的地址信息。引用的功能在于

 访问对象,引用类型按照如下方式进行声明:

  类名 引用类型变量名

(4)对象的本质是:复合数据结构封装,如:Point封装了属性(x,y)

(5)对象创建后,其成员变量可以按照默认的方式初始化:

  类型        默认初始值

 byte/short/int/long/float/double 0

 boolean        false

 char        \u0000

 引用类型        null

(6)成员变量和实例变量(成员变量)的区别

 成员变量是main方法中声明的变量,在栈中分配;

 实例变量是在对象中声明的变量,在堆中分配,有默认初始值;

(7)成员方法

 一般用来操作本对象的属性。

(8)方法重载

 定义一组方法,方法名一样,但是参数不一样。这些方法就相互构成了重载。

 实现了类似的功能。

 调用方法时,根据 参数列表和方法名 调用不同方法。

this关键字

(1)this是在方法中对当前对象的引用,本质是方法的隐藏参数,大多数情况不用

 写明。生存周期是方法运行期间,运行完毕会被回收

(2)在方法运行期间引用了当前对象

 

其他知识点

(1)定义类时,类的成员变量和方法要合理,不能与实际差的太多,这是一个写程序

 的好习惯

(2)方法中声明的变量叫做局部变量。

(3)类、局部变量(方法中定义的变量)、对象的关系:

 1)类(.class文件)是存储在硬盘中的。当使用时,会被加载到“方法区”中。

 电脑执行的一直是方法区中的代码。

 2)当main方法中创建一个类的引用变量(局部变量)时,变量在栈中分配。

 3)使用new运算实例化对象时,对象在堆中创造,并按照属性分配空间。

  eg:

   一个类中有int x ; int y ;两个属性。那么它占用内存就是

   两个int的大小。

 对象的属性有默认值(0值);

 4)通过赋值运算p = new Point();将局部变量p与创建的对象联系起来。

 注意,创建的对象地址对开发者是透明的,不要想像C那样去找到地址。

 5)在调用时,创建的引用变量指向创建的对象。

(4)从(3)中可以看到,代码在执行时,待执行代码放在“方法区”中,局部变量

 放在“栈”中,对象放在“堆”中。

 注意:不是所有变量都在栈中分配,比如对象的实例变量就在堆中分配。

(5)java只有局部变量,没有全局变量!没有全局变量!没有全局变量!

(6)堆和栈的容量有限,使用太多会超出内存。

(7)在同一个包中不能有同名称的类

(8)System.out.println()就是重载方法,

使用到的方法

(1)Integer.toBinaryString(n)

 将n转换为二进制字符串输出。

(2)java中,每个类(class)在编译之后都会成为一个.class文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: