抽象类
定义:用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程序开发至关...
7. **接口与抽象类**:接口的定义、实现,抽象类的使用,以及接口与抽象类的区别。 8. **内省(Introspection)**:通过反射API动态获取类的信息,如字段、方法等。 9. **IO流**:输入/输出流的使用,包括字符流和...
在Java中,接口是一种完全抽象的类型,它只包含常量定义和抽象方法,不允许有任何实现。接口是用来定义对象间的一种契约,使得实现该接口的类必须遵循其中定义的行为规范。 在本实验报告中,"Person"类被定义,包含...
通过以上知识点的讲解,我们可以看到Java程序设计接口.pdf文档涉及的关于Java编程语言中类、接口、方法和多态等方面的核心概念。文档通过具体的代码示例,展示了如何利用接口和类来实现面向对象的程序设计,以及如何...
java面向对象编程、类的封装、接口和基本类库练习题涵盖了java语言的基础知识,包括面向对象编程、类的封装、接口和基本类库等内容,掌握这些知识点可以帮助读者更好地理解java语言的核心内容。
- 主要涉及 `java.lang.Class` 类和 `java.lang.reflect` 包。 ##### 4. 异常处理 - 异常是程序执行过程中出现的非预期情况。 - Java 使用 `try-catch-finally` 结构进行异常处理。 - 自定义异常可以通过扩展 `...
- `java.lang.reflect`包:包含`Class`, `Field`, `Method`, `Constructor`等类,用于运行时检查和操作类、接口、字段和方法。 10. **并发工具类**: - `java.util.concurrent`包:提供了线程池、并发集合、同步...
java.util.Calendar是一个抽象类,代表时间和日期,而java.time包(自Java 8引入)提供了更强大且易于使用的API,如LocalDate、LocalTime、LocalDateTime等。 异常处理是Java编程中的重要一环,Java使用try-catch-...
以上只是Java核心源代码中的一部分内容,实际上还包括了更多的包和类,如XML处理、反射、注解处理等。理解并掌握这些核心源代码,是成为Java开发者的必备技能。通过深入学习和实践,开发者可以构建出高效、稳定且...
本文将深入探讨Java API中的IO、Lang、Util包涉及的一些关键类和方法,帮助开发者更好地理解和利用这些工具。 一、异常处理 在Java中,异常是程序运行时遇到的错误。通过try-catch语句块,我们可以捕获并处理这些...
- `java.time` 包:Java 8引入的新时间日期API,包含`LocalDate`, `LocalTime`, `LocalDateTime`, `ZonedDateTime`等类,提供了更加友好和易用的API。 2. **字符串操作**: - `java.lang.String`:不可变的字符串...
Java集合框架包括List、Set、Queue和Map等接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。它们提供了一种组织和管理数据的方式。 12. 多线程 Java支持多线程编程,通过实现Runnable接口或继承Thread...
常见的包有`java.lang`、`java.util`和`java.io`等,分别包含基本类型、通用工具类和输入/输出功能。 4. **接口**:接口在Java中是一种完全抽象的类型,它定义了一组方法签名但不提供实现。接口是实现多继承的一种...
java.lang.String 类是 final 类型的,因此不可以继承这个类、不能修改这个类。 #### 2.2 StringBuffer 的使用 为了提高效率节省空间,我们应该用 StringBuffer 类。StringBuffer 类提供的字符串进行修改,当你...
7. **接口与抽象类**:接口定义了一组方法签名,而抽象类可以包含抽象方法和具体实现。两者都是实现多态性的手段,但接口更强调规范,抽象类则可提供部分实现。 8. **数组**:Java支持一维、二维及多维数组,数组是...
Java中的继承和多态是面向对象...以上内容涵盖了Java中关于类和接口的基本概念,包括继承、多态、方法覆盖、类型转换等,这些都是理解Java面向对象编程的基础。对于初学者来说,掌握这些知识点是深入学习Java的前提。
综合以上知识点,可以看出JAVA相关基础知识不仅包括了面向对象编程的核心概念,还包括了Java语言的特性和使用方法,以及一些基本的类库知识。对于初学者来说,掌握这些基础知识是编写有效和高效Java代码的关键。对于...
- `abstract`关键字用于定义抽象类和抽象方法。抽象类不包含具体实现,而是提供了一个接口供其他类继承。 - 抽象方法只有方法签名,没有方法体。一个类包含抽象方法,则该类必须声明为抽象类。 - 抽象类不能被...
7. **抽象类与接口**:抽象类是不能被实例化的类,通常包含抽象方法,用于定义共同的行为。接口则是一种完全抽象的类型,仅包含常量和抽象方法,它允许实现多个接口,实现多继承的效果。 8. **异常处理**:Java通过...
在面向对象编程中,你会学习如何设计和实现类,理解抽象类和接口的区别,以及何时使用它们。接口提供了一种方式来定义一组方法,而无需提供具体的实现。同时,你还会接触泛型,它可以确保在容器中存储的数据类型安全...