【BAT面试宝典】Java架构师,必须掌握的10大基本技能!

Java基础

  • 多线程:创建与使用、线程同步与锁、线程池等的掌握
  • JVM:你只有深入理解虚拟机的内存回收机制,才能正确使用JVM性能调优
  • 掌握NIO,以及对应NIO框架Netty
  • Java并发包(java.util.concurrent)下的工具包:AtomicInteger等原子操作类,基于AQS锁:
    • ReentrantLock
    • Semaphore
    • CountDownLatch
    • ReentrantReadWriteLock
    • SynchronousQueue
    • FutureTask

数据结构与算法

  • 常见的数据结构:数组、链表、堆与栈、哈希表等
  • 算法思想:递推、穷举、贪心等
  • 经典排序算法:排序、查找

常用的设计模式

  • 创建型:工厂方法、抽象工厂、单例模式
  • 结构型:装饰模式、外观模式、组合模式
  • 行为模式:策略模式、观察者模式
  • 软件设计原则:接口隔离、单一职责等原则

开发框架

  • 分库分表框架:tddl、cobar、mycat的选型与使用
  • 服务化:Dubbo、gRPC、Spring Cloud、Spring Cloud alibaba(阿里基于Spring Cloud开源实现,微服务架构推荐使用)
  • 负载均衡:LVS、Nginx、HAProxy
  • 缓存:Redis、Memcached
  • 搜索与数据分析:Elasticsearch、ELK
  • 消息队列:RabbitMQ、Kafka、RocketMQ
  • 容器:docker、k8s
  • 分布式注册中心:zookeeper、nacos阿里开源推荐使用)、ETCD、Consul
  • 高性能NIO网络通信框架 Netty

数据存储

  • MySQL数据库更多是需要掌握事务、锁、索引、性能优化,以及如何配合NoSQL(mongodb\redis)选型使用。
  • 分布式数据库的存储、查询
  • 分布式事务
  • 分布式全局ID设计

常用构建工具

  • Maven/gradle 管理项目的构建、打包、测试、发布
  • git/svn 源码版本管理
  • Nexus 类库私服管理
  • Jenkins 自动化部署工具
  • SonarQube 代码质量检查工具

分布式架构

  • 分布式锁
  • 分布式事务
  • 分布式数据存储,全局唯一ID实现
  • 分布式架构的数据一性性、可用性、容错易用性(CAP),在CAP中只能满足CP或AP原则的理解及实施;
  • 海量数据迁移技术;
  • 服务熔断、限流、降级
  • 服务发现与治理
  • 服务的负载
  • 服务的网关
  • 服务的安全

Linux常用功能

find、grep、ps、cp、move、tar、head、tail、netstat、lsof、tree、wget、curl、ping、ssh、echo、free、top

性能调优

  • JVM性能调优
  • Mysql性能调优
  • Tomcat性能调优
  • Nginx 性能调优
  • redis 性能调优
  • elasticsearch 性能调优

网络安全

  • XSS
    • XSS的防御
    • CSRF
  • 注入攻击
    • SQL注入
    • XML注入
    • CRLF注入
    • 文件上传漏洞
  • 加密与解密
    • 对称加密
    • 非对称加密
    • 哈希算法
    • 加盐哈希算法
    • 加密算法(MD5,SHA1、DES、AES、RSA、DSA)
  • 彩虹表
    • DDOS攻击
    • DOS攻击
    • DDOS攻击
      memcached为什么可以导致DDos攻击
  • 什么是反射型DDoS
    如何通过Hash碰撞进行DOS攻击
  • SSL、TLS,HTTPS
  • 脱库、洗库、撞库
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章