电工证如何做的相关网站能查到,网站开发php是什么意思,南京百度seo排名,昆明高端网站建设公司1. static 和 final 的用法
static 的作用从三个方面来谈#xff0c;分别是静态变量、静态方法、静态类。
静态变量#xff1a;声明为 static 的静态变量实质上就是全局变量#xff0c;当声明一个对象时#xff0c;并不产生static 变量的拷贝#xff0c;而是该类所有实例…1. static 和 final 的用法
static 的作用从三个方面来谈分别是静态变量、静态方法、静态类。
静态变量声明为 static 的静态变量实质上就是全局变量当声明一个对象时并不产生static 变量的拷贝而是该类所有实例变量共用同一个 static 变量。也就是说这个静态变量只加载一次只分配一块储存空间。
静态方法 声明为static的静态方法有以下几个特点 1静态方法只能调用静态方法 2静态方法只能访问静态数据 3静态方法不能以任何方式引用this或super
静态类通常一个普通类不允许声明为静态只有一个内部类才可以main方法就是一个典型这时这个声明的静态类可以直接作为一个普通类来使用而不需要实例一个外部类。
final 的作用从变量、方法、类三个方面来理解 final修饰的变量的值不能被修改是一个常量 final修饰的方法不能被重写 final修饰的类不能被继承
2. 抽象类和接口的区别类可以继承多个类吗接口可以继承多个接口吗类可以实现多个接口吗
抽象类和接口都不能直接实例化如果要实例化抽象类变量必须指向实现所有抽象方法的子类对象接口变量必须指向实现所有接口方法的类对象。
抽象类要被子类继承接口要被类实现。
接口只能做方法声明抽象类中可以做方法声明也可以做方法实现
接口里定义的变量只能是公共的静态的常量抽象类中的变量是普通变量。
抽象类里的抽象方法必须全部被子类所实现如果子类不能全部实现父类抽象方法那么该子类只能是抽象类。同样一个实现接口的时候如不能全部实现接口方法那么该类也只能为抽象类。
抽象方法只能申明不能实现。abstract void abc();不能写成abstract void abc(){}。
抽象类里可以没有抽象方法 。
如果一个类里有抽象方法那么这个类只能是抽象类 。
抽象方法要被实现所以不能是静态的也不能是私有的。
接口可继承接口并可多继承接口但类只能单根继承。
3. this和super的功能和用法
this (1) 能访问除构造方法以外所有的属性、方法通过this.来调用方法和属性 (2) 不可以在静态方法中使用 (3) 在构造方法中使用this(参数列表) 调用本类的其它构造方法必须放在构造方法的第一句。
super 访问父类的方法和属性 (1) 访问父类的方法和属性 (2) 在构造方法中通过 super(参数列表) 来调用父类的构造方法必须放在子类构造方法里的第一行。
4. final, finally, finalize 的区别?
final修饰符关键字有三种用法如果一个类被声明为final意味着它不能再派生出新的子类即不能被继承。将变量声明为final可以保证它们在使用中不被改变被声明为final 的变量在初始化以后的引用中只能读取不可修改。被声明为 final 的方法也同样只能使用不能在子类中被重写。
finally通常放在try…catch的后面构造总是执行代码块这就意味着程序无论正常执行还是发生异常这里的代码只要JVM不关闭都能执行可以将释放外部资源的代码写在finally块中。
finalizeObject类中定义的方法Java中允许使用finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在销毁对象时调用的通过重写finalize() 方法可以整理系统资源或者执行其他清理工作。
5. Error 和 Exception 有什么区别?
Error 表示系统级的错误和程序不必处理的异常是恢复不是不可能但很困难的情况下的一种严重问题比如内存溢出不可能指望程序能处理这样的情况
Exception 表示需要捕捉或者需要程序进行处理的异常是一种设计或实现问题也就是说它表示如果程序运行正常从不会发生的情况。
6. 说出Servlet的生命周期并说出Servlet和CGI的区别。
Servlet被服务器实例化后容器运行其init方法请求到达时运行其service方法service方法自动派遣运行与请求对应的doXXX方法doGetdoPost等当服务器决定将实例销毁的时候调用其destroy()方法。
与CGI的区别在于Servlet处于服务器进程中它通过多线程方式运行其service方法一个实例可以服务于多个请求并且其实例一般不会销毁而CGI对每个请求都产生新的进程服务完成后就销毁所以效率上低于Servlet。
7. 如何防止缓存雪崩
原因
缓存雪崩可能是因为数据未加载到缓存中或者缓存同一时间大面积的失效从而导致所有请求都去查数据库导致数据库CPU和内存负载过高甚至宕机。
对应解决
采用加锁计数或者使用合理的队列数量来避免缓存失效时对数据库造成太大的压力。这种办法虽然能缓解数据库的压力但是同时又降低了系统的吞吐量。
分析用户行为尽量让失效时间点均匀分布。避免缓存雪崩的出现。
如果是因为某台缓存服务器宕机可以考虑做主备比如redis主备但是双缓存涉及到更新事务的问题update可能读到脏数据需要好好解决。
8. 谈谈你对MVC的理解
MVC是Model—View—Controler的简称。即模型—视图—控制器。MVC是一种设计模式它强制性的把应用程序的输入、处理和输出分开。
MVC中的模型、视图、控制器它们分别担负着不同的任务。
视图: 视图是用户看到并与之交互的界面。视图向用户显示相关的数据并接受用户的输入。视图不进行任何业务逻辑处理。
模型: 模型表示业务数据和业务处理相当于JavaBean。一个模型能为多个视图提供数据。这提高了应用程序的重用性。
控制器: 当用户单击Web页面中的提交按钮时控制器接受请求并调用相应的模型去处理请求然后根据处理的结果调用相应的视图来显示处理的结果。
MVC的处理过程首先控制器接受用户的请求调用相应的模型来进行业务处理并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。
完结
Redis基于内存常用作于缓存的一种技术并且Redis存储的方式是以key-value的形式。Redis是如今互联网技术架构中使用最广泛的缓存在工作中常常会使用到。Redis也是中高级后端工程师技术面试中面试官最喜欢问的问题之一因此作为Java开发者Redis是我们必须要掌握的。
Redis 是 NoSQL 数据库领域的佼佼者如果你需要了解 Redis 是如何实现高并发、海量数据存储的那么这份腾讯专家手敲《Redis源码日志笔记》将会是你的最佳选择。 据库领域的佼佼者如果你需要了解 Redis 是如何实现高并发、海量数据存储的那么这份腾讯专家手敲《Redis源码日志笔记》将会是你的最佳选择。
[外链图片转存中…(img-bSzwu4E9-1625046777189)]
感兴趣的朋友可以通过点赞戳这里的方式免费获取腾讯专家手写Redis源码日志笔记pdf版本