zoukankan      html  css  js  c++  java
  • 0409笔试总结

    1.当线程在活动之前或活动期间处于正在等待、休眠或占用状态当该线程被中断时,抛出该异常。
    1)java.lang.Object 类的 wait 方法 使线程进入堵塞状态
    2)java.lang.Thread 类的 sleep 方法 使线程进入休眠状态
    3)java.lang.Thread 类的 join 方法 使线程按特定顺序执行(当线程a里调用了b.join(),则需等待b线程执行完才能继续执行线程a)
    调用了b.join(1000),如果b线程里拿取了对象锁(synchronized关键字获取),则等待一秒后也需等线程b释放对象锁

    2.接口中默认修饰变量属性用:public static final
    为什么是public:因为接口必然是要被实现的,如果不是public,这个属性就没有意义了;
    为什么是static:static代表着这个东西在内存中只有一份;
    为什么是final:这是为了体现java的开闭原则,因为接口是一种模板,既然是模板,那就对修改关闭,对扩展开放。
    1)关于String类型已经为final的说法:
    1)再加final代表着引用指向也不可改变

    3.因为重写的equals()里一般比较的比较全面比较复杂,而hashCode()方法利用比较两个对象的hashcode值效率比较高,但不稳定,两个不同的对象也有可能hashcode值相等
    equals()相等的两个对象他们的hashCode()肯定相等,也就是用equals()对比是绝对可靠的。
    hashCode()相等的两个对象他们的equal()不一定相等,也就是hashCode()不是绝对可靠的。

    4.标准ASCII只使用7个bit,扩展的ASCII使用8个bit。ASCII码包含一些特殊空字符,有些不可打印(ASCII 表上的数字 0–31 分配给了控制字符)

    5.TCP协议头中不包含源IP地址和目的IP地址

    6.jvm堆分为:新生代(一般是一个Eden区,两个Survivor区),老年代(old区)。常量池属于 PermGen(方法区)

    7.PreparedStatement的一个缺点是,我们不能直接用它来执行in条件语句;需要执行IN条件语句的话,下面有一些解决方案:
    分别进行单条查询——这样做性能很差,不推荐。
    使用存储过程——这取决于数据库的实现,不是所有数据库都支持。
    动态生成PreparedStatement——这是个好办法,但是不能享受PreparedStatement的缓存带来的好处了。
    在PreparedStatement查询中使用NULL值——如果你知道输入变量的最大个数的话,这是个不错的办法,扩展一下还可以支持无限参数

    8.序列化:
    1. 在序列化的时候,被transient或者static修饰的属性,不可以序列化。
    2. 一个类可以被序列化,那么它的子类也可以被序列化。
    3. 序列化可以实现深复制,而Object中的clone实现的就只是浅复制。

    9.正则中:
    d:匹配数字,D:匹配非数字

    10.finally一定会在return之前执行,但是如果finally使用了return或者throw语句,将会使trycatch中的return或者throw失效

    11. 重写和重载
    静态方法,不存在重写,重写只对可见的实例方法有效。静态方法只有隐藏。所以在父子类中存在相同的静态方法时算重载
    重载则是根据形参的静态类型确定调用的方法版本,重写是根据调用者在运行期的实际类型来确定调用的方法版本。

    12.concat()方法,返回连接后的数组或字符串对象,本身并不会发生变化
    join()方法,能将数组或集合中的值按指定方式连接,返回字符串

    13.
    500:服务器内部报错,无法完成请求
    501:服务器不支持实现请求所需要的功能,简称服务器不支持请求
    400:请求语法格式错误,参数啥的,服务器无法理解请求
    401:用户没有访问权限,需要进行身份认证。
    403:服务器拒绝请求,服务器上文件操作权限设置导致,或者是没有权限访问
    404:找不到请求的页面

    14.SVG是一种用XML定义的语言,用来描述二维矢量及矢量/栅格图形。SVG提供了3种类型的图形对象:矢量图形(vectorgraphicshape例如:由直线和曲线组成的路径)、图象(image)、文本(text)。
    图形对象还可进行分组、添加样式、变换、组合等操作,特征集包括嵌套变换(nestedtransformations)、剪切路径(clippingpaths)、alpha蒙板(alphamasks)、滤镜效果(filtereffects)、模板对象(templateobjects)和其它扩展(extensibility)。
    严格意义上不属于html标签元素中的一种

    15.>>带符号右移,>>>不带符号右移,<<带符号左移
    << : 左移运算符,num << 1,相当于num乘以2

    >> : 右移运算符,num >> 1,相当于num除以2

    >>>: 无符号右移,忽略符号位,符号位不动 , 空位都以0补齐

    16.Java异常的基类为java.lang.Throwable,java.lang.Exception和java.lang.Error继承于该类。
    1)运行时异常可以不被申明,比如抛出啥的,它由jvm自行处理,比如空指针异常和数组越界异常等

    17.oom中的:(jmap)
    1)内存泄露 和 无用当资源无法回收
    2)并发量大
    3)创建了一个很大的对象

    18.oom异常的解决方法:
    1)将堆内存dump下来
    2)简单粗暴:加大堆内存
    1.分布式服务
    3)多线程加载对象

    19.辗转相除法是以除数和余数反复做除法运算

    20.servlet如何获取用户配置的初始化参数:
    1)getInitParameterr(java.lang.Stringname)
    服务器上下文参数:
    1)servlet的ServletConfig对象拥有该servlet的ServletContext的一个引用,所以可这样取得上下文初始化参数:getServletConfig().getServletContext().getInitParameter()
    2)也可以在servlet中直接调用getServletContext().getInitParameter()

    21.NOSCRIPT标签用来定义在脚本未被执行时的替代内容

    22.+运算符优先级高于三目运算符,
    console.log('Value is ' + (val != '0') ? 'define' : 'undefine');
    所以无论如何非空字符串boolean转换都为true

    23.link标签是同时加载的(引入css) script标签才会加载完一个再加载另一个(引入js)
    加载和解析是两个概念,css中加载是并行的,解析是顺序的,后面的css属性会覆盖前面的

    24.数组的定义:
    1. 定义一维数组时,必须显式指明数组的长度;
    2. 定义***数组时,其一维数组的长度必须首先指明,其他维数组长度可以稍后指定;
    3. 采用给定值初始化数组时,不必指明长度;
    4. “[]” 是数组运算符的意思,在声明一个数组时,数组运算符可以放在数据类型与变量之间,也可以放在变量之后。

    25.JavaScript RegExp 对象有3个方法:test()、exec()、compile()
    test():检测一个字符串是否匹配某个正则表达式,如果匹配成功,返回true,否则返回false;
    exec():检索字符串中与正则表达式匹配的值,返回一个数组,存放匹配的结果;如果未找到,返回null;
    compile():可以在脚本执行过程中编译正则表达式,也可以改变已有表达式。
    注:match是支持正则表达式的String对象的方法

    26.redis一共包含5种数据类型
    字符串 String (最基本的类型,可包含任意数据)
    哈希 Hash (String类型的field、value映射表)
    列表 List (字符串列表,有序不唯一)
    集合 set (字符串集合,无序唯一)
    集合排序 zset (字符串集合,可以通过设置分数score进行排序)

    27.数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。
    通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。

    28.ping是使用的ICMP协议,是IP层协议,但是端口是应用层的,所以它只能判断能够访问ip,不能判断端口,telnet是应用层的,可以判端口访问情况

    29.关于集合常见面试题的总结:
    https://blog.csdn.net/striveb/article/details/82593768

    30.进程是系统进行资源分配和调度的基本单位,而线程是CPU调度和分配的基本单位,一个进程中的多个线程共享资源,一个线程可以创建和撤销另一个线程

  • 相关阅读:
    设计说明书 转
    软件项目详细设计文档规范
    记帐凭证怎样分类?
    Delphi中WideString类型如何转化成String类型
    更靠谱的横竖屏检测方法
    超级小的web手势库AlloyFinger发布
    狗日的rem
    js 面试的坑
    【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验
    移动端 关于 键盘将input 框 顶上去的解决思路---个人见解
  • 原文地址:https://www.cnblogs.com/nyhhd/p/12670056.html
Copyright © 2011-2022 走看看