首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

经典Java基础面试题集锦

static: Java平台调用这个方法时不会创建这个类一个实例,因此这个方法必须声明为static。 void: main方法没有返回。...两个String对象存储是一样,但有可能在内存里存储不同地方 . == 比较是引用而equals方法比较是内容。...final方法无法重写。final变量不能改变。finalize()方法一个对象被销毁和回 收前会被调用。finally,通常用于异常处理,不管有没有异常被抛出都会执行到。...答案:全局变量是全局可见,Java不支持全局可见变量,因为:全局变量破坏了引用透明性原则。全局变量导致了命名空间冲突。 问题:如何将String类型转化成Number类型?...多态Java里有三种表现方式:方法重载通过继承实现方法重写通过Java接口进行方法重写。 问题:显式类型转化是什么? 答案:显式类型转化是明确告诉了编译器来进行对象转化。

42830

Semaphore 信号量

Semaphore semaphoreObject = new Semaphore(initialCount: 0, maximumCount: 5); 信号量工作原理 信号量是存储操作系统资源...多个进程之间使用信号量 或者 semaphore 有另一个构造函数,它接受额外字符串作为参数。该字符串参数是一个唯一字符串,用于多个进程之间使用信号量 以下是创建信号量用法。...semaphoreObject.WaitOne(); 信号量 WaitOne 方法另一个重载,我们可以通过时间间隔,线程可以等待从信号量获取信号。...如果线程指定时间内没有收到信号,则返回 false bool isSignalled = semaphoreObject.WaitOne(TimeSpan.FromSeconds(4)); 在上面的例子...如果它接收到信号,则返回真。 Release 方法一个线程从临界区退出时,它必须调用 Release 方法来增加信号量对象维护计数器。

42710
您找到你想要的搜索结果了吗?
是的
没有找到

多态和封装

假设有人决定添加一种新字典,并在其中将价格存储另一个键下,你该如何办呢?当然,可再次更新get_price,但这种应对之策多长时间内有效呢?...这正是多态用武之地。 多态和方法收到一个对象,却根本不知道它是如何实现----它可能是众多“形态”任何一种。你只知道可以询问其价格,但这就够了。至于询问价格方式,你应该熟悉。...然而,如果o将其名称存储全局变量 global_name呢?这意味着使用OpenObject类实例时,你需要考虑global_name内容,事实上,必须确保无人能修改它。...这可不是想要结果。基本上我们都希望对象时抽象;当调用方法时,无需操心其他操作,如避免干扰全局变量如何将名称“封装”到对象呢? 没问题,将其作为一个属性即可。...对象方法肯修改这些属性,因此对象将一系列函数(方法)组合起来,并赋予他们访问一些变量(属性)权限,而属性可用在两次函数调用之间存储

49520

《Python入门09》揭秘python面向对象编程~

标准库模块random包含一个名为choice函数,它从序列随机选择一个 元素。下面使用这个函数给变量提供一个。...然而,如果 o将其名称存储全局变量global_name呢?...') >>>c.get_name() 'Sir Lancelot' 到目前为止一切顺利,但这并不能证明名称不是存储全局变量。...对象方法可能修改这些属性,因此对象将一系列函数(方法)组合起来,并赋予它们访问一些变量(属性)权限,而属性可用于两次函数调用之间存储。...通过这样陈述,子类和超类就很容易理解。但在面向对象编程,子类关系意味深长,因 为类是由其支持方法定义。类所有实例都有该类所有方法,因此子类所有实例都有超 类所有方法

65720

.NET各种对象在内存如何布局

[read more…] [2] 如何将一个实例内存二进制内容读出来? 《如何计算一个实例占用多少内存?》我们知道一个类型或者引用类型实例在内存占多少字节。...如果我们知道这段连续字节序列初始地址,我们就能够将代表该实例字节内容读取出来。接下来内容,我们将利用一个简单方法输出指定实例字节序列,并此次分析类型和引用类型实例在内存布局。...[read more…] [3] 以纯二进制形式在内存绘制一个对象 一个对象总是映射一块连续内存序列(不考虑对象之间引用关系),如果我们知道了引用类型实例内存布局,以及变量引用指向的确切地址...,我们不仅可以采用纯“二进制”方式在内存“绘制”一个指定引用类型实例,还能直接通过改变二进制内容来更新实例状态。...我很多文章中都介绍过引用类型实例内存布局(《以纯二进制形式在内存绘制一个对象》 和《如何将一个实例内存二进制内容读出来?》

18920

设计模式---结构型模式

设计模式结构型模式 结构型模式 结构型模式(Structural Pattern)描述如何将类或者对 象结合在一起形成更大结构,就像搭积木,可以通过 简单积木组合形成复杂...结构型模式可以分为类结构型模式和对象结构型模式: 类结构型模式关心类组合,由多个类可以组合成一个更大 系统,类结构型模式中一般只存在继承关系和实现关系。...- 对象结构型模式关心类与对象组合,通过关联关系使得一 个类定义另一个实例对象,然后通过该对象调用其方法。...根据“合成复用原则”,系统尽量使用关联关系来替代继 承关系,因此大部分结构型模式都是对象结构型模式。...\ 适配器模式 桥模式 装饰模式 组合模式 外观模式 享元模式 代理模式 适配器模式 适配器模式讲解 对应代码 桥模式 桥模式讲解 对应代码 装饰模式 装饰模式讲解 对应代码 组合模式 组合模式讲解

54110

每日两题 T4

按摩师[1] 描述 一个有名按摩师会收到源源不断预约请求,每个预约都可以选择或不每次预约服务之间要有休息时间,因此她不能接受相邻预约。...给定一个预约请求序列,替按摩师找到最优预约集合(总预约时间最长),返回总分钟数。...实例3 输入:[2,1,4,5,3,1,1,3] 输出:12 解释:选择 1 号预约、 3 号预约、 5 号预约和 8 号预约,总时长 = 2 + 4 + 3 + 3 = 12。...分析 该问题是典型 动态规划 问题,使用两个变量存储时间和,遍历过程,对比两个变量值大小,始终将大赋值给指定一个变量,最终返回这个变量即为所求。 ?...,方法有add、delete、has •Map •本质上是键值对集合,类似集合•可以遍历,方法很多可以跟各种数据格式转换 •WeakMap •只接受对象作为键名(null除外),不接受其他类型作为键名

36420

【精选】Mysql B-Tree和B+Tree结构?

PHP静态变量有几种? 静态变量属于静态存储方式,其存储空间为内存静态数据区(静态存储区内分配存储单元)。 静态变量可以在任何可以申请地方申请,一旦申请成功后,它将不再接受其他同样申请。...将一个变量 = 赋值给另一个变量时,不会立即为新变量分配内存空间,而是变量zval给refcount加1。...一个垃圾周期中,通过检查引用计数是否减1,并且检查哪些变量容器引用次数是零,来发现哪部分是垃圾。 或者我们脚本中使用gc_collect_cycles()强制回收缓冲区垃圾。 15....,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A; 用户未退出网站A之前,同一浏览器,打开一个TAB页访问网站B; 网站B接收到用户请求后,返回一些攻击性代码...,并发出一个请求要求访问第三方站点A; 浏览器收到这些攻击性代码后,根据网站B请求,在用户不知情情况下携带Cookie信息,向网站A发出请求。

39510

22.手绘Spring DI运行时序图

7.解析属性注入规则 当容器在对属性进行依赖注入时,如果发现属性需要进行类型转换,如属性是容器另一个 Bean实例对象引用,则容器首先需要根据属性解析出所引用对象,然后才能将该引用对象注入...8.注入赋值 BeanWrapperlmpI类主要是对容器完成初始化Bean实例对象进行属性依赖注入,即把 Bean对象设置到它所依赖另一个Bean属性中去。...然而,BeanWrapperlmpI注入方法实际 上由AbstractNestablePropertyAccessor来实现 通过对上面注入依赖代码分析,我们已经明白了 Spring loC容器是如何将属性注入到...Dereference(解引用):一个C/C+ +应用比较多术语, C+ + ,” *“是解引用符号,而” & ”是引用符号,解引用是指变量指向是所引用对象本身数据,而不是引用对象内存地址...b、 将依赖Bean属性引用设置到被依赖Bean属性上。 c、将依赖Bean名称和被依赖Bean名称存储loC容器集合

66440

设计模式速览

工厂可能是一种函数或方法,其产出产品就是实例对象。比如 new 。...通过克隆一个已存在对象从而创建一个对象。 02 — 结构型模式 结构型模式关注如何将类或者对象结合在一起形成更大结构,就像搭积木一样,通过简单积木组合去形成一个复杂强大结构。 ?...比如,你餐厅吃饭,首先你发出了命令即点菜,然后,菜单通过服务员传递给了厨师,厨师最后制作菜品。 3、Iterator 迭代器模式。它提供了一种访问对象元素,但是又不暴露底层表示方法。...通过一个中介对象来封装一系列对象交互,而各个对象之间不需要显示相互引用。比如,你通过手机与另一个人交谈,你说的话并不是直接发送给对方,而是通过网络服务商作为中间人转达。...04 — 结语 其实设计模式远不止上述这些,某些例子也不一定准确,实际应用不同设计模式也可能组合交织在一起。本文只是一个简述,让大家对设计模式有一个初步贴切了解。

41120

《Effective Objective-C 》干货三部曲(三):技巧篇

因为类族实体子类并不与其基类属于同一个类。 第10条:既有类中使用关联对象存放自定义数据 我们可以通“关联对象”机制来把两个对象连接起来。这样我们就可以从某个对象获取相应关联对象。...全能初始化方法是所有初始化方法里参数最多一个,因为它使用了尽可能多初始化所需要参数,以便其他方法来调用自己。 我们拥有了一个全能初始化方法后,最好还是要覆写init方法来设置默认。...该内存恰好被另一个对象占据,而这个对象可以应答这个方法。 如果被回收对象占用原内存被新对象占据,那么收到消息对象就不会是我们预想那个对象。...尤其是我们如果想要让一个任务另一个线程上执行,最好应该将任务放到块里,交给GCD来实现,而不是通过performSelector方法。 举几个 来比较这两种方案: 1....第49条:对自定义其内存管理语义collection使用无缝桥 通过无缝桥技术,可以再Foundation框架OC对象和CoreFoundation框架C语言数据结构之间来回转换。

73420

《Effective Objective-C 》干货三部曲(三):技巧篇

因为类族实体子类并不与其基类属于同一个类。 第10条:既有类中使用关联对象存放自定义数据 我们可以通“关联对象”机制来把两个对象连接起来。这样我们就可以从某个对象获取相应关联对象。...全能初始化方法是所有初始化方法里参数最多一个,因为它使用了尽可能多初始化所需要参数,以便其他方法来调用自己。 我们拥有了一个全能初始化方法后,最好还是要覆写init方法来设置默认。...该内存恰好被另一个对象占据,而这个对象可以应答这个方法。 如果被回收对象占用原内存被新对象占据,那么收到消息对象就不会是我们预想那个对象。...尤其是我们如果想要让一个任务另一个线程上执行,最好应该将任务放到块里,交给GCD来实现,而不是通过performSelector方法。 举几个 来比较这两种方案: 1....第49条:对自定义其内存管理语义collection使用无缝桥 通过无缝桥技术,可以再Foundation框架OC对象和CoreFoundation框架C语言数据结构之间来回转换。

70310

文件读取功能(Pandas读书笔记7)

我们使用Type函数看一下df变量类型,看到读取文件后,pandas中就是使用DataFrame进行存储! ? 敲黑板!! 其实文件读取最大问题是如何解决原始数据错误导致无法正常读取问题。...那我们用之前代码读取会怎样呢? ? ? 我们发现数据混杂了一起,那如何将他们按照竖线分好列呢?增加一个参数即可! ?...三、存储文件文件 假如我们对读取文件进行了数据清洗、整理等操作后,需要存储至新文件,如何处理呢? 直接将原有的DataFrame变量使用.to_csv函数即可! ?...保存为CSV文件,r"D:\结果1.csv" r意思是后面文本没有转义字符,直接按照文本对应路径存储即可!...需要读取特定表格内容 df = pd.read_excel(xlsx, '表格2') read_excel后面增加表格名称即可! 那如何将DataFrame数据存储至Excel呢? ? ?

3.8K50

面渣逆袭:Java基础五十三问,快来看看有没有你不会

多态 所谓多态就是指程序定义引⽤变量所指向具体类型和通过该引⽤变量发出⽅法调⽤在编程时并不确定,⽽是程序运⾏期间才确定,即⼀个引⽤变量到底会指向哪个类实例对象,该引⽤变量发出⽅法调⽤到底是哪个类实现...从变量在内存存储⽅式来看:如果成员变量是使⽤ static 修饰,那么这个成员变量是属于类,如果没有使⽤ static 修饰,这个成员变量是属于实例。...Java 语言方法调用只支持参数传递。当一个对象实例作为一个参数被传递到方法时,参数就是对该对象引用。对象属性可以在被调用过程中被改变,但对对象引用改变是不会影响到调用者。...而对象所占空间是开辟,所以传递时候可以理解为把变量存储对象地址给传递过去,因此引用类型也是传递。 29.深拷贝和浅拷贝?...当字符创常量池没有 “abc”,此时会创建如下两个对象: 一个是字符串字面量 "abc" 所对应、字符串常量池中实例 另一个通过 new String() 创建并初始化,内容与"abc"相同实例

66130

JavaScript 是如何工作:JavaScript 共享传递和按传递

: 1)第一个通过 setNewString 方法把字符串 str 传递进去,如果学过面向对象语言如C#,Java 等,会认为调用这个方法后 str 为改变,引用这在面向对象语言中是 string...调用堆::这个区域跟踪当前正在执行函数,执行计算并存储局部变量变量以后进先出法存储堆栈。最后一个进来是第一个出去,数值数据类型存储在这里。...Here,lion 和 tiger 是引用类型,它们存储,并被推入堆栈。它们堆栈是堆位置内存地址。...因此,可以正确地说 js 传递参数是传入一份拷贝。如果被调用函数更改了参数,它不会影响原始,因为它存储在其他地方,它只处理一个副本。...sum 函数执行时,参数被推送到堆栈,由 sum 函数接收。 sum 函数创建另一个对象 {number:30},它存储另一个内存地址 002231 ,并将其放在堆栈参数位置。

3.7K41

听GPT 讲Alertmanager源代码--dispatchsilenceinhibit等

下面是对所列变量和结构体作用详解: _:代表一个未使用匿名变量,通常用于忽略某个变量赋值或返回。...其中,Set是通过给定标签组合,用来筛选在给定Set设置警报。该方法返回一个布尔,如果当前Set是给定Set子集,则返回true,否则返回false。...该方法也返回一个布尔,如果当前Set是给定Set子集,则返回true,否则返回false。 isSubset方法:这是Set内部方法,用于判断当前Set是否是另一个给定Set子集。...该方法实现IsFiringSubset和IsResolvedSubset方法时调用。 这些函数作用是用于检查当前Set是否是另一个给定Set子集,通过比较标签组合来确定子集关系。...run函数是抑制器主要处理逻辑,用于处理收到警报,并根据抑制规则决定是否对警报进行抑制。 Run函数是启动抑制器方法,会在一个go协程运行抑制器run函数。

23210

阿里前端高频面试题汇总

服务器端收到后,确认加密方法,也向客户端发送一个随机数和自己数字证书。...obj.a() ; 调用 obj 实例方法 a,该实例上目前有两个 a 方法一个是内部属性方法另一个是原型上方法。...利用一个属性保存系统目前所占空间大小,每次存储都增加该属性。当该属性大于 1M 时,需要按照时间排序系统数据,删除一定量数据保证能够存储下目前需要存储数据。...Webkit 和 Firefox 都做了这个优化,当执行 JavaScript 脚本时,另一个线程解析剩下文档,并加载后面需要通过网络加载资源。这种方式可以使资源并行加载从而使整体速度更快。...还可以通过给左侧变量数组设置空占位方式,实现对数组某几个元素精准提取:const [a,,c] = [1,2,3]通过把中间位留空,可以顺利地把数组第一位和最后一位赋给 a、c 两个变量: 2

28230

最全面试宝典-我春招总结

final是 一个修饰符,修饰变量量时必须要初始化变量量,以后引 用只能读,不不能修 改;修饰 方法时表示这个 方法可以被重载,但不不能重写。修饰类时表示这个类不不能再派 生出新 子类。...HashMap存储内容是具有映射关系KV键值对,内部是使 用数组加链表形式来实现数据存储通过K和hashcode() 方法来判断存在数组下标,(hashcode()实现 方法是根据hash...实现过程是先定义 一个 口,然后把各个实例例化过程放在 一个 工 厂类 里里 面,通过向 工 厂类 里里 面传 入不不同参数得到不不同对象。...静态代理理就是创建 一个代理理类,实现和真实类 一样 口,重写抽象 方法,调 用真实类 方法并且可以根据需要添加新功能,然后 用户通过代理理类来 生成 一个实例例化对象。...然后调 用静态 方法newProxyInstance去 生成 一个代理理类实例例,缺点是被代理理类需要实现 口。

83530
领券