摘要:
1. Collections Collections类主要是完成了两个主要功能 2. Arrays sort方法 Arrays提供了一系列重载的sort方法,默认都是升序排列的。大体上可以分为两种, 一种是针对基本数据类型来进行排序,包括int,long,byte,float,double等类型,底 阅读全文
摘要:
1. Java Queue 1. Java Queue 重要观点 Java Queue接口是Java Collections Framework的成员。 Queue 实现通常不允许插入 null 元素 队列通常(但并非一定)以 FIFO(先进先出)的方式排序各个元素。不过优先级队列和 LIFO 队列 阅读全文
摘要:
1. Java Map 1. Java Map 重要观点 Java Map接口是Java Collections Framework的成员。但是它不是Collection 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。(不同的键对应的值可以相等) Map 接口提供三种co 阅读全文
摘要:
1. Java Set 1. Java Set 重要观点 Java Set接口是Java Collections Framework的成员。 Set不允许出现重复元素 无重复 Set不保证集合中元素的顺序 无序 Set允许包含值为null的元素,但最多只能有一个null元素。 Set支持泛型(类型的 阅读全文
摘要:
核心内容 1.在Tomcat中有四种部署Web应用的方式,分别是: (1)利用Tomcat自动部署(项目直接拷贝OR WAR包拷贝 到webapps下) (2)利用控制台进行部署(tomcat的manager控制台的deploy区域) (3)增加自定义的Web部署文件(%Tomcat_Home%\c 阅读全文
摘要:
容器,就是可以容纳其他Java对象的对象。Java Collections Framework(JCF)为Java开发者提供了通用的容器 java集合主要划分为四个部分: Collection(List列表、Set集合)、Map映射、迭代器(Iterator、Enumeration)、工具类(Arr 阅读全文
摘要:
1. Java List 1. Java List重要观点 Java List接口是Java Collections Framework的成员。 List允许您添加重复元素。 List允许您拥有'null'元素。 List接口在Java 8中有许多默认方法,例如replaceAll,sort和spl 阅读全文
摘要:
分布式rpc框架有很多,比如dubbo,netty,还有很多其他的产品。但他们大部分都是基于nio的, nio是非阻塞的io,那么它的内部机制是怎么实现的呢。 1.由一个专门的线程处理所有IO事件,并负责分发。 2.事件驱动机制,事件到来的时候触发操作,不需要阻塞的监视事件。 3.线程之前通过wai 阅读全文
摘要:
NIO VS IO NIO: 面向缓存; 非阻塞的; selector IO: 面向流; 阻塞的; 无 JAVA IO Java IO: Reading data from a blocking stream. Java IO: A classic IO server design - one co 阅读全文
摘要:
1. 概述 Java IO一般包含两个部分: 1.java.io包中堵塞型IO; 2.java.nio包中的非堵塞型IO,通常称为New IO。 java.io包下,分为四大块近80个类: 1、基于字节操作的I/O接口:InputStream和OutputStream 2、基于字符操作的I/O接口: 阅读全文
摘要:
核心部分 NIO( New Input/ Output) , 引入了一种基于通道和缓冲区的 I/O 方式,NIO 是一种同步非阻塞的 IO 模型。同步是指线程不断轮询 IO 事件是否就绪,非阻塞是指线程在等待 IO 的时候,可以同时做其他任务。同步的核心就是 Selector,Selector 代替 阅读全文
摘要:
不同的操作系统实现的io策略可能不一样,即使是同一个操作系统也可能存在多重io策略,常见如linux上的select,poll,epoll,面对这么多不同类型的io接口,这里需要一层抽象api来完成,所以就演变出来两种高性能的io的设计模式,分别是Reactor(同步IO)和Proactor(异步I 阅读全文
摘要:
1. Unix的五种I/O模型 从上往下:阻塞程度(高 低)I/O效率 (低 高) 阻塞I/O(Blocking I/O):传统的IO模型 非阻塞I/O(Non-Blocking I/O): 注意这里所说的NIO并非Java的NIO(New IO)库。 I/O多路复用(I/O Multiplexin 阅读全文
摘要:
一、传统的BIO 网络编程的基本模型是Client/Server模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的IP地址和监听端口),客户端通过连接操作向服务端监听的地址发起连接请求,通过三次握手建立连接,如果连接建立成功,双方就可以通过网络套接字(Socket)进行通信。 在基 阅读全文
摘要:
1. IO模型矩阵 基本 Linux I/O 模型的简单矩阵: 同步与异步:描述的是用户线程与内核的交互方式。 同步IO和异步IO的区别就在于:数据拷贝的时候进程是否阻塞! 同步是指用户线程发起IO请求后需要等待或者轮询内核IO操作完成后才能继续执行;(Blocking IO、Non-Blockin 阅读全文
摘要:
IO多路复用之select、poll、epoll IO多路复用:通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。 应用:适用于针对大量的io请求的情况,对于服务器必须在同时处理来自客户端的大量的io操作的时候,就非常适合 与多进 阅读全文
摘要:
核心部分 1.外观模式 定义:外观模式封装了子系统的具体实现,提供统一的外观类给外部系统,这样当子系统内部实现发生变化的时候,不会影响到外部系统。 外观模式在Tomcat的应用:在Tomcat中对于Request,Response,StandardSession,ApplicationContext 阅读全文
摘要:
核心部分 一、JVM内存优化 Tomcat内存优化,包括内存大小,垃圾回收策略。 Windows 下的catalina.bat,Linux 下的catalina.sh 系统响应时间增快; JVM回收速度增快同时又不影响系统的响应率; JVM内存最大化利用; 线程阻塞情况最小化。 二、Tomcat线程 阅读全文
摘要:
Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine(也就是Servlet容器)来处理这个请求,并把产生的Request和Response对象传给Engine。当Engine处理完请求后,也会通过Connector将响 阅读全文
摘要:
1. 核心部分 1. 类加载器: 通过一个类的全限定名来获取描述此类的二进制字节流。 对于任意一个类,都需要由加载他的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类命名空间。 2. 类加载机制: 按需加载。 Java虚拟机把描述类的数据从Class文件加 阅读全文
摘要:
Tomcat的架构图 图三:Tomcat Server处理一个HTTP请求的过程 处理HTTP请求过程 假设来自客户的请求为:http://localhost:8080/test/index.jsp 请求被发送到本机端口8080 1、用户点击网页内容,请求被发送到本机端口8080,被在那里监听的Co 阅读全文
摘要:
Tomcat的架构图 Tomcat的组织结构 Tomcat是一个基于组件的服务器,它的构成组件都是可配置的,其中最外层的是Catalina servlet容器,其他组件按照一定的格式要求配置在这个顶层容器中。 Tomcat的各种组件都是在Tomcat安装目录下的/conf/server.xml文件中 阅读全文
摘要:
核心部分 1. 定义 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,它早期的名称为catalina,后来由Apache、Sun 和其他一些公司及个人 阅读全文
摘要:
1.架构图 2. 定义 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,它早期的名称为catalina,后来由Apache、Sun 和其他一些公司及个 阅读全文
摘要:
核心部分 bin (运行脚本) conf (配置文件) lib (核心库文件) logs (日志目录) temp (临时目录) webapps (自动装载的应用程序的目录) work (JVM临时文件目录[java.io.tmpdir]) catalina.home(安装目录):指向公用信息的位置, 阅读全文
摘要:
核心步骤 1. 安装JAVA(因为tomcat依赖于java) 配置:JAVA_HOME D:\Program Files (x86)\Java\jdk1.7.0 path %JAVA_HOME%\bin 验证:java -version 2.安装TOMCAT 配置:CATALINA_BASE D: 阅读全文
摘要:
代码 思路:双指针法,两边离得越远,面积越大,高度越高,面积越大;所以从两边往中间靠,保留高的 阅读全文
摘要:
抄录网址:https://blog.csdn.net/qiumuxia0921/article/details/50574879 下面是我们的建表语句: 我们第一个update事务为: 第二个update事务为: 两个事物首先我们触发事务一,然后紧接着,我们触发事务二,这个时候,消息中出现:死锁。 阅读全文
摘要:
[编程题] 不等式数列 时间限制:1秒 空间限制:32768K 度度熊最近对全排列特别感兴趣,对于1到n的一个排列,度度熊发现可以在中间根据大小关系插入合适的大于和小于符号(即 '>' 和 '<' )使其成为一个合法的不等式数列。但是现在度度熊手中只有k个小于符号即('<'')和n-k-1个大于符号 阅读全文
摘要:
[编程题] 有趣的排序 时间限制:1秒 空间限制:32768K 度度熊有一个N个数的数组,他想将数组从小到大 排好序,但是萌萌的度度熊只会下面这个操作:任取数组中的一个数然后将它放置在数组的最后一个位置。问最少操作多少次可以使得数组从小到大有序? 输入描述: 首先输入一个正整数N,接下来的一行输入N 阅读全文