2020-09-10农行软开一面

一、数据库

1、删除表数据

  • drop table tb
    删除内容和定义,释放空间。
  • truncate table tb
    删除内容、释放空间但不删除定义。不能删除行数据,只能把表清空。不能rollback,效率比delete高。
  • delete table tb; delete table tb where 条件
    删除内容,不删除定义,不释放空间。可以rollback,删除数据时是一行行删除的,效率较低。

2、索引的优缺点

  • 优点:
    (1)通过创建唯一索引,可以保证数据库表中每一行数据的唯一性;
    (2)加快数据的查询速度;
  • 缺点:
    (1)创建索引和维护索引需要耗费时间;
    (2)索引需要占物理空间,如果是聚簇索引,占用的空间会更大。
    (3)对表中的数据进行增加、删除和修改时,索引也需要动态维护,这样就降低了数据的操作速度。
3、#和$的区别

(1)#传入的参数在SQL中显示为字符串,会对自动传入的数据加一个引号,$传入的参数在SQL中直接显示为传入的值。
(2)#可以防止SQL注入,但$无法防止SQL注入。

二、Java

1、如何手动触发GC?

System.gc();
当我们调用System.gc()时,并不一定会触发GC。这个gc()函数的作用只是提醒虚拟机:程序员希望进行一次垃圾回收,但是它不能保证垃圾回收一定会进行,具体什么时候进行取决于虚拟机。

2、Object类是所有类的父类,它具有哪些方法?

  • hashCode
    计算hash值
  • equals
    判断是否相等
  • clone
    实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。
  • toString
    转换成字符串。
  • getClass
    final方法,获取运行时类型。
  • notify
    唤醒在该对象上等待的某个线程。
  • notifyAll
    唤醒在该对象上等待的所有线程。
  • wait
    使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。
    wait()方法一直等待,直到获得锁或者被中断。
    wait(long timeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回。
    调用该方法后当前线程进入睡眠状态,直到以下事件发生:
    a. 其他线程调用了该对象的notify方法;
    b. 其他线程调用了该对象的notifyAll方法;
    c. 其他线程调用了interrupt中断该线程;
    d. 时间间隔到了。
  • finalize
    释放资源。

3、List 和数组的互相转换

  • list转数组
    (1)list.toArray()
  • 数组转list
    (1)Arrays.asList(array)
    (2)Collections.addAll(list,array)

三、框架

1、Spring MVC常用注解
  • @Controller
    表明该类作为与前端交互的控制层组件。
  • @RequestMapping
    用于将url映射到整个处理类或者特定的处理请求的方法。
  • @RequestParam
    将请求的参数绑定到方法中的参数上。
  • @RequestBody
    指方法参数应该被绑定到HTTP请求的body中。
  • @RestController
    用来创建Rest类型的控制器。
2、Spring MVC原理

核心控制器捕获请求,查找handler,执行handler,选择ViewResolver,通过ViewResolver渲染视图并返回。

3、jQuery中DOM节点的删除

(1)empty:清空元素中的所有后代节点,不能删除自己本身这个节点。
(2)remove:该节点与该节点包含的所有后代节点将同时被删除,提供传递一个筛选表达式,用来指定删除选中集合中的元素。
(3)detach:删除页面上的节点,但会保留绑定的事件和附加的数据。

4、Spring Cloud服务间的两种通信方式

(1)RestTemplate方式
(2)Fegin方式

四、其它

1、进程和线程的区别

(1)根本区别:进程是操作系统资源分配的基本单位,线程是CPU调度和执行的基本单位。
(2)资源开销:每个进程有独立的代码和数据空间,进程切换的开销较大;线程可以看作是轻量级的进程,同一类线程共享代码和数据空间,每个线程有自己对立的运行栈和程序计数器,线程之间切换的开销较小。
(3)包含关系:一个进程可以包含多个线程。
(4)内存分配:同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的。
(5)影响关系:一个进程崩溃后,不会影响其它进程,一个线程崩溃后,会影响该进程下的其它线程。
(6)执行过程:进程可以独立运行,线程需要依存进程进行执行。

你可能感兴趣的:(2020-09-10农行软开一面)