Java基础知识学习

来源:互联网 发布:物业软件哪个好 编辑:程序博客网 时间:2024/04/28 10:11

接口(interface)是抽象方法和常量值的集合。从本质上进,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。与继承关系类似,接口与实现类之间存在多态性。

JAVA异常是运行期间出现的错误。重写方法需要抛出与原方法所抛出异常类型一致的异常或不抛出异常!

重写equals方法必须重写hashCode方法!

Iterator在执行过程中对当前的元素进行锁定!

HashTable,Vector内部读写是锁定的,效率极低,不再推荐使用!

使用集合的时候,尽量使用泛型!(Generic)

transient(透明的)修饰的成员变量在序列化时不予考虑!

 

线程是程序里面不同的执行路径。线程是一个程序内部的顺序控制流。

进程是一个静态的概念,机器上的一个class文件,exe文件,这个叫进程。平常所说的进程开始执行,是指主方法(main)方法开始执行了。在我们机器里面,实际上运行的都是线程。

除了DOS是单进程系统,其他都支持多进程和多线程。

在同一个时间点上,一个CPU只能支持一个线程在执行。(真正的多线程,双核以上)

有两种方式创建新的线程:
1、定义线程类实现Runnable接口
2、继续Thread类并重写其run方法。

线程启动必须调用Thread的start()方法。

能使用接口的时候就不要从Thread继承。

重写的方法不能抛出比被重写不同的异常。

 

Thread的stop()方法比interrupt()还粗暴。
停止Thread,用flag作个标志。出现异常设为false。
Thread.join()的方法相当于方法调用。

synchronized,在执行这个方法的过程之中,当前对象被锁定。

解决死锁的一种方法:把锁的粒度加粗一些。

要考虑加不加同步:加同步,有可能效率会变低,不加同步,有可能产生数据不一致的现象。

锁互斥,在某一个时间段,保证只有一个线程进入到这个方法体里边,但是不保证其他线程是不是进入到另一个方法里面。
只有锁定了(synchronizedd)这个线程,才能调用wait()方法
wait()方法和notify()方法一般是一一对应的!
wait()方法是Object类的方法,sleep()是Thread类的方法,wait时别的线程可以访问锁定对象,sleep时别的线程不可以访问锁定对象。

 

TCP(transmission control protocol):是专门设计用于在不可靠的因特网上提供可靠的、端到端的字节流通信的协议。它是一种面向连接的协议。TCP连接是字节流而非报文流。
UDP(user data protocol):UDP向应用程序提供了一种发送封装的原始IP数据报的方法、并且发送时无需建立连接。是一种不可靠的连接。
IP:提供独一无二的IP地址。TCP:可靠,但是慢。UDP:不可靠,但是快。

原创粉丝点击