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