"Java面试知识点总结,包括客户端禁用cookie的解决方案、B+树容量、JWT的使用、监听器、过滤器、拦截器的概念、CDN的工作原理、synchronized与volatile的区别、wait与sleep的区别、用户线程与守护线程的差异、第三方支付在电商中的应用以及CMS内容管理系统在网站构建中的作用。"
Java面试中,解决客户端禁用cookie问题的策略通常涉及两种方法。第一种是URL路径回传,通过将token信息以重定向的方式附加到后续的URL上,确保浏览器在下次请求时依然携带token。另一种方法是利用HTML5的数据存储功能,如localStorage和sessionStorage,服务器将数据以键值对形式存储,然后通过JavaScript在浏览器端缓存。
B+树是一种高效的数据库索引结构,能大约存储2000多万条数据。它在数据库管理系统中广泛用于存储和检索大量数据,具有良好的空间利用率和查询效率。
JWT(JSON Web Token)中的"jti"声明用于提供JWT的唯一标识。在B/S架构中,服务器向客户端推送消息时,小型企业可使用RabbitMQ结合STOMP插件作为WebSocket服务器,建立长连接进行推送。这种方式适合大规模高并发场景,但需要客户端支持WebSocket协议。
CDN(内容分发网络)通过在网络边缘节点缓存内容,使得用户能快速获取所需信息,减少网络延迟。其工作原理类似于在不同地区设立仓库,用户可以从最近的仓库获取内容,提高访问速度。
在Java并发编程中,synchronized关键字虽然能保证线程同步,但不能确保内存可见性和有序性。为解决这个问题,需要使用volatile关键字。wait()方法会让线程释放CPU并等待唤醒,而sleep()则仅休眠CPU,不释放锁。
用户线程和守护线程是Java线程的两类。用户线程是应用程序的主要执行部分,而守护线程通常用于后台服务。当所有用户线程结束时,JVM会终止,即使仍有守护线程在运行。相反,只要有一个用户线程还在运行,JVM就会持续。
对于电商网站,如京东首页,通常使用CMS(内容管理系统)来构建,以动态生成和管理页面内容。静态页面常用于首页和订单详情页,以提供更快的加载速度和更好的用户体验。至于支付功能,企业通常需要通过第三方支付平台(如微信支付、支付宝支付)与银行对接,因为直接与银行集成需要支付牌照。