美文网首页
Java 笔记?

Java 笔记?

作者: 氢电公敌 | 来源:发表于2016-03-27 19:02 被阅读12次

面向对象的三个特征:继承 封装和多态

  • 继承:可以使用现有类已有的所有方法,无需重新编写即可对现有类进* 行扩展。可以通过继承和组合来实现
  • 封装:向外提供接口,隐藏了内部的具体实现
  • 多态:同一消息可以根据发送对象的不同采用不同的行为方式

多线程


死锁的四个必要条件:
从以上分析可见,如果在计算机系统中同时具备下面四个必要条件时,那麽会发生死锁。换句话说,只要下面四个条件有一个不具备,系统就不会出现死锁。

  • 互斥条件。即某个资源在一段时间内只能由一个进程占有,不能同时被两个或两个以上的进程占有。这种独占资源如CD-ROM驱动器,打印机等等,必须在占有该资源的进程主动释放它之后,其它进程才能占有该资源。这是由资源本身的属性所决定的。如独木桥就是一种独占资源,两方的人不能同时过桥。

  • 不可抢占条件。进程所获得的资源在未使用完毕之前,资源申请者不能强行地从资源占有者手中夺取资源,而只能由该资源的占有者进程自行释放。如过独木桥的人不能强迫对方后退,也不能非法地将对方推下桥,必须是桥上的人自己过桥后空出桥面(即主动释放占有资源),对方的人才能过桥。

  • 占有且申请条件。进程至少已经占有一个资源,但又申请新的资源;由于该资源已被另外进程占有,此时该进程阻塞;但是,它在等待新资源之时,仍继续占用已占有的资源。还以过独木桥为例,甲乙两人在桥上相遇。甲走过一段桥面(即占有了一些资源),还需要走其余的桥面(申请新的资源),但那部分桥面被乙占有(乙走过一段桥面)。甲过不去,前进不能,又不后退;乙也处于同样的状况。

  • 循环等待条件。存在一个进程等待序列{P1,P2,...,Pn},其中P1等待P2所占有的某一资源,P2等待P3所占有的某一源,......,而Pn等待P1所占有的的某一资源,形成一个进程循环等待环。就像前面的过独木桥问题,甲等待乙占有的桥面,而乙又等待甲占有的桥面,从而彼此循环等待。

上面我们提到的这四个条件在死锁时会同时发生。也就是说,只要有一个必要条件不满足,则死锁就可以排除。
来自:http://blog.csdn.net/hijiankang/article/details/9157365

不要调用Thread类或Runnable对象的run方法。直接调用run方法只会在当前线程中执行任务,并不会启动新的线程,正确的做法是调用Thread.start方法,它会创建一个新的线程来执行run方法

final关键字:

向编译器告知一块数据是恒定不变的(一个永不改变的编译期常量)
在对这个常量进行定义的时候,必须对其进行赋值

final方法:使用final方法的原因有两个,第一个是把方法锁定,以防止任何继承类修改它的含义。
第二个原因是效率
类中的所有private方法都是被隐式被指定为final的

final类
当将某个类的整体定义为final时,就表明了你不打算继承该类,也不允许别人这样做。

this关键字:


public class BananaPeel{
public static void main(String[] args)
Banana a = new Banana();
Banana b = new Banana();
a.peel(1);
}

编译器做了一些幕后工作,他暗自把“所操作的对象的引用”作为第一个参数传递给peel()。所以上述两个方法调用就变成了这样:
Banana.peel(a,1);
Banana.peel(b,2);
这是内部的表示形式,我们并不能这样书写代码,并尝试通过编译。

  • this关键字只能在方法的内部使用,表示对“调用方法的那个对象”的引用
  • 在构造器中,如果为this添加了参数列表,那么久有了不同的含义,这将对符合此参数列表的某个构造器明确调用,这样,调用其它构造器就有了直接的途径。但是this只能用于调用一个构造器,不能调用两个,并且用this关键字调用构造器时,必须将构造器调用置于最起始位置,否则会报错

static 方法就是没有this的方法,在static方法的内部不能调用非静态方法,反过来可以

相关文章

  • nio

    参考文章 Java Nio Java NIO学习笔记 - NIO客户端时序图 Java NIO学习笔记 - NIO...

  • Java 学习笔记(13)——lambda 表达式

    title: Java 学习笔记(11)——lambda 表达式tags: [Java 基础, 学习笔记, 函数式...

  • java io

    参考Java IO学习笔记(一):File类Java IO学习笔记(二):RandomAccessFile类Jav...

  • Java学习日记

    title: Java学习笔记date: 2018-05-18 12:00:00tags: Java 学习笔记 P...

  • Guava 中的文件操作:Files

    本片内容收录在我的在线笔记 java-note-for-free 中。 笔记源文件在 gitee 中。 Java ...

  • 2018-02-04@JAVA

    JAVA初始 ——浙大MOOC《从零开始学Java》Java笔记系列1 Java世界的hello world 新建...

  • Jasypt非对称加密

    Jasypt: Java Simplified Encryption 本笔记介绍使用Jasypt: Java Si...

  • java学习笔记-日志篇

    java学习笔记-日志篇-目录 java日志篇(1)-日志概述 java日志篇(2)-JUL(java.util....

  • 小白学java

    目录 1、配置java 环境2、java代码规范3、java笔记4、java程序编写 配置java环境 1、下载j...

  • Java8学习笔记目录

    Java8学习笔记 -- 接口的默认方法与静态方法 Java8学习笔记 -- Lambda表达式,Function...

网友评论

      本文标题:Java 笔记?

      本文链接:https://www.haomeiwen.com/subject/mkcjlttx.html