文档章节

计算机9个基础知识点

fengsehng
 fengsehng
发布于 2016/11/09 09:11
字数 2522
阅读 6
收藏 0

1.编译型语言和解释型语言的区别

编译型语言:

编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的。编译程序将源程序翻译成目标程序后保存在另一个文件中,该目标程序可脱离编译程序直接在计算机上多次运行。大多数软件产品都是以目标程序形式发行给用户的,不仅便于直接运行,同时又使他人难于盗用其中的技术C、C++、Fortran、Visual Foxpro、Pascal、Delphi、Ada都是编译实现的。

解释型语言:

解释型语言的实现中,翻译器并不产生目标机器代码,而是产生易于执行的中间代码,这种中间代码与机器代码是不同的,中间代码的解释是由软件支持的,不能直接使用硬件,软件解释器通常会导致执行效率较低。用解释型语言编写的程序是由另一个可以理解中间代码的解释程序执行的。与编译程序不同的是,解释程序的任务是逐一将源程序的语句解释成可执行的机器指令,不需要将源程序翻译成目标代码后再执行。解释程序的优点是当语句出现语法错误时,可以立即引起程序员注意,而程序员在程序开发期间就能进行校正。对于解释型Basic语言,需要一个专门的解释器解释执行 Basic程序,每条语言只有在执行才被翻译。这种解释型语言每执行一次就翻译一次,因而效率低下。一般地,动态语言都是解释型的,如Tcl、Perl、Ruby、VBScript、 JavaScript等。

混合型:

Java很特殊,Java程序也需要编译,但是没有直接编译称为机器语言,而是编译称为字节码,然后在Java虚拟机上用解释方式执行字节码。Python 的也采用了类似Java的编译模式,先将Python程序编译成Python字节码,然后由一个专门的Python字节码解释器负责解释执行字节码。(Java虚拟机对字节码的执行相当于模拟一个cpu,而ruby1.8–在虚拟机还未出现前–是通过解释成语法树执行。)
个人认为,java是解释型的语言,因为虽然java也需要编译,编译成.class文件,但是并不是机器可以识别的语言,而是字节码,最终还是需要jvm的解释,才能在各个平台执行,这同时也是java跨平台的原因。所以可是说java即是编译型的,也是解释型,但是如果非要归类的话,从概念上的定义,恐怕java应该归到解释型的语言中。

2.c语言的include

include<> :表示只从从标准库文件目录下搜索,对于标准库文件搜索效率快。

include”” :表示首先从用户工作目录下开始搜索,对于自定义文件搜索比较快,然后搜索整个磁盘。

3.中断响应时间是指从发出中断请求到进进中断处理所用的时间

4.class模板

class用于定义类,在模板引入c++后,最初定义模板的方法为:

template,这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typename这个关键字,它的作用同class一样表明后面的符号为一个类型,这样在定义模板的时候就可以使用下面的方式了:

template.在模板定义语法中关键字class与typename的作用完全一样。

template <typename T1, typename T2>
template <class T1, class T2>

5.补码

1.因为计算机不仅仅要处理加法运算,还有处理减法运算,但是计算机的CPU只有加法器,没有减法器
所以出现了补码,正数的源码,反码,补码是自己本身,所以补码出现并不影响正数原来的运算

2.计算机二进制如何表示正负数呢,规定最高位为符号位,0是正数,1是负数,负数的反码就是符号位不变,然后全部取反,补码就是反码加1,比如1001:,反码就是1110,补码就是1111.然后谁的补码和谁补码二进制相加就可以得到正确的数字了

3.另外说明,补码还解决了源码中2个0的情况(即+0和-0)

6.c++对++的重载

C++中重载前缀++: operator++();表达式++a,运用成员函数调用方式为:a.operator++()
重载后缀++: operator++(int); 表达式a++,运用成员函数调用方式为:a.operator++(1)

7.图像空间的消隐算法

常见的消隐算法有z-buffer算法:算法的原理是:先将待处理的景物表面上的采样点变换到图像空间(屏幕坐标系),计算其深度值,并根据采样点在屏幕上的投影位置,将其深度值与已存贮在Z缓存器中相应像素处的原可见点的深度值进行比较。如果新的采样点的深度(z值)大于原可见点的深度,表明新的采样点遮住了原可见点,则用该采样点处的颜色值更新帧缓存器中相应像素的颜色值,同时用其深度值更新Z缓存器中的深度值;否则,不做更改。

1)物体空间的消隐算法 (光线投射):将场景中每一个面与其他每个面比较,求出所有点、边、面遮挡关系。

2)图像空间的消隐算法 (Z-buffer、扫描线Z-buffer 、Warnock):对屏幕上每个象素进行判断,决定哪个多边形在该象素可见。

3)物体空间和图像空间的消隐算法 (画家算法):在物体空间中预先计算面的可见性优先级,再在图像空间中生成消隐图。

8.常见哈希冲突解决办法:

1.开放地址法 2.线性探测法 3.链地址法(拉链法) 4.二次探测法
5.伪随机探测法 6.再散列(双重散列,多重散列) 7.建立一个公共溢出区

9.不改代码的情况下,如何快速解决某个域名服务器的压力

一。重定向

1.HTTP重定向

增加N台内部服务器,组成一个局域网,将APP复制N份放到内部服务器中,原来的服务器作为与因特网通信的接口。当原服务器收到客户端请求后,服务器选择一个负载最小的内部服务器,将客户端的请求重定向到该服务器

html重定向就是通过各种的方法将各种网络请求重新定个方向转到其它位置。 在网站建设中,时常会遇到需要网页重定向的情况:象网站调整,如改变网页目录结构,网页被移到一个新地址,再或者,网页扩展名改变,如因应用需要把。php改成。Html或。shtml,在这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户还会得到一个404页面错误信息,访问流量白白丧失;再如某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点,等等。

301 redirect

301代表永久性转移(Permanently Moved),301重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。

302 redirect

302代表暂时性转移(Temporarily Moved ),在前些年,不少Black Hat SEO曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。

meta fresh

这在2000年前比较流行,不过现在已很少见。其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之内),会被判断为spam。

2.DNS重定向

原服务器IP对应的域名解析到多个IP,用DNS轮转法选择合适的IP

3.IP地址转发

另外还可以进行代理的重定向

二。其他的思路:

1,应用服务器与数据库分离
2,使用缓存改善性能,缓存分为两种,缓存在应用服务器上的本地缓存,缓存在专门分布式缓存上的运程缓存
3,使用应用服务器集群,增加服务器数量,使用负载均衡调度服务器
4,使用反向代理和CDN服务,购买网络商的缓存服务
5,使用分布式文件系统,将数据站点做成分布式架构,如后台数据库

我的微信二维码如下,欢迎交流讨论

这里写图片描述

欢迎关注《IT面试题汇总》微信订阅号。每天推送经典面试题和面试心得技巧

微信订阅号二维码如下:

这里写图片描述

© 著作权归作者所有

共有 人打赏支持
上一篇: 最大流问题
下一篇: 堆排序详解
fengsehng
粉丝 4
博文 284
码字总数 214494
作品 0
朝阳
程序员
私信 提问
马上要考试了,不知道如何复习,希望各位前辈能指点下~

我是个只玩打游戏的电脑小白,马上要考试了,不知道如何复习,而且让我临时抱佛脚也只有一个半月的时间了,希望各位前辈能指点下,这下面就是我要考试的知识点- -虽然看起来都是基础,但是我...

panhao
2011/06/27
1K
16
计算机技术与软件专业技术资格(水平)考试

关于北京地区2017年度计算机技术与软件专业技术资格(水平)考试有关问题的通知 京人考发〔2017〕14号 2017年3月13日 各有关单位:   根据原北京市人事局、原北京市信息化工作办公室《关于...

杰1992
2017/06/23
0
0
20天零基础Linux入门学习到精通视频直播

20天零基础Linux入门学习到精通视频直播 讲师介绍:老男孩IT教育-李导李老师多年Linux一线实战经验及Linux教学经验,擅长以图形表达讲解抽象概念,善于用 简单易懂的例子讲解重点难点,严肃不...

运维自动化
2017/06/08
0
0
Java从入门到大神怎么学?Java这些知识点学懂才好找工作!

Java从入门到大神怎么学?千锋长沙的资深讲师告诉你首先你要明白自己的薄弱点在哪里!很多非科班培训机构出来的同学,在应用开发方面有所能力,但在计算机基础方面非常薄弱。很多想学习的朋友...

JAVA大神
2017/12/07
0
0
大数据开发培训:0基础学习Java编程语言有哪些知识点?

Java 技术通用、高效、具有平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网等,学习Java首先要知道学习知识点有哪些。在这就用加米谷大数据培训...

加米谷大数据
2018/07/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

跟我学Spring Cloud(Finchley版)-15-Hystrix监控详解

Hystrix提供了监控Hystrix Command的能力,本节来详细探讨。 监控端点与数据 应用整合Hystrix,同时应用包含spring-boot-starter-actuator 依赖,就会存在一个/actuator/hystrix.stream 端点...

周立_ITMuch
10分钟前
0
0
Android Studio jni开发入门——看我就够了

一、环境配置 主要需要配置的就是NDK(Native Development Kit),现在Android studio很便利,可以一键下载: file → setting → 按截图找到如下路径 → 选择NDK → 确定应用下载 NDK安装 ...

天王盖地虎626
11分钟前
0
0
day26:shell题

1、 判断当前主机的CPU生产商,其信息在/proc/cpuinfo文件中vendor id一行中。 如果其生产商为AuthenticAMD,就显示其为AMD公司; 如果其生产商为GenuineIntel,就显示其为Intel公司; 否则,...

芬野de博客
20分钟前
0
0
iOS开发之CoreMotion框架的应用

iOS开发之CoreMotion框架的应用 我们知道,现在智能手机手机的功能已经越来越强大。小小的手机中集成了众多的传感器配件。通过这些传感器可以获取到手机甚至用户的状态信息。 在iOS5之前,加...

珲少
23分钟前
0
0
python里能不能用中文

现代计算机和编程的起源和推动力量主要源自美国,再加上26个字母很便于表示(算上大小写,6位bit就够了),因此英语一直是编程领域的不二之选。但这就给部分非英语国家的编程学习者带来一些困...

crossin
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部