java基础知识_3

上传人:ji****en 文档编号:107697332 上传时间:2019-10-20 格式:PDF 页数:24 大小:385.21KB
返回 下载 相关 举报
java基础知识_3_第1页
第1页 / 共24页
java基础知识_3_第2页
第2页 / 共24页
java基础知识_3_第3页
第3页 / 共24页
java基础知识_3_第4页
第4页 / 共24页
java基础知识_3_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《java基础知识_3》由会员分享,可在线阅读,更多相关《java基础知识_3(24页珍藏版)》请在金锄头文库上搜索。

1、1. 类修饰词 PUBLIC(公共类 ) ABSTRACT(抽象类 ) 凡是用 abstract 修饰符修饰的类被称为抽象类。 抽象类就是没有具体对象的概念类。 抽象类把共同特点抽象出来描述和处理某一种具体对象,非常符合人们日常的思维习 惯。 Abstract 类中必须有 abstract 方法 Abstract 类不能用来产生对象 Abstract method 必须在继承此 abstract 类的子类中创建 Abstract 类不能用 final 来修饰 Interface 的 method 声明被预设为 abstract 类型,而数据成员声明被预设为 final 类型 FINNAL(最终

2、类 ) 如果一个类被 final 修饰符所修饰和限定,说明这个类不可能有子类。 被定义为 final 的类通常是一些有固定作用、用来完成某种标准功能的类。如 Java 系统定义好的用来实现网络功能的 InterAddress、Socket 等类都是 final 类。 abstract 和 final 修饰符不能同时修饰一个类, 因为 abstract 类自身没有具体对象, 需要派生出子类后在创建子类的对象;而 final 类不可能有子类。这样放在一起修饰就没 有意义了。 内部类 (INNERCLASS) class Outer class Inner Inner getInner() retu

3、rn new Inner();/返回一个内部类的引用 Public static void main(arg string) Outer outer = new Outer(); Outer.Inner inner = outer.new Inner(); / 注意此处变化 inner.print(); class Test Outer outer = newnew Outer(); Outer.Inner inner = outer.getInner(); inner.print() 有一种类叫做内部类(inner class),也称为嵌入类(nested class),它是定义在其 他类的

4、内部。内部类作为其外部类的一个成员,与其他成员一样,可以直接访问其外部类 的数据和方法。只不过相比较外部类只有 public 和默认的修饰符不同,内部类作为一个 成员,可以被任意修饰符修饰。编译器在编译时,内部类的名称为 OuterClass$InnerClass.class 。 内部类 Inner 中关键字 this 指向内部类 Inner 的对象,如果要想指向外部类的对象, 必须在 this 指针前加上外部类名称, 表示 this 是指向外部类构造的碎屑, 如 Outer.this Inner 是 Outer 的内部类,所以在类 Test 中必须用属性引用符来标识出内部类. main 方法

5、在 Outer 内部,故可以直接引用,不需要属性引用符 类 C 既要继承类 A 又要继承类 B, 则可将类 B 的定义放入类 C 内部, 使之成为内部类。 一般情况下 当我们需要在某一情形下实现一个接口,而在另一情形下又不需要实现 这个接口时,我们可以使用内部类来解决这一问题。让内部类来实现这个接口。另外一个 很好的理由是 java 内部类加上接口可以有效地实现多重继承。 第二种就是为了 封装 ,使用 匿名内部类 不让外部知道 为了保密性 不过这样也会 相对增加代码的内聚 而相对使得耦合对降低 2. 数据成员 修饰词 按存取权 限 Public都可以访问 Protected同包,继承关系可以访

6、问 Private当前类可以访问 private protected 当前类及子类能访问 无修饰符同包同类可以访问 按使用特 性 Static 静态变量属于类,为该类所有对象所分享,在程序开始执行前就分配内存空间,如果前面加 上 final,功能类似全局常量,不可以修改其值.比如圆周率 在程序执行起点, main method 所在的类中, 所有的 method 数据成员都必须声明为 static Final 3.METHOD修饰词 Public Protected Private abstract(抽象方法) 修饰符 abstract 修饰的抽象方法是一种仅有方法头,而没有具体的方法体和操作

7、实现 的方法。使用抽象方法的目的是使所有的子类,对外都呈现一个相同名字的方法,是一个统 一的接口。所有的抽象方法,都必须存在于抽象类之中。 static(静态方法) 类的静态方法只能存取同为 static 的数据成员 用 static 修饰符修饰的方法,是属于整个类的类方法,这种方法在内存中的代码段将 随着类的定义而分配和装载,不被任何一个对象专有;只能处理属于整个类的成员变量。 静态方法中不能定义静态变量的(静态变量属于类) (final)最终方法: 用 final 修饰符修饰的类方法。功能和内部语句不能再更改的方法,不能再被继承。 注意: 所有已被 private 修饰符限定为私有的方法,

8、 以及所有包含在 final 类中的方法, 都被缺省地认为是 final 的。 native(本地方法) 用 native 修饰符声明其他语言书写方法体并具体实现方法功能的特殊的方法。这里的 其他语言包括 C/C+/FROTRAN/汇编等。由于 native 的方法的方法体使用其他语言在程序外 部写成,所有的 native 方法都没有方法体,而用一个分号代替。 synchronized(同步方法) 如 果 synchronized 修饰的方法是一个类的方法(即 static 的方法),那么在被调用 执行前,将把系统类 Class 中对应当前类的对象加锁。如果 synchronized 修饰的是

9、一个对 象的方法(未用 static 修饰的方法),则这个方法在被调用执行前,将把当前对象加锁。 Synchronized 修饰符主要用于多线程共存的程序中的协调和同步。 4. 泛型(需 补充) 声明泛型类型的一个实例时,传递给类型参数的类型边缘必须是类类型,不能使用基 本类型,如 int,char 等类型。 publicpublic interfaceinterface BaseDAO /* * 功能描述:保存实体 * authorauthor 吴勇 * paramparam entity * returnreturn */ publicpublic T save(T entity); /*

10、 * 功能描述:删除实体 * authorauthor 吴勇 * paramparam entity * returnreturn */ publicpublic intint delete(T entity); /* * 功能描述:更新实体 * authorauthor 吴勇 * paramparam entity * returnreturn */ publicpublic intint update(T entity); /* * 功能描述:保存或更新实体 * authorauthor 吴勇 * paramparam entity * returnreturn */ publicpubl

11、ic intint saveOrUpdate(T entity); 5. 各种数据 类型及其转换 同种数据类型的转换 低高 (整数、浮点数) 不同种数据类型的转换 整数浮点数+000 浮点数整数全舍 数值字符串float y = (float) 10.00;String str = “hello” + Y; 字符串数值使用各种数值对象提供的 method如 praseInt(String) 6. 运算符与 表达式 整数运算符 单目运算符-、-、 + 双目运算符+ - * / % 三目运算符if else 标准赋值运算符 = 复合赋值运算符 += 、-= 、*= 、/= 位运算符 for (in

12、t i=1;i100; i+) Object o=new Object(); myList.add(o); o=null; /此时,所有的 Object 对象都没有被释放,因为变量 myList 引用这些对象。 当 myList 后来不再用到,将之设为 null,释放所有它引用的对象。之后 GC 便会 回收这些对象占用的内存。 9. 枚举类型 Enum enum 的利用,包孕定义,遍历,switch,enumset,enummap 等 10. Innotation java 中的应用 11. 接口应用 (extends/implement)(补充 继承) 接口也为类,不同的是一个接口可以有多个

13、父接口,而类只能有一个父类; public interface Months int JANUARY = 1, FEBRUARY = 2, MARCH = 3, APRIL = 4, MAY = 5, JUNE = 6, JULY = 7, AUGUST = 8, SEPTEMBER = 9, OCTOBER = 10, NOVEMBER = 11, DECEMBER = 12; 在接口中的任何成员都是 static 和 final 的,接口就成为便捷的创建产量组的工具, 接口中的数据成员自动是 public 的。 如何引用: 如果不在同一个包里面, 则要先导入接口所在的包, 然后用 Mont

14、hs.JANUARY 表达式就可以来引用它的值。 一个类可以实现多个接口,但是必须实现完接口中的每个方法,可以为空实现。 12. Java 中的线程 与进程 现在所使用的大多数操作系统都属于多任务,分时操作系统。正是由于这种操作系统的 出现才有了多线程这个概念 一般可以在同一时间内执行多个程序的操作系统都有进程的概念.一个进程就是一个执 行中的程序,而每一个进程都有自己独立的一块内存空间,一组系统资源.在进程概念中,每一 个进程的内部数据和状态都是完全独立的.因此可以想像创建并执行一个进程的系统开像是 比较大的,所以线程出现了。在 java 中,程序通过流控制来执行程序流,程序中单个顺序的 流

15、控制称为线程,多线程则指的是在单个程序中可以同时运行多个不同的线程,执行不同的任 务.多线程意味着一个程序的多行语句可以看上去几乎在同一时间内同时运行. 同类的多个线程是共享一块内存空间和一组系统资源,而线程本身的数据通常只有微处 理器的寄存器数据,以及一个供程序执行时使用的堆栈.所以系统在产生一个线程,或者在各 个线程之间切换时,负担要比进程小的多,正因如此,线程也被称为轻负荷进程(light-weight process).一个进程中可以包含多个线程. 线程的运 行机制以及调 度模型 java 中多线程就是一个类或一个程序执行或管理多个线程执行任务的能力,每个线程 可以独立于其他线程而独立

16、运行, 当然也可以和其他线程协同运行, 一个类控制着它的所有 线程, 可以决定哪个线程得到优先级, 哪个线程可以访问其他类的资源, 哪个线程开始执行, 哪个保持休眠状态。 线程有创建,可运行,运行中,阻塞,死亡五中状态.一个具有生命的线程,总是处于这五种状态 之一: 1.1.创建状态创建状态 使用 new 运算符创建一个线程后,该线程仅仅是一个空对象,系统没有分配资源,称该线程 处于创建状态(new thread) 2.2.可运行状态可运行状态 使用start()方法启动一个线程后,系统为该线程分配了除CPU外的所需资源,使该线程处 于可运行状态(Runnable) 3.3.运行中状态运行中状态 Java 运行系统通过调度选中一个 Runnable 的线程,使其占有 CPU 并转为运行中状态 (Running).此时,系统真正执行线程的 run()方法. 4.4.阻塞状态阻塞状态 一个正在运行的线程因某种原因不能继续运行时,进入阻塞状态

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号