面试题总结(PS:只是我遇到的那些面试题,并不是经典面试题)

一、类和结构的区别,分别有什么应用。(参考:https://blog.csdn.net/yikeshu19900128/article/details/40400479

1)类是引用类型,数据存放在堆上,指向的地址存在栈上。结构是值类型,数据存在栈上。

2)类可以继承,能继承另一个类或接口,也可以被继承。结构不能继承,不能继承另一个结构或类,也不能被继承,但是可以继承接口。

3)类可以在声明时初始化,结构不能在声明时初始化。

4)在类中,一旦我们编写了带参数构造函数,默认构造函数就不存在了。当我们要调用不带参数的构造函数来初始化对象时,我们必须再自己编写一个不带参数的构造函数。但是在结构中,始终存在一个不带参数的默认构造函数,并且,这个构造函数是不可替代的,不能重写,也不能覆盖,在结构中,我们只能编写带参数的构造函数,不能编写不带参数的构造函数

5)析构函数:类有析构函数,但是结构没有析构函数

6)关键字:在类中可以使用但是在结构中限制使用的关键字有:abstract、sealed、protected;Static关键字可以用在类名前面用来声明静态类,但是不能用在struct前面,不存在静态结构

7)类用new来实例化对象,分配内存,需要使用new返回地址及分配空间,而结构用new是初始化,结构是值类型,声明时就已经分配内存了

结构和类的适用场合分析:(参考:https://blog.csdn.net/Iqingshuifurong/article/details/53129536

  1、当堆栈的空间很有限,且有大量的逻辑对象时,创建类要比创建结构好一些;

  2、对于点、矩形和颜色这样的轻量对象,假如要声明一个含有许多个颜色对象的数组,则CLR需要为每个对象分配内存,在这种情况下,使用结构的成本较低;

  3、在表现抽象和多级别的对象层次时,类是最好的选择,因为结构不支持继承。

  4、大多数情况下,目标类型只是含有一些数据,或者以数据为主。

二、在项目中直接使用sql语句和用存储过程查询的区别是什么(参考:https://www.cnblogs.com/binyue/p/6442310.html

三、网站的优化有哪些方法?(从服务端和客户端两个方面说明)(参考:https://www.zhihu.com/question/21658448

【这个如果知道的希望可以在评论区分享你的答案,谢谢】

前端优化的途径有很多,按粒度大致可以分为两类,第一类是页面级别的优化,例如 HTTP请求数、脚本的无阻塞加载、内联脚本的位置优化等 ;第二类则是代码级别的优化,例如Javascript中的DOM 操作优化、CSS选择符优化、图片优化以及 HTML结构优化等等。(作者:斯迪 链接:https://www.zhihu.com/question/21658448/answer/18903129 来源:知乎)
 
 
四、怎么避免点击按钮后重复提交?【写出你能想到的所有方法】(参考:https://www.cnblogs.com/wuyx/p/6118484.html
1)按钮点击提交后,让按钮成为不可用状态,等操作执行完成后再恢复。
2)设置一个变量来记录按钮点击次数,如果点击的时候为0,则执行提交操作,否则return。
3)在点击按钮进行提交之后可以在页面上加一个“等待中。。。”的动态效果,在未完成操作时按钮所在的页面是不能点击的。等执行完操作后再隐藏动态效果,恢复页面。
4)用cookie保存上一次点击提交的时间,比较两次的时间间隔,如果在你觉得间隔过短的话,就把第二次的提交过滤掉。
5)还有链接里面的方法 https://www.cnblogs.com/wuyx/p/6118484.html 【欢迎补充】
 
五、JavaScript里有什么基本数据类型?(参考:https://www.cnblogs.com/mybwhy/p/7245234.html?utm_source=itdadao&utm_medium=referral
1)Undefined类型:Undefined类型只有一个值即undefined。对未初始化和未声明的变量执行typeof操作符都会返回undefined。
2)Null类型:Null类型是第二个只有一个值的数据类型即null。null值表示一个空指针对象,因此typeof操作符检测null值时返回“object”。
3)Boolean类型:Boolean类型有两个字面值:true和false。true不一定等于1,false不一定等于0。需要注意的是true和false是区分大小写的,也就是说True和False(以及其他的混合大小写形式)都不是Boolean值,只是标识符。
4)Number类型:
5)String类型:数值、布尔值、对象、字符串值都有toString()方法,但null和undefined值没有。
6)Object类型:在javascript中Object类型是所有其他实例的基础。
引申题:
<script>
 
  var a='12.3';//string类型
 
  var b=12.6;//number类型
 
  var c=a+b;//c是string类型
 
  alert(c);//结果是什么?====>结果为 12.312.6
 
</script>
 
        什么时候得到结果24?什么时候得到25?【js中的四舍五入,参考:http://www.jquerycn.cn/a_11512
<script type="text/javascript">
var a = '12.3';
a = parseInt(a);//a=12
var b = 12.6;
var c = a + b;//c=24.6
alert(typeof (c));//number类型
alert(parseInt(c));//
</script>
<script type="text/javascript">
var a = '12.3';
a = parseFloat(a);
var b = 12.6;
var c = a + b;
alert(c);//24.9
alert(typeof (c));//number类型
alert(c.toFixed());//25 在js中四舍五入的函数 tofixed(n) , n为要保留的小数位数。n为0~20,当n超过20的时候,js会出错。
</script>
 
 
 

上一篇:【RL-TCPnet网络教程】第32章 RL-TCPnet之Telnet服务器


下一篇:【RL-TCPnet网络教程】第28章 RL-TCPnet之DNS应用