这个要根据每个人的具体情况来具体分析。

首先分析一下自学和报班的区别:

自学java

1.自学
一、时间灵活,可以自己掌握,能利用碎片时间
二、费用低,基本不用多少费用,购买一些书籍和教程即可。
三、自制力要求很高,容易半途而废。
四、与别人交流比较困难,遇到问题需要自己解决。

2.报班
一、需要固定的时间,有可能需要脱产
二、费用较高,少则收费几千,多则几万
三、有人监督,学习效果好
四、可以和同学老师交流

自学java

那么,我们明白了这些区别,就可以根据每个人的情况做具体分析:
一、假如没有任何软件开发基础,这个就不用纠结了,直接报班就行,不然靠自己自学,猴年马月也很难有大的成就。
二、如果有一定的软件开发基础,比如大学学过C语言、数据结构什么的,现在如果只是对Java软件开发有兴趣,并不是想作为短期的工作方向,可以自学,也可以上一些培训网站学习培训视频教程。如果想把java开发作为工作方向,并且想尽快参与到工作中,还是报班吧。
三、如果有丰富的其他语言开发基础,比如C#、python、C++等,自学即可,毕竟各种语言都是相通的,学会一种语言,其他的自学几个周就可以入门了,一两个月基本可以胜任开发工作。
其实现在报班不一定非要脱产,网络上很多培训网站都可以参与的,不少培训内容也都是免费的,比如汇智动力腾讯课堂培训网站,可以根据需要查询合适的培训课程。