- 博客(7)
- 收藏
- 关注
原创 Netty入门
Netty是基于Java NIO封装的网络通讯框架,只有充分理解了Java NIO才能理解好Netty的底层设计。Java NIO有几个重要的概念Channel,Buffer,Selector。NIO是基于Channel和Buffer操作的,数据只能通过Buffer写入到Channel或者从Channel读出数据到Buffer中。Selector可以监听多个通道的事件(连接打开,数据到达),这...
2018-05-01 16:41:20
150
原创 WEB应用web.xml的解析
两年不做web开发了,都快忘了,今天在看看web服务器如何读取web.xml1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点。 2、紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。 3、容器将<context-...
2018-04-26 19:01:27
300
原创 JVM常用参数
-Xloggc:log/gc.log #gc日志文件-XX:+PrintGCDetails #打印gc详细信息-verbose.gc #开关可显示GC的操作内容。打开它,可以显示最忙和最空闲收集行为发生的时间、收集前后的内存大小、收集需要的时间等。-Xmx –Xms #指定最大堆和最小堆-Xmn #设置新生代大小-XX:NewRatio #新生代(eden+2*s)和老年代(不包含永...
2018-03-25 17:55:29
138
原创 多线程--多个线程循环顺序的多种实现。
问题:3个线程按顺序打印ABC,A线程打印A,B线程打印B,C线程打印C.实现一:使用synchronized关键字:package com.Thread;import java.util.concurrent.atomic.AtomicInteger;/** * Created by Administrator on 2018/3/25 0025. */public class P...
2018-03-25 17:29:27
1689
原创 java线程池的核心线程数与最大的线程数的区别,饱和策略
1、当提交一个新任务到线程池时首先线程池判断基本线程池(corePoolSize)是否已满?没满,创建一个工作线程来执行任务。满了,则进入下个流程;其次线程池判断工作队列(workQueue)是否已满?没满,则将新提交的任务存储在工作队列里。满了,则进入下个流程;最后线程池判断整个线程池(maximumPoolSize)是否已满?没满,则创建一个新的工作线程来执行任务,满了,则交给饱和策略来处理这...
2018-03-25 17:21:58
41612
3
原创 spark 2.x RDD源码解读
/** * A Resilient Distributed Dataset (RDD), the basic abstraction in Spark. Represents an immutable, * partitioned collection of elements that can be operated on in parallel. This class contains t...
2018-02-09 22:59:18
506
原创 spark RDD依赖类型
sparkRDD依赖RDD的最重要的特性之一就是血缘关系,血缘关系描述了一个RDD是如何从父RDD计算得来的。其中Dependency的rdd方法返回一个RDD,及所依赖的RDD.abstract class Dependency[T] extends Serializable { def rdd: RDD[T]}Dependency分为两种, narrow和shuffleNarrowDep...
2018-02-09 21:36:44
705
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人