java基础知识

1.TCP和UDP
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手

UDP:不需要建立连接,是不可靠协议,将数据及源和目的封装到数据报中,每个数

据报限制在 64k 以内,发送数据较少,速度快

TCP:通过三次握手建立连接通路,是可靠协议,可进行大量的数据传输,效率较低

2.同步函数和同步代码块
它们的作用都是封装多条操作共享数据的语句, 只能让一个线程都执行完, 在执行过程

中,其他线程不可参与进来。

***同步代码块:位置比较灵活,封装了操作共享数据的语句,多个线程中只有持有锁的才

可以操作共享数据,需要指定一个对象作为锁,锁可以是任意对象,但必须是同一对象。

***同步方法:声明方法时加 synchronized 关键字修饰,同步函数使用的锁是 this,持有

锁的线程调用这个方法时其他线程无法调用。

静态方法的锁是类的字节码文件

3.接口和抽象类

注意:父类私有方法不能被重写
       子类访问权限大于父类访问权限
       静态方法只能被静态方法重写

4.线程的5种状态:
新建: 仅仅在heap中分配了内存,是一个空的线程对象
就绪:   执行start方法之后,进入runnable状态
运行:   running状态
阻塞:
死亡:   退出run()方法正常结束/异常结束

5. 简述 JRE 与 JDK 的区别?

答案:
JRE: Java Runtime Environment;
Java 运行环境,包括 jvm 虚拟机和 Java 核心类库,           面向用户

JDK: Java Development Kit;
 Java 开发工具包,包括 Java 编译器,Java 运行工具,Java文档生成工具,Java 打包工具,        面向开发者


6.throws和throw

异常的处理:
    原则是:功能内部能处理就try-catch,不能处理就抛

    子类重写父类方法,父类抛异常,子类也需要抛相同异常,或该异常的子类
    被重写的方法没有抛异常,子类只能try-catch不能抛


posted @ 2017-05-14 17:40  EugeniaGao  阅读(125)  评论(0编辑  收藏  举报