作为一个二本院校,专业跟编程不挂钩,当时以为考上了大学就可以高枕无忧放开了玩,可以说我整个大学期间都是打游戏过来的。到了大四才发现,同学们都陆续去找了实习,有的做机械工作,有的在大三的时候就自学了Java或者web前端技术,然后他们通过秋招找到了一份实习的工作,据说转正之后的薪资都可以超过10K。就是从这个时候我开始慌了,这个时候学校已经要求我们实习,很快就到了毕业的时间。
从去年10月份我开始自学Java,因为要面临就业的现实问题,我从别的专业往互联网软件开发这个行业转,我的目的很明确,如果想夸专业转行,就直接奔着高薪和成长空间大的行业转。我的很多同学要不是学Java后端,要不就是学习web前端,反正身边的人都说这行发展的比较好,工资高,涨薪快。我室友建议我去学Java,说Java的岗位需求量是最大的,一二三城市都有很多工作岗位。我从去年11月份自学Java到现在就业一共是用了6个月左右的时间,现在是在重庆的一家软件公司做产品的维护,技术部大约是50多人,拿到毕业证给我转正,转正后说薪资给我10K+六险一金(仅代表个人收益),工作时间是大小周,一个月休息6天。
我觉得自己还算幸运,能在毕业之前醒悟过来,毕竟大学荒废了很多时间,现在想想如果能在大二大三的时候就努力准备学习,现在一定可以进入到更好的公司,临阵磨枪毕业还能找到一份月入过万的工作,真的觉得自己运气很好。我现在有一个感悟,就是人什么时候想要改变都不晚,但是改变的早晚很重要,能趁早就尽量趁早,年纪越是大,以后的机会就越少。
我认为新手在学习Java的过程中常见的误区:
1.没有详细系统的学习规划,越学越迷茫,不知道应该往哪里走,特别有想放弃的想法。
2.学习的技术并不是现在企业需要的技术,跟不上时代,不具备竞争力。
3.学习效率非常低,遇到一个小问题解决起来很费时间,甚至有的时候会卡几个小时,导致信心受挫,对自己适不适合产生怀疑。
4.没有掌握学习Java的方法和技巧,导致走的弯路特别多,钻进程序的死胡同出不来。
语言不断冲击,依旧岿然不动。究其原因:
- Java有着极其成熟的生态,这个不用我多说;
- Java在 运维、可观测性、可监 控性方面都有着非常优秀的表现;
- Java也在积极 应对容器化、云原生等大趋势,比如Spring Boot就已经全面拥抱云原生。
企业对Java的需求最大 ,Java程序员的群体也最为庞大,有着 1658万之多 ,彼此之间都有更多的选择。换句话说,也是最修罗场的!所以,要想在这个 金九银十拿下心仪的Offer ,咱就一定要做好准备,把那些必考点、套路都给吃透了!
我拉来十几个大佬,汇总一线大厂的情况,给你整了一套超全的面试资料: 1658页Java面试突击核心讲包含的知识点也是比较广比较多的:java基础、JVM、多线程、MySQL、spring、springboot、springcloud、dubbo、mybatis、redis、网络IO、Linux、MQ、zookeeper、netty、大数据、算法、项目、设计模式等等;刷完这一套高质量题集,这个金三银四妥妥的~
**需要这份 《Java八股文背诵版》 的小伙伴 ——添加小助理
ikt4435即可免费获取
Java基础
- Java概述
- 基础语法
- 面向对象
- 类与接口
- 变量与方法
- 内部类
- 重写与重裁
- 对象相等判断
- 值传递
- Java包
- IO流
- 反射
- 常用API
- 集合容器概述
- Collection接口
- Map接口
- HashTable, HashMap , TreeMap区别?
- HashMap的数据结构
- HashMap的扩容因子
- 多线程修改HashMap
- 讲讲IO里面的常见类,字节流、字符流、接口、实现类、方法阻塞
- NIO
- 什么时候使用字节流、什么时候使用字符流递归读取文件夹下的文件,代码怎么实现
- SynchronousQueue实现原理
- 自定义类加载器
- 面向对象和面向过程的区别
- Java 语言有哪些特点
- 关于JVM JDK和JRE最详细通俗的解答Oracle JDK和 OpenJDK的对比
- Java 和C++的区别
- 什么是Java程序的主类应用程序和小程序的主类有何不同
- Java应用程序与小程序之间有哪些差别
- 字符型常量和字符串常量的区别
- 构造器 Constructor是否可被override重载和重写的区别
- Java面向对象编程三大特性:封装继承多态
- ... ....
- .. ...
- List和 Map区别
- Arraylist 与LinkedList区别,ArrayList 与 Vector区别;
- Java异常架构与异常关键字
- Java异常处理
- Java异常常见面试题
- Java异常处理最佳实践
- Tomcat是什么?
- Tomcat的缺省端口是多少,怎么修改
- tomcat有哪几种Connector运行模式(优化)?
- Tomcat有几种部署方式?
- tomcat容器是如何创建servlet类实例?用到了什么原理?
- Tomcat工作模式
- Tomcat]顶层架构
- Connector和Container的微妙关系
- Container架构分析
- Container如何处理请求的
- ... ..
- .... ...
Java基础-内容(部分展现):
JVM
- 说一下JVM的主要组成部分及其作用?
- 说一下JVM运行时数据区
- 深拷贝和浅拷贝
- 说一下堆栈的区别?
- 队列和栈是什么?有什么区别?
- 对象的创建
- 为对象分配内存
- 处理并发安全问题
- 对象的访问定位
- 内存溢出异常Java会存在内存泄漏吗?请简单描述
- 内存溢出异常
- JVM内存模型,GC机制和原理;
- GC分哪两种,Minor GC 和Full GC有什么区别?什么时候会触发Full GC ?
- JVM里的有几种classloader ,为什么会有多种?
- 什么是双亲委派机制?介绍一些运作过程,双亲委派模型的好处;
- 常见的JVM调优方法有哪些?可以具体到调整哪个参数,调成什么值?
- Java的内存模型以及GC算法
- jvm性能调优都做了什么
- java classload 机制详解
- jvm 如何分配直接内存,new对象如何不分配在堆而是栈上,常量池解析
- ... ...
- ... ...
- 为什么jdk8用metaspace数据结构用来替代perm ?简单谈谈堆外内存以及你的理解和认识
- threadlocal使用场景及注意事项
- JVM老年代和新生代的比例?
- 栈是运行时的单位,而堆是存储的单位。
- 为什么要把堆和栈区分出来呢?栈中不是也可以存储数据吗?为什么不把基本类型放堆中呢?
- 堆中存什么?栈中存什么?
- Java中的参数传递时传值呢?还是传引用?
- java中四种引用类型(对象的强、软、弱和虚引用)讲—讲内存分代及生命周期。
- 什么情况下触发垃圾回收?
- 如何选择合适的垃圾收集算法?
- StringTable
- JVM中最大堆大小有没有限制?
- 收集器设置:
- 如何进行JVM调优?
- 有哪些方法?内存模型以及分区,需要详细到每个区放什么。
- 堆里面的分区:Eden , survival ( from+ to ),老年代,各自的特点。
- 对象创建方法,对象的内存分配,对象的访问定位。
- GC的两种判定方法:
- GC收集器有哪些?CMS收集器与G1收集器的特点。
- Minor GC与Full GC分别在什么时候发生?
- 几种常用的内存调试工具:jmap. jstack.jconsole.jhat jstack类加载的几个过程:
- JVM内存分哪几个区,每个区的作用是什么?
- 如何判断一个对象是否存活?(或者GC对象的判定方法)简述java垃圾回收机制?
- java 中垃圾收集的方法有哪些?
- java内存模型
- java类加载过程?
- 简述java类加载机制?
- 类加载器双亲委派模型机制?
- 什么是类加载器,类加载器有哪些?
- 简述java内存分配与回收策率以及 Minor GC和Major Gc
- JVM内存区域
- JVM运行时内存
- 垃圾回收与算法
- JAVA四种引用类型
- GC分代收集算法VS分区收集算法
- GC垃圾收集器
- JAVA IO/NIO
- JVM类加载机制
- ... ..
- .... ...
JVM-内容(部分展现):
多线程
-
简述线程,程序、进程的基本概念。以及他们之间关系是什么线程有哪些基本状态?
-
如何理解内存泄漏问题?有哪些情况会导致内存泄露?如何解决?详解java内存泄露和如何避免内存泄漏
-
线程池的原理,为什么要创建线程池?创建线程池的方式;线程的生命周期,什么时候会出现僵死进程;
-
说说线程安全问题,什么是线程安全,如何实现线程安全;创建线程池有哪几个核心参数﹖如何合理配置线程池的大小?
-
volatile、ThreadLocal的使用场晟和原理;
-
ThreadLocal什么时候会出现OOM的情况?为什么?synchronized、volatile区别
-
synchronized锁粒度、模拟死锁场景;Java并发和并行
-
怎么提高并发量,请列举你所知道的方案?
-
系统的用户量有多少?多用户并发访问时如何解决?
-
说说阻塞队列的实现:可以参考ArrayBlockingQueue的底层实现(锁和同步都行)进程通讯的方式:消息队列,共享内存,信号量,socket通讯等
-
为什么要用线程池
-
线程池的基础概念自带线程池的各种坑
-
volatile关键字的用法:使多线程中的变量可见
-
线程的几种状态常
-
用的线程池模式以及不同线程池的使用场景
-
线程间通信,wait和notifywait和notify的理解与使用
-
java线程池主线程等待子线程执行完成进程和线程的区别
-
什么叫线程安全?举例说明并发、同步的接口或方法
-
HashMap是否线程安全,为何不安全。
-
volatile的理解
-
线程
-
JAVA多线程并发
-
JAVA线程实现/创建方式4种线程池线
-
程生命周期(状态)终止线程4种方式leep与wait区别start与 run区别JAVA后台线程
-
JAVA锁
-
线程基本方法线程上下文切换同步锁与死锁
-
线程池原理JAVA阻塞队列原理
-
... ....
-
.. ...
-
JAVA锁
-
线程基本方法
-
线程上下文切换
-
同步锁与死锁
-
线程池原理
-
JAVA阻塞队列原理
-
CyclicBarrier.CountDownLatch、Semaphore 的用法volatile关键字的作用(变量可见性、禁止重排序)如何在两个线程之间共享数据
-
ThreadLocalMap(线程的一个属性)synchronized和ReentrantLock 的区别
-
ConcurrentHashMap并发
-
Java 中用到的线程调度
-
进程调度算法
-
什么是 CAS(比较并交换-乐观锁机制-锁自旋)
-
什么是AQS(抽象的队列同步器)
-
NIO是什么?适用于何种场景?
多线程-内容(部分展现):
Spring
- Spring 原理
- Spring 特点
- Spring核心组件
- Spring 常用模块
- Spring主要包
- Spring 常用注解
- Spring 第三方结合
- Spring IOC原理
- Spring APO 原理
- Spring MVC 原理
- Spring AOP的实现原理和场景;
- Spring bean的作用域和生命周期
- Spring 5比Spring4做了哪些改进;
- springMVC的原理
- spring中beanFactory和ApplicationContext的联系和区别
- spring注入的几种方式(循环注入)
- springIOc
- spring AOP的原理
- spring AOP两种代理方式
- Spring如何保证Controller 并发的安全?
- spring中用到哪些设计模式?
- Spring IOC的理解,其初始化过程?
- Spring的事务管理
- SpringMVC概述
- Spring概述
- Spring控制反转(IOC)
- Spring注解
- Spring数据访问
- Spring面向切面编程(AOP)
- 什么是AOP
- SpringMVC面试题
- ... ...
- ... ...
Spring-部分内容展现:
Spring Boot
- Spring Boot概述配置
- 安全
- 监视器
- 整合第三方项目
- 其他
- Spring Boot 原理
- Spring BootSpring做了哪些改进?
- Spring boot热加载
- Spring Boot设置有效时间和自动刷新缓存,hibernate和ibatis的区别...
- 讲讲mybatis的连接池。
- 经典面试题解读
Spring Boot 部分内容展现:
Spring Cloud、分布式
- 分布式事务、分布式锁
- Spring Cloud熔断机制介绍;
- Spring Cloud对比下Dubbo,什么场景下该使用Spring Cloud ?
- CAP原理和BASE理论
- Spring Cloud面试题
- 为什么需要学习Spring Cloud什么是Spring Cloud
- 设计目标与优缺点Spring Cloud发展前景整体架构
- 主要项目
- Spring Cloud的版本关系
- SpringBoot和SpringCloud的区别?
- 并多子月月手口热是什么爱思了 Spring cLtoud sneaa,
- 负载平衡的意义什么?
- 什么是 Hystrix?它如何实现容错?
- 什么是 Hystrix断路器?我们需要它吗?
- Spring Cloud断路器的作用
Spring Cloud、分布式部分内容展现:
Dubbo
- 基础知识
- 架构设计
- 注册中心
- 集群
- 配置
- 通信协议
- 设计模式
- 运维管理
- SPI
- Dubbo完整的一次调用链路介绍
- Dubbo支持几种负载均衡策略?
- Dubbo Provider服务提供者要控制执行并发请求上限,具体怎么做Dubbo启动的时候支持几种配置方式?
- 分布式系统原理
- Dubbo支持哪些协议,每种协议的应用场景,优缺点?
- Dubbo超时时间怎样设置?
- Dubbo有些哪些注册中心?
- Dubbo 集群的负载均衡有哪些策略
- ... ...
- ..... ....
- Dubbo支持哪些序列化方式?
- Dubbo超时时间怎样设置?
- Dubbo在安全机制方面是如何解决?
- Dubbo和 Dubbox之间的区别?
- Dubbo 和 Spring Cloud 的关系?
- Dubbo 和 Spring Cloud 的区别?
- dubbo 连接注册中心和直连的区别