高新西区网站建设网页设计作业保护动物

news/2025/9/27 20:43:17/文章来源:
高新西区网站建设,网页设计作业保护动物,wordpress查看文章id,百度网页版微信目录 90、简述一下你了解的设计模式。 91、用 Java 写一个单例类。 92、什么是 UML#xff1f; 93、UML 中有哪些常用的图#xff1f; 94、用 Java 写一个冒泡排序。 95、用 Java 写一个折半查找。 90、简述一下你了解的设计模式。 所谓设计模式#xff0c;就是一套被…目录 90、简述一下你了解的设计模式。 91、用 Java 写一个单例类。 92、什么是 UML 93、UML 中有哪些常用的图 94、用 Java 写一个冒泡排序。 95、用 Java 写一个折半查找。 90、简述一下你了解的设计模式。 所谓设计模式就是一套被反复使用的代码设计经验的总结情境中一个问题经过证实的一个解决方案。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使人们可以更加简单方便的复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。 在 GoF 的《Design Patterns: Elements of Reusable Object-Oriented Software》中给出了三类创建型[对类的实例化过程的抽象化]、结构型[描述如何将类或对象结合在一起形成更大的结构]、行为型[对在不同的对象之间划分责任和算法的抽象化]共 23 种设计模式包括Abstract Factory抽象工厂模式Builder建造者模式Factory Method工厂方法模式Prototype原始模型模式Singleton单例模式Facade门面模式Adapter适配器模式Bridge桥梁模式Composite合成模式Decorator装饰模式Flyweight享元模式Proxy代理模式Command命令模式Interpreter解释器模式Visitor访问者模式Iterator迭代子模式Mediator调停者模式Memento备忘录模式Observer观察者模式State状态模式 Strategy策略模式 Template Method模板方法模式Chain Of Responsibility责任链模式。 面试被问到关于设计模式的知识时可以拣最常用的作答例如 工厂模式工厂类可以根据条件生成不同的子类实例这些子类有一个公共的抽象父类并且实现了相同的方法但是这些方法针对不同的数据进行了不同的操作多态方法。当得到子类的实例后开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。 代理模式给一个对象提供一个代理对象并由代理对象控制原对象的引用。实际开发中按照使用目的的不同代理可以分为远程代理、虚拟代理、保护代理、Cache 代理、防火墙代理、同步化代理、智能引用代理。 适配器模式把一个类的接口变换成客户端所期待的另一种接口从而使原本因接口不匹配而无法在一起使用的类能够一起工作。 模板方法模式提供一个抽象类将部分逻辑以具体方法或构造器的形式实现然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法多态实现从而实现不同的业务逻辑。 除此之外还可以讲讲上面提到的门面模式、桥梁模式、单例模式、装潢模式Collections 工具类和 I/O 系统中都使用装潢模式等反正基本原则就是拣自己最熟悉的、用得最多的作答以免言多必失。 91、用 Java 写一个单例类。 饿汉式单例 public class Singleton {private Singleton(){}private static Singleton instance new Singleton();public static Singleton getInstance(){return instance;} } 懒汉式单例 public class Singleton {private static Singleton instance null;private Singleton() {}public static synchronized Singleton getInstance(){if (instance null) instance new Singleton();return instance;} }注意实现一个单例有两点注意事项①将构造器私有不允许外界通过构造器创建对象②通过公开的静态方法向外界返回类的唯一实例。这里有一个问题可以思考Spring 的 IoC 容器可以为普通的类创建单例它是怎么做到的呢 92、什么是 UML UML 是统一建模语言Unified Modeling Language的缩写它发表于 1997年综合了当时已经存在的面向对象的建模语言、方法和过程是一个支持模型化和软件系统开发的图形化语言为软件开发的所有阶段提供模型化和可视化支持。使用 UML 可以帮助沟通与交流辅助应用设计和文档的生成还能够阐释系统的结构和行为。 93、UML 中有哪些常用的图 UML 定义了多种图形化的符号来描述软件系统部分或全部的静态结构和动态结构包括用例图use case diagram、类图class diagram、时序图sequence diagram、协作图collaboration diagram、状态图statechart diagram、活动图activity diagram、构件图component diagram、部署图deployment diagram等。在这些图形化符号中有三种图最为重要分别是用例图用来捕获需求描述系统的功能通过该图可以迅速的了解系统的功能模块及其关系、类图描述类以及类与类之间的关系通过该图可以快速了解系统、时序图描述执行特定任务时对象之间的交互关系以及执行顺序通过该图可以了解对象能接收的消息也就是说对象能够向外界提供的服务。 用例图 类图 时序图 94、用 Java 写一个冒泡排序。         冒泡排序几乎是个程序员都写得出来但是面试的时候如何写一个逼格高的冒泡排序却不是每个人都能做到下面提供一个参考代码 import java.util.Comparator; public interface Sorter {/*** 排序* param list 待排序的数组*/public T extends ComparableT void sort(T[] list);/*** 排序* param list 待排序的数组* param comp 比较两个对象的比较器*/public T void sort(T[] list, ComparatorT comp); } import java.util.Comparator; /** * 冒泡排序 * */ public class BubbleSorter implements Sorter {Overridepublic T extends ComparableT void sort(T[] list) {boolean swapped true;for (int i 1, len list.length; i len swapped; i) {swapped false;for (int j 0; j len - i; j) {if (list[j].compareTo(list[j 1]) 0) {T temp list[j];list[j] list[j 1];list[j 1] temp;swapped true;}}}} Override public T void sort(T[] list, ComparatorT comp) {boolean swapped true;for (int i 1, len list.length; i len swapped; i) {swapped false;for (int j 0; j len - i; j) {if (comp.compare(list[j], list[j 1]) 0) {T temp list[j];list[j] list[j 1];list[j 1] temp;swapped true;}}}} } 95、用 Java 写一个折半查找。 折半查找也称二分查找、二分搜索是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始如果中间元素正好是要查找的元素则搜素过程结束如果某一特定元素大于或者小于中间元素则在数组大于或小于中间元素的那一半中查找而且跟开始一样从中间元素开始比较。如果在某一步骤数组已经为空则表示找不到指定的元素。这种搜索算法每一次比较都使搜索范围缩小一半其时间复杂度是 O(logN)。 import java.util.Comparator;public class MyUtil {public static T extends ComparableT int binarySearch(T[] x, Tkey) {return binarySearch(x, 0, x.length- 1, key);}// 使用循环实现的二分查找public static T int binarySearch(T[] x, T key, ComparatorT comp) {int low 0;int high x.length - 1;while (low high) {int mid (low high) 1;int cmp comp.compare(x[mid], key);if (cmp 0) {low mid 1;}else if (cmp 0) {high mid - 1;}else {return mid;} }return -1; }// 使用递归实现的二分查找 private staticT extends ComparableT int binarySearch(T[] x, int low, int high, T key) {if(low high) {int mid low ((high -low) 1);if(key.compareTo(x[mid]) 0) {return mid;}else if(key.compareTo(x[mid]) 0) {return binarySearch(x,low, mid - 1, key);}else {return binarySearch(x,mid 1, high, key);}}return -1;} } 说明上面的代码中给出了折半查找的两个版本一个用递归实现一个用循环实现。需要注意的是计算中间位置时不应该使用(high low) / 2 的方式因为加法运算可能导致整数越界这里应该使用以下三种方式之一low (high - low)/ 2 或 low (high – low) 1 或(low high) 1是逻辑右移是不带符号位的右移 要想了解更多 千题千解·Java面试宝典_时光の尘的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/919919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# WPF实现ComboBox实时搜索与数据绑定 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

隐私保护与联邦学习文献阅读

导读《Federated Machine Learning: Concept and Applications》《A Comprehensive Survey of Privacy-preserving Federated Learning》本文主要对上面两篇联邦学习(FL)综述文章进行了概括总结。 1、FL概念与分类FL的…

Java实习模拟面试|离散数学|概率论|金融英语|数据库实战|职业规划|期末冲刺|今日本科计科要闻速递:技术分享与学习指南 - 实践

Java实习模拟面试|离散数学|概率论|金融英语|数据库实战|职业规划|期末冲刺|今日本科计科要闻速递:技术分享与学习指南 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !…

飞扬动力网站建设wordpress管理主体

数据集格式:Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):693 标注数量(xml文件个数):693 标注类别数:6 标注类别名称:["missing_hole",…

2025.9.27

这场比赛还行吧...考的还不错,T1,T2没挂,T3不会,下面给个题解 显然按 \(b_i\) 从大到小选,因为这样减的最少,而因为我们认为他们是有用的,所以不用考虑 \(c_i\) 的限制。因为如果超了,我们不 如把它们扔出去。于…

深入解析:用 Spring Boot 打造 Docker 和 K8s 部署的硬核指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

9.27(课后作业

package com.itheima.arithmeticoperstor; public class Enum { //枚举 enum Size{SMALL,MEDIUM,LARGE}; //直接引用枚举值 Size s=Size.SMALL; //通过字符串获取枚举值 Size t=Size.valueOf("SMALL"); //定…

详细介绍:【序列晋升】45 Spring Data Elasticsearch 实战:3 个核心方案破解索引管理与复杂查询痛点,告别低效开发

详细介绍:【序列晋升】45 Spring Data Elasticsearch 实战:3 个核心方案破解索引管理与复杂查询痛点,告别低效开发pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important…

天津放心站内优化seops网页制作素材

转自 https://www.cnblogs.com/liuqiyun/p/8133904.html

做手机网站多少钱浏览器如何做购物网站

这是一个基于纯css实现的3D立体视觉效果鸡蛋动画特效,喜欢的朋友可以拿来使用演示动态效果 css实现的3D立体视觉效果鸡蛋动画特效

临沂做网站需要多少钱wordpress刷新才显示

乘着今天中午的时间 对以前项目的一个需求进行一定的处理 前天去了甲方公司 接到了了一个新的需求 就是可以把项目的一个富文本的编辑器可以设置为能够上传视频 于是乎 就要对vue里面的这个组件进行操作了 首先我们可以看一眼官网的文档 需要用到的就直接到官网文档进行查询即可…

jsp网站开发实现增删改查中国招聘网

在作图中,我们需要根据自己的业务来更改x轴y轴的标签。注意,坐标轴的修改已经不算做画图了,因为他不是图上的线条或轨迹(trace)了,所以用layout来设置。1>显示或者不显示坐标轴标签。fig.update_layout(xaxis dict(visible Fa…

个人网站备案电话访谈wordpress 字体类型

记一下第十二节课的内容。 一、PHP文件包含的四种方式 Include和Include_once 操作系统会读取包含的文件的内容,并将它插入主文件中,include方式的文件包含会在包含失败的情况下输出警告信息,而include_once方式会检查包含的文件是否已经被…

四则运算和验证码

四则运算的代码 package bb; import java.util.Random; public class Sizeyunsuan { public static void main(String[] args) { Random random=new Random(); for(int i=1;i<=30;i++) { int num1=random.nextInt(1…

博客写作者该何去何从

时代的改变 作为一个7年的博客创作者,随着AI时代的来临,我基本很少更新博客,一是用户对博客文章的需求减少了,二是我写的文章还不一定有AI写得好。而且现在各种新兴AI写作工具崛起,我觉得像之前那样码子好傻 好低…

第一次课动手动脑合集

1.EnumTest.java EnumTest.java中定义了枚举Size,该枚举包含SMALL、MEDIUM、LARGE三个常量。其运行结果体现了枚举的多项核心特性: 当用引用比较枚举变量s(Size.SMALL)与t(Size.LARGE)时,结果为false,这是因为…

JSON dump in Ruby

In Ruby, the json library’s API differs from Python’s json.dump. The equivalent in Ruby would be something like this:require jsondata = {name: "Christopher",message: "こんにちは世界&qu…

做搞机网站网站窗口代码

块状元素的居中&#xff0c;首先设置宽度 width"10px"&#xff0c;再设 margin: 0 auto; 。转载于:https://www.cnblogs.com/npk19195global/p/4475576.html

网站优化推广服务株洲网站建设工作室

一、perl执行脚本 1、安装perl脚本 perl安装 2、配置perl脚本 perl Configure VC-WIN32 no-asm no-shared --prefixE:\openssl-x.x.x\install二、编译openssl 1、使用vs工具编译nmake 如果使用命令行nmake编译会提示“无法打开包括文件: “limits.h”“ 等错误信息 所以…