面试所遇到的问题

一、 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、用高级别锁定,通过支持不同的类型锁定,你也可以很容易地调节应用程序,因为其锁成本小于行级锁定。

 

 

 

猜你喜欢

转载自www.cnblogs.com/studygithub5208868/p/10678882.html
今日推荐