程序员常说的底层是指什么?

售前免费咨询热线: 4 0 0 - 1 8 6 - 0 9 0 5
汇智资讯Huizhi information

当前位置:首页 »程序员常说的底层是指什么?

程序员常说的底层是指什么?

日期:2020-12-01 11:00:15 访问量: 来源:

程序员所说的底层是一个很魔幻的概念,那些年,不了解的,但是会用到的一些未知的技术项,都习惯以“底层”来命名。随着在 Java 程序员的路上越走越远,踩过坑的越来越多,才对“底层”有一点儿较为模糊的概念,简单的说一说,姑且说之,姑妄听之,娱乐为主。

程序员

刚参加工作时,使用 Spring MVC + Dubbo 的技术栈,经常对一个应用进行包划分,以dao、service、web等模块来命名,那时对我们来说,dao层、service层相对于web就是底层,web只要获取 service 层或 dao 层拿到数据,他不会在意你使用 mybatis 或者 hibernate 来进行数据查询,哪怕你直接使用 jdbcTemplate 也得行,前提是需要处理好 sql 注入的问题,使用 jdbcTemplate 的字符串拼接的 sql ,很容易导致 sql注入,需要注意。

程序员

而无意中接触到 Tomcat 的底层原理解析,从源码角度解析 Tomcat,讲解TCP、Http、Socket、Tomcat之间的关系,Engine---->Host---->Context---->Wrap---->Servlet之间的组织结构,可谓干货满满,但是真心没有消化多少。记得最清楚的是关于TCP和UDP协议的底层描述。Socket是Java中对通信协议的封装,其屏蔽的底层的TCP协议和UDP协议等,通过跟踪 Socket 的源码,最终定位到 TCP协议和UDP协议的都是通过 java.net.DualStackPlainDatagramSocketImpl 中的本地方法(native)和操作系统交互的,而操作系统实现了相关的本地方法,并且不同的操作系统对相关的本地方法实现逻辑不同,但都可以完成通信的功能。涉及到的本地方法如下:

程序员
程序员

如上所述,相对于普通Web应用而言,Tomcat 是底层,而相对于Tomcat 而言,其底层的通信能力是底层,即Socket是底层,而相对的那些本地方法(native)也是底层。如果再往底层跟,由于Linux是开源的,其TCP协议的三次握手等源码可以看到,其实现的tcp_connect(struct sock *sk)、tcp_send_synack(struct sock *sk)、tcp_send_ack(struct sock *sk,u32 rcv_nxt)d的三次握手过程就更是底层。

底层是一个相对的概念,随着你经历的越多,会发现底层的范围越广,而对于Java技术栈的同学,JVM、中间件实现原理、各种框架如Netty、Spring等源码底层都是我们努力的方向。这些内容一般情况下很少接触到,但是一旦遇到,就是我们脱颖而出的机会。

汇聚行业精英智慧

致力于高端IT技术人才培养

助力万千学员成就IT梦!

汇智动力

扫码关注 领取资料

www.hzdledu.cn

相关阅读Reading

全国热线:400-186-0905

总部热线:028-6547-1147

周一至周日9:30-24:00

我要咨询
汇智动力微信

汇智动力微信公众号