逻辑顺序

Java编程的逻辑 (53) - 剖析Collections - 算法

六眼飞鱼酱① 提交于 2020-03-01 17:50:00
之前几节介绍了各种具体容器类和抽象容器类,上节我们提到,Java中有一个类Collections,提供了很多针对容器接口的通用功能,这些功能都是以静态方法的方式提供的。 都有哪些功能呢?大概可以分为两类: 对容器接口对象进行操作 返回一个容器接口对象 对于第一类,操作大概可以分为三组: 查找和替换 排序和调整顺序 添加和修改 对于第二类,大概可以分为两组: 适配器:将其他类型的数据转换为容器接口对象 装饰器:修饰一个给定容器接口对象,增加某种性质 它们都是围绕容器接口对象的,第一类是针对容器接口的通用操作,这是我们之前在接口的本质一节介绍的面向接口编程的一种体现,是接口的典型用法,第二类是为了使更多类型的数据更为方便和安全的参与到容器类协作体系中。 由于内容比较多,我们分为两节,本节讨论第一类,下节我们讨论第二类。下面我们分组来看下第一类中的算法。 查找和替换 查找和替换包含多组方法,我们分别来看下。 二分查找 我们在剖析Arrays类的时候介绍过二分查找,Arrays类有针对数组对象的二分查找方法,Collections提供了针对List接口的二分查找,如下所示: public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key) public static <T> int

数据结构中的逻辑结构和物理结构

有些话、适合烂在心里 提交于 2020-03-01 03:01:07
逻辑结构和物理结构是数据结构中重要的两个概念。 所谓逻辑结构,简单来说就是理解上的两个数据元素的关系,它很直观。学术点说就是数据对象中两个数据元素之间的相互关系,一般可以用一种偏序表示方法进行表示。可以简单的认为,我们学习数据结构就是学习数据元素的逻辑结构。逻辑结构可以划分为: 集合: 顺序结构:比如 线性表、链表、队列、栈 非顺序结构: ​ 树型结构: 比如 二叉树、堆 ​ 图型结构: 图 物理结构是指逻辑上的数据关系在计算机中存储形式,可以有: 顺序结构、链式结构、索引结构、散列结构(哈希表是一种存储结构) 这里提一下索引和散列区别: 索引一般需要建立一张索引表,将数据元素对应起来,这张索引表可以是多级的,一个典型的应用就是操作系统中的目录系统。 而散列一般是通过散列函数进行的,它需要对数据元素求hash值(一般用取模运算),直接得到该元素对应的数据元素或物理位置。 Notice 无论何种物理结构,在计算上进行存储的时候,只有两种方式: 一种是连续的方式,此时需要分配连续的内存 一种是非连续的方式,分配的内存不需要连续,但是需要用链表连接起来。 来源: CSDN 作者: 庐州小白 链接: https://blog.csdn.net/weixin_42194781/article/details/104579409

Java 异常try..catch finally 执行的顺序,以及其中常见几种执行情况

ⅰ亾dé卋堺 提交于 2020-02-25 19:21:40
Java 异常try…catch finally 执行的顺序,以及其中常见几种执行情况 在程序运行过程中,如果处理异常的部分包含finally的处理,那么无论代码是否发生异常,finally中的代码总会执行。 finally包含哪些处理逻辑? 1、IO流的关闭操作一般设置在finally中 2、数据库的连接关闭操作设置在finally中 情况一(try中有return,finally中没有return) : public class TryTest { public static void main ( String [ ] args ) { System . out . println ( test ( ) ) ; } private static int test ( ) { int num = 10 ; try { System . out . println ( "try" ) ; return num += 80 ; } catch ( Exception e ) { System . out . println ( "error" ) ; } finally { if ( num > 20 ) { System . out . println ( "num>20 : " + num ) ; } System . out . println ( "finally" ) ;

程序员的自我修养

梦想与她 提交于 2020-02-08 15:12:52
概述 提炼内容来自书籍<>,时长阅读回顾,勉励自己! 技术人需要具备"结构化思维" 结构化思维: 逻辑+套路 表达要有逻辑 想让表达内容有逻辑,需要学会四种组织思想的逻辑关系,实际上所有逻辑都在这四种顺序之内,只要我们的思想和表达在这四种逻辑顺序之内,就是有逻辑的: 演绎(因果)顺序:"大前提,小前提,结论"的演绎推理方式,比如经典三段论:"所有人都会死,苏格拉底是人,苏格拉底会死" 时间(步骤)顺序:"第一,第二,第三","首先,然后,再者"等 空间(结构)顺序:"前端,后端,数据","北京,上海,深圳",化整为零等 程度(重要性)顺序:"最重要,次重要,不重要" 做事要有套路 优秀工程师必备的三大思维 优秀工程师必备的一项技能 如何在工作中快速成长? (10个简单技巧) 关于技术规划,管理,架构的思考 程序员如何自我学习 从计算机知识到落地能力,你欠缺了什么 阿里资深技术专家的10年感悟 如何量化考核技术人的KPI 如何成为优秀的技术主管 如果我是一线技术主管 来源: https://www.cnblogs.com/houzheng/p/12283422.html

分布式初探——判断因果关系的向量时钟算法

萝らか妹 提交于 2020-02-08 12:38:11
今天的文章来聊聊 向量时钟 ,在前文介绍分布式系统一致性的时候,曾经介绍过,在弱一致性模型当中会有一个因果性的问题。向量时钟算法正是设计出来解决因果关系问题的。 我们来回顾一下因果问题,在实际日常的网页行为当中,部分行为存在因果关系。比方说知乎里面回答问题,显然得先有一个同学提出问题,然后才能有各路大V谢邀解答问题。但是由于是分布式系统,有可能问题和回答并不是存放在同一台机器,导致有可能它们 更新的顺序不一致 ,所以就有可能会出现用户在访问知乎的时候,发现自己关注的大V回答了某个问题,但是点进去问题却是空的。这种幽灵情况不是灵异事件,只是单纯的分布式系统设计没过关,没有考虑因果问题。 有的同学可以会说,这个不难啊,我们加入时间戳啊。时间戳的确可以解决一部分问题,但是并不能解决所有问题。有了时间戳之后,我们可以获得事件发生的时间,但是仍然不知道不同的数据之间的因果关系。由于分布式系统存在延迟,也不能简单地通过时间戳来做过滤或者筛选。不过,虽然单纯的时间戳不行,但已经非常接近了。 我们日常生活当中用事件发生的时间来反应事物发生的顺序,我们说的先后顺序,其实是以客观上的时间作为参考系参考得到的结果。问题来了,我们能不能找到或者构造出 其他的参考系 来反应事物发生的顺序呢? 当然是可以的,不然也没有这篇文章了,这就是大名鼎鼎的 逻辑时钟 算法。多说一句,逻辑时钟算法和许多其他分布式算法一样

数据结构与算法概念

扶醉桌前 提交于 2020-02-06 00:27:49
数据结构小白入门 数据结构指一组相互之间存在一种或多种特定关系的数据元素的集合, 当我们需要在计算机中存储这些数据时,还涉及到数据的,组织方式,在计算机中的存储方式,以及定义在该数据上的一组操作; 一组数据相互之间有某种关系 组织方式 存储方式 以及可对其进行的一组操作 理解: 我们学习的最终目的是要在计算机中存储 一组数据 ,但是不得不先考虑数据的 组织方式 ,在计算机中的 存储方式 ,以及可以对这些数据进行的 一组操作 ,当然了既然是一组数据必然表明了这写数据之间是存在想换的关联关系的;关系可能还会有多种; 例如: 一组数据:12345 组织方式:从小到大 存储方式:可使用线性存储结构 操作:要取出最大的一个 数据结构研究方向 问题: 机外处理 处理要求 建模: 逻辑结构 基本运算 实现: 存储结构 算法 基本术语 数据(Data): ​ 所有能被计算机处理的符号的集合 数据元素(DataElement): ​ 是数据集合中的一个 个体,即数据的基本单位 数据项(DataItem): ​ 数据元素常常可分为若干个数据项,数据项是数据具有意义的最小单位 组织数据的三个层次: 数据(表)->数据元素(行)->数据项(字段) 实际问题中的数据成为原始数据 逻辑结构(LogicalStructure) ​ 数据元素之间的结构关系,如从小到大/一对一/一对多 物理结构

Eclipse标签页显示最近修改

邮差的信 提交于 2020-02-01 05:27:36
eclipse的编辑区如果打开的文件过多,会隐藏部分,旧版本的eclipse是按照优先最近查看过的页面逻辑展示的,而新版的eclipse(貌似是4.3开始)编辑区的标签页不按最近逻辑显示,而是按照打开时间的先后顺序排列,文件打开一多,感觉很不习惯,下面给出解决方法 4.4改法 通过Preferences->General->Appearance查看当前系统正在使用的样式 在eclipse安装目录plugins\org.eclipse.ui.themes_1.0.1.v20141126-1957\css找到eclipse当前样式的css文件,win7默认为e4_default_win7.css 打开,将下面的 swt-mru-visible改为true 即可 .MPartStack { swt-simple: true ; swt-mru-visible: true ; } 来源: CSDN 作者: m0_45406092 链接: https://blog.csdn.net/m0_45406092/article/details/104042038

SQL逻辑查询语句执行顺序

只谈情不闲聊 提交于 2019-12-19 16:46:29
一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition> ORDER BY <order_by_condition> LIMIT <limit_number> 二 SELECT语句关键字的执行顺序 (7) SELECT (8) DISTINCT <select_list> (1) FROM <left_table> (3) <join_type> JOIN <right_table> (2) ON <join_condition> (4) WHERE <where_condition> (5) GROUP BY <group_by_list> (6) HAVING <having_condition> (9) ORDER BY <order_by_condition> (10) LIMIT <limit_number> 五 执行顺序分析 在这些SQL语句的执行过程中,都会产生一个虚拟表,用来保存SQL语句的执行结果(这是重点),我现在就来跟踪这个虚拟表的变化

查询的逻辑执行顺序

谁都会走 提交于 2019-12-18 03:33:30
查询的逻辑执行顺序 FROM < left_table> ON < join_condition> < join_type> JOIN < right_table> WHERE < where_condition> GROUP BY < group_by_list> WITH {cube | rollup} HAVING < having_condition> SELECT DISTINCT ORDER BY < order_by_list> < top_specification> < select_list> 标准的SQL 的解析顺序为: .FROM 子句 组装来自不同数据源的数据 .WHERE 子句 基于指定的条件对记录进行筛选 .GROUP BY 子句 将数据划分为多个分组 .使用聚合函数进行计算 .使用HAVING子句筛选分组 .计算所有的表达式 .使用ORDER BY对结果集进行排序 执行顺序 FROM:对FROM子句中前两个表执行笛卡尔积生成虚拟表vt1 ON:对vt1表应用ON筛选器只有满足< join_condition> 为真的行才被插入vt2 OUTER(join):如果指定了 OUTER JOIN保留表(preserved table)中未找到的行将行作为外部行添加到vt2

文件系统概述

余生颓废 提交于 2019-12-07 17:01:27
一、概述 操作系统对系统的软件资源(不论是应用软件和系统软件)的管理都以文件方式进行,承担这部分功能的操作系统称为文件系统。 1、文件 计算机系统对系统中软件资源:无论是程序或数据、系统软件或应用软件都以文件方式来管理。文件是存贮在某种介质上的(如磁盘、磁带等)并具有文件名的一组有序信息的集合。 文件名是由字符和数字组成的,例如MS-DOS中文件名由三部分组成,格式如下:[<盘符>] <文件名> [.扩展名]。格式 [ ] 中是可以省略,盘符为存放文件的磁盘驱动器号,如用A:和C:分别 表示软盘和硬盘驱动器;文件名由1∽8个字符组成。扩展名为由“.”开始的1-3个字符组成,如.EXE表示可执行的浮动代码文件,.TXT表示ASCⅡ码文本文件,.LIB表示库文件,.BAT表示批处理文件等。 UNIX 文件系统将文件分成普通文件、目录文件、设备文件(特殊文件)和符号连接文件(Symbolic link)等几类,UNIX把所有I/O设备作为特殊文件,对I/O设备操作模仿为对普通文件的存取,这样将文件与设备的I/O尽可能统一起来。 数据项是描述一个对象的某些属性的字符集,它是数据的基本单位,一个数据项有一个值。记录是一组相关数据项的集合,用于描述一个对象某方面的属性。 文件是具有文件名的一组相关记录的集合。数据库是相关数据的集合。 2、文件系统