Java探索之旅(7)——对象的思考】的更多相关文章

1.知识要点 ❶不可变类:一旦创建,其内容不能改变的类称之为不可变类.满足:⑴所有数据域私有,⑵没有修改器,⑶没有访问器方法,其返回一个指向可变数据域的引用.(这样通过引用就能修改私有数据域).比如,返回数组,String等皆可能导致实际数据被改变 ❷变量作用域:类的变量和方法可以任意顺序出现,只要方法没有使用某个变量.方法可以定义与类数据变量名称(实例变量和静态变量)相同的局部变量,且使用具有较高的优先级. ❸this引用:指向本身的引用.可以在无参和少参构造函数中使用this调用多参构造函数…
1.知识要点 假设: public ClassName{     int data;   String name;     ClassName(){data=1;}     public static int getdata(){return data;}}</span> ❶含main()的为主类.多个类放在一个文件中,只能有一个主类. ❷类可以不定任何构造方法(函数),系统默认提供无参构造函数.当且仅当无任何无参构造函数时才提供. ❸构造函数与类同名,无返回类型.   ❹对象声明:Class…
1 线程协调 目的对各线程进行控制,保证各自执行的任务有条不紊且有序并行计算.尤其是在共享资源或者数据情况下. 1.1 易变volatile cache技术虽然提高了访问数据的效率,但是有可能导致主存储器和cache中的值在某个瞬间的值不同.在多线程中,某个线程访问的可能是cache的值而非主存储器. volatile保证线程直接访问主存储器,保证数据的一致性.volatile只能用于基本数据类型或者数组(boolean,byte, char, double ,float, integer, l…
1.多线程  1.1线程 线程是程序运行的基本执行单元.指的是一段相对独立的代码,执行指定的计算或操作.多操作系统执行一个程序时会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被称为主线程)来作为这个程序运行的入口点.每个线程都有独立的堆栈.计数器.本地变量.但是能够共享内存,文件处理器,预存储状态等资源.JVM至少有主线程和垃圾清理进程. 1.2使用多线程的好处 如果能合理地使用线程,将会减少开发和维护成本,甚至可以改善复杂应用程序的性能.如在GUI应用程序中,还以通过线…
1.异常与异常处理 在<java编程思想>中这样定义 异常:阻止当前方法或作用域继续执行的问题.虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"的态度来看待异常.绝对一点说异常就是某种意义上的错误,就是问题,它可能会导致程序失败.之所以java要提出异常处理机制,就是要告诉开发人员,你的程序出现了不正常的情况,请注意. 异常就是一个表示组织执行正常进行的错误(情况).异常没有处理,程序将非正常终止.这是Java鲁棒性的一个体现.异常处理最根本的优势或者目的:…
1.包装类 ❶出于对性能的考虑,并不把基本数据类型作为对象使用,因为适用对象需要额外的系统花销.但是某些Java方法,需要对象作为参数,例如数组线性表ArrayList.add(Object).Java将基本数据类型包装成类,即所谓的包装类---包括:数值包装类Number(Integer,Short,Byte,Float,Double,Long,) ,Character,Boolean. 其继承结构体系如下图所示: ❷数值包装类均扩展自抽象类Number.所有数值包装类数组均是Object([…
1文件类File    ❶封装文件或路径的属性.不包括创建和读写文件操作.File实例并不会实际创建文件.不论文件存在与否,可以创建任意文件名的实例.两种实例创建方式如下:                  new File("c:\\book");//在目录下创建一个File对象                new File("c:\book\test.text");//以某个文件创建一个File对象    ❷构造函数:                File(…
1.Object中的equals方法 java中的的基本数据类型:byte,short,char,int,long,float,double,boolean.==比较的是值. ❶作用:对于复合类型来说,equal判断两个引用变量是否指向同一个对象,即判断地址(等同"==").返回true,否则返回false.并没有实际检查是否内容相同.默认实现为: public boolean equals(Object obj)       {return (this==obj);} [java] …
1.Java数据类型       ❶不可变类,是指当创建了这个类的实例后,就不允许修改它的属性值. 它包括:         Primitive变量:boolean,byte, char, double ,float, integer, long, short         JDK不可变类:Boolean, Byte, Character, Double, Float, Integer, Long, Short, String (java.lang包中)      ❷可变类,是当你获得这个类的…
1.数组线性表ArrayList 数组一旦定义则不可改变大小.ArrayList可以不限定个数的存储对象.添加,插入,删除,查找比较数组更加容易.可以直接使用引用类型变量名输出,相当于toString().输出一个数组([,,,,,,]),数组中元素为对应标号存储元素的toString[]. 数组线性表和数组的区别总结如下: public class TestArrayList { public static void main(String[] args) { java.util.ArrayL…