![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
总结
文章平均质量分 80
总结
茅坤宝骏氹
语言:Java、C/C++、C#、Python、Linux Shell。
框架:Spring、Spring MVC、Spring Boot、Spring Cloud、Hibernate、Mybatis、Freemarker、Velocity。
前端:HTML5、CSS3、JavaScript、Bootstrap、JQuery、Vue、React。
数据库:oracle、mysql、MongoDB、HBase。
缓存:Memcache、Redis。
消息队列:kafka。
大数据:Hadoop、Hive、Sqoop、Flume、Spark、Strom、OpenTSDB、Druid。
展开
-
Java 并发总结——AQS
一、AQSJava并发包(JUC)中提供了很多并发工具,ReentrangLock、Semaphore,它们的实现都用到了一个共同的基类——AbstractQueuedSynchronizer,简称AQS。AQS是一个用来构建锁和同步器的框架,使用AQS能简单且高效地构造出应用广泛的大量的同步器,比如我们提到的ReentrantLock,Semaphore,其他的诸如ReentrantReadWriteLock,SynchronousQueue,FutureTask等皆是基于AQS的(1)基本实原创 2021-08-01 21:40:22 · 318 阅读 · 0 评论 -
Java 并发总结——进程与线程
一、线程(1)线程与进程进程是一个实体,每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可原创 2021-08-01 21:38:32 · 312 阅读 · 0 评论 -
Java 并发总结——线程池
一、线程池在程序启动的时候就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程(1)线程池的作用1、降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。2、提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。3、提高线程的可管理性。(2)常用线程池ExecutorService 是主要的实现类1、newSingleThreadExecutor创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务, 保证所有任务按照指定顺序(FIFO,原创 2021-08-01 21:37:25 · 332 阅读 · 0 评论 -
Java 并发总结——高并发与同步锁
一、线程(1)线程与进程进程是一个实体,每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可原创 2021-08-01 21:08:33 · 435 阅读 · 0 评论 -
DNS总结
一、DNS(1)简介域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 协议也是应用层的协议,DNS 使用客户-服务器模式运行在通信的端系统之间,在通信的端系统之间通过下面的端到端运输协议来传送 DNS 报文。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。(2)DNS服务器1、本地域名服务器LDNS原创 2021-08-01 15:32:41 · 874 阅读 · 0 评论 -
SpringCloud总结
一、SpringCloud(1)简介Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,做到一键启动和部署。(2)设计目标协调各个微服务,简化分布式系统开发。(3)优点1、组件丰富,功能齐全。Spring Cloud 为微服务架构提供了非常完整的支持。2、Spring Cloud 社区活跃度很高,教程很丰富,遇到问题很容易找到解决方案3、服务拆分粒度更细,耦合度比较低,有利于资源重复利用,有利于提高开发效率原创 2021-07-16 00:23:52 · 464 阅读 · 0 评论 -
计算机网络总结
一、计算机网络体系(1)OSI分层 (7层)物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。(2)TCP/IP分层(4层)网络接口层、 网际层、运输层、 应用层。(3)五层协议 (5层)物理层、数据链路层、网络层、运输层、 应用层。二、五层协议(1)应用层应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。HTTP协议超文本传输协议(HT原创 2021-07-14 22:23:15 · 328 阅读 · 3 评论 -
Mybatis总结
一、Mybatis(1)简介MyBatis 是一款优秀的持久层框架,一个半 ORM(对象关系映射)框架,它支持定制化SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects)为数据库中的记录。(2)优点1、基于SQL语句编程,相当灵活。SQL写在XML中,解除sql与程序代码的耦合,便于统一原创 2021-07-13 23:10:22 · 263 阅读 · 0 评论 -
Java Servlet总结
一、Servlet原创 2017-11-26 17:59:51 · 259 阅读 · 0 评论 -
Java 高并发下的实践
一、使用的技术HashMapConcurrentHashMapLockReadWriteLocksynchronized 二、一百万并发下的组合ConcurrentLockMap/* * To change this license header, choose License Headers in Project Properties. * To change this原创 2017-11-26 17:59:56 · 1172 阅读 · 0 评论 -
Java GC总结
一、gc两大基本算法1、引用计数法2、根搜索法 二、gc改进收集算法1、标记-清除算法2、复制算法3、标记-整理算法分代收集算法 三、gc的类型串行垃圾回收器(Serial Garbage Collector)并行垃圾回收器(Parallel Garbage Collector) ParNew ParOld并发标记扫描垃圾回收器(CMS Garbage Colle原创 2017-11-26 17:59:59 · 356 阅读 · 0 评论 -
Java 内存泄露总结
一、Java内存泄漏引起的原因: 内存泄漏是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成内存空间的浪费称为内存泄漏。 二、内存泄露的方式1、静态集合类引起内存泄漏 像HashMap、Vector等的使用最容易出现内存泄露,这些静态变量的生命周期和应用程序一致,他们所引用的所有的对象Object也不能被释放,因为他们也将一直被Vector等引用着。原创 2017-11-26 18:00:04 · 259 阅读 · 0 评论 -
Java IO总结
一、IO的类型面向字节的流,面向字符的流 二、面向字节的流(1)InputStreamFileInputStreamFilterInputStream -BufferedInputStream-DataInputStream-PushbackInputStream 回退流 unread()ObjectInputStreamPipedInputStreamByteArray...原创 2017-11-26 17:59:11 · 257 阅读 · 0 评论 -
Java NIO总结
一、NIONIO是new IO,也是非阻塞IO。有Channel、Selector、Buffer、Pipe、FileLock等类。Buffer在java.nio包Channel、Selector、Pipe、FileLock等在java.nio.channels包 二、Channel通道设置非阻塞configureBlocking(false);注册选择器register(select原创 2017-11-26 17:59:14 · 376 阅读 · 0 评论 -
Java 集合总结
一、集合(1)集合接口Collection-List-Queue-SetMap(2)Collections工具类binarySearchsortreversemaxminshufflefillcopysynchronizedXXX 二、List(1)ArrayList 默认容量为10,1.5倍增长,线程不安全(2)LinkedList ...原创 2017-11-26 17:59:17 · 428 阅读 · 0 评论 -
Java 多线程总结
一、多线程实现方式(1)继承Thread类,覆盖run方法(2)实现Runnable接口,覆盖run方法,将对象传人Thread对象中 实现Runnable接口比继承Thread类所具有的优势:1)适合多个相同的程序代码的线程去处理同一个资源2)可以避免java中的单继承的限制3)增加程序的健壮性,代码可以被多个线程共享,代码和数据独立4)线程池只能放入实现Runable或call原创 2017-11-26 17:59:22 · 269 阅读 · 0 评论 -
Java 线程同步总结
一、synchronized(1)synchronized方法(2)synchronized块 二、Lock注意:及时释放Lock锁,否则会出现死锁,通常在finally代码释放锁 (1)ReentrantLock 实现Lock接口,提供lock(),tryLock()和unLock()方法。lock() 获取锁tryLock() 尝试原创 2017-11-26 17:59:25 · 368 阅读 · 0 评论 -
Java 类加载总结
一、类加载过程装载链接验证准备解析初始化 二、类初始化情况1)创建类的实例,也就是new一个对象 2)访问某个类或接口的静态变量,或者对该静态变量赋值 3)调用类的静态方法 4)反射(Class.forName("xx")) 5)初始化一个类的子类(会首先初始化子类的父类) 6)JVM启动时标明的启动类,即文件名和类名相同的那个类 三、类加载器1)BootstrapClassLoader...原创 2017-11-26 17:59:28 · 351 阅读 · 0 评论 -
Java 反射总结
一、反射的定义 程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 二、反射的类1)反射类java.lang.Class java.lang.reflect.Constructorjava.lang.reflect.Field java.lang.reflect.Methodj原创 2017-11-26 17:59:33 · 1044 阅读 · 0 评论 -
Java 注解总结
一、注解定义注解早在J2SE1.5就被引入到Java中,主要提供一种机制,这种机制允许程序员在编写代码的同时可以直接编写元数据。 二、元注解Target 说明了被修饰的注解的应用范围,也就是被修饰的注解可以用来注解哪些程序元素Retention 表示一个注解类型会被保留到什么时候Inherited原创 2017-11-26 17:59:38 · 259 阅读 · 0 评论 -
Java 代理总结
一、代理为其他对象提供一种代理以便控制对这个对象的访问。(1)静态代理(2)动态代理1)JDK自带的动态代理2)javaassist字节码操作库实现3)CGLIB4) ASM(底层使用指令,可维护性较差) 二、静态代理静态代理模式一般会有三个角色:抽象角色:指代理角色和真实角色对外提供的公共方法,一般为一个接口真实角色:需要实现抽象角色接口,定义了真实角色所要实现的业务逻原创 2017-11-26 17:59:43 · 415 阅读 · 0 评论 -
java jsp总结
一、jsp简介JSP(全称Java Server Pages)是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成 HTML、XML 或其他格式文档的Web网页的技术标准。JSP 技术是以 Java 语言作为脚本语言的,JSP 网页为整个服务器端的 Java 库单元提供了一个接口来服务于HTTP的应用程序。原创 2017-12-30 22:38:59 · 500 阅读 · 0 评论 -
Java Socket编程总结
一、网络APIInetAddress 用于标识网络上的硬件资源,主要是IP地址URL 统一资源定位符,通过URL可以直接读取或写入网络上的数据Sockets 使用TCP协议实现的网络通信Socket相关的类Datagram 使用UDP协议,将数据保存在用户数据报中,通过网络进行通信。 二、地址A、InetAddress原创 2017-11-26 17:59:48 · 983 阅读 · 0 评论 -
Memcached总结
一、介绍Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。目的:通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。二、命令(1)存储命令#(1)Set #set 命令用于将 value(数据值) 存储在指定的 ke...原创 2019-09-14 10:03:59 · 178 阅读 · 0 评论 -
SpringBoot总结
一、SpringBoot(1)简介SpringFramework:最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。使用 DI 或者是 IOC 的时候,可以开发松耦合应用。松耦合应用的单元测试可以很容易的进行。Spring MVC:提供了一种分离式的方法来开发 Web 应用。通过运用像 DispatcherServelet,MoudlAndView 和 ViewResolver 等一些简单的概念,开发 Web 应用将会变的非常简单。SpringBo原创 2021-07-11 21:26:14 · 348 阅读 · 0 评论 -
Spring MVC总结
一、Spring MVC(1)介绍Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架。通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。(2)优点1、可以支持各种视图技术,而不仅仅局限于JSP;2、与Spring框架集成(如IoC容器、AOP等);3、清晰的角色分配:前端控制器(dispatcherServlet) ,请求.原创 2021-07-11 19:09:41 · 729 阅读 · 0 评论 -
Spring Aop总结
一、什么是AOP面向方面的编程(AOP)是一种编程技术,是面向对象编程的补充,它也提供了模块化。在面向对象编程中,关键的单元是对象,AOP的关键单元是切面,或者说关注点。一些切面可能有集中的代码,但是有些可能被分散或者混杂在一起,它允许程序员模块化横切关注点或行为,这些问题或行为跨越典型的责任分工,例如日志记录和事务管理。二、关注点和横切关注点(1)关注点应用的模块中实现的行为。关注点可以被定义为:我们想实现以解决特定业务问题的方法。(2)横切关注点贯穿整个应用程序的关注点。像原创 2021-07-11 11:38:51 · 401 阅读 · 0 评论 -
Spring总结
一、注解二、设计模式设计模式9种:简单工厂、工厂方法、单例、适配、装饰、代理、观察者、策略、模板三、原创 2021-06-26 14:27:11 · 238 阅读 · 0 评论 -
Java JVM总结
一、jvm参数1)内存-Xms-Xmx-Xss-Xloggc:file-Xprof-XX:+DisabledExplicitGC-XX:PreBlockSpin-XX:CompileThreshold2)Parallel-XX:SurvivorRatio-XX:PreTenureSizeThreshold-XX:MaxTenuringThreshold-XX:+ParallelGCThreads-XX:+UseAdaptiveSizePolicy.原创 2021-06-21 22:12:40 · 333 阅读 · 0 评论 -
常用解题算法总结
一、四大基本算法分治法动态规划贪心算法穷举法二、其他算法异或法和差法头尾双指针快慢指针三、算法的复杂度优先级 算法 时间复杂度 空间复杂度 1 O(1) 0或O(1) 2 O(N) 0或O(1) 3 O(NlogN) 0或O(1) 4 O(N) O(N) 5 O(NlogN) O(N) 6 ...原创 2021-06-11 21:33:29 · 326 阅读 · 1 评论 -
Java基础总结
mysql一、存储引擎区别MyISAM专注性能,主键索引和辅助索引是独立的InnoDB专注事务,支持事务、行锁、外键、聚集索引① 是否有事务操作?有,InnoDB。②是否存储并发修改?有,InnoDB。③是否追求快速查询,且数据修改较少?是,MyISAM。④是否使用全文索引?如果不引用第三方框架,可以选择MyISAM,但是可以选用第三方框架和InnDB效率会更高。InnoDB四种事务隔离级别:读未提交(脏读)、读提交(不可重复读)、可重复读(幻读)、串行化事务特性:ACID二、.原创 2021-06-08 21:25:49 · 228 阅读 · 0 评论 -
数据结构总结
一、数组1、寻找数组中第二小的元素2、找到数组中第一个不重复出现的整数3、合并两个有序数组4、重新排列数组中的正值和负值二、栈1、使用栈计算后缀表达式2、对栈的元素进行排序3、判断表达式是否括号平衡三、队列1、使用队列表示栈2、对队列的前k个元素倒序3、使用队列生成从1到n的二进制数四、链表1、反转链表2、检测链表中的循环3、返回链表倒数第N个节点4、删除链表中的重复项5、合并链表五、图实现广度和深度优先...原创 2021-06-06 20:44:26 · 241 阅读 · 0 评论 -
linux总结
linux一、查看cat, tac, nlmore, lesshead, tail二、登录用户w, who, users, last, lastb, whoami, who am iid三、用户useradd, userdel, usermod -s -d -g, newusersgroupadd, groupdel, groupmod -g -n /etc/grouppasswd -l -u -d -f /etc/passwd,pwconv /etc/sh...原创 2021-05-29 21:43:02 · 214 阅读 · 0 评论 -
mysql总结
mysql一、存储引擎区别MyISAM专注性能,主键索引和辅助索引是独立的InnoDB专注事务,支持事务、行锁、外键、聚集索引① 是否有事务操作?有,InnoDB。②是否存储并发修改?有,InnoDB。③是否追求快速查询,且数据修改较少?是,MyISAM。④是否使用全文索引?如果不引用第三方框架,可以选择MyISAM,但是可以选用第三方框架和InnDB效率会更高。InnoDB四种事务隔离级别:读未提交(脏读)、读提交(不可重复读)、可重复读(幻读)、串行化事务特性:ACID二、.原创 2021-05-29 21:38:04 · 291 阅读 · 0 评论 -
java 集合总结
一、集合类型List Queue Set MapList Queue Set 实现Collection接口二、ListList 存储方式 初始容量 容量增长 同步方式 ArrayList 数组 10 oldSize + oldSize/2 Vector 数组 10 oldSize + oldSize synchronized LinkedList 链表 ...原创 2021-05-29 21:23:55 · 194 阅读 · 0 评论 -
redis总结
一、集合类型List Queue Set MapList Queue Set 实现Collection接口二、原创 2021-05-29 20:53:31 · 493 阅读 · 1 评论