Java基础学习篇---------多线程】的更多相关文章

一.编写两种多线程的方法 (1).Thread(它是继承Runnable的子类) class MyThread extends Thread{ private int ticket = 5; @Override public void run() { for (int i=0 ; i<20;i++){ if(this.ticket>0) System.out.println("卖出的票数为" + this.ticket--); } }}public class MyClas…
目录: 继承Thread类 start()方法实现多线程的原理 实现Runnable接口 Thread类 与 Runnable接口 的联系与区别 多线程的实现方法: 继承Thread类 实现Runnable接口 ------------------------------------------------------------------------------------- 1. 继承Thread类 继承Thread类之后,需要覆盖父类的 public void run() 方法,作为线程…
一.覆写(重写) 1.含义:子类的定义方法.属性和父类的定义方法.属性相同时候 方法名称相同,参数相同以及参数的个数也相同,此时为覆写(重写) 扩充知识点: 覆盖:只有属性名字和方法名字相同,类型.个数不同的,就是覆盖 覆盖与重载的区别: 重载是在当前类中只是名字相同,而重载是继承类中只是名字不同,他们作用域不相同 一.关键字final ---------->终结器 1.定义final的类不能被其他类继承 2.定义final的类不能被子类覆写 3.final定义的变量叫常量,申明之后内容不能被修…
理解线程 进程是指一个内存中运行的应用程序,系统运行一个程序即是一个进程从创建,运行,结束的过程. 线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程. 多线程的特点是并发执行(同一时间段执行多个任务),实际上并不能提高程序运行速度,但能够提高运行效率,让cpu使用率更高. 关于线程调度,分为分时调度和抢占调度. 抢占调度模式,需要设置线程的优先级,优先级别高的线程优先使用cpu. 分时调度,所有线程轮流使用cpu,平均分配每个线程占用cpu的时间. 1.Java中的…
一.this的学习方法 1.使用this调用构造方法市一定放在构造方法的首行 2.使用this调用构造方法时一定流出调用的出口 public class MyClass { public MyClass(){ System.out.printf("调用无参数的构造方法"); } public MyClass(String name) { this(); System.out.printf("调用一个参数的构造方法"); } public MyClass(String…
一.String常用的方法: 1. == 实质比较两个对象的地址数值 String a = "hello"  (hello为匿名对象) String a1 = "hello" String b = new String("hello") String b1 = new String("hello").intern String c = b; a == b ----------> false     false的原因:ne…
一.类和对象分配内存 二.Java中的内部类  : 可以直接去访问外部类的所有属性(包括私有成员) 1.Java中成员内部类 (1).内部类的方法可以直接访问外部类的类中的所有成员变量 (2).外部类不能直接去访问内部类的私有的成员变量,可以通过创建内部类的对象取间接的去访问 (3)外部去声明内部类的方法   即:外部类.内部类 对象名 = new 外部类对象.new 内部类( ); Inter.Inter1  inter = new Inter().new Inter1(); (4).如果外部…
一.static的使用 1.使用static定义的属性往往通过类名直接调用,它的属性(方法)不属于某一个的对象的.所以对象没有创建之前就可以对static的属性的调用,方法亦如此. 2.static 的方法只能调用static 的方法和static的属性 3.使用非static的方法可以任意调用static的方法和static的属性…
一.多态性的理解 1.向上转型:子类为父类对象实例化,调用的一定是子类覆写的方法,他们之间找的是共性 2.向下转型:子类扩充了父类的某些功能,而父类中没有该功能,他们之间找的是特性 案例: Number(父类)    Number1(子类) Number number = (Number1)new Number(); //ClassCastException: com.example.lib4.Number cannot be cast(强制转换的异常) number.printf(); 在向下…
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD的函数,单独做一个添加DVD的函数,如果还要往这个媒体库里添加其他的媒体类,还要再创建另一个添加函数.我们说这样的代码不具备可扩展性.另外,CD和DVD有很多相似之处,它们的成员变量里都有标题,播放时长,评论,等等,我们称这样的程序存在大量的代码复制,代码复制是代码不良的表现.所以我们可以创建一个它…