• 面试所遇到的问题(一)


    一、 HTTP请求方法get和post有什么区别?

    1、Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。

    2、Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度限制,只能传递大约1024字节。

    3、Post就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据,而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据,Post             的信息作为http请求的内容,而Get是在Http头部传输的。

    二、垃圾回收机制有哪些?如何对虚拟机进行调优?

    垃圾回收机制主要有:年轻代串行(Serial Copying)、年轻代并行(ParNew)、年老代串行(SerialMSC),年老代并行(Parallel Mark Sweep),年老代并发(Concurrent Mark-Sweep GC,即CMS)等等,目前CMS回收算法使用最广泛。

    调优方式:主要是对堆内容和回收算法进行配置,需要对jdk产生的回收日志进行观察,同时通过工具(Jconsole,jProfile,VisualVM)对堆内存不断分析,这些优化是一个过程,需要不断地进行观察和维护。

    三、有了解分布式事务如何实现?

    分步式锁事务可以采用分布式锁进行实现目前zookeeper就提供此锁;分布式锁需要牺牲一定性能去实现,若业务支付最终一致性,那此方法是最佳方案。如在京东下订单,过一会才会告诉你订单审核通过,而不是马上响应订单结果。

    四、RPC是什么?有使用过哪些RPC框架?

    即远程进程调用,本地机器调用远程的服务,在项目规模大到一定程度,需要使用RPC相关框架进行服务化部署。如:hessian 、webservice等

    五、有了解java的原子类?实现原理是什么?

    采用硬件提供原子操作指令实现的,即CAS。每次调用都会先判断预期的值是否符合,才进行写操作,保证数据安全。

    六、什么是表分区?

    表分区,是指根据一定规则,将数据库中的一张表分解成多个更小的,容易管理的部分。从逻辑上看,只有一张表,但是底层却是由多个物理分区组成。

    七、谈谈对行级锁定的优缺点?

    优点:

    1、当在许多线程中访问不同的行时只存在少量锁定冲突  

    2、回滚时只有少量的更改 

    3、可以长时间锁定单一的行。

    缺点:

    1、比页级或表级锁定占用更多的内存。

    2、当在表的大部分中使用时,比页级或表级锁定速度慢,因为你必须获取更多的锁。

    3、如果你在大部分数据上经常进行GROUP BY操作或者必须经常扫描整个表,比其它锁定明显慢很多。

    4、用高级别锁定,通过支持不同的类型锁定,你也可以很容易地调节应用程序,因为其锁成本小于行级锁定。

  • 相关阅读:
    zookeeper
    消息中间件介绍
    Java实现动态代理的两种方式
    深入理解Java内存模型
    消息中间件(一)MQ详解及四大MQ比较
    synchronized关键字详解及分析锁升级过程
    JDK1.6的Synchronized底层优化(偏向锁、轻量级锁)
    分布式通信-tcp/ip socket
    技术点
    大众点评 cat
  • 原文地址:https://www.cnblogs.com/studygithub5208868/p/10678882.html
Copyright © 2020-2023  润新知