SmartMVC总体架构 SpringMVC可以说的上是当前最优秀的mvc框架,自从Spring 2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高。Spring3.0之后功能更加完善,在工作的这几年中,几乎所有的项目都使用的都是SpringMVC,SpringMVC已经

大文件下载和断点续传 突破某度云盘下载限速,提速30倍!想学?我教你啊 Range主要是针对只需要获取部分资源的范围请求,通过指定Range即可告知服务器资源的指定范围。格式: `Range: bytes=start-end`

Http协议常见面试题 首先浏览器会去访问DNS服务器,查询到域名对应的ip地址是多少,然后浏览器再去访问这个ip地址;如果还要往底层在说的话,就会涉及到tcp/ip的分层,TCP/IP协议族分为4层:应用层、传输层、网络层、数据链路层

从零开始学习Java8 Stream,如果是数据库的话,我们只需要简单的在where后面加一个条件大于5就可以得到我们想要的结果,其次,如果我们遇到有大集合需要处理,为了提高性能,我们可能需要使用到多线程来处理,但是写并行程序的复杂度有提高了不少。

8张图带你了解大型应用架构演进历程 如何打造一个高可用,高性能,易扩展的应用?首先我们了解一下大型应用的特点:- 高可用:系统需要不间断的提供服务,不能出现单点故障- 高并发:在大流量的冲击下,系统依然稳定提供服务- 大数据:应用每天都会产生大量的数据随着应用的业务越来越复杂,应用访问量越来越大,导致性能越来越差,存储空间严重不足,这时候我们考虑把服务增加到三台(能通过加机器解决的问题都不是问题);分离出应用服务器、数据库服务器、文件服务器

修炼码德系列:简化条件表达式 有时候我们可能会遇到比较复杂的条件逻辑,需要我们想办法把分成若干个小块,让分支逻辑和操作细节分离;看一个程序员的码德如何,先看他的条件表达式是否够简洁易懂;今天我们来分享一下简化条件表达式的常用方法,修炼自己的码德

Java8如何高效的使用并行流 Fork/Join框架采用的是思想就是分而治之,把大的任务拆分成小的任务,然后放入到独立的线程中去计算,同时为了最大限度的利用多核CPU,采用了一个种`工作窃取`的算法来运行任务,也就是说当某个线程处理完自己工作队列中的任务后

面试者必看:Java8中的默认方法 在Java8之前,定义在接口中的所有方法都需要在接口实现类中提供一个实现,如果接口的提供者需要升级接口,添加新的方法,那么所有的实现类都需要把这个新增的方法实现一遍,如果说所有的实现类能够自己控制的话,那么还能接受,但是现实情况是实现类可能不受自己控制。比如说Java中的集合框架中的List接口添加一个方法,那么Apache Commons这种框架就会很难受,必须修改所有实现了List的实现类

CompletableFuture让你的代码免受阻塞之苦 CompletableFuture 并发 异步 多线程现在大部分的CPU都是多核,我们都知道想要提升我们应用程序的运行效率,就必须得充分利用多核CPU的计算能力;Java早已经为我们提供了多线程的API,但是实现方式略微麻烦,今天我们就来看看Java8在这方面提供的改善。假设场景 现在你需要为在线教育平台提供一个查询用户详情的API,该接口需要返回用户的基本信息,标签信息,这两个信息存放在不同位置,需要远程调用来获取这两个信息;为了模拟远程调用,我们需要在代码里面延迟 1s;

Java8 NullPointerException Optional null在Java中带来的麻烦
我相信所有的Java程序猿一定都遇到过`NullPointerException`,空指针在Java程序中是最常见的,也是最烦人的;它让我们很多程序猿产生了根深蒂固的感觉,所有可能产生空指针的地方都的加上`if-else`检查,但是这带给我们很多麻烦