关于Java开发知识点系统整理
关于Java面试的总结以及文章收集
写代码的Z
这个作者很懒,什么都没留下…
展开
-
线程池的五种状态
线程池的5种状态:Running、ShutDown、Stop、Tidying、Terminated。线程池各个状态切换框架图:1、RUNNING(1) 状态说明:线程池处在RUNNING状态时,能够接收新任务,以及对已添加的任务进行处理。(02) 状态切换:线程池的初始化状态是RUNNING。换句话说,线程池被一旦被创建,就处于RUNNING状态,并且线程池中的任务数为0!private final AtomicInteger ctl = new AtomicInteger(ctl.转载 2020-05-18 10:47:51 · 597 阅读 · 0 评论 -
Dubbo知识点
Dubbo,因为我用的是dubbo,而且我写了,这个也是高频,写了必须问的,他的设计框架,负载均衡,spi机制,一般顺势会提到zk,选举算法,分布式锁等,一些常见的dubbo问题可以去搜,网上的基本都有。可能会顺带去问cloud的问题,生产没用过不怕,你现在可以自己clone一个项目,最起码,互联娃,你得知道还有这个玩意儿,还有他集成了啥,比如rureka,hystrix,ribbon,feign...原创 2020-04-13 01:02:31 · 282 阅读 · 1 评论 -
Java中主流锁
脑图来源:https://www.cnblogs.com/jyroy/p/11365935.html原创 2020-04-09 10:04:51 · 171 阅读 · 0 评论 -
Redis5.0.0配置文件
# redis版本 5.0.0 # 如果想要使用到配置文件,Redis服务必须以配置文件的路径作为第一个参数启动。如:./redis-server /path/to/redis.conf # 单位说明:当需要指定内存大小时,可能会用到不同的单位,如1k、5GB、4M等,这里给出其单位含义:# 指定单位是大小写不敏感。如1GB、1gB、1Gb是一样的。# 1k => 1000 ...转载 2020-03-27 12:35:44 · 503 阅读 · 0 评论 -
MongoDB基础
为什么我们要使用MongoDB?特点:高性能、易部署、易使用,存储数据非常方便。主要功能特性有: 面向集合存储,易存储对象类型的数据。 模式自由。 支持动态查询。 支持完全索引,包含内部对象。 支持查询。 支持复制和故障恢复。 使用高效的二进制数据存储,包括大型对象(如视频等)。 自动处理碎片,以支持云计算层次的扩展性 支持Python,PHP,Ruby,Java,C,C...转载 2020-03-17 09:45:04 · 289 阅读 · 0 评论 -
分布式系统技术图谱
原创 2020-02-29 09:00:19 · 267 阅读 · 0 评论 -
数据结构与算法
转载地址:https://www.jianshu.com/p/158b8bfb1831一. 最小生成树算法连通图:在无向图G中,若从顶点i到顶点j有路径,则称顶点i和顶点j是连通的。若图G中任意两个顶点都连通,则称G为连通图。 生成树:一个连通图的生成树是该连通图的一个极小连通子图,它含有全部顶点,但只有构成一个数的(n-1)条边。 最小生成树:对于一个带权连通无向图G中的不同生成...原创 2020-02-03 18:12:50 · 244 阅读 · 0 评论 -
负载均衡
一、 负载均衡分类硬件负载均衡 常见的硬件有比较昂贵的F5和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护、缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使用。 软件负载均衡 目前使用最广泛的三种负载均衡软件Nginx/LVS/HAProxy,他们都是基于Linux的开源免费的负载均衡软件,这些都是通过软件级别来实现,所以费用非常低廉。...转载 2019-12-12 10:06:11 · 319 阅读 · 0 评论 -
shiro
简介Apache Shiro是一个强大且易用的Java安全框架,主要功能有身份验证、授权、安全加密和会话管理。相比较Spring Security,shiro有小巧、简单、易上手等的优点。shiro权限的操作粒度能控制在路径及按钮上,数据粒度通过sql实现。Shrio简单够用。至于OAuth,OpenID 站点间统一登录功能,现如今单点登录很多已经通过cookies实现。因此Shiro完全能够...原创 2019-11-18 16:47:49 · 1116 阅读 · 1 评论 -
Elasticsearch知识点
目录1 什么是Elasticsearch?2 Elasticsearch的特点3 Elasticsearch基础概念4 Elasticsearch基本数据类型(看这里)5 Elasticsearch基本检索类型5.1 检索和过滤5.2 结构化检索5.3 全文检索5.4 复合检索5.5 特定检索6 Elasticsearch基本基本聚合类型6.1 Me...转载 2019-10-29 16:03:54 · 500 阅读 · 0 评论 -
Logstash知识点
Logstash的基本知识Logstash是什么logstash是开源数据收集引擎,可以用数据的统一和扩充。相关版本支持(看这里)工作原理(看这里)输入file:从文件系统上的文件读取,非常类似于UNIX命令tail -0Fsyslog:在知名端口514上侦听syslog消息并根据RFC3164格式进行解析redis:使用redis通道和redis列表从redis服务器读取。...原创 2019-10-17 10:08:33 · 576 阅读 · 0 评论 -
SpringBoot知识点
目录什么是 Spring Boot?为什么要用 Spring Boot?Spring Boot 的核心配置文件有哪几个?它们的区别是什么?Spring Boot 的配置文件有哪几种格式?它们有什么区别?Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?开启 Spring Boot 特性有哪几种方式?Spring Boot 需要独立的容器运行吗?运行...转载 2019-10-14 16:20:36 · 503 阅读 · 0 评论 -
常用的工具
JVM相关工具JMC(Java Mission Control)监控和性能分析:JVM、JFR(重要)、JMX线上调试:btrace:JVM实时监控工具其他常用的JVM工具:jps:查看java进程信息jmap:查看JVM中对象的统计信息jstat:对JVM的资源和性能进行实时监控jstack:查看JVM线程栈信息jinfo:动态查看、调用jvm参数压力测试:JHM常用Linux...原创 2019-08-18 10:33:21 · 146 阅读 · 0 评论 -
Linux常用命令大全
Linux常用命令大全(非常全!!!)原文地址:https://www.cnblogs.com/yjd_hycf_space/p/7730690.html系统信息arch 显示机器的处理器架构(1)uname -m 显示机器的处理器架构(2)uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)hdparm ...转载 2019-03-07 11:44:52 · 247 阅读 · 0 评论 -
Kafka相关知识点
简介Kafka是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做消息队列系统),常见可以用于web/nginx日志、访问日志,消息服务等等。根据官网的介绍,ApacheKafka®是一个分布式流媒体平台,它主要有3种功能: 1:发布和订阅消息流。这个功能类似于消息队列,这也是kafka归类为消息队列框架的原因 2:以容错的方式保存消...转载 2019-05-20 17:24:08 · 1188 阅读 · 0 评论 -
MongoDB集群搭建(分片+副本集)
MongoDB集群搭建(分片+副本集)分片则指为处理大量数据,将数据分开存储,不同服务器保存不同的数据,它们的数据总和即为整个数据集。追求的是高性能。 副本集是在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。在生产环境中,通常是这两种技术结合使用,分片+副本集。本篇文章采用的版本为3.6。1.搭建环境系统:windows10服务器:192.168.6....原创 2019-03-01 16:11:55 · 883 阅读 · 0 评论 -
Mongodb知识点
1.什么是NOSQL?NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库(RDBMS)的数据库管理系统的统称。NoSQL用于超大规模数据的存储。2.什么是MongoDB?MongoDB与MySQL的区别?MongoDB是一个基于分布式文件存储的开源数据库系统。将数据存储为一个文档,数据结构由键值(key=>valu...转载 2019-03-07 11:38:57 · 878 阅读 · 0 评论 -
redis问题
redis的命令参考:http://redisdoc.com/redis功能文档:http://redisdoc.com/topic/cluster-spec.html#id11.什么是redis?可基于内存亦可持久化的日志型、Key-Value数据库,支持多种数据结构,并且支持单机模式、主从模式、哨兵模式、集群模式多种部署模式。2.redis中的数据类型?Redis支持五种数...转载 2019-03-12 10:55:16 · 688 阅读 · 0 评论 -
消息队列
使用场景应用解耦合:应用之间不用直接调用,可以通过队列来传递消息,完成通信。 异步任务:队列可以用来执行异步任务,任务提交方无需等待结果。 削峰填谷:在突发流量时,可以通过队列做缓冲,不会对后端服务产生较大的压力,当峰值过去时,可以逐渐消费堆积的数据,来填平流量的低谷。 消息广播:一写多读消息协议JMS:是Java的消息服务,规定了Java使用消息服务的API,Spring提供了支...原创 2019-08-13 11:02:39 · 205 阅读 · 0 评论 -
为什么要用Redis而不直接用Map做缓存?
缓存的区别缓存分为本地缓存和分布式缓存。以java为例,使用自带的map或者guava实现的是本地缓存,最主要的特点是轻量以及快速,生命周期随着jvm的销毁而结束,并且在多实例的情况下,每个实例都需要各自保存一份缓存,缓存不具有一致性。使用redis或memcached之类的称为分布式缓存,在多实例的情况下,各实例共用一份缓存数据,缓存具有一致性。缺点是需要保持redis或memcached服...转载 2019-03-15 09:41:21 · 3297 阅读 · 0 评论 -
redis缓存知识点
redis的特点单线程异步IO,采用非阻塞异步事件处理机制,缓存数据都是内存操作,IO操作时间不会太长,单线程可以避免线程上下文切换产生的代价 支持持久化,所以redis不仅可以做缓存,也能做nosql数据库 多数据结构:String、Hash、List、Set、ZSet、HyperLogLog、Geo 提供主从模式以及cluser集群部署机制redis的常见的5种数据结构:类型...原创 2019-08-12 16:33:30 · 431 阅读 · 0 评论 -
缓存
缓存的类型及使用场景 本地缓存:在进程所在的内存中进行缓存,比如:使用Map实现在JVM堆中缓存。也可以使用ehcache这样的工具实现。 优点:能直接在heap区内读写,最快也最方便。 缺点:同样是受heap区域影响,缓存的数据量非常有限,同时缓存时间受GC影响。 主要满足单机场景下的小数据量缓存需求,同时对缓存数据的变更无需太敏感,如一般配置管理、基础静态数据等场景 分布...原创 2019-08-12 14:55:31 · 173 阅读 · 0 评论 -
分布式和集群到底是什么?
原文链接:https://www.zhihu.com/question/20004877/answer/393868688简单说明:分布式:一个业务分拆多个子业务,部署在不同的服务器上集群:同一个业务,部署在多个服务器上不得不说,分布式和集群都是为了解决两个问题:高吞吐量(throughput) 高可用(availability)那既然他们俩都能解决这两个问题,那择其一为...转载 2019-01-31 10:38:33 · 391 阅读 · 0 评论 -
MyBatis知识点
Mybatis的优缺点优点:原生sql sql语句与代码解耦合 简单易学 原生的sql语句,sql调优灵活缺点:半自动ORM,不能自动生成sql语句 sql语句依赖于具体数据库,数据性移植差Mybatis缓存机制一级缓存作用域是SqlSession,会对同一个SqlSession中执行语句的结果进行缓存,来提高再次执行的效率。SqlSession关闭或者有新增更新删...原创 2019-08-11 11:38:30 · 481 阅读 · 0 评论 -
数据库面试
一、数据库问答题1. SQL语言包括哪些类型?数据定义DDL:Create Table,Alter Table,Drop Table, Create/Drop Index等数据操纵DML:Select ,insert,update,delete,数据控制DCL:grant,revoke2. 内联接,外联接区别?内连接是保证两个表中所有的行都要满足连接条件,而外连接则不然。在外连接中...转载 2019-02-13 09:03:42 · 9502 阅读 · 4 评论 -
关于SQL优化
在开始之前我们首先需要明白我们查询效率低下的原因可能有哪些?1.SQL语句质量太差2.数据库表设计不合理,导致某些查询需要关联很多表,这里就可以看出,数据库表适当的增加一些冗余字段会减少使用关联查询的几率。3.没有合理的利用索引4.如果上面三种情况都避免了,那么数据量确实非常大当然查询也会很慢,这个时候我们往往不能单纯从数据库层面解决问题了,还需要对我们应用程序做出相应的调整。...原创 2019-01-30 10:14:12 · 377 阅读 · 0 评论 -
MySql基础知识点
常用的sql语句条件查询、关联查询、排序查询、分组查询、逻辑关键字、函数常用的数据类型整数型和浮点数类型 大小 用途 TINYINT 1 字节,8位 小整数值 SMALLINT 2 字节,2*8位 大整数值 MEDIUMINT 3 字节,3*8位 大整数值 INT或INTEGER 4 字节,4*8位 大整数...原创 2019-08-12 10:42:49 · 287 阅读 · 0 评论 -
数据库中间件详解
1数据库拆分过程及挑战 互联网当下的数据库拆分过程基本遵循的顺序是:垂直拆分、读写分离、分库分表(水平拆分)。每个拆分过程都能解决业务上的一些问题,但同时也面临了一些挑战。1.1 垂直拆分对于一个刚上线的互联网项目来说,由于前期活跃用户数量并不多,并发量也相对较小,所以此时企业一般都会选择将所有数据存放在一个数据库 中进行访问操作。举例来说,对于一个电商系统,其用户模...转载 2019-09-25 16:17:49 · 809 阅读 · 0 评论 -
Spring
基础概念1.Spring 是一个轻量级的 IOC/DI和 AOP 容器的开源框架。使用Spring框架的好处是什么?轻量级、容器化、控制反转、面向切面编程、事务管理、异常处理、可以集成多种优秀的框架。2.什么是IOC(控制反转)思想?Spring中关于IOC思想的具体方式DI(依赖注入)?这篇文章IOC(inverse of control):控制反转 对象的创建以及依赖关系可...原创 2019-06-19 11:18:14 · 458 阅读 · 0 评论 -
关于JVM知识点
JVM 知识点汇总JVM知识点有6个大方向,其中,内存模型、类加载机制、GC垃圾回收是比较重点的内容。性能调优部分偏重实际应用,重点突出实践能力。编译器优化和执行模式部分偏重理论基础,主要掌握知识点。各个部分需要了解的知识点如下。 内存模型:程序计数器、方法区、堆、栈、本地方法栈的作用,保存哪些数据。 类加载:双亲委派的加载机制,以及常用类加载器分别加载哪种类型的类...原创 2019-09-30 09:25:39 · 294 阅读 · 0 评论