Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

您好 ,作者 您的java学习路线 能分享一下吗? #20

Open
WUZHUHE38 opened this issue Jan 4, 2025 · 1 comment
Open

您好 ,作者 您的java学习路线 能分享一下吗? #20

WUZHUHE38 opened this issue Jan 4, 2025 · 1 comment

Comments

@WUZHUHE38
Copy link

No description provided.

@DragonKingpin
Copy link
Owner

DragonKingpin commented Jan 5, 2025

你好
额,我不是常规Java技术栈学习 ,我是很早C/C++入门的(那时候技术栈还没现在这样山头林立),准确是自底向上+自学学习的,Java应用层也搞,整体上会偏底层、原理一点。因此Java相关技术路线学习仅供参考,按时序和相关性如下:

  1. 早期与目前Java服务端比较接近的涉及技术 (PHP、FastCGI)
    那个时候应该是2012-2016年左右我还是初中、高中左右,那个时候服务端前后端还不明显,汇编都还是程序员必修课,基本上PHP和HTML混写的时代,C/C++也可以写FastCGI,那个时候没这么多骚操作,基本上是RDB + 服务器脚本(ASP、PHP、JSP)或 CGI 这种。我也是爱好,没技术栈这一说法,想用哪个就哪个。应用层基本上是写我自己的客户端 + 服务端联动这种。

  2. 第一次接触Java
    这个应该是高二左右吧,那个时候安卓火起来了,也是图新鲜,加上我那段时间玩嵌入式比较入迷,正好需要写上位机,就玩了一段时间安卓。技术栈就是Kotilin、安卓客户端那几套吧,也就是把PC客户端技术换汤不换药。因为有MFC和Qt基础,写的客户端也比较简易,基本上也是自学。

  3. 科班Java
    本科时,因为学校必修Java,Java这边较科班了,其实就是Spring 家族那几件套。本科期间我自己学习整体上还是写C/C++略多点,不过应用层因为要Carry学弟学妹,C++找不到人属实行不通。因此应用层这边基本上是指导老师老板的项目、比赛项目驱动的,涉及的技术栈就是 Spring MVC、SpringBoot 这些常见的。
    Java底层相关的其实反而纯粹,比如Netty底层上就是C/C++这边的libevent的翻版,且与操作系统内核如epoll、IOCP相关,基本上也是无缝迁移的。
    JUC、JDK等这些常规的底层体系,与C/C++ STL、Boost这块也是换汤不换药,基本上无缝迁移(如AQS就是基于汇编CAS,x86汇编lock、cmpxchg这些,C++也有std::atomic这些),加上我一般轮子写的多,基本上就是看JDK源码和用C/C++复现、C++/Java左手倒右手。
    其他也是大同小异了。

  4. 体系化与Java相关的
    4.1本科后期到研究生阶段,基本上有特定方向了,正好AI和大数据这段时间火起来了,加上被老板被迫营业,主体时间都是深度学习、大数据有关的,这部分70%技术栈和主流基础的Java关系不大了。
    4.2在公司实习和这段时间其他与Java和服务端有关技术的包含:
    1.Hadoop、Spark等大数据处理框架、并行计算相关。
    2.MQ、RPC、Redis、Kafka等常见中间件,这些大部分中大厂都爱用的,很常规,也不用专门学,基本上碰到就看看。
    至于后面实习以及正式上班了,那技术栈老多了,光MQ、RPC都涉及了好几个,大数据这边更多更杂什么Iceberg、TiDB、Starrocks等多得是。

  5. 总结
    我认为很多技术不是孤立且很多东西也不是只有Java用,比如RPC,什么Thriftpy、Protobuf老多语言和体系用了。但是总的来说,就单Java技术栈这边而言,目前主流还是服务端、大数据、安卓等相关为主,就我个人而言,Java只是胶水,实际上Java技术栈这边更多是服务端、分布式、云计算、大数据等关键领域驱动的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants