分享

云计算面试题笔试锦集,云计算实用面试题答案二

 千锋云计算 2019-05-29

云计算正在成为企业部署新应用程序的一个主要方法,这一趋势正在迅速改变着IT就业市场。其中,对于云计算架构师的需求特别高,同时带来的也是丰厚的薪水。这里,我们列出了在云计算架构师招聘面试中面试者有可能被问到的问题,以及针对如何回答问题的建议,希望对你得到云计算架构师的岗位有所帮助。选行业找工作云计算是一个不错的选择,所以这次小编就为大家带来云计算面试及答案,希望能够对大家找工作的征程有所助益,这篇文章为云计算实用面试题第二部分:

垃圾收集将检查并释放不再使用的内存,因为JVM 垃圾收集器收集一个对象之前,一般要求程序调用适当的方法释放资源,但在没有明确释放资源的情况下,Java 提供了缺省机制来终止化该对象心释放资源,这个方法就是 finalize( )。

所以说垃圾收集的程序是不需要明确释放对象的。

现代垃圾收集能够处理循环引用问题。

首先垃圾回收的循环引用问题的描述如下:

class A

{

B b;

}

class B

{

A a;

}

A var_a= new A();

B var_b = new B();

var_a.b = var_b;

var_b.a = var_a;

至此实现了循环引用。

var_a和var_b是变量的名字,在栈上,里面存放的值是一个地址,指向在堆中开辟的两个对象,姑且叫他们obj_a和obj_b好了。obj_a有两个变量指向它var_a和var_b.a,计数为2,obj_b也有两个变量指向它var_b和var_a.b计数为2。当程序运行结束时,会销毁var_a和var_b,因为他们是栈上的东西,作用也就保存下地址而已。此时obj_a和obj_b的引用计数变为1。这里我们要知道一点:var_a的b是保存在堆上的。var_b的a也是保存在堆上的。obj_a有个引用指向它,来源于obj_b中,同样obj_b有obj_a指向的引用。这时的操作就是确定两个在堆中的对象能否被销毁。查看obj_a是否有引用指向它,有且来源于obj_b,那就不销毁obj_a,查看obj_b是否有引用指向它,有且来源于obj_a,那就不销毁。到此obj_a和obj_b相互引用,一直都不会销毁。

再看下面的例子

class A

{

B b;

}

class B

{

}

A var_a = new A();

B var_b = new B();

var_a.b = var_b;

这不是循环引用。

堆中有两个对象obj_a,obj_b。obj_a的引用计数为1,obj_b的引用计数为2。当程序运行结束时,先处理栈中的变量,销毁var_a,var_b。那么obj_a的引用变为0,obj_b的引用变为1。然后将视角放到堆上,查看obj_a的引用计数,现在是0,销毁obj_a。查看obj_b的引用计数,因为obj_a已经销毁了,obj_a中的变量b也就不存在了,那么obj_b的引用计数也就变成了0,那就销毁obj_b。如果先查看obj_b再查看obj_a得到的结果也是一样的哦。垃圾收集起会不定时的来内存巡视一番的。

//然而现代垃圾收集能够处理循环引用问题

单纯的基于引用计数实现的计数器是无法处理循环引用问题的

cpython等现代垃圾收集机制就是采用引用计数,的主垃圾回收器来收集垃圾,对于那些因为循环引用无法清理的对象,cpython会不时启动一个辅助的基于引用遍历的垃圾回收器来清理它们。

Java 语言将内存分配和释放的工组交给了自己,程序员不必做这些工作,它提供一个系统级的线程跟踪每个内存的分配,在jvm的空闲处理中,垃圾收集线程将检查和释放不再使用的内存(即可以被释放的内存)。垃圾收集的过程在 Java 程序的生存期中是自动的,不需要分配和释放内存,也避免了内存泄漏。

可以调用 System.gc()方法建议 JVM 执行垃圾收集以使得可被释放的内存能立即被使用,当此方法返回的时候, JVM 已经做了最大的努力从被丢弃的对象上回收内存空间。程序员不能指定收集哪些内存,一般而言也不用关心这个问题,除非是程序的内存消耗很大,特别是有很多临时对象时可以“建议“进行垃圾收集以提高可用内存。需要指出的是调用 System.gc()方法不能保证 JVM 立即进行垃圾收集,只是建议,因为垃圾收集线程的优先级很低(通常是最低的)。

毫无疑问,垃圾收集能提高程序猿的效率

在Java中,引入了垃圾回收机制:垃圾回收器(Garbage Collector, GC),可以自动回收内存中的垃圾,这是Java语言相对于其它语言的优势地方,但是内存泄漏并不会因此而完全避免。

Java 的垃圾回收机制是为所有java应用进程服务的,而不是为某个特定的进程服务的。因此,任何一个进程都没有权利去命令垃圾回收机制做什么、怎么做或做多少。

在Java中,负责对字节代码解释执行的是虚拟机。

在php中,disable_functions是禁用一些危险函数,register_globals的意思就是注册为全局变量,所以当On的时候,传递过来的值会被直接的注册为全局变量直接使用,而Off的时候,我们需要到特定的数组里去得到它。open_basedir就是将用户可操作的文件定死在某个目录下。这三个都跟安全有很大关系,而file_uploads就是上传东西,跟安全没什么大关系。

用sql语言实现回收用户lilei对职员表staff中工资salary的修改权限:revoke update(salary) on staff from lilei

二维数组是其数组元素为线性表的线性表

lp命令包含有关aix打印子系统,lp的用途就是请求发送到行列打印机

06 03 * * 03 lp /usr/local/message | mail -s "server message" root这条命令会在每周三03:06分自动执行

class Parent(object):

  x = 1

 class Child1(Parent):

  pass

 class Child2(Parent):

  pass

 print Parent.x, Child1.x, Child2.x

Child1.x = 2print Parent.x, Child1.x, Child2.x

Parent.x = 3print Parent.x, Child1.x, Child2.x

输出:

1 1 1

1 2 1

3 2 3

线型探测,二次探测,拉链法,二次散列都是属于hash碰撞解决方法

软件项目存储于/ftproot,允许apache用户修改所有程序,设置访问权限的指令:

chmod apache -R /ftproot

其中-r是递归子目录

socket通信是不一定需要建立连接的

socket的客户端口是不固定的,而socket服务端的端口是固定的

socket用于描述ip地址的端口,是一个通信链的句炳

createEvent,createFile,createSemaPhore可以返回windows内核对象

强制卸载已安装软件需要的参数:rpm -e --nodeps

数据库设计里,视图(View)可以使得我们为一个或多个数据表定义一个特殊的表现形式,视图在行为上与数据表没啥特别区别,可以使用基本的select,insert,update等命令修改数据,但对于update操作,也有一些限制,其中受限的原因有:

1如果视图里的数据来自多张字表时

2初始化view定义的select语句中包含了group by,distinct,limit,或having等命令

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多