`
Joy.zhang
  • 浏览: 58775 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

java的抽象类接口和lang包等知识

    博客分类:
  • Java
阅读更多
抽象类
定义:用abstract修饰的类就是抽象类。

抽象类不能有对象(也就是一抽象类不能通过new运算符直接实例化),如果抽象类中有构造方法则

子类中一定要有构造方法。

什么时候一个类将成为抽象类:

当一个或多个方法为抽方法时
当类是一个抽象类得子类,并且不能为任何抽象方法提供然后实现细节或方法主体时
当一个类实现一个接口并且不能为 为任何抽象方法提供然后实现细节或方法主体时

接口的特性:

1、 接口中只能定义抽象方法,这些方法默认为public abstract 因而在声明方法时,可以省略这些修饰符



2、 接口中声明的属性默认为public static final 修饰,因而在常量声明中可以省略这些修饰符。

接口的作用:

1、 声明方法期望一个或更多的类来实现该方法。

2、 揭示一个对象的编程接口,而不揭示类的实际程序体,当将类的一个包输送到其它开发程序中它是非

常有用的。

3、 捕获无关类之间的相似类,而不强迫类的关系。

一、异常:Java编程语言中,异常类定义程序中可能遇到的轻微的错误条件,可以写代码来处理异常并记叙

程序执行,而不是让程序中断。在程序执行中,任何中断正常程序流程的异常条件注释为错误或异常。

二、产生异常的情况

1、想打开的文件不存在。

2、网络连接中断。

3、受控操作超出预定范围。

4、正在装载的类文件丢失。

三、异常的分类:错误和异常

错误:jvm系统内部错误,资源耗尽等严重问题。

异常:因编程错误或一些偶然的外在因素导致的一些问题。

错误与异常的区别:当发生错误时,程序员无能为力,只能让程序中止,如:内存溢出,不可能指望程序

能处理这样的情况。而对于exception ,则有补救或控制的可能,程序员可以预先防范。

API中的Lang包:

一、String类的方法:

1、equals()比较2个对象的值是否相等,区分大小写。

2、equalsIgnoreCase()比较2个对象的值是否相等,忽略大小写。

3、compareTo()比较2个String对象的值是否相等,相等返回零,返回大于零的书表示前面的对象大于

后面的对象,返回小于零的数表示前面的串小于后面的串,区分大小写。

4、compareToIngnoreCase()与上面的作用相同,但是不区分大小写。

5、length()返回String的长度,就是char的个数。

6、charAt(int index)返回字符串指定位置的字符。

7、getBytes(String charsetName)适用平台的默认字符集将此String转换为byte序列,并将结果存储到一

个新的byte数组中。

8、getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)拷贝字符串的部分字符序列到指定的字符

数组的指定位置。

9、indexOf()返回第一次找到指定字符的下标,如果找到返回下标,没有找到返回-1.

10、lastIndexOf()从后面往回找,返回第一次找到的指定字符的下标位置,如果没有返回-1.

11、startWith()测试此字符串是否以指定的前缀开始。

12、endWith()测试此字符串是否以指定的字符序列结束。

13、concat()连接2个字符串并返回一个新的字符串,原字符串的值不改变。

14、subString()返回新的字符串,当前字符串的子串,该字符串从指定位置开始,到结束为止(一个参

数)。(还有带2个参数的)

16、split()根据给定的正则表达式的匹配拆分此字符串,得到拆分好的字符串数组。如果用'.'做和'|'做分

隔的话,必须这样写"
."、 "
"

17、replace() 返回一个新的字符串,它是将字符串中的所有oldString 用newString来替换,原字符串没有

发生变化。

18、toUpperCase()将所有的字符都转换为大写。

19、toLowerCase()将所有的字符都转换为小写。

20、trim()返回新的字符串,去掉字符串中最前面和最后面的空白符。

21、matchs()告知此字符串是否匹配给定的正则表达式。

22、intern()返回具有相同内容的字符串的引用,如果字符串值含有该内容的字符串则返回字符串的引用,

如果字符串值没有字符串的内容与其相同,则在字符串值中创建具有该内容的字符串,再返回新创建的字

符串的引用。
另外还有API.lang包中的的StringBuffer等;

Integer 类

1>  intValue( )方法:以Int 形式返回指定的值。

2>  byteValue( )方法:以Byte形式返回指定的值。

3>  doubleValue( )方法:以double形式返回指定的值。

4>  floatValue( )

5>  shortValue( )

6>  longValue( )

7>  parseInt( )

8>  toString( )

9>  bitCount( )

10>             compareTo( )

11>             decode( )

12>             highestOneBit( )

13>             lowestOneBit( )

Float类

1>   compare( )方法:比较两个指定的类float类

2>   byteValue( )方法:返回这个Float值对应的byte值 ( 它被强转为一个byte)

其它方法都和Integer类差不多。

          Boolean类

Boolean 类将基本类型为boolean的值包装在一个对象中,一个boolean类型的对象只包含一个类型为boolean的字段

其它的方法都是差不多。

Math类

static (double) ceil( )方法:返回小于a日最小整数。

Floor( )方法:返回大于a日最小整数。

(long) round( )方法:返回四舍五入后的整数。

Abs( )方法:返回绝对值

Min( )返回两个数 值中较小的一个

Max( )返回两个数 值中较大的一个

(double) random( )   返回随机数

eg: System.out.println(Math.random());



DateFormart类

1>SimpleDateFormat 继承DateFormat

2>DateFormat 继承format

                 Format 类

它的构造方法只有一个,DateFormat( )。

Format :将一个Date格式化为日期/时间字符串

Import :import  java(如 lang).*;导入








线程:

创建线程的两种方法:

           1:Extends Thread (继承Thread 类)。

           2:Implements Runnable(实现Runnable接口)。

一个进程就是一个执行中的程序,而每一个进程才都有自己的一块内存空间.一组系统资源,在进程概念中,每一个进程的内部数据和状态都是完全独立的,java程序通过流控制执行程序流,程序中,单个顺序的流控制称为线程,多线程则指的是单个程序中,可以有多个不同时运行多个不同的线程,执行不同的任务,多线程意味着,一个程序的多行语句可以看上去几乎在同一时间内同时运行。



线程与进程相识,是一段完成莫个特定功能的代码,是指程序中单个顺序的流控制,但与进程不同是,同类的多个线程是共享一块内存空间和一组系统资源,而线程成本的数据通常只有微处理器的寄存数据,以及一个供程序执行时使用的堆栈。所以系统在产生一个线程或者在各个线程切换时,负担要比进程少的多,线程被称为轻负荷进程(ligh__weigthprocess)



线程与进程的关系:

一个进程可以包包含多个线程,一个线程是一个程序内部的顺序控制流。





1.     进程:每个进程都有独立的代码块,和数据空间,进程切换大 。

2.     线程:轻量的进程,同一类线程贡献代码和数据空间,每个线程有独立的运行载荷程序计数器(PC)线程切换开销小

3.     多线进程:在操作系统中,能同时运行多个任务程序

4.     多线程:  在同一应用程序中,有多个顺序流,同时执行



      1.vritualCPU  2.Code  3.Date

               1.(VritualCPU):虚拟的CPU封装在Java.lang包的Thread类中

               2.(Code)     :CPU所执行的代码传递给Thread类

               3.(Data)     : CPU所处理的数据传递给Thread类

         启动线程

public class ThreadMain  //extends Thread

{

      public static void main(String[] args)

      {

           MyThread my=new MyThread("肖恩");

           MyThread my2=new MyThread("浪子");

           //my.start();

           //my2.start();

      {color:#808080}}

}

---------------------------------------------------------------------------------

import static java.lang.System.out;

public class MyThread extends Thread

{

      public MyThread(String var)

      {

           super(var);

           start();

      {color:#808080}}

      public void run(){

           for(int i=0;i<5;i++){

                 out.println(getName()+" "+i);

                 try

                 {

                      Thread.sleep(3000);

                 {color:#808080}}

                 catch (InterruptedException e)

                 {

                      System.out.println(e);

                 {color:#808080}}

           {color:#808080}}

      {color:#808080}}

}



壹:如果用Thread.sleep( )方法,就得用Try块,不然会报异常!

贰::启动线程要调用start( )方法。

贰:Thread.cur r entThread( ).getName()。打印当前线程名称



1.     使用Runnable( )接口可以将CPU代码和数据分开,形成清晰的模型,还可以从其它类继承、

2.     使用Thread( )类,不能再从其它类继承,编写简单,还可以直接操纵线程无须使用Thread.cur rentThread()方法

Java程序开始运行后,程序至少会创建一条主线程,主线程的线程执行体,不是run()方法来确定的,而是main()方法、



Join( )方法:等待join的线程执行完成。

Join(long millis)方法:等待join的线程执行完成,被join的线程还没有被执行结束,则不再等待。

          后台线程(daemonThread)

<一>:有一种线程,它是后台运行的,它的任务是为其它线程提供服务,这种线程,被称为后台线程,又称为守护线程,又称作为精灵线程。

<二>:后台线程的特征:如果所有的前台线程都死亡,后台线程会自动死亡



Setdaemon(boolean)方法:将该线程标记为守护线程或用户线程或后天线程.。

Yield( )方法:与sleep方法有点相似,正在执行的线程暂停,但不会阻塞该线程,它只是将该线程转入就绪状态,当莫个线程调用了yield方法,暂停之后,只有优先级与当前线程相同或着优先级比当前线程更高的就绪状态,才会获得执行的机会。





Slep( )方法与Yield( )方法的区别:

1>:sleep( )方法暂停当前线程后,会给其它线程执会,但yield( )方法只会给优先机相同或优先级更高的线程机会。

2>:Sleep( )方法会将线程转入阻塞状态,直到经过阻塞时间,才会转入就绪状态,而yield( )方法不会将线程转入阻塞,它只是强制当前线程进入就绪状态,因此完全有可能莫个线程调用yield( )方法暂停之后,立既再次获得处理资源被执行。

3>:Sleep( )方法捕捉异常或显示异常声明抛出异常,而yield( )方法没有抛出任何的异常

4>:Sleep( )方法比yield( )方法有更好的可移植性,通常不要依靠Yield( )方法来控制并发线程的执行。

Void suspend()方法:挂起线程;

Void resume()方法:重新启动线程。
分享到:
评论

相关推荐

    java包与接口实验报告

    通过本次实验,我们深入了解了Java中的包和接口的作用及使用方法。掌握了如何创建自定义包以及如何在包中定义类。此外,还学会了如何实现接口,以及如何在类中使用接口提供的功能。这些基础知识对于Java程序开发至关...

    java_base1_lang.rar_java_base1_lang ppt

    7. **接口与抽象类**:接口的定义、实现,抽象类的使用,以及接口与抽象类的区别。 8. **内省(Introspection)**:通过反射API动态获取类的信息,如字段、方法等。 9. **IO流**:输入/输出流的使用,包括字符流和...

    java接口与实现接口的类实验报告.pdf

    在Java中,接口是一种完全抽象的类型,它只包含常量定义和抽象方法,不允许有任何实现。接口是用来定义对象间的一种契约,使得实现该接口的类必须遵循其中定义的行为规范。 在本实验报告中,"Person"类被定义,包含...

    java程序设计接口.pdf

    通过以上知识点的讲解,我们可以看到Java程序设计接口.pdf文档涉及的关于Java编程语言中类、接口、方法和多态等方面的核心概念。文档通过具体的代码示例,展示了如何利用接口和类来实现面向对象的程序设计,以及如何...

    java面向对象编程、类的封装、接口和基本类库练习题.docx

    java面向对象编程、类的封装、接口和基本类库练习题涵盖了java语言的基础知识,包括面向对象编程、类的封装、接口和基本类库等内容,掌握这些知识点可以帮助读者更好地理解java语言的核心内容。

    Core Java Java的基本知识

    - 主要涉及 `java.lang.Class` 类和 `java.lang.reflect` 包。 ##### 4. 异常处理 - 异常是程序执行过程中出现的非预期情况。 - Java 使用 `try-catch-finally` 结构进行异常处理。 - 自定义异常可以通过扩展 `...

    java常用工具类

    - `java.lang.reflect`包:包含`Class`, `Field`, `Method`, `Constructor`等类,用于运行时检查和操作类、接口、字段和方法。 10. **并发工具类**: - `java.util.concurrent`包:提供了线程池、并发集合、同步...

    java知识重点讲解并有例题

    java.util.Calendar是一个抽象类,代表时间和日期,而java.time包(自Java 8引入)提供了更强大且易于使用的API,如LocalDate、LocalTime、LocalDateTime等。 异常处理是Java编程中的重要一环,Java使用try-catch-...

    Java核心源代码

    以上只是Java核心源代码中的一部分内容,实际上还包括了更多的包和类,如XML处理、反射、注解处理等。理解并掌握这些核心源代码,是成为Java开发者的必备技能。通过深入学习和实践,开发者可以构建出高效、稳定且...

    API应用编程接口:IO、Lang、Util涉及的一些类,方法

    本文将深入探讨Java API中的IO、Lang、Util包涉及的一些关键类和方法,帮助开发者更好地理解和利用这些工具。 一、异常处理 在Java中,异常是程序运行时遇到的错误。通过try-catch语句块,我们可以捕获并处理这些...

    比较全的java工具类

    - `java.time` 包:Java 8引入的新时间日期API,包含`LocalDate`, `LocalTime`, `LocalDateTime`, `ZonedDateTime`等类,提供了更加友好和易用的API。 2. **字符串操作**: - `java.lang.String`:不可变的字符串...

    java面向对象知识点

    Java集合框架包括List、Set、Queue和Map等接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。它们提供了一种组织和管理数据的方式。 12. 多线程 Java支持多线程编程,通过实现Runnable接口或继承Thread...

    java技术文档(基础知识)

    常见的包有`java.lang`、`java.util`和`java.io`等,分别包含基本类型、通用工具类和输入/输出功能。 4. **接口**:接口在Java中是一种完全抽象的类型,它定义了一组方法签名但不提供实现。接口是实现多继承的一种...

    java基础知识点汇总

    java.lang.String 类是 final 类型的,因此不可以继承这个类、不能修改这个类。 #### 2.2 StringBuffer 的使用 为了提高效率节省空间,我们应该用 StringBuffer 类。StringBuffer 类提供的字符串进行修改,当你...

    java langspec-3.0

    7. **接口与抽象类**:接口定义了一组方法签名,而抽象类可以包含抽象方法和具体实现。两者都是实现多态性的手段,但接口更强调规范,抽象类则可提供部分实现。 8. **数组**:Java支持一维、二维及多维数组,数组是...

    java对象类余接口的学习

    Java中的继承和多态是面向对象...以上内容涵盖了Java中关于类和接口的基本概念,包括继承、多态、方法覆盖、类型转换等,这些都是理解Java面向对象编程的基础。对于初学者来说,掌握这些知识点是深入学习Java的前提。

    JAVA相关基础知识

    综合以上知识点,可以看出JAVA相关基础知识不仅包括了面向对象编程的核心概念,还包括了Java语言的特性和使用方法,以及一些基本的类库知识。对于初学者来说,掌握这些基础知识是编写有效和高效Java代码的关键。对于...

    2020老杜最新版Java零基础进阶视频教程-面向对象课件

    - `abstract`关键字用于定义抽象类和抽象方法。抽象类不包含具体实现,而是提供了一个接口供其他类继承。 - 抽象方法只有方法签名,没有方法体。一个类包含抽象方法,则该类必须声明为抽象类。 - 抽象类不能被...

    JAVA面向对象知识汇总思维导图

    7. **抽象类与接口**:抽象类是不能被实例化的类,通常包含抽象方法,用于定义共同的行为。接口则是一种完全抽象的类型,仅包含常量和抽象方法,它允许实现多个接口,实现多继承的效果。 8. **异常处理**:Java通过...

    java学习课件,包含了Java语言的基本结构,数据等,很详细

    在面向对象编程中,你会学习如何设计和实现类,理解抽象类和接口的区别,以及何时使用它们。接口提供了一种方式来定义一组方法,而无需提供具体的实现。同时,你还会接触泛型,它可以确保在容器中存储的数据类型安全...

Global site tag (gtag.js) - Google Analytics