程序员:开汽车,难道我要知道汽车的原理才能把车开好吗?

一个网友的迷惑:

    我工作5年了,一直做J2EE的项目,前几天去面试,一个人问我JDBC有几种连接方式,这个问题这么多年以来我从来没有遇见过,不知道大家 怎么看的。

    还有一个问题,说是折半查找的地时间复杂度,这个问题在大学刚毕业的时候我肯定会,但是这么多年过去了,我从来没有考虑过这样的问题。我不知道有没有人在J2ee的项目中遇见过这样的事情。

    还有,面试的时候,公司会为一些原理性的东西,SPring中的事务是怎么实现的,AOP是怎么实现的,不是说得怎么用而是说的是spring代码中如何实现的。

  说实话这个问题很有深度,也很好,但是我工作这么多年使用了那么长时间的spring和Hibernate,从来没有关心它内部是怎么实现的。我就有疑问了,我要使用一个工具,比如说,开汽车,难道我要知道发动机是几冲程的,什么人设计的,设计的原理是什么,为什么这么设计,什么材料设计的,知道这些我才能把汽车开好吗

 

我的答复:

    我是时间更长的菜鸟,我来应聘看看:

    一个人问我JDBC有几种连接方式

    答:我想,他问的是JDBC的几个模式吧,比如Type1, 到 Type 4, 具体的我还真分不清了,可以肯定的是:Type 4是纯Java开发的, 其中一个是jdbc-odbc桥的, 另一个是用于web页面链接(applet)远程连接的,最后一个是本地组件cli的。我们一般都选用Type4的驱动,因为无需安装数据库的专用客户端。

 

    折半查找的地时间复杂度

    答:我是野战军,我不明白什么叫折半查找,也不知道什么叫复杂度。所以是0分。因为我不需要知道这些,如同楼主自己说的,项目里从来没用到过这些东西,真遇到了,翻翻书,查查资料就行了。

 

   SPring中的事务是怎么实现的,AOP是怎么实现的

    答:这个我真没仔细读过源码,但对于事务,肯定是维持一个与当前线程或者session有关的数据库连接,在事务开始时,启动连接,并设置 setAutoCommit(false), 在事务结束时,提交或者回滚事务。至于AOP, 我理解是通过代码重构和再次包装,让一些代码先运行,再运行原始代码,最后运行一些代码。所以我见到的AOP都是在方法的前后切入,我还真没看过在中间切入的呢。呵呵!

 

   开汽车,难道我要知道发动机是几冲程的,什么人设计的,设计的原理是什么,为什么这么设计,什么材料设计的,知道这些我才能把汽车开好吗

 

  答:如果我们做的就是设计汽车,那么肯定要熟悉了,如果我们做的是维修汽车,那么也需要。但是,我们不是开车的。那些使用我们软件的最终客户,才是开车的,而我们程序员,是车辆的组装工程师,我们的任务就是选择合适的车辆组件,然后进行正确的组装,并按时交个最终用户。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

杭州某知名xxxx公司急招大量java以及大数据开发工程师

因公司战略以及业务拓展,收大量java攻城狮以及大数据开发攻城狮. 职位信息: java攻城狮: https://job.cnblogs.com/offer/56032 大数据开发攻城狮: https://job.cnblogs.com/offer/56033 欢迎博客园的XDJM自荐和推荐! 此招聘长期有效 欢迎留言…

35.6. /etc/dnsmasq.d/dnsmasq.address.conf

vim /etc/dnsmasq.d/dnsmasq.address.confaddress/www.mydomain.com/172.16.0.254deny domain address/www.facebook.com/127.0.0.1 address/www.google.com/127.0.0.135.6.1. 域名劫持 将域名解析到错误的地址,这样可以屏蔽一些网站。 address/www.facebook.com/12…

请求地址操作中的(int*)

例如 float b3.14,*a&b; int *p(int *)a; 表示将指针a的类型转换为整型指针再赋给p。

linux初始化内存盘卡住,Linux系统内存磁盘初始化技术详细解析

转自:http://m.zol.com.cn/article/1271270.html?viaindexLinux内存初始化技术(initrd)用于支持两阶段的系统引导过程,是在系统启动过程中被挂载的临时root文件系统(译者注:这里的root文件系统是指的根文件系统)。initrd包含很多可执行程序和…

程序员是程序中的临时变量,用完扔掉?

今天看到某人从坟墓里刨出的文章,挺有意思的。 程序员,到了一定年龄,如果没有机会转到领导级,至少是项目经理,能独立领导团队完成项目,还是停留在编码的层次,那么被迫离开的危险会是很高的&…

属性依赖注入

1.依赖注入方法 手动装配和自动装配 2.手动装配 2.1 基于xml装配 2.1.1 构造方法 <!-- 构造方法注入<constructor-arg>name:参数名type:类型value: --> <bean id"user" class"g_xml.constructor.User"><constructor-arg name"id…

windows下实现自己的第一个python脚本文件并.exe运行

前言 python可以做很多事情&#xff0c;比如知乎上的回答&#xff0c;每天来到公司都要打开AS&#xff0c; QQ和微信,为了省事决定用python写一个简单的脚本来实现。。脚本内容只有几行,python的代码真的好简洁。。。 import os os.startfile("C:\Program Files (x86)\Ten…

C++中引用()基础认识

对于习惯使用C进行开发的朋友们&#xff0c;在看到c中出现的&符号&#xff0c;可能会犯迷糊&#xff0c;因为在C语言中这个符号表示了取地址符&#xff0c;但是在C中它却有着不同的用途&#xff0c;掌握C的&符号&#xff0c;是提高代码执行效率和增强代码质量的一个很好…

linux无法访问443端口,linux – 为什么我无法在Ubuntu上ping端口443?

我通过iptables打开了端口443&#xff1a;pkts bytes target prot opt in out source destination45 2428 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/06 1009 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80141 10788 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:220 0 AC…

MediaWiki安装配置(Linux)【转】

阅读目录 2.1 本例子的安装环境如下&#xff1a;转自&#xff1a;http://blog.csdn.net/gao36951/article/details/43965527 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 目录(?)[-] 1MediaWiki简介 2MediaWiki安装21 本例子的安装环境如…

提高编程水平的一段必经之路,研读官方文档

刚才看了 论坛里 jinxfei 的十年总结&#xff08;14&#xff09;&#xff1a;从CS转向BS, 说实话&#xff0c;大部分内容我没有太仔细的看&#xff0c;不过如下的一段引起了我的注意&#xff1a; 真正让我心里有底的&#xff0c;还是在看了官方文档之后&#xff1a;http://str…

在Asp.net core返回PushStream

最近用asp.net core webapi实现了一个实时视频流的推送功能&#xff0c;在Asp.net中&#xff0c;这个是通过PushStreamContent来实现的。 基于对asp.net core的知识&#xff0c;随手写了一个&#xff08;要求控制器继承自Controller基类&#xff09; [HttpGet] public async Ta…

顺序栈的代码实现

栈是一种限定只在表尾进行插入或删除操作的线性表&#xff0c;栈也是线性表。表头称为栈的底部,表尾称为栈的顶部,表为空称为空栈。 栈又称为后进先出的线性表,栈也有两种表示:顺序栈与链式栈。顺序栈是利用一组地址连续的存储单元。依次存放从栈底到栈顶的数据元素。 #includ…

Linux5观察doc目录并截屏,linux截屏命令

linux系统我们有时需要用到截屏功能&#xff0c;下面由学习啦小编为大家整理了linux截屏命令的相关知识&#xff0c;希望对大家有帮助!linux截屏命令详解import检测&#xff1a;import --versionimprot安装&#xff1a;sudo apt-get install importimport常用命令&#xff1a;1…

eclipse+tomcat开发web程序

环境&#xff1a;windows 7Eclipse Java EE IDE for Web Developerstomcat 7.02 插件&#xff1a;tomcatPluginV321.zip 一.配置Tomcat插件 我们创建一个myplugins文件夹用于存放插件&#xff0c;myplugins位于D:/Program Files/J2EE目录下。eclipse安装路径为&#xff1a;D:/P…

LoadRunner参数包含逗号

loadrunner的参数以逗号区分&#xff0c; 如果参数本身包含逗号&#xff0c;则会报错 使用","将逗号包起来即可&#xff0c;如下图 转载于:https://www.cnblogs.com/cherrysu/p/8507649.html

软件创业见闻

今天应一位朋友的邀请&#xff0c;过去蹭了个饭吃&#xff0c;顺便坐了一个下午在聊着。这位老哥是一家软件公司的老板&#xff0c;原来是从硬件销售转型到做软件这一块。因为说到软件这一块&#xff0c;我就很想了解一下这位老哥对于2009年的大势是怎么看的&#xff0c;在2009…

如何采用设置标志的方法来区分循环队列的满和空

设立一个标志位,比如说是flag 最开始时队列为空,设flag0 当入队的时候让flag1 出队的时候flag0 然后再加上判断队头队尾指针是否重合 重合,且flag0,则为空 重合且flag1,则为满

linux内核定义的常用信号6,linux复习

(3)设定apache服务器的网页根目录&#xff1a;/home/htdocs(4)在此apache服务器上设定一个目录/home/htdocs/inside,且此目录只允许IP地址为192.168.1.5的主机访问(5)定义apache服务器以独立进程的方式运行2、某系统管理员需每天做一定的重复工作&#xff0c;请按照下列要求&am…

linux 脚本 整数 赋值,shell基础!!熟悉编程规范与变量

一、SHELL规范SHELL简单介绍Bash(/bin/bash)是目前大多数 Linux 版本采用的默认 Shell。Bash 的全称为 Bourne Again Shell&#xff0c;是最受欢迎的开源软件项目之一。SHELL脚本简单的来说&#xff0c;就是将平时使用的各种 Linux 命令按顺序保存到一个文本文件中&#xff0c;…