【思维导图】javamap-架构师之路
Java架构师学习路线图(P7)ProcessOn

Java架构师学习路线图(P7)ProcessOn⾯试突击专题按技术分类Java基础经典⾯试题解析Java并发经典⾯试题解析常⽤开发框架经典⾯试题解析Mysql经典⾯试题解析Redis经典⾯试题解析分布式经典⾯试题解析微服务经典⾯试题解析消息队列经典⾯试题解析⽹络相关经典⾯试题解析按⼤⼚分类阿⾥巴巴⾼频⾯试题解析京东⾼频⾯试题解析蚂蚁⾦服⾼频⾯试题解析美团⾼频⾯试题解析字节跳动⾼频⾯试题解析腾讯⾼频⾯试题解析拓展技术专题互联⽹⼯具专题云原⽣技术专题⼤数据全栈专题三⾼项⽬实战专题微服务系列专题微服务架构变迁史淘宝电商微服务架构变迁史京东电商微服务架构变迁史Spring Boot详解及源码剖析Spring boot 快速开始及核⼼配置详解Spring boot 部署⽅式及热部署详解Web开发模板引擎Thymeleaf及Freemarker详解Spring Boot集成Mybatis,Redis,RabbitMq等三⽅框架Spring Boot启动过程源码分析Spring Boot⾃动装配源码分析微服务指标监控Spring Boot Actuator&AdminSpring Cloud Alibaba详解及源码剖析Spring Cloud Netflix详解及源码剖析Eureka服务注册与发现详解及源码分析Ribbon 客户端负载均衡详解及源码分析Fegin 声明式服务调⽤详解及源码分析Hystrix实现服务限流,降级,熔断详解及源码分析Hystrix实现⾃定义接⼝降级,监控数据及监控数据聚合Zuul统⼀⽹关详解,服务路由,过滤器使⽤及源码分析分布式配置中⼼Config详解分布式链路跟踪Sleuth详解Kong⽹关⼊门与实战分布式框架专题分布式消息中间件RabbitmqRabbitMq概述与集群⾼可⽤环境搭建RabbitMq⼯作模式深度详解RabbitMq路由机制与镜像机制RabbitMq消息防丢失与削峰限流死信队列与延时队列详解消息防重复消费与消息积压快速处理RabbitMq与Spring、Springboot整合RocketMq解密RocketMq集群部署与快速⼊门深⼊分析RocketMq模块划分与集群原理讲解详解普通消息、顺序消息、事务消息、定时消息深⼊RocketMq Broker、Consumer、Producer源码剖析详解RocketMq监控与运维企业实战RocketMq消息中间件API架构开发KafkaKafka发展介绍与对⽐Kafka集群搭建与使⽤Kafka副本机制与选举原理详解Kafka架构设计原理分析基于Kafka的⼤规模⽇志系统实现原理分析亿级流量⽣产系统Kafka性能优化最佳实践分布式储存中间件RedisRedis核⼼数据结构剖析Redis在微博,微信及电商场景典型应⽤实践Redis持久化机制与安全机制详解Redis主从及哨兵架构详解Redis Cluster集群架构实战及原理剖析集群数据分⽚算法及动态⽔平扩容详解Jedis、Redisson客户端源码剖析Redis⾼并发分布式锁实战Redis缓存穿透,缓存失效,缓存雪崩实战解析Redis布隆过滤器实现Redis缓存设计与性能优化MongoDBMongoDB基础概念数据库、集合、索引及⽂档详解MongoDB⾼可⽤集群搭建实战MongoDB性能调优与索引实战MongoDB分⽚集群与复制架构实战集群模式下MongoDB的事务实现实战MongoDB分区实战MongoDB性能优化最佳实践ElasticsearchElasticSearch快速⼊门实战与底层原理剖析DSL⾼级语法与⾼可⽤架构实战ElasticSearch集群架构原理与源码剖析ElasticSearch数据建模与性能调优ELK、FileBeat企业级架构与⾯试剖析亿级流量电商系统搜索实战FastDFSFastDFS应⽤背景和原理介绍FastDFS分布式部署实战FastDFS⽂件存储项⽬实战MinIOMiniIO基本使⽤与优缺点分析MiniIO的EC码与⽂件存储结构MinIO单机模式部署与集群模式部署MinIO客户端mc快速使⽤MinIO与Spring Boot整合实战MinIO⽂件上传下载实战Neo4j图数据库介绍与快速使⽤Neo4j数据模型与使⽤场景Neo4j安装与部署实战Neo4j数据备份与恢复Neo4j与Spring Boot整合实战Neo4j构建明星关系图谱实战分布式调度中间件Java定时任务QuartzQuartz的基本使⽤⼩顶堆与时间轮算法解析JobDataMap的基本使⽤触发器的使⽤与⼯作原理解析Spring Boot整合QuartzQuartz集群部署实战分布式调度Elastic JobElastic Job环境配置与基本使⽤Elastic Job⾼级功能使⽤Elastic Job底层调度原理分析Elastic Job底层架构设计分析分布式框架性能调优专题Jvm性能调优Mysql性能调优Tomcat调优整体认知Tomcat项⽬架构理解Tomat启动流程理解对Http请求解析与处理流程核⼼组件认知wrappercontexthostenginecontainerTomcat 8 与Tomcat7 对⽐⽣产环境配置Tomcat server.xml 配置详解Tomcat集群与会话复制⽅案实现Tomcat虚拟主机配置掌握Tomcat 线程模型背后原理Tomcat ⽀持四种线程模型介绍通过压测演⽰Nio与 Bio模型的区别Tomcat Bio实现源码解读Tomcat Nio 实现源码解读Tomcat connector 并发参数解读Undertow调优Undertow介绍与基本使⽤Undertow调优参数介绍Undertow与Tomcat、Jetty性能对⽐分析Undertow性能调优实战Nginx调优Nginx快速掌握核⼼模块标准Http模块可选Http模块第三⽅模块nginx 事件驱动模型及特性熟练掌握Nginx核⼼配置基本配置虚拟主机配置upstreamlocation静态⽬录配置掌握Nginx负载算法配置轮循+权重ip hashurl hashleast_connleast_timeLVS调优LVS基本使⽤与配置LVS⾼级使⽤与配置LVS核⼼调优参数与实战Keepalived+LVS+Nginx整合并发编程专题框架源码专题应⽤框架SpringORM框架MyBatisMyBatis快速掌握MyBatis、Hibernate及传统JDBC对⽐Mybatis全局参数详解详解configuration 、properties、 settings、 typeAliases、 mapper 掌握xml和annotations和Criteria差异Mybatis 源码分析整体认识mybatis源码结构Mybatis核⼼应⽤配置与原理解析Spring与MyBatis集成源码剖析Configuration、Mapper、SqlSession、Executor源码解析Mybatis徒⼿实现熟悉MyBatis内部运⾏机制熟悉MyBatis初始化过程源码debug⼀⾏⾏详细讲解MyBatis⼆级缓存应⽤⼿写实现⼀套mybatis框架MybatisPlus⾼级应⽤MybatisPlus快速使⽤MybatisPlus分页查询MybatisPlus逻辑删除与数据⾃动填充MybatisPlus全局id⽣成器MybatisPlus条件构造器⼯作流Activiti7基本介绍与使⽤BPMN介绍与详解创建流程定义实战与源码分析流程挂起实战与源码分析流程激活实战与源码分析⾼级应⽤实战流程变量介绍与⾼级使⽤流程⽹关介绍与⾼级使⽤任务分配介绍与⾼级使⽤Activiti7与Spring Boot整合流程与源码分析学习源码中的优秀设计模式P8⾼级架构师图灵Java架构师学习路线对标⼤⼚P7级别图灵Java架构师学习路线对标⼤⼚P7级别框架源码专题应⽤框架SpringORM框架MyBatisMyBatis快速掌握MyBatis、Hibernate及传统JDBC对⽐Mybatis全局参数详解详解configuration 、properties、 settings、 typeAliases、 mapper掌握xml和annotations和Criteria差异Mybatis 源码分析整体认识mybatis源码结构Mybatis核⼼应⽤配置与原理解析Spring与MyBatis集成源码剖析Configuration、Mapper、SqlSession、Executor源码解析Mybatis徒⼿实现熟悉MyBatis内部运⾏机制熟悉MyBatis初始化过程源码debug⼀⾏⾏详细讲解MyBatis⼆级缓存应⽤⼿写实现⼀套mybatis框架MybatisPlus⾼级应⽤MybatisPlus快速使⽤MybatisPlus分页查询MybatisPlus逻辑删除与数据⾃动填充MybatisPlus全局id⽣成器MybatisPlus条件构造器⼯作流Activiti7基本介绍与使⽤BPMN介绍与详解创建流程定义实战与源码分析流程挂起实战与源码分析流程激活实战与源码分析⾼级应⽤实战流程变量介绍与⾼级使⽤流程⽹关介绍与⾼级使⽤任务分配介绍与⾼级使⽤Activiti7与Spring Boot整合流程与源码分析学习源码中的优秀设计模式并发编程专题性能调优专题Jvm性能调优Mysql性能调优Tomcat调优整体认知Tomcat项⽬架构理解Tomat启动流程理解对Http请求解析与处理流程核⼼组件认知wrappercontexthostenginecontainerTomcat 8 与Tomcat7 对⽐⽣产环境配置Tomcat server.xml 配置详解Tomcat集群与会话复制⽅案实现Tomcat虚拟主机配置掌握Tomcat 线程模型背后原理Tomcat ⽀持四种线程模型介绍通过压测演⽰Nio与 Bio模型的区别Tomcat Bio实现源码解读Tomcat Nio 实现源码解读Tomcat connector 并发参数解读Undertow调优Undertow介绍与基本使⽤Undertow调优参数介绍Undertow与Tomcat、Jetty性能对⽐分析Undertow性能调优实战Nginx调优Nginx快速掌握核⼼模块标准Http模块可选Http模块第三⽅模块nginx 事件驱动模型及特性熟练掌握Nginx核⼼配置基本配置虚拟主机配置upstreamlocation静态⽬录配置掌握Nginx负载算法配置轮循+权重ip hashurl hashleast_connleast_timeLVS调优LVS基本使⽤与配置LVS⾼级使⽤与配置LVS核⼼调优参数与实战Keepalived+LVS+Nginx整合分布式框架专题分布式消息中间件RabbitmqRabbitMq概述与集群⾼可⽤环境搭建RabbitMq⼯作模式深度详解RabbitMq路由机制与镜像机制RabbitMq消息防丢失与削峰限流死信队列与延时队列详解消息防重复消费与消息积压快速处理RabbitMq与Spring、Springboot整合RocketMq解密RocketMq集群部署与快速⼊门深⼊分析RocketMq模块划分与集群原理讲解详解普通消息、顺序消息、事务消息、定时消息深⼊RocketMq Broker、Consumer、Producer源码剖析详解RocketMq监控与运维企业实战RocketMq消息中间件API架构开发KafkaKafka发展介绍与对⽐Kafka集群搭建与使⽤Kafka副本机制与选举原理详解Kafka架构设计原理分析基于Kafka的⼤规模⽇志系统实现原理分析亿级流量⽣产系统Kafka性能优化最佳实践分布式储存中间件RedisRedis核⼼数据结构剖析Redis在微博,微信及电商场景典型应⽤实践Redis持久化机制与安全机制详解Redis主从及哨兵架构详解Redis Cluster集群架构实战及原理剖析集群数据分⽚算法及动态⽔平扩容详解Jedis、Redisson客户端源码剖析Redis⾼并发分布式锁实战Redis缓存穿透,缓存失效,缓存雪崩实战解析Redis布隆过滤器实现Redis缓存设计与性能优化MongoDBMongoDB基础概念数据库、集合、索引及⽂档详解MongoDB⾼可⽤集群搭建实战MongoDB性能调优与索引实战MongoDB分⽚集群与复制架构实战集群模式下MongoDB的事务实现实战MongoDB分区实战MongoDB性能优化最佳实践ElasticsearchElasticSearch快速⼊门实战与底层原理剖析DSL⾼级语法与⾼可⽤架构实战ElasticSearch集群架构原理与源码剖析ElasticSearch数据建模与性能调优ELK、FileBeat企业级架构与⾯试剖析亿级流量电商系统搜索实战FastDFSFastDFS应⽤背景和原理介绍FastDFS分布式部署实战FastDFS⽂件存储项⽬实战MinIOMiniIO基本使⽤与优缺点分析MiniIO的EC码与⽂件存储结构MinIO单机模式部署与集群模式部署MinIO客户端mc快速使⽤MinIO与Spring Boot整合实战MinIO⽂件上传下载实战Neo4j图数据库介绍与快速使⽤Neo4j数据模型与使⽤场景Neo4j安装与部署实战Neo4j数据备份与恢复Neo4j与Spring Boot整合实战Neo4j构建明星关系图谱实战分布式调度中间件Java定时任务QuartzQuartz的基本使⽤⼩顶堆与时间轮算法解析JobDataMap的基本使⽤触发器的使⽤与⼯作原理解析Spring Boot整合QuartzQuartz集群部署实战分布式调度Elastic JobElastic Job环境配置与基本使⽤Elastic Job⾼级功能使⽤Elastic Job底层调度原理分析Elastic Job底层架构设计分析分布式框架微服务系列专题微服务架构变迁史淘宝电商微服务架构变迁史京东电商微服务架构变迁史Spring Boot详解及源码剖析Spring boot 快速开始及核⼼配置详解Spring boot 部署⽅式及热部署详解Web开发模板引擎Thymeleaf及Freemarker详解Spring Boot集成Mybatis,Redis,RabbitMq等三⽅框架Spring Boot启动过程源码分析Spring Boot⾃动装配源码分析微服务指标监控Spring Boot Actuator&AdminSpring Cloud Alibaba详解及源码剖析Spring Cloud Netflix详解及源码剖析Eureka服务注册与发现详解及源码分析Ribbon 客户端负载均衡详解及源码分析Fegin 声明式服务调⽤详解及源码分析Hystrix实现服务限流,降级,熔断详解及源码分析Hystrix实现⾃定义接⼝降级,监控数据及监控数据聚合Zuul统⼀⽹关详解,服务路由,过滤器使⽤及源码分析分布式配置中⼼Config详解分布式链路跟踪Sleuth详解Kong⽹关⼊门与实战三⾼项⽬实战专题⼤数据全栈专题云原⽣技术专题互联⽹⼯具专题拓展技术专题⾯试突击专题按技术分类Java基础经典⾯试题解析Java并发经典⾯试题解析常⽤开发框架经典⾯试题解析Mysql经典⾯试题解析Redis经典⾯试题解析分布式经典⾯试题解析微服务经典⾯试题解析消息队列经典⾯试题解析⽹络相关经典⾯试题解析按⼤⼚分类阿⾥巴巴⾼频⾯试题解析京东⾼频⾯试题解析蚂蚁⾦服⾼频⾯试题解析美团⾼频⾯试题解析字节跳动⾼频⾯试题解析腾讯⾼频⾯试题解析P8⾼级架构师登录分享tl-zgJava架构师学习路线图(P7)0 222.9k点赞 2.9k收藏 4.2k评论 102102 条评论发表。
Java程序设计(基础)思维导图-简单高清脑图_知犀思维导图思维导图-简单高清脑图_知犀

Java程序设计(基础)概述特点面向对象平台可移植性分布式多线程安全性工作方式开发工具JDKjavacjava javadocIDElntelliJEclipse NetBeans术语JDK JREJVM API源程序结构package管理类解决命名冲突import class 注释行注释//块注释/*…*/文档注释/**…*/@author @param@return @throws基本语法关键字有特殊含义的单词(50)能用的(48)不能用的(2)gotoconst 标识符给类、接囗、方法、变量等起的名字命名规则字母、数字、下划线和$,数字不能开头大小写敏感不能跟关键字和保留字(null、true、false)冲突见名知意驼峰标识类名每个单词首字母大写变量和方法名从第二个单词开始每个单词首字母大写命名常量全大写,多个单词用下划线隔开运算符分类算术运算符赋值运算符关系运算符短路运算符条件运算符(三目运算符)自增/自减运算符正负号运算符移位运算符布尔运算符位运算符new 创建对象instanceof运行时类型识别()强制类型转换改变运算优先级[]下标运算符.取成员运算符优先级搞不清楚优先级直接加()结合性从左向右从右向左赋值运算自加自减条件运算正负号字面量整型字面量:100、100L浮点型字面量:3.5、3.5F、3.123e2字符字面量:'a'、'\t'、'\123'布尔型字面量:true、false引用字面量:null类型字面量:String.class、int.class分隔符数据类型基本类型整叙byteshortintlong小数floatdoublecharboolean 枚举类型enum引用类型String数组自定义的类或接囗面向对象基本概念类对象的蓝图和模板类与类之间的关系IS-A:继承泛化实现HAS-A:关联关联聚合合成USE-A:依赖定义类[访问修饰符] [修饰符] class类名 [extends 父类] [implements 接囗1,接口2,...] {}属性:数据抽象方法:行为抽象构造器创建对象:new构造器()对象一切皆为对象对象都有属性和行为对象都是唯一的对象都属于某个类消息调用对象的方法就是给对象发送了一个消息一个对象能够接受某种消息,就意味着该对象向外界提供了某种服务三大支柱封装隐藏一切可隐藏的实现细节,只暴露最简单的编程接囗继承从已有类创建新类的过程提供继承信息的类叫父类(基类、超类)得到继承信息的类叫子类(派生类)子类可以继承到父类中public、protected的属性和方法Java中的继承是单继承Object类是所有类的父类多态定义解释1:同样的引用调用同样的方法却做了不同的事情解释2:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但对A系统来说是透明的实现方法重写:不同的子类对父类的同一方法给出不同的实现版本对象造型:用父类型的引用引用子类型的对象相关内容访问修饰符类public默认方法、属性、内部类public protected默认private抽象类如果一个类有抽象方法,这个类必须被声明为抽象类抽象类中可以没有抽象方法,抽象类也可以有自己的构造器抽象类不能实例化(不能创建对象)强烈建议:将被继承的类设计成抽象类接囗接囗是约定:实现接囗的类必须重写接口中所有方法,否则就要声明为抽象类接囗代表能力:实现了接囗的类就具备了接囗所描述的能力接囗是一种角色:一个类可以实现多个接囗,一个接囗也可以被多个类实现Java中的接囗单方法接囗:这个唯一的方法通常都是回调方法ActionListener Runnable Comparable标识接囗:没有方法,但是表示了某种能力CloneableSerializable常量接囗:这是接囗最不正确的用法内部类相当于外部类中的一个属性内部类可以访问外部类的私有成员设计原则单一职责原则专业化模块化开闭原则抽象是关键封装可变性依赖倒转原则里氏替换原则接囗隔离原则合成聚合复用原则迪米特法则字符串String创建字符串对象String s="Hello";s引用静态区的字符串字面量String s=new String(Hello")s引用堆上的字符串对象字符串的方法长度:length()取字符:charAt(int)变大/小写:toUpperCase()/toLowerCase()连接:concat(String)比较:equals(String)/compareTo(String)判断开头/结尾:startsWith(String)/endsWith(String)模式匹配:indexOf(String,[int])/lastlndexOf(String,[int]取子串:substring(int,[int])修剪左右两边空白:trim()替换:replace(String,String)/replaceAII(String,String拆分:split(String)String代表的是不变字符串可以被修改的字符串StringBuilder 适用于单线程环境StringBuffer适用于多个线程操作同一个字符串的场景方法在指定位置插入字符串:insert(int,String)删除指定位置的字符:delete(int,int)倒转:reverse()追加:append(String)方法[访问修饰符] [修饰符]返回类型方法名([参数列表])[异常声明]访问修饰符public protected默认private修饰符static abstractfinal修饰变量,变量变成常量修饰类,类不能被继承修饰方法,方法不能被重写synchronizednative方法调用静态方法:类名.方法名(实参列表)非静态方法:对象.方法名(实参列表)递归数组基本用法数组的定义数组的初始化new静态初始化length属性下标运算Arrays工具类sort:排序toString:将数组变成字符串copyOf:数组拷贝equals:比较数组元素是否相同二维数组一个普通数组,每个元素又是一个数组应用表格矩阵2D游戏中的地图棋盘流程控制循环结构分类while循环do…while循环for循环for-each循环相关关键字breakcontinue分支结构if...elseswitch...case...default顺序结构。
java思维导图笔记

Java思维导图笔记1. 什么是思维导图思维导图是一种用于展示思维和概念之间关系的图形工具。
它能够帮助我们整理、组织和表达思维。
在学习和思考过程中,使用思维导图可以更清晰地将复杂的信息归类和记录,提高信息的理解和记忆。
2. Java基本语法2.1 数据类型Java提供了一系列的数据类型,包括基本数据类型(如整数、浮点数、字符、布尔值)和引用数据类型(如类、接口、数组等)。
常见的基本数据类型有: - 整数类型:byte、short、int、long- 浮点数类型:float、double - 字符类型:char - 布尔类型:boolean引用数据类型: - 类(class):是面向对象编程中的基本概念,用来封装数据和方法。
- 接口(interface):是一种抽象的数据类型,用来定义类的行为规范。
- 数组(array):用来存储一组相同类型的元素。
2.2 控制流程语句控制流程语句用于控制程序的执行流程。
Java提供了三种主要的控制流程语句:顺序结构、选择结构和循环结构。
顺序结构是最简单的控制流程,指按照代码的先后顺序执行。
选择结构用于根据条件选择不同的执行路径。
常见的选择语句有:- if语句:用于根据一个条件判断选择是否执行某个代码块。
- switch语句:用于根据一个表达式的值选择执行不同的代码块。
循环结构用于重复执行某个代码块直到满足退出条件。
常见的循环语句有: - while语句:在循环开始之前,先判断条件是否满足,如果满足则执行循环体,然后再次判断条件。
- do-while语句:先执行一次循环体,然后再判断条件是否满足,如果满足则继续执行循环体。
- for语句:在循环开始之前,先执行初始化表达式,然后判断条件是否满足,如果满足则执行循环体,并在每次循环结束后执行更新表达式。
2.3 方法方法是一种可重复使用的代码块,用于执行特定的任务。
在Java 中,每个方法都有名称和参数列表,有时也有返回值。
Java 技术栈(思维导图)

Spark:Core、SQL、Streaming、MLib、GraphX……
大数据
Flink、ELK、Ansible……
Jenkins、JIRA、GitlabCI、TravisCI……
DevOps
JWT、SSO、ELK、秒杀……
解决方案
进阶
Java 技术栈
初级
Java 平台
发行版;面向对象;类加载、运行机制;编译、解释、JIT……
微服务
MySQL:B树、B+树、Hash表、隔离性、一致性、原子性、分布式事务、锁、 binlog、redolog、主从同步……
Redis:线程模型、缓存穿透/雪崩、集群和哨兵、分布式锁……
消息队列:RabbitMQ、Kafka、RocketMQ……
Nginx:反向代理、负载均衡…… Elasticsearch、MongoDB、图数据库……
TCP、UDP、HTTP(s)、RPC、WebSocket……
常用协议
内存分配、线程模型…… GC日志、诊断工具、问题定位、调优策略……
JVM
锁:自旋锁、偏向锁、锁粗化/锁消除、分段锁、读写锁、公平锁、非公平锁、乐 观锁、悲观锁……
同步器:CAS、AQS、自旋…… 并发模型:并行、响应式、函数式、Actor、Channel……
Redis
缓存、持久化……
算法 & 数据结构
树、堆、链表、数组…… 查找、排序、递归……
设计模式
单例、工厂、构建器、装饰器、迭代器、观察者……
开发框架
Spring MyBatis
基础:Context、IOC、AOP、Bean、MVC…… SpringBoot:自动装配、嵌入式容器……
SqlSession、Executor……
Java工程师学习之路思维导图

Java⼯程师学习之路思维导图前⾯看Hollis的微信公众号更新了Java⼯程师成神之路的⽂档,感觉⾥⾯的内容清晰、齐全,可以⽤来审视⾃⼰,也能够知道⾃⼰在那些⽅⾯可以继续前⾏,想着有时间分享出来。
⼀、基础篇JVMJVM内存结构堆、栈、⽅法区、直接内存、堆和栈区别Ja va内存模型内存可见性、重排序、顺序⼀致性、volatile、锁、final垃圾回收内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定JVM参数及调优Ja va对象模型oop-klass、对象头H o tSpo t即时编译器、编译优化类加载机制classLoader、类加载过程、双亲委派(破坏双亲委派)、模块化(jboss modules、osgi、jigsaw)虚拟机性能监控与故障处理⼯具jps, jstack, jmap、jstat, jconsole, jinfo, jhat, javap, btrace、TProfiler编译与反编译javac 、javap 、jad 、CRFJava基础知识阅读源代码String、Integer、Long、Enum、BigDecimal、ThreadLocal、ClassLoader & URLClassLoader、ArrayList & LinkedList、 HashMap & LinkedHashMap & TreeMap & CouncurrentHashMap、HashSet & LinkedHashSet & TreeSetJa va中各种变量类型熟悉Ja va Str ing的使⽤,熟悉String的各种函数JDK 6和JDK 7中substring的原理及区别、replaceFirst、replaceAll、replace区别、String对“+”的重载、String.valueOf和Integer.toString的区别、字符串的不可变性⾃动拆装箱Integer的缓存机制熟悉Ja va中各种关键字transient、instanceof、volatile、synchronized、final、static、const 原理及⽤法。
Java-运行时数据区思维导图-简单高清脑图_知犀思维导图思维导图-简单高清脑图_知犀

运行时数据区
程序计数器
特点线程私有,每个线程都有自己的程序计数器作用当前线程执行字节码文件行号指示器异常
较小的内存空间不会发生异常
Java堆
特点线程共享
作用几乎所有对象的实例和数组都在此区域分配异常
堆空间不足时抛出OutOfMemoryError
垃圾回收主要针对的区域
Java虚拟机栈
特点线程私有
结构
栈帧(局部变量表,操作数栈,动态链接,方法出口)作用描述Java方法的执行的内存模型
异常
栈深度达到允许的最大深度-StackOverflowError 异常
栈的内存空间允许扩展-OutOfMemoryError
直接内存
非虚拟机运行数据区
作用通过Native方法直接分配本机内存,如NIO的实现优点
避免了Java堆与Native堆来回拷贝,提高了性能
本地方法栈
特点
线程私有
数据结构与Java虚拟机栈类似
作用用于描述本地方法的执行
异常
类似于Java虚拟机栈也是StackOverflowError,OutOfMemoryErro
方法区
特点线程共享
作用
用于保存类的信息、常量、静态变量、即时编译的代码
虚拟机可以选择不对此区域进行垃圾收集
异常
方法区内存空间不足时抛出OutOfMemoryError
JDK1.8之后修改为MetaSpace
运行时常量池
方法区的一部分
作用用于描述类的版本、字段、方法、接口、编译时的符号引用及字面量
异常
同方法区一样抛出OutOfMemoryError。
java基础思维导图

标识符
Boolean 1字节 取值只有true/flase
布尔
char 2字节 字符不能是负数 字符
字节 byte 1字节
短整型 short 2字节 整型 int 4字节
整型
8种基础数据类型
长整型 long 8字节
float单精度 4字节 double双精度 8字节
浮点型
声明变量 数据类型+变量名(标识符) 变量
switch case...default对变量进行判定,进行精确判定,不会从上到下匹配,直接进入符合条件的分支,如果没有,进入default分支 变量只能是基本数据类型中的 byte char short int String
分支
流程控制
while do
do while 循环: 初始值表达式;布尔值表达式;值改变表达式 循环体
逻辑运算符
运算符号
|| 短路或 只要左边为true,右边不运算
自增符: i++先赋值在运算,++i先运算再赋值 自减符i--
自运算符
>>右移缩小2的n次放 <<
位运算符
布尔值表达式?值A:值B
赋值表达式,最终一定会返回一个值,可以嵌套使用 三元/三目运算符
只能写值的赋予
顺序
if else 从上到下,直到有个符合条件
引用决定能调哪些方法,指向的实例对象决定调用哪一个
在程序运行期间,根据引用的实际指向,调用对应的方法
多态
1. 编译时多态 : 方法重载 2. 运行时多态 : 方法重写 三大前提( 1. 要有继承关系 2. 要有方法重写 3.父类的声明指向子类的引用 )
Sub Topic