JAVA笔试基础知识-final/static+abstract/interface+wait/sleep+tcp/udp

news/2024/5/18 14:26:46 标签: java, udp, tcp/ip

1、final关键字和static关键字的区别

java">/**
 * final修饰类:
 * 使用final修饰类的目的简单明确,表明这个类不能被继承。
 * 当程序中有永远不会被继承的类时,可以使用final关键字修饰。
 * 被final修饰的类所有成员方法都将被隐式修饰为final方法。
 *
 * final修饰方法:
 * 首要作用是锁定方法,不让任何继承类对其进行修改。
 * 另外一个作用是在编译器对方法进行内联,提升效率。
 *
 * final修饰变量:
 * 当final修饰的是一个基本数据类型数据时,这个数据的值在初始化后将不能被改变。(变为常量)
 * 当final修饰的是一个引用类型数据时,也就是修饰一个对象时,引用在初始化后将永远指向一个内存地址,不可修改;
 * 但是该内存地址中保存的对象信息,是可以进行修改的。
 */
/**
 * static主要有4中使用情况:成员变量、成员方法、代码块和内部类
 * static关键字的基本作用就是:方便在没有创建对象的情况下来进行调用(变量/方法)。
 *
 * 常用static修饰成员变量为静态变量:
 * -静态变量属于类,在内存中只有一个复制,只要静态变量所在的类被加载,
 *  这个静态变量就会被分配空间,因此就可以被使用了,只有用“类.静态变量”的方式来引用。
 * -实例变量属于对象,它在内存中存在多个复制,只有对象被创建后,
 *  实例变量才会被分配内存空间,才能被使用,只有用“对象.实例变量”的方式来引用。
 *
 * 常用static修饰成员方法为静态方法:
 * static方法是类的方法,不需要创建对象就可以被调用,而非static方法是对象的方法,
 * 只有对象被创建出来后才可以被使用,static方法中不能使用this和super关键字,
 * 不能直接调用非static方法和非static变量,只能直接访问所属类的静态成员变量和静态成员方法,
 * 因为当static方法被调用时,这个类的对象可能还没被创建,即使已经被创建了,也无法确定调用哪个对象的方法。
 */
/**
 * Java中成员变量的定义/声明、初始化、实例化关键词解释:
 * -定义/声明是成员变量定义
 *  private String name;
 * -初始化是成员变量显式直接赋值/显式构造函数赋值/隐式赋默认值
 *  private String name = "小徐";
 *  public MyClass(String name) {this.name = name;}
 *  public String name; // 默认为null
 * -实例化是相较于类的对象被创建时,分配内存空间,调用构造函数[成员变量赋值]
 *  new MyClass("小杨");
 */

2、abstract抽象类和interface接口的异同点

java">/**
 * 抽象类和接口的差异:
 * 1、抽象类通过abstract关键字声明,接口通过interface创建
 * 2、抽象类通过extend关键字继承,接口通过implements关键字实现
 * 3、Java中支持单继承抽象类,但是可以多实现接口
 * 4、抽象类可以实现具体方法,接口不行
 * 5、子类继承抽象父类后可以继续抽象抛出方法声明,接口不行
 * 6、抽象类可以有语句块(构造语句块)/构造函数(虽不能实例化抽象类,但是构造语句块/函数用于初始化成员变量用),接口不行
 * 7、抽象类实现的静态方法可以被子类继承(可以通过子类.Xxx()访问),接口实现的静态方法不可以被子类继承(不可以通过子类.Xxx()访问)
 *    -猜想在JDK1.8新增default、static方法声明时,为了考虑向后/下兼容,让以前的代码方法不冲突,仅抽象类的静态方法可继承
 *
 * 抽象类和接口的相同:
 * 1、均可以实现共同方法的抽离,不同具体类有不同实现(体现多态性)
 * 2、均不能实例化,不能直接创建对象
 * 3、继承或实现的类均要实现抽象或声明的方法
 * 4、均可以实现静态方法
 */

3、wait方法和sleep方法的区别

java">> 多线程编程中,wait方法 和 sleep方法的同异
1. wait方法和sleep方法都可以让线程暂停执行

1. wait/notify/notifyAll方法是Object类的方法,  
   sleep方法是Thread类的静态方法
2. wait方法是用于多个线程之间的协作和通信,  
   sleep方法是用于线程的休眠
3. wait方法必须在synchronized同步快中调用(即方法或代码块中使用),  
   sleep方法没有使用限制
4. wait方法暂停线程期间会释放对象的锁,  
   sleep方法暂停线程期间不会释放对象的锁(即一直持有该对象的锁)
5. wait方法会使得当前线程进入一直等待的状态,直到其它线程调用notify/notifyAll方法唤醒,  
   sleep方法会使得当前线程暂停执行一段时间,自动唤醒

4、tcp和udp通讯协议的区别

java">> TCP和UDP通讯协议的区别:
1. TCP协议是可靠的  
   UDP协议是不可靠的
2. TCP协议稳定性高(基于丢包重传)  
   UDP协议稳定性低
3. TCP协议传输速度慢(基于传输包的确认机制)  
   UDP协议传输速度快
4. TCP协议适用于对网络通讯质量要求较高的场景,如传输文件/浏览网页/发送邮件...  
   UDP协议适用于实时性要求较高,但是对少量丢包没有要求的场景,如语音通话/视频通话/直播...

> TCP通讯协议交互的三次握手和四次挥手:
1. 客户端-SYN->服务端
2. 客户端<-SYN+ACK-服务端
3. 客户端-ACK->服务端

1. 客户端-FIN->服务端
2. 客户端<-ACK-服务端
3. 客户端<-FIN-服务端
4. 客户端-ACK->服务端

http://www.niftyadmin.cn/n/4968765.html

相关文章

Python支持下最新Noah-MP陆面模式站点、区域模拟及可视化分析技术

查看原文>>> Python支持下最新Noah-MP陆面模式站点、区域模拟及可视化分析技术 熟悉陆表过程的主要研究内容以及陆面模型在生态水文研究中的地位和作用&#xff1b;深入理解Noah-MP 5.0模型的原理&#xff0c;掌握Noah-MP模型&#xff08;2023年最新发布的5.0版本&am…

Linux 打开U盘硬盘等报错 file type exfat not configured in kernel

目录 原因&#xff1a; 查看系统文件系统和当前系统版本 回归正题&#xff0c;如何解决报错 在centons 7中打开U盘&#xff0c;报错file type exfat not configured in kernel。 原因&#xff1a; 这是因为Linux采用的文件系统和我U盘的文件系统不一致引起。如下图&#xf…

人效九宫格城市沙龙暨《人效九宫格白皮书》发布会 —上海站,圆满结束

8月11日&#xff0c;在上海龙之梦万丽酒店&#xff0c;由盖雅工场主办的人效九宫格城市沙龙暨《人效九宫格白皮书》发布会 —上海站&#xff0c;圆满结束。 近百位来自多个行业的企业管理者及人力资源从业者汇聚一堂&#xff0c;共同探讨企业如何将盈利模式从数量增长转为质量增…

数字流的秩、单词频率(哈希实现)

题目1&#xff1a;数字流的秩 假设你正在读取一串整数。每隔一段时间&#xff0c;你希望能找出数字 x 的秩(小于或等于 x 的值的个数)。请实现数据结构和算法来支持这些操作&#xff0c;也就是说&#xff1a; 实现 track(int x) 方法&#xff0c;每读入一个数字都会调用该方法…

字节一面:post为什么会发送两次请求?

前言 最近博主在字节面试中遇到这样一个面试题&#xff0c;这个问题也是前端面试的高频问题&#xff0c;因为在前端开发的日常开发中我们总是会与post请求打交道&#xff0c;一个小小的post请求也是牵扯到很多知识点的&#xff0c;博主在这给大家细细道来。 &#x1f680; 作者…

最新SQLMap进阶技术

SQLMap进阶&#xff1a;参数讲解 &#xff08;1&#xff09;–level 5&#xff1a;探测等级。 参数“–level 5”指需要执行的测试等级&#xff0c;一共有5个等级&#xff08;1~5级&#xff09;&#xff0c;可不加“level”&#xff0c;默认是1级。可以在xml/payloads.xml中看…

邮件营销:高效的节日宣传方式

每个国家都有当地的传统节日&#xff0c;像是我国刚过去的端午节&#xff0c;即将迎来的中秋节、国庆节。我们除了会进行一些传统习俗外&#xff0c;各路商家还会趁这个机会开启促销活动。 对于公司来讲&#xff0c;抓住每一次营销活动都可能会带来更高的营销额&#xff0c;或…