java基础或面试问题我爱编程TODO

一个牛逼的Coder是这样诞生的

2018-05-07  本文已影响831人  cuteximi_1995

大厂offer拿到手软,同样毕业,为什么别人可以拿到很多大厂的offer?大 厂更看重毕业生哪一点?

阅读文本大概需要 4 分钟。

今天我给大家分享一个帖子:

一个有实力的coder应该要知道的领域

基础知识


image

1.算法和数据结构

数据,链表,二叉树,队列,栈的各种操作(性能,场景)

二分查找和各种变种的二分查找

各类排序算法以及时间复杂度分析

各类算法题(手写)

理解并可以分子时间和空间复杂度

动态规划

红黑树/AVL树,Hash树,Tire树,B树,B+树

图算法

2.计算机网络

OSI七层协议(TCP四层)

每一层的协议

URL到页面的过程

HTTPhttp/https 1.0 1.1 2.0

get/post以及幂等性

http协议头相关网络攻击(CSRF,XSS)

TCP/IP三次握手,四次挥手拥塞控制(过程/阈值)

流量控制与滑动窗口

TCP和UDP的比较子网划分(笔试)

DDOS攻击

IO/NIO/AIO三者原理,各个语言是怎么实现的;

Netty

Linux内核select poll epoll

3.数据库

索引(分类以及优化方式,失效条件,底层结构);

sql语法;

引擎对比;

数据库的锁(行锁,表锁,页级索,意向锁,读锁,写锁,悲观锁,乐观锁,以及枷锁的select sql方式);

隔离界别,依次解决的问题(脏读,不可重复读,幻读);

事物的ACID;

B树,B+树优化(explain,慢查询,show profile);

数据库的范式分库分表,主从复制,读写分离;

Nosql相关(redis和mencached区别);

redis相关;

4.操作系统

进程通信IPC(几种方式),与线程的区别;

OS的几种策略(页面置换,进程调度,每个里面算法);

互斥与死锁相关的;

Linux常用命令;

Linux内核相关;

5.编程语言(java)

java基础、集合、并发;

多线程(线程池,SYNC和Lock锁机制,线程通信,volatile、ThreadLocal,Cyclibarrier,Atom包,CountDownLatch,AQS,CAS原理);

JVM(内存模型,gc垃圾回收,包括分代,GC算法,收集器,类加载和双亲委派机制,内存泄漏和内存溢出);

IO/NIO相关、反射和代理,异常;

java8相关的;

序列化、设计模式(常用的);

web相关的(servlet, cookie/session, Spring(AOP,IOC,MVC事务,动态代理);

mybatis.Tomcat,Hibernate等看源码;

6.分布式架构

(了解原理就行,如果真的有实践经验更好)

CAP原理和BASE理论。

Nosql与KV存储(redis,hbase,mongodb,memcached等)

服务化理论(包括服务发现、治理等,zookeeper、etcd、springcloud微服务、)

负载均衡(原理、cdn、一致性hash)

RPC框架(包括整体的一些框架理论,通信的netty,序列化协议thrift,protobuff等)

消息队列(原理、kafka,activeMQ,rocketMQ)

分布式存储系统(GFS、HDFS、fastDFS)、存储模型(skipList、LSM等)

分布式事务、分布式锁等

7.脚本语言

(只是作为横向扩充,一般问到linux也会问问shell脚本)

python , php ,shell ,golang 。

8.大数据与数据分析

hadoop生态圈(hive、hbase、hdfs、zookeeper、storm、kafka) spark体系 ,语言:python、R、scala 搜索引擎与技术

9.机器学习算法

模型和算法很多。不细说了,如果很熟练就去投算法,国内很多公司都算法岗都很稀缺,其他岗可以大概了解下理论。

10.其他工具的理论和使用

这个更多了,问的多的比如git、docker、maven/gradle、Jenkins等等,自己需要的话选择性地去学。

说了这么多...推荐几本良心的书籍吧。

推荐书单


image

算法与数据结构:

数据结构(严蔚敏)/大话数据结构

剑指Offer/程序员面试金典/编程珠玑/编程之美/牛客网+leetcode

程序员笔试面试最优解(左程云)

Java的版本(不是很推荐): 数据结构与算法经典问题解析(Java语言描述)

图解数据结构(使用Java)


计算机网络:

计算机网络(谢希仁)

TCP/IP 详解

HTTP权威指南

图解TCP/IP

图解HTTP


数据库:

数据库主要是多用,书上主要看索引和性能的部分

高性能MySQL/深入浅出MySQL


操作系统:

OS原理:操作系统(课本,黑色的那个)


Linux:

Linux私房菜 //鸟哥写的,很全,包括bash部分

跟阿铭学Linux //主要偏重于命令和操作,比较浅显


Java:

Java疯狂讲义/Java编程思想/Java核心技术 卷1

深入理解Java虚拟机

并发编程的艺术/多线程编程核心技术

Effective Java

Java程序员面试笔试宝典 //何昊的那本,个人感觉是突击知识点的神器

Java程序性能优化

实战Java高并发程序设计


Java Web:

Spring实战/轻量级JavaEE 企业应用(红皮,讲SSH的)

//主要看最后一部分Spring的就可以

深入JavaWeb技术内幕(阿里 许令波)//这个讲的还是比较深的 SpringBoot实战/深入实践SpringBoot


设计模式:

大话设计模式 //通俗易懂

各类博客的总结


分布式与大数据:

分布式服务框架原理与实践

大型网站技术架构

Hadoop实战(hadoop体系包括得很全)


其他:

Git:

Git权威指南

Git官方讲解视频(牛客网有带字幕的)

Redis:

Redis实战

是不是觉得有点多啊?当然,大佬都是一步一步积累的,加油吧!优秀的你,肯定有时间,有耐心,有毅力!

本文编辑:cuteximi & IT充电空间

参考:网友分享 & 整理

版式:cuteximi

如果觉得对你有帮助,请持续关注转发,谢谢各位。

cuteximi.com


image

优秀的你,长按关注:IT充电空间

每天几分钟

获取贴心技术贴

欢迎↓↓↓留言点赞收藏~

上一篇下一篇

猜你喜欢

热点阅读