当前搜索:

Java 8系列之Stream的基本语法详解

转自:http://blog.csdn.net/io_field/article/details/54971761Stream系列:Java 8系列之Stream的基本语法详解Java 8系列之Stream的强大工具CollectorJava 8系列之重构和定制收集器Java 8系列之Stream...
阅读(46) 评论(0)

解决SpringBoot 整合 FreeMaker,不能js,css静态资源的问题

在配置文件中加上: #设定静态文件路径,js,css等 spring.mvc.static-path-pattern=/static/**
阅读(147) 评论(0)

Java I/O模型从BIO到NIO和Reactor模式

Unix下五种I/O模型 Unix 下共有五种 I/O 模型: 阻塞 I/O非阻塞 I/OI/O 多路复用(select和poll)信号驱动 I/O(SIGIO)异步 I/O(Posix.1的aio_系列函数) 阻塞I/O 如上文所述,阻塞I/O下请求无法立即完成则保持阻塞...
阅读(326) 评论(0)

Linux中使用top+jstack分析线程状态

背景 记得前段时间,同事说他们测试环境的服务器cpu使用率一直处于100%,本地又没有什么接口调用,为什么会这样?cpu使用率居高不下,自然是有某些线程一直占用着cpu资源,那又如何查看占用cpu较高的线程? 当然一个正常的程序员不会写出上述代码,这里只是为了让一个线程占用较高的cpu资源。...
阅读(375) 评论(0)

2017秋招编程题

1. 01串问题(网易内推批)如果一个01串任意两个相邻位置的字符都是不一样的,我们就叫这个01串为交错01串。例如: “1”,”10101”,”0101010”都是交错01串。 小易现在有一个01串s,小易想找出一个最长的连续子串,并且这个子串是一个交错01串。小易需要你帮帮忙求出最长的这样的...
阅读(397) 评论(0)

java程序性能分析之thread dump和heap dump

一.dump基本概念         在故障定位(尤其是out of memory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题。这些文件记录了JVM运行期间的内存占用、线程执行等情况,这就是我们常说的dump文件。常用的有heap dump和thread dump(也叫javac...
阅读(423) 评论(0)

SpringBoot自动化配置原理

一、@EnableAutoConfigurationSpringBoot的自动化配置原理,首先是从@SpringBootApplication开始的,这个注解是一个组合注解,核心功能时由@EnableAutoConfiguration提供的EnableAutoConfiguration@Targe...
阅读(953) 评论(0)

从输入URL到浏览器显示页面发生了什么

当在浏览器地址栏输入网址,如:www.baidu.com后浏览器是怎么把最终的页面呈现出来的呢?这个过程可以大致分为两个部分:网络通信和页面渲染。 一、网络通信     互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。分层由...
阅读(602) 评论(0)

Java并发编程——阻塞队列

1.什么是阻塞队列 阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。 BlockingQueue有两个常见阻塞场景 当队列中没有数据的情况下,消费者端的所有线程都会被自动阻塞(挂起)...
阅读(256) 评论(0)

Mysql(Innodb)如何避免幻读

幻读Phantom Rows The so-called phantom problem occurs within a transaction when the same query produces different sets of rows at different times....
阅读(283) 评论(0)

Condition源码解析

在没有Lock之前,我们使用synchronized来控制同步,配合Object的wait()、notify()系列方法可以实现等待/通知模式。在Java SE5后,Java提供了Lock接口,相对于Synchronized而言,Lock提供了条件Condition,对线程的等待、唤醒操作更加详细...
阅读(348) 评论(0)

深入分析Spring 与 Spring MVC容器启动

要想很好理解这三个上下文的关系,需要先熟悉Spring是怎样在web容器中启动起来的。Spring的启动过程其实就是其IOC容器的启动过程,对于web程序,IOC容器启动过程即是建立上下文的过程。 Spring的启动过程: 首先,对于一个web应用,其部署在web容器中,web容器提供其一个全...
阅读(336) 评论(0)

基数排序

基数排序(Radix sort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机(Tabulat...
阅读(249) 评论(0)

计数排序

计数排序的特征 当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n + k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。 由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1),这使得计数排序对于数据范围很大的数组...
阅读(193) 评论(0)

HTTPS为什么安全 &分析 HTTPS 连接建立全过程

专题一:HTTPS为什么安全 1、http为什么不安全? http协议属于明文传输协议,交互过程以及数据传输都没有进行加密,通信双方也没有进行任何认证,通信过程非常容易遭遇劫持、监听、篡改,严重情况下,会造成恶意的流量劫持等问题,甚至造成个人隐私泄露(比如银行卡卡号和密码泄露)等严重的...
阅读(402) 评论(0)

深入理解Java内存模型(六)——final

与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问。对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。初次读一个包含final域的对象的引用,与随...
阅读(177) 评论(0)

清晰理解红黑树的演变---红黑的含义

前言       红黑树,对不少人来说是个比较头疼的名字,在网上搜资料也很少有讲清楚其演变来源的,多数一上来就给你来五条定义,红啊黑啊与根节点距离相等之类的,然后就开始进行旋转、插入、删除这些操作。一通操作下来,连红色和黑色怎么来的,是什么含义,有什么作用都云里雾里的,能搞清楚就怪了。 ...
阅读(367) 评论(0)

Java对象克隆——浅克隆和深克隆的区别

在Java中对象的克隆有深克隆和浅克隆之分。有这种区分的原因是Java中分为基本数据类型和引用数据类型,对于不同的数据类型在内存中的存储的区域是不同的。基本数据类型存储在栈中,引用数据类型存储在堆中。 什么是克隆 克隆就是依据已经有的数据,创造一份新的完全一样的数据拷贝。 ...
阅读(365) 评论(0)

单例的各种写法以及双重检查的问题

一、懒汉式,线程不安全public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() ...
阅读(358) 评论(0)

【架构师之路】集群/分布式环境下5种session处理策略

在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处理。如果不做任何处理的话,用户将出现频繁登录的现象,比如集群中存在A、B两台服务器,用户在第一次访问网站时,Nginx通过其负载均衡机制将用户请求转发到A服务器,这时A服务器就会给用户创建一个Session。当用户第二次...
阅读(492) 评论(0)
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 39万+
    积分: 5339
    排名: 6373
    博客专栏
    最新评论