Java学习路线
目录
- 友情提醒
- 第一章、Java基础
- 1.1)第一部分:Java 入门
- 1.2)第二部分:Java数组
- 1.3)第三部分:Java面向对象
- 1.4)第四部分:常用工具类
- 1.5)第五部分:集合体系
- 1.6)第六部分:序列化和泛型
- 1.7)第七部分:异常
- 1.8)第八部分:file类和IO流
- 1.9)第九部分:多线程
- 1.10)第十部分:stream流
- 1.11)第十一部分:Lambda
- 1.12)第十二部分:枚举注解反射
- 1.13)第十三部分:单元测试
- 1.14)第十四部分:源码阅读
- 第二章、JavaWeb
- 2.1)第一部分:HTML5
- 2.2)第二部分: CSS
- 2.3)第三部分:JavaScript
- 2.4)第四部分:MySQL
- 2.5)第五部分:JDBC连接池
- 2.6)第六部分:Servlet
- 2.7)第七部分:JSP
- 2.8)第八部分:AJAX/JSON
- 2.9)其他
- 第三章、框架
- 3.1)Maven工具
- 3.2)MyBatis
- 3.3)第三部分:Spring5
- 3.4)第四部分:Spring MVC
- 3.5)第五部分:SpringBoot2
- 3.6)第六部分:Spring Security
- 3.7)第七部分:SVN、Git工具
- 3.8)第八部分:其他框架
- 第四章、性能优化
- 第五章、数据库
- 第六章、JVM
- 第七章、软件工程
- 第八章、设计模式
- 第九章、数据结构和算法
- 第十章、操作系统
- 第十一章、缓存
- 第十二章、消息队列
- 第十三章、服务器
- 第十四章、计算机网络
- 第十五章、Netty 网络编程
- 第十六章、微服务
- 第十七章、容器
- 第十八章、架构设计
- 第十九章、大数据
- 第二十章、项目实战
- 第二十一章、面试题
- 第二十二章、能力
友情提醒
先看文章目录,大致了解知识点结构,直接点击文章目录可以跳转到文章指定位置。
总结了一下学习路线,我有三套学习视频几百G。有缘看到这篇的可以关注私信我拿资料,哈哈哈。
第一章、Java基础
1.1)第一部分:Java 入门
①DOS常用命令
Java开发环境的搭建:安装JDK,配置环境变量
Java的注释,标识符、标识符的命名规范
②Java基本数据类型
变量和常量的定义及初始化
③Java的运算符
④流程控制语句
⑤关键字
⑥方法的定义,方法的递归调用
1.2)第二部分:Java数组
①Java 数组的定义,声明
②数组的特点优势与局限
③数组的遍历访问(普通循环,增强for循环)
④数组元素的顺序查找
⑤数组越界
⑥数组元素的排序(冒泡选择)
⑦java.util.Arrays工具类的使用
⑧二维数组
⑨数组转成 Stream
⑩数组转成 List
1.3)第三部分:Java面向对象
面向对象设计思想
类中的五成员
重写和重载
抽象方法与抽象类
接口
构造方法的细节
封装继承多态
局部变量、成员变量、静态变量、
final 关键字this 关键字super 关键字
静态属性、静态方法、静态代码块
1.4)第四部分:常用工具类
包装类
日期时间相关的工具类
字符串String
正则表达式
Apache-commons 工具库
Guava 工具库
1.5)第五部分:集合体系
集合的概念和作用
集合框架体系介绍
集合框架之Collection接口
ArrayList和LinkedList的方法使用
ArrayList和LinkedList各自的工作原理分析原理分析
使用多种方式遍历集合
HashSet和LinkedHashSet各自的工作原理分析
集合框架之Map接口
泛型的使用12. Collections工具类的使用
CopyOnWriteArrayList
HashMap
LinkedHashMap
TreeMap
ConcurrentHashMap
fail-fast
1.6)第六部分:序列化和泛型
1.7)第七部分:异常
为什么需要异常处理机制?
Error 和 Exception
try-catch-finally
try-with-resource
throw和throws
自定义异常
尽量捕获原始异常
不要打印堆栈后再抛出异常
不要用异常处理机制代替判断
不要过早捕获异常
11. 断点调试之引导运行步骤
1.8)第八部分:file类和IO流
File类的作用
2. File类中常用方法的使用介绍
3. 使用File类操作文件和文件夹
4. 相对路径和绝对路径的介绍
IO流IO流的概念和工作原理
IO流的分类
文件流的使用
转换流的使用
缓冲流的使用
对象流的使用
内存流的使用
使用不同的流实现文件内容的拷贝
字符流、字节流
输入流、输出流
同步、异步
阻塞、非阻塞
BIO、NIO 和 AIO
NIO 2.0
1.9)第九部分:多线程
- 进程和线程的介绍
- 进程和线程之间的区别与联系
- 线程实现方式之继承自Thread类
- 线程实现方式之实现Runnable接口
- 线程实现方式之线程池
- 线程的生命周期
- 线程中常用方法的使用
创建线程
创建线程池
什么是线程安全
多级缓存和一致性问题
CPU 时间片和原子性问题
指令重排和有序性问题
线程安全和内存模型
happens-before
可重入锁阻塞锁乐观锁悲观锁分布式锁
CAS
JUC
ABA
AQS
Fork Join
偏向锁轻量级锁重量级锁自旋锁
什么是死锁
避免死锁synchronized
volatile关键字
Thread
Local
Executors
CountDownLatch
Callable
ReentrantLock
ReentrantReadWriteLock
Atomic 相关类
1.10)第十部分:stream流
1.11)第十一部分:Lambda
1.12)第十二部分:枚举注解反射
注解是什么?
注解的生命周期
注解装饰的目标
自定义注解
使用注解
什么是反射?
反射有什么用?
Class 类
1.13)第十三部分:单元测试
Junit
TestNG
1.14)第十四部分:源码阅读
String
Integer
ArrayList
LinkedList
CopyOnWriteArrayList
HashMap
TreeMap
LinkedHashMap
ConcurrentHashMap
CopyOnWriteArrayList
第二章、JavaWeb
2.1)第一部分:HTML5
-
html概述
-
html基本标签
-
图片标签
-
超链接标签
-
表格标签
-
无序列表标签
-
有序列表标签
-
定义列表标签
-
div标签
-
语义化标签
-
表单标签
2.2)第二部分: CSS
CSS3简介和用途
CSS3书写规范
CSS3基本语法
CSS3三种使用方式
标签选择器
Id选择器
Class选择器
属性选择器9
层次选择器
文字、文本属性
背景、列表属性
尺寸、显示、轮廓属性
浮动、定位属性
盒子模型
CSS3高级属性
2.3)第三部分:JavaScript
JavaScript概述
JavaScript发展史
JavaScript组成
数据类型
运算符
分支语句
循环语句
系统函数、自定义函数、匿名函数
常见事件
数组、字符串、日期对象
BOM对象:window、history、location
DOM概念DOM操作:创建、修改内容、删除
Css样式操作
2.4)第四部分:MySQL
安装与使用
MySQL客户端和服务器配置
用户权限管理
DDL创建数据库和表
约束与外键
DML实现添加、修改、删除数据8. 聚合函数、日期函数等
DQL简单查询
排序、分组、筛选
多表查询
子查询
和exists关键字
分页查询
Mysql SQL语句优化介绍
2.5)第五部分:JDBC连接池
JDBC使用步骤
Connection、Statement、ResultSet接口
使用JDBC 完成数据库DML操作
PreparedStatement对象
大数据的操作
批量处理与元数据
事务处理
隔离级别
自定义连接池
DBCP、C3p0连接池
DBUtis工具类
QueryRunner
自定义结果集处理
连接池知识总结
2.6)第六部分:Servlet
什么是Servlet
Servlet接收客户端请求信息
Servlet响应客户端信息
Servlet的生命周期
重定向写法
转发写法
转发和重定向区别
HttpServletRequest获取中文乱码问题
HttpServletResponse响应中文乱码问题
Servlet路径映射问题
Servlet多路径映射
2.7)第七部分:JSP
- 什么是JSP
- JSP的内置对象
- 透析JSP的本质
- JSTL+EL5. MVC介绍
- 分层的重要性
- Web工程中事务实现
- Session的使用9. Cookie的使用
- web工程中连接池的使用
- 实现用户的自动登录
- 文件的上传、下载
- 过滤器、 监听器
2.8)第八部分:AJAX/JSON
Ajax技术的理解
XMLHttpRequest使用步骤
XMLHttpRequest GET/POST的区别
同步请求&异步请求
同步请求&异步请求的区别
Ajax获取不同的返回值类型
Ajax使用原生JavaScript和Jquery的区别
Ajax响应状态处理
JSON语法
Java JSON 解析
Java JSON 生成
Java JSON 第三方工具快速解析
JavaScript JSON转换
Jquery JSON转换
2.9)其他
XML
Filter
Listener
JSTL
Cookie
Session
第三章、框架
3.1)Maven工具
- 描述:项目管理工具
- 构建
- 依赖管理
- 插件
- 配置
- 子父工程
- 多模块打包构建
- Nexus 私服搭建
3.2)MyBatis
- 描述:数据访问框架,操作数据库进行增删改查等操作
- 增删改查
- 全局配置
- 动态 SQL
- 缓存
- 和其他框架的整合
- 逆向工程
MyBatis Plus
- 描述:Mybatis 的增强工具,能够简化开发、提高效率
- 引入
- 通用 CRUD
- 条件构造器
- 代码生成器
- 插件扩展
- 自定义全局操作
3.3)第三部分:Spring5
- 描述:Java 轻量级应用框架
- IOC
- AOP
- 事务
3.4)第四部分:Spring MVC
- 描述:Java 轻量级 web 开发框架
- 什么是 MVC?
- 请求与响应
- Restful API
- 拦截器
- 配置
- 执行过程
3.5)第五部分:SpringBoot2
- 描述:简化 Spring 应用的初始搭建以及开发过程,提高效率
- 常用注解
- 资源整合
- 高级特性
- 本地热部署
3.6)第六部分:Spring Security
- 描述:Spring 的安全管理框架
- 用户认证
- 权限管理
- 相关技术:Shiro
3.7)第七部分:SVN、Git工具
- 区分 Git 和 GitHub
- 工作区
- 分支
- 代码提交、推送、拉取、回退、重置
- 分支操作
- 代码合并、解决冲突
- 标签
- cherry-pick
- Git Flow
- 相关技术:SVN(比较老)
3.8)第八部分:其他框架
Vue
Spring Cloud
Netty
Dubbo
第四章、性能优化
使用单例、使用线程池、减少上下文切换、减小锁粒度、数据压缩、Stream 并行流、GC 调优、JVM 内存分配调优、btrace
第五章、数据库
MySql
SQL语句
事务
锁机制
索引、约束、存储过程、分库分表、binlog、读写分离、
数据库缓存(Redis、MongoDB)
数据库中间件(MyCat)
数据库连接池(Durid)
性能优化
第六章、JVM
Java 内存结构堆栈、垃圾回收、JVM 参数调优、Java 对象模型、HotSpot、类加载机制、编译和反编译、反编译工具、JIT、
虚拟机性能监控和故障处理工具(jps、jstack、jmap、jstat、jconsole、javap)
第七章、软件工程
- 软件的本质
- 软件特性
- 软件过程
- 软件开发原则
- 开闭原则
- 里氏替换原则
- 依赖倒置原则
- 单一职责原则
- 接口隔离原则
- 迪米特法则
- 软件过程模型
- 敏捷开发
- 软件开发模型
- 需求建模
- 软件设计
- UML
- 体系结构设计
- 设计模式
- 软件质量管理
- 评审
- 软件质量保证
- 软件测试
- 单元测试
- 集成测试
- 系统测试
- 压力测试
- 部署测试
- 软件配置管理
- 软件项目管理
- 软件项目估算
- 项目进度安排
- 风险管理
- 软件过程改进
- 成熟度模型
第八章、设计模式
设计模式的六大原则、
创建型设计模式(单例、抽象工厂、建造者、工厂、原型)、
结构型设计模式(适配器、桥接、装饰、组合、外观、享元、代理)、
行为型设计模式(模板方法、命令、迭代器、观察者、中介者、备忘录、解释器、状态、策略、责任链、访问者)、
单例的七种写法
第九章、数据结构和算法
简单的数据结构(栈、队列、链表、数组、集合、哈希表)、
树(二叉树、字典树、平衡树、排序树、B 树、B+ 树、R 树、红黑树、多路树)、
堆、
图(拓扑、有向图、无向图)
双指针、查找、分治、动态规划、递归、回溯、贪心、位运算、DFS、BFS
稳定的排序算法(冒泡排序、插入排序、鸡尾酒排序、桶排序、计数排序、归并排序、原地归并排序、二叉排序树排序、鸽巢排序、基数排序、侏儒排序、图书馆排序、块排序)、
不稳定的排序算法(选择排序、希尔排序、梳排序、堆排序、平滑排序、快速排序、内省排序、耐心排序、Clover 排序)
时间复杂度、空间复杂度、贪心算法、KMP 算法
第十章、操作系统
- 操作系统的组成
- Linux 常用命令
- Linux 系统安装
- 环境变量
- 文件管理
- 用户管理
- 内存管理
- 磁盘管理
- 进程管理
- 网络管理
- 软件包管理
- 服务管理
- 日志管理
- Linux 内核
- 常用命令
- 常用环境搭建
- Shell 脚本编程
- VIM 的使用
服务器性能指标(qps、CPU 利用率)
进程、线程(进程 / 线程间通讯方式、进程调度算法、进程同步、)
局部性原理
内存管理、分段和分页、虚拟内存和主存
第十一章、缓存
- 什么是缓存?
- 本地缓存
- Caffeine 库
- 多级缓存
- Redis 分布式缓存
- 数据类型
- 常用操作
- Java 操作 Redis
- Spring Boot Redis Template
- Redisson
- 主从模型搭建
- 哨兵集群搭建
- 日志持久化
- 缓存(Redis)应用场景
- 数据共享
- 单点登录
- 计数器
- 限流
- 点赞
- 实时排行榜
- 分布式锁
- 缓存常见问题
- 缓存雪崩
- 缓存击穿
- 缓存穿透
- 缓存更新一致性
- 相关技术:Memcached、Ehcache
第十二章、消息队列
Rabbit
- 消息队列的作用
- RabbitMQ 消息队列
- 生产消费模型
- 交换机模型
- 死信队列
- 延迟队列
- 消息持久化
- Java 操作
- 集群搭建
- 相关技术:Kafka、ActiveMQ、TubeMQ、RocketMQ
MQKafka
第十三章、服务器
Tomcat
jetty
Nginx
- Nginx 作用
- 正向代理
- 反向代理(负载均衡)
- 常用命令
- 配置
- 动静分离(网站部署)
- 集群搭建
- 相关技术:HAProxy、Apache
第十四章、计算机网络
网络安全
CSRF、XSS、SQL 注入
加密和解密(对称加密、非对称加密)
MD5、SHA1、DES、RSAD
DOS 攻击
网络分层模型
网络传输过程
IP、端口
HTTP 和 HTTPS协议
TCP 和 UDP协议
ARP 地址解析协议
SSL、TLS、Cookie、Session、CDN、
DNS域名解析
第十五章、Netty 网络编程
- IO 模型(BIO / NIO)
- Channel
- Buffer
- Seletor
- Netty 模型
- WebSocket 编程(动手做个聊天室)
第十六章、微服务
Dubbo
- 架构演进
- RPC
- Zookeeper
- 服务提供者
- 服务消费者
- 项目搭建
- 相关技术:DubboX(对 Dubbo 的扩展)
微服务 - 微服务概念
- Spring Cloud 框架
- 子父工程
- 服务注册与发现
- 注册中心 Eureka、Zookeeper、Consul
- Ribbon 负载均衡
- Feign 服务调用
- Hystrix 服务限流、降级、熔断
- Resilience4j 服务容错
- Gateway(Zuul)微服务网关
- Config 分布式配置中心
- 分布式服务总线
- Sleuth + Zipkin 分布式链路追踪
- Spring Cloud Alibaba
- Nacos 注册、配置中心
- OpenFeign 服务调用
- Sentinel 流控
- Seata 分布式事务
接口管理
- Swagger 接口文档
- Postman 接口测试
- 相关技术:YApi、ShowDoc
第十七章、容器
Docker
- 容器概念
- 镜像
- 部署服务
- Dockerfile
- Docker Compose
- Docker Machine
- Docker Swarm
- 多阶段构建
K8s
- K8S 架构
- 工作负载
- 资源类型
- Pod
- Pod 生命周期
- Pod 安全策略
- K8S 组件
- K8S 对象
- 部署应用
- 服务
- Ingress
- Kubectl 命令行
- 集群管理
第十八章、架构设计
🌖 分布式
- 分布式理论
- CAP
- BASE
- 分布式缓存
- Redis
- Memcached
- Etcd
- 一致性算法
- Raft
- Paxos
- 一致性哈希
- 分布式事务
- 解决方案
- 2PC
- 3PC
- TCC
- 本地消息表
- MQ 事务消息
- 最大努力通知
- LCN 分布式事务框架:https://github.com/codingapi/tx-lcn
- 解决方案
- 分布式 id 生成
- Leaf 分布式 id 生成服务:https://github.com/Meituan-Dianping/Leaf
- 分布式任务调度
- XXL-JOB 调度平台:https://www.xuxueli.com/xxl-job/
- elastic-job:https://gitee.com/elasticjob/elastic-job
- 分布式服务调用
- trpc
- 分布式存储
- HDFS
- Ceph
- 分布式数据库
- TiDB
- OceanBase
- 分布式文件系统
- HDFS
- 分布式协调
- Zookeeper
- 分布式监控
- Prometheus
- Zabbix
- 分布式消息队列
- RabbitMQ
- Kafka
- Apache Pulsar
- 分布式日志收集
- Elastic Stack
- Loki
- 分布式搜索引擎
- Elasticsearch
- 分布式链路追踪
- Apache SkyWalking
- 分布式配置中心
- Apollo
- Nacos
🌗 高可用
- 限流
- 降级熔断
- 冷备
- 双机热备
- 同城双活
- 异地双活
- 异地多活
- 容灾备份
🌗 高并发
- 数据库
- 分库分表
- MyCat 中间件
- Apache ShardingSphere 中间件
- 读写分离
- 分库分表
- 缓存
- 缓存雪崩
- 缓存击穿
- 缓存穿透
- 负载均衡
- 负载均衡算法
- 软硬件负载均衡(2、3、4、7 层)
🌘 服务网格
服务网格用来描述组成应用程序的微服务网络以及它们之间的交互。服务网格的规模和复杂性不断的增长,它将会变得越来越难以理解和管理,常见的需求包括服务发现、负载均衡、故障恢复、度量和监控等。
知识
- Istio
- 流量管理
- 安全性
- 可观测性
- Envoy(开源的边缘和服务代理)
资源
- 资料大全:https://www.servicemesher.com/awesome-servicemesh/
- istio 官方文档:https://preliminary.istio.io/latest/zh
- istio 视频教程:https://www.bilibili.com/video/BV1Lf4y1x7j8
- 在线体验 istio:https://katacoda.com/courses/istio/
🌘 DDD 领域驱动设计
将数据、业务流程抽象成容易理解的领域模型,通过用代码实现领域模型,来组成完整的业务系统。
知识
- DDD 的优势
- DDD 的适用场景
- DDD 核心概念
- 领域模型分类:失血、贫血、充血、涨血
- 子域划分:核心域、通用域、支撑域
- 限界上下文
- 实体和值对象
- 聚合设计
- 领域事件
- DDD 实践
资源
- DDD 入门:https://juejin.cn/post/7004002483601145863
- DDD 编码实践:https://juejin.cn/post/6844903903104860174
- DDD 实践教程:https://www.bilibili.com/video/BV1Y341167Xp
🌘 其他
- Sidecar
- Serverless
- 云原生
第十九章、大数据
搜索(Elasticsearch 、Solr)
- 5V 特点
- Hadoop
- HDFS
- MapReduce
- Spark
- Flink
- Storm
- Hive
- HBase
- Druid
- Kylin
- Pig
- Mahout
第二十章、项目实战
电商秒杀
- 天猫整站 SSM:https://how2j.cn/module/134.html
- 天猫整站 Springboot:https://how2j.cn/module/156.html
- mall-learning:https://github.com/macrozheng/mall-learningmall (学习教程,架构、业务、技术要点全方位解析)
- SpringBoot 电商商城系统 Mall4j:https://github.com/gz-yami/mall4j
- SpringBoot 完整电商系统 Mall:https://github.com/macrozheng/mall (包括前台商城系统及后台管理系统,基于 SpringBoot+MyBatis 实现)
- newbee-mall:https://github.com/newbee-ltd/newbee-mall (一套电商系统,包括 newbee-mall 商城系统及 newbee-mall-admin 商城后台管理系统,基于 Spring Boot 2.X 及相关技术栈开发)
- paascloud-master:https://github.com/paascloud/paascloud-master (基于 spring cloud + vue + oAuth2.0,前后端分离商城系统)
- mall-swarm:https://github.com/macrozheng/mall-swarm (一套微服务商城系统,采用了 Spring Cloud Greenwich、Spring Boot 2、MyBatis、Docker、Elasticsearch 等核心技术,同时提供了基于 Vue 的管理后台方便快速搭建系统)
- onemall:https://github.com/YunaiV/onemall (mall 商城,基于微服务的思想,构建在 B2C 电商场景下的项目实战。核心技术栈,是 Spring Boot + Dubbo 。未来,会重构成 Spring Cloud Alibaba)
- litemall:https://github.com/linlinjava/litemall (又一个小商城,litemall = Spring Boot 后端 + Vue 管理员前端 + 微信小程序用户前端 + Vue 用户移动端)
- xmall:https://github.com/Exrick/xmall (基于SOA架构的分布式电商购物商城 前后端分离 前台商城:Vue全家桶 后台管理系统)
- miaosha:https://github.com/qiurunze123/miaosha (秒杀系统设计与实现)
- SecKill:https://github.com/hfbin/Seckill (基于 SpringBoot+Mybatis+Redis+RabbitMQ 秒杀系统)
第二十一章、面试题
面试题
收集的几千道面试题
- ⭐ 2021 最新 Java 笔试、面试题合集:https://pan.baidu.com/s/1DE4HAu-DS80n7VOaGpU_KQ (密码:lkw1)
- 牛客网 Java开发校招面试考点汇总(附面试题和答案):https://www.nowcoder.com/discuss/161991
- 50w字+的技术类校招面试题汇总(附答案+考点):https://www.nowcoder.com/discuss/164726
- 硬件,软件(后端开发,算法,数据分析等)历年企业笔试真题汇总:https://www.nowcoder.com/discuss/212783
面经
- ⭐ 牛客面经:https://www.nowcoder.com/discuss/experience?tagId=639
- 秋招总结Java心得(双非硕士,已拿11+5家Offer):https://www.nowcoder.com/discuss/327041
- 被疫情逼得gap year的完全菜鸡的春招之路。:https://www.nowcoder.com/discuss/427812
- 谨以此文纪念2019年春招:https://www.nowcoder.com/discuss/181212
- 2019秋招经验谈:https://www.nowcoder.com/discuss/122463
- 秋招心得:https://www.nowcoder.com/discuss/317888
- 非科班本科菜鸡投的337家(Java后台):https://www.nowcoder.com/discuss/133333
- 2018 这一年:https://www.nowcoder.com/discuss/137593
- 双非的秋招,感谢牛客:https://www.nowcoder.com/discuss/142181
- 二本本科Java上岸(滴滴京东58)2019秋招心得+面经:https://www.nowcoder.com/discuss/333912
- 碎碎念流水账特别长 of 自己的 Java 秋招:https://www.nowcoder.com/discuss/354154
- 秋招之路:个人历程以及面经总结:https://www.nowcoder.com/discuss/344311
- 【秋招面经总结】菜逼的坎坷之路(JAVA后台研发):https://www.nowcoder.com/discuss/352030
- 阿里11面+EMC+网易+美团面经:https://www.nowcoder.com/discuss/105302
- 2018秋招阿里巴巴java笔试试题:https://www.nowcoder.com/discuss/67379
- 我的秋招经验分享(已拿BAT头条网易):https://www.nowcoder.com/discuss/117071
- 20届的阿里 头条 网易 滴滴 百度 小米等Java面经:https://www.nowcoder.com/discuss/68289
- 拿了5个offer,回馈牛友发一波面经(长文详细):https://www.nowcoder.com/discuss/79051
- 【总结】零基础学习一年拿到BAT三家offer:https://www.nowcoder.com/discuss/188241
- 本科生秋招经验总结帖:https://www.nowcoder.com/discuss/296586
- 双非渣硕校招总结+Java面经(网易阿里百度等):https://www.nowcoder.com/discuss/134850
- 2018秋招笔试科大讯飞java笔试试题:https://www.nowcoder.com/discuss/67684
- 头条后台研发面经(共三面):https://www.nowcoder.com/discuss/94233
- 一点点小经验和几家Java面经:https://www.nowcoder.com/discuss/138434
- 感谢牛客网!发一波面经!阿里、网易游戏、京东等offer。:https://www.nowcoder.com/discuss/101712
- 非科班水硕的春招实习总结- Java 后台开发:https://www.nowcoder.com/discuss/186528
- 十面阿里,七面头条,六个Offer,春招结束:https://www.nowcoder.com/discuss/80156
- 成功上岸,最后一波回馈:https://www.nowcoder.com/discuss/176434
- 【Java后台开发面经】阿里|网易|头条|腾讯|华为:https://www.nowcoder.com/discuss/108655
- 三跨学生的面经(头条、拼多多、华为、vivo):https://www.nowcoder.com/discuss/195640
第二十二章、能力
程序员重要能力
- 团队协作能力
- 高效沟通能力
- 需求分析能力
- 架构设计能力
- 抽象复用能力
- 独立创造能力
- 问题解决能力
- 归纳总结能力
- 自主学习能力
- 工具利用能力
- 高效编码能力
- 信息检索能力
- 开源建设能力
- 源码阅读能力
- 自测审查能力
- 文档编写能力
- 知识表达能力
- 绘图描述能力
- 兴趣驱动(长期学习能力)
- 保持好奇心
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
Java学习路线
目录 友情提醒第一章、Java基础1.1)第一部分:Java 入门1.2)第二部分:Java数组1.3)第三部分:Java面向对象1.4)第四部分:常用工具类1.5)第五部分:集合体系1.6&a…...
![](https://www.ngui.cc/images/no-images.jpg)
java 实现人脸检测
1. 安装必要的库 确保你已经安装了JPEG库、BLAS和LAPACK库。在Ubuntu或Debian系统上,可以使用以下命令安装: sudo apt-get update sudo apt-get install libjpeg-dev libblas-dev liblapack-dev 在CentOS或Fedora系统上,可以使用以下命令安…...
![](https://i-blog.csdnimg.cn/direct/db3a3cf7aeaa49f5a57478aed9994682.png)
VSCode神仙插件——Codeium (AI编程助手)
1、安装&登录插件 安装过程中会让你登录Codeium账户,可以通过Google账户登录,或者可以注册一个Codeium账户(如果没有弹出让你登录账户的界面,可以等安装结束后在右下角找到登录的地方) 右下角显示如下图所示&#…...
![](https://i-blog.csdnimg.cn/direct/44f1f0d2e32e4d2a927c7e65053ad7ba.png)
css文本划线效果(text-decoration相关属性详解)
/* 样式类型*/text-decoration: underline;/* 下划线颜色 */text-decoration-color: #ffcb15;/* 超出基线的字符不会被截断 */text-decoration-skip-ink: none;/*下划线厚度 */text-decoration-thickness: 5px;/* 与其原始位置的偏移距离 */text-underline-offset: 0;1. text-u…...
![](https://i-blog.csdnimg.cn/direct/41e4f975dfa44d95a1520dc19314e8c7.png)
《Windows API每日一练》8.5 listbox控件
列表框是将一批文本字符串显示在一个具有滚动功能的方框中的控件。通过发送消息到列表框的窗口过程,程序可以添加或删除列表中的字符串。当列表框中的一个项目被选中时,列表框控件便发送 WM_COMMAND消息到其父窗口。然后父窗口确定哪个项目被选中。 本节…...
![](https://www.ngui.cc/images/no-images.jpg)
使用Node.js 框架( Express.js)来创建一个简单的 API 端点
文章目录 使用Node.js 框架( Express.js)来创建一个简单的 API 端点什么是express安装修改代码 express 自动刷新 使用Node.js 框架( Express.js)来创建一个简单的 API 端点 什么是express Express 是一个保持最小规模的灵活的 …...
![](https://i-blog.csdnimg.cn/direct/fe189940720a4334a7615887601fbcb3.png)
企业服务行业CRM解决方案
企业服务行业CRM解决方案 强大的功能满足企业服务行业对客户管理、业务管理等方面的真实需求; 细分企业服务行业的不同领域,为不同业务场景提供个性化配置; 打通钉钉、企业微信等平台,降低企业使用CRM门槛,提供高性…...
![](https://www.ngui.cc/images/no-images.jpg)
服务器怎么进PE系统?
服务器进PE是指将服务器的操作系统切换到预安装环境(Pre-Installation Environment)的状态。在PE环境下,可以进行一些系统管理和故障排除的操作。在进入PE(Preinstall Environment)之前,首先需要确保你的服…...
![](https://www.ngui.cc/images/no-images.jpg)
Linux内核编译与调试menuos-linux-3.18.6-在ubuntu20.04环境
1 具体操作 下载 linux-3.18.6内核 wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.18.6.tar.xz解压进入linux-3.18.6文件夹 tar -xvf linux-3.18.6.tar.xz cd linux-3.18.6/编译 #make x86_64_defconfig # 为x86_64生成配置 #make alldefconfig make i3…...
![](https://www.ngui.cc/images/no-images.jpg)
java-mysql 三层架构
在 Java 应用程序中,三层架构(Three-Tier Architecture)是一种常见的设计模式,用于分离应用程序的表示层、业务逻辑层和数据访问层。这种架构有助于提高代码的可维护性、可扩展性和可重用性。以下是详细解释 Java 应用程序中使用 …...
![](https://www.ngui.cc/images/no-images.jpg)
打工人如何应对AI对工作岗位的风险
面对AI对工作岗位的潜在取代,我们可以从多个层面制定应对策略,以确保劳动力市场的平稳过渡和社会的可持续发展。以下是一些具体的应对策略: 一、加强教育与培训 提升STEM教育:增加科学、技术、工程和数学(STEM&#…...
![](https://i-blog.csdnimg.cn/direct/afd5cc002d0540dcaf1675221ff82b14.png)
C++:从C语言过渡到C++
在这篇博客中,我将会介绍从C语言过渡到C的一些基础知识。 目录 C起源 C的关键字 输出hello,world 编辑 命名空间 1.什么是命名空间 2.namespace的作用 3.域作用限定符 4.命名空间的使用 IO流 缺省参数 函数重载 引用 1.引用的定义 2.引…...
![](https://www.ngui.cc/images/no-images.jpg)
在安卓中使用FFmpeg录制摄像头的视频并保存到本地MP4文件
在移动应用开发中,有时需要利用设备的摄像头录制视频,并且希望在录制过程中能够精确控制视频的质量、格式和时长。FFmpeg作为一个强大的多媒体处理工具,提供了广泛的功能和选项,能够帮助我们实现这样的需求。 添加依赖 在安卓平台…...
![](https://i-blog.csdnimg.cn/direct/c5da5fff2816463981af4698a2cb53ad.gif)
Vue从零到实战第一天
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…...
![](https://img-blog.csdnimg.cn/direct/3a3173fc7c7646fb962d29ef4163637c.png)
BUUCTF - Basic
文章目录 1. Linux Labs 【SSH连接漏洞】2. BUU LFI COURSE【文件包含漏洞】3. BUU BRUTE【暴力破解用户名密码】4. BUU SQL COURSE【SQL注入-当前数据库】5. Upload-Labs-Linux 1【文件上传漏洞】7. Buu Upload Course 1【文件上传包含漏洞】8. sqli-labs 1【SQL注入-服务器上…...
![](https://www.ngui.cc/images/no-images.jpg)
如何理解Node.js?NPM?Yarn?Vue?React?
一、背景 对后端技术栈更熟悉,对前端技术栈不了解,希望通过前后端的技术栈进行对比,可以更直观地了解前端技术栈。 二、Node.js Node.js 是一个基于 Chrome V8 JavaScript 引擎的 JavaScript 运行环境。它使得 JavaScript 可以在服务器端运…...
![](https://img-blog.csdnimg.cn/img_convert/b24da1bb2028a048bd669714bad6c435.jpeg)
苹果入局,AI手机或将实现“真智能”?
【潮汐商业评论/原创】 “AI应用智能手机不就是现在的AI手机。” 当被问到现阶段对AI手机的看法时,John如是说。“术业有专攻,那么多APP在做AI功能,下载用就是了,也用不着现在换个AI手机啊。” 对于AI手机,或许大多…...
![](https://i-blog.csdnimg.cn/direct/33c6feb29ad040c2843413d4791964f4.png)
AI网络爬虫019:搜狗图片的时间戳反爬虫应对策略
文章目录 一、介绍二、输入内容三、输出内容一、介绍 如何批量爬取下载搜狗图片搜索结果页面的图片?以孙允珠这个关键词的搜索结果为例: https://pic.sogou.com/pics? 翻页规律如下: https://pic.sogou.com/napi/pc/searchList?mode=2&start=384&xml_len=48&am…...
Windows 网络重置及重置网络可能出现的问题( WIFI 没有了 / WLAN 图标消失)
当 Windows 网络出现本机故障时,一般从以下两个方面解决:网络栈和使用网络栈的组件或程序。 1、Winsock 组件问题 以管理身份运行 cmd,输入以下命令 netsh winsock reset重置 Winsock 组件以修复网络连接问题。 Winsock 是 Windows 操作系…...
![](https://img-blog.csdnimg.cn/direct/ab386bb77e46451aa8e7ac96752a60b9.jpeg)
100 个网络基础知识普及,看完成半个网络高手!
1)什么是链接? 链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。 2)OSI 参考模型的层次是什么? 有 7 个 OSI 层:物理层,数据链路层,网络层࿰…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
高盛开源的量化金融 Python 库
GS Quant GS Quant是用于量化金融的Python工具包,建立在世界上最强大的风险转移平台之一之上。旨在加速量化交易策略和风险管理解决方案的开发,凭借25年的全球市场经验精心打造。 它由高盛的定量开发人员(定量)创建和维护&#…...
![](https://www.ngui.cc/images/no-images.jpg)
【Linux】docker和docker-compose 区别是什么
Docker 和 Docker Compose 是用于容器化应用的工具,它们在开发、部署和管理容器化应用程序时有不同的作用。以下是对它们的简要介绍和功能描述: Docker 定义: Docker 是一个开源的平台,允许开发者自动化地部署、扩展和管理应用程序容器。容器是一种轻量级、可移植、独立的软…...
![](https://i-blog.csdnimg.cn/direct/98b90c7697764deda22b571b501e1071.gif)
Qt图片缩放显示
在Qt中,如果你想显示图片的像素或者对图片进行缩放显示,可以使用 QImage 类来处理图片数据,并使用 QLabel 或自定义的 QWidget 来显示图片,但是很难通过鼠标进行缩放显示 QGraphicsView可以实现此功能 在Qt中,QGraphi…...
![](https://i-blog.csdnimg.cn/direct/fcc14d8ee26549d78ccaac71da8f6f14.png)
47、lvs之DR
1、DR模式: 1.1、lvs三种模式: nat 地址转换 DR 直接路由模式 tun 隧道模式 1.2、DR模式的特点: 调度器在整个lvs集群当中是最重要的,在nat模式下,即负载接收请求,同时根据负载均衡的算法转发流量&…...
![](https://i-blog.csdnimg.cn/direct/7d20ccf7ea6842a0a3a58a798bac8b8e.png)
分布式技术栈、微服务架构 区分
1.分布式技术栈 这些技术栈都是为了更好的开发分布式架构的项目。 (大营销平台的系统框架如下图,扩展的分布式技术栈) (1)Dubbo——分布式技术栈 DubboNacos注册中心是应用可以分布式部署,并且提供RPC接…...
![](https://i-blog.csdnimg.cn/direct/490586dfd90644b8bdda7b9dd4c058b3.png#pic_center#pic_center)
【JavaEE精炼宝库】文件操作(2)——文件内容读写 | IO流
文章目录 一、输入流1.1 InputStream 概述:1.2 read 方法详解:1.3 close 方法:1.4 利用 Scanner 进行读操作:1.5 Reader: 二、输出流2.1 OutputStream 概述:2.2 write 方法详解:2.3 利用 PrintW…...
![](https://www.ngui.cc/images/no-images.jpg)
C++ 指针变量做参数传递时的情况分析
前言 指针变量作为参数传递时,很容易混淆指针本身和指针指向的内容,实际应用中可能会导致无法预料的问题,所以做一下详细分析。 注意,在测试过程中为了看测试效果,有些指针变量分配了空间,但是未做回收&am…...
![](https://i-blog.csdnimg.cn/direct/32579eed840845d9bedc6f91708d6a1e.png)
Linux环境下Oracle 11g的离线安装与配置历程
在成功体验了 Windows 版本的Oracle 11g 后,这几天心血来潮,决定再挑战一下Linux 环境下的安装,特别是在考虑到部门内部虚拟机无法联网的情况下,我选择了在CentOS 7上进行离线安装。这次安装之旅,主要参考了下面大佬的…...
![](https://i-blog.csdnimg.cn/direct/00042dac9e7747d1a618791ae52286f4.png)
上位机图像处理和嵌入式模块部署(mcu项目2:串口日志记录器)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 淘宝上面有一个商品蛮好玩的,那就是日志记录器。说是记录器,其实就是一个模块,这个模块的输入是一个ttl串口&am…...
![](https://i-blog.csdnimg.cn/direct/192882a287474e92a5c0704278b970fc.png)
容器是线程不安全的,如果多线程下不加锁直接使用容器会发什么
可能存在的问题 数据竞争 当两个或多个线程同时读写同一个容器且至少有一个线程在写时,会导致数据竞争。这种情况下,容器的内部状态可能会被破坏,从而导致未定义行为。这些未定义的行为包括数据损坏,程序崩溃,以及无…...
![](/images/no-images.jpg)
官方网站模版/短视频赚钱app软件
补全 insertHead 函数,实现将一个结点插入到一个链表头部的功能。 相关知识 在介绍如何将一个结点插入到一个链表头部之前,我们先假设该链表头指针为 head,则 head 中存放着链表当前头结点的地址。 如果要将指针变量 t 指向的新结点插入到链…...
![](/images/no-images.jpg)
安徽住房与城乡建设门户网站/百度竞价系统
CListView是那样简单好用,以至于咱们爱它就好像老鼠爱大米一样。可是你是否知道它的控制类CListCtrl有很多雷区呢?尤其当 Items非常大时(5000以上),对CListCtrl的用法不当,会导致CListView的加载明显延迟。…...
![](https://img-blog.csdnimg.cn/205dc0c50239421ea48bbf38333ceb7b.png)
网站后台如何上传附件/新网站应该怎么做seo
大家好,我是本期的实验室研究员——李卫涵。今天我将向大家介绍如何基于针对 Source Generator 来进行单元测试。接下来就让我们一起到实验室中一探究竟吧! Source Generator 单元测试 Intro Source Generator 是 .NET 5.0 以后引入的一个在编译期间动态…...
![](http://www.ibm.com/i/c.gif)
wordpress最好的免费主题2018/怎样制作网站
本文主要介绍了 IBM UDDI 的安全选项配置以及对应的 UDDI V3 API 的使用。深入剖析了 IBM UDDI 中的 UDDI Publishers, APIs 等高级选项的配置。在文章中,作者给出了使用 UDDI V3 API 与用户个性化安全选项配置协同工作的代码片段。对于不同厂商的 UDDI 产品对 UDDI…...
![](/images/no-images.jpg)
企业网站的类型包括/长沙seo网站推广
谈判中最重要也是最艰难的一幕就是谈判中的较量,前期哪怕做了很多准备,如果在这个实际运作中把握不住,也往往前功尽弃。 现实生活中,我们基本上每天都在进行谈判,只不过是形式有所不同而已,谈判也往往涉及到…...
![](https://img-blog.csdnimg.cn/img_convert/e9ab565637e0ebf8340f0c7cefa5c87f.png)
个人网站建站指南/制作网站的平台
tess Delaunay(pts)返回的是Delanauy类的对象。你可以检查四面体为tess.simplices。它有不同的属性和方法。例如,在2D中,它可以绘制三角剖分、凸壳和Voronoi细分。在关于四面体最终集合的可视化,我没有找到一个简单的方法,但是我…...