想学一门java基础 有什么基础要求吗?

掌握JSP+DAO的网站开发步骤;

理解JSP+DAO网站模式的优缺点

2、编写或使用原来的DBConnection类获得数据库连接




//创建一个默认 PrepareStatement 对象,该对象能获取自动生成的键



  本文来自于一次和群里猿友嘚交流具体的情况且听LZ慢慢道来。

  一日LZ在群里发话,“招人啦”

  然某群友曰,“群主俺想去。”

  LZ回之“你年几何?”

  群友曰“两年也。”

  LZ憾言之“惜了,三至五为佳然如汝有扎实之基础,且附一技之长倒也并非不可呀。”

  群友惑问之,“何为一技之长”

  LZ抚须答曰,“皆可吾之一技即为写。”

  群友又问之“何为基础扎实?”

  LZ抚**答曰“玩好JDK!”

  好了,LZ终于特么可以说人话了请原谅LZ的文言文不好,这逼装的好累其实很多人对于公司的招聘要求中写的,要有“扎实的java基礎基础”都很迷茫。

  这特么到底啥意思什么东西算作java基础基础?学到什么程度才算扎实

  这些问题的答案,LZ已经用文言文告訴你了咳咳,答案就是玩好JDK就可以了

  不过JDK这东西包含的东西实在太多,群里的猿友还是拎不清到底应该学哪个所以,LZ就专门写┅篇文章来讲一讲JDK应该怎么玩。

  或许有的猿友会问“林萧是谁?”

  恩问得好!林萧就是某程序员小说的主角啦,传言无所鈈知看看你就知道咯。

  在详细讲解JDK之前LZ首先要强调下,本文的内容都是LZ个人的主观判断。因此各位猿友务必结合自己的判断の后,再决定是否要学习以及学习到什么程度。

  此外本文只是告诉你学什么,学到什么程度本文不会包含太多具体的技术细节講解。

Kit的缩写要玩好这东西可不简单。JDK主要包含了三部分第一部分就是java基础运行时环境,这其实就是JVM此外,第二部分就是java基础的基礎类库这个类库的数量还是非常可观的。最后第三部分就是java基础的开发工具,它们都是辅助你更好的使用java基础的利器

  那么很显嘫,要玩好JDK就是要玩好JDK的这三部分。接下来咱们就逐个的来说一下,每一个部分要学什么学到什么程度。

  第一部分:java基础运行時环境

  这一部分其实就是常说的jre而它的核心其实就一个东西,就是JVM

  JVM这个东西,它的重要性LZ不想再强调了在之前的那篇中,LZ僦说过JVM那本书甚至比《Thinking in java基础》还重要,这已经足见LZ多么看重JVM了

  当然了,只是LZ看重当然没什么卵用,但只要java基础稍微高级一点点嘚职位这部分基本上都是面试必问内容,这更加说明了JVM的重要性

  所以,对于JVM没什么可说的,就是往死里学往死里研究,能有哆深就多深!

  第二部分:java基础的基础类库

  java基础的基础类库从你刚开始学java基础就开始接触了但是,直到你结束整个java基础生涯你嘟不一定能把所有的类都见一遍。

  这说明了什么是不是说明了java基础基础类库的庞大?

  错!大错特错!这其实真正说明的是有佷多类你完全不必要care它们,因为它们从你接触java基础到放弃都不一定能接触到。

  所以搞清楚哪些类重要,哪些类不重要就非常有必要了。这可以让你以最短的时间做最有价值的事。

  首先我们来看看java基础基础类库的包都有哪些,为了使得本文更有代表性我們取JDK6的包列表。

  怎么样是不是被吓到了?这么多包而且还这么多陌生的包名,有的连见都没见过这特么怎么玩?

  不要着急LZ先带你把这些包给分下级别,LZ将这些包一共分为四个级别

  第一级别:精读源码

  该级别包含的包如下:

  精读源码,这是要求最高的级别但是,要求你精读源码并不意味着这些类就是最重要的。而是因为LZ觉得这些类比较常用,而且比较简单看看它们的源码有助于锻炼你看源码的感觉,也了解一下大神们写代码的风格

  看这些源码的目的,更多是为了增加你的阅读代码能力而且,LZ這里必须要强调一下像Exception和Error这一类的,就不用读源码了亲。

  其实上面三个包都有一个共同点那就是这三个包,基本上都是你最常鼡的了lang包不用说了,你随便写点啥都得用到io包和util包也是你平时读写文件和使用数据结构必不可少的。

  看源码从这些常用的包下手找手感LZ个人觉得再合适不过。

  第二级别:深刻理解

  该级别包含的包如下:

  深刻理解这个看似比精读源码要求低的级别,其实恰恰是最重要的这个级别要求的类,全都是一些进阶到高级所必须了解的

  当然了,这里要强调一点的是LZ说这些类要深刻理解,而没说要看它们源码并不是说这些类的源码不能看,或者看了没用而是这些类的源码往往非常复杂,要了解清楚细节花费的时间昰非常多的因此,花费巨量的时间去研究这么复杂的代码其实没必要的

  不过,如果你在使用这些类的过程中遇到了问题,这个時候如果看它们源码可以解决的话那就不要再矜持了,果断看看源码解决你的问题吧这是最适合的看源码的契机了。

  小小的透露┅下LZ看过的JDK源码,基本上全是这么看过来的遇到了问题不要百度和谷歌,看源码能解决你90%的问题

  此外,看到这四个包的名字鈈难看出它们各自代表了什么。reflect代表了反射net代表了网络IO,nio代表了非阻塞ioconcurrent代表了并发。

  这四个家伙可以说每一个都够面试官问上半忝的而且,这四个包的内容如果你要深刻理解的话,其实还牵扯了很多其它的知识

  举个例子,反射你要了解清楚的话你是不昰要搞明白JVM的类加载机制?网络IO要搞清楚的话你是不是要清楚TCP/IP和HTTP、HTTPS?包括并发包如果你要搞清楚的话,是不是要了解并发的相关知识

  因此,这四个包要彻底搞清楚还是需要花费一定时间和精力的。

  但是请相信LZ,这绝对是值得的甚至可以说,这四个包用嘚够不够叼基本决定了一个java基础程序员所处的档次。

  第三级别:会用即可

  该级别包含的包如下:

  会用即可这个级别的要求很显然了,就是会用就可以了这些包大部分都是在特定的情况下会用到,但却不会时刻用到

  就像sql包和transaction包,就是操作数据库时用箌的而xml、dom和sax这些,都是操作xml时用到的其它的包也都是类似的,有使用注解时用的有远程方法调用时用的,也有涉及到加密时用到的等等

  这些包在面试时一般不会问到,所以它们的重要性自然要低很多而且也不太需要刻意的去学,用到了研究一下会用即可。

  第四级别:请无视它

  该级别包含了所有以上没有提到的包

  这个级别就更不用解释了,到现在还没提到的包基本上可以忽畧,因为你基本上不太可能用到它们比如swing、awt这些玩意儿。

  什么你说你经常用它们?

  如果真的是这样的话那么LZ只能遗憾的告訴你,赶紧跳槽吧你待在这公司没啥前途的,0-0

  第三部分:java基础的开发工具

  这些开发工具主要就是辅助你开发的了,java基础c应该昰最常用的一个了虽然你几乎不用手动执行它。

  此外其实还有一些比较实用的工具,可以帮助你排查问题而且有的面试官,也會问你这类问题比如问你平时都用什么工具排查问题。

  LZ觉得比较实用的几个工具主要有jmap、jconsole、jstack、jvisualvm至于这几个工具有什么作用,LZ这里僦不提了如果你要了解这些命令的详细内容,可以去谷歌或者官网上找还是非常好找的。

  当然如果你有兴趣的话,也可以自己詓JDK的bin目录下找找看有没有什么更好玩的工具。

  好了到这里基本上就把“玩好JDK”这件事说完了。

  总的来说第一级别和第二级別是最重要的。

  更简单的说可以把第一级别的那些包称作基础,第二级别的那些包称为进阶至于第三级别和第四级别的那些包,僦没什么可说的了

  当然了,最重要的还是那万年不变的JVM请记住了,JVM才是你java基础根基的根本就是再牛逼的类,没了JVM它也就是一个無用的class文件而已

  如果你想拥有扎实的java基础基础,那就抓紧玩好JDK吧玩好JDK以后,不要忘了学个一技之长就可以来LZ的公司面试咯。

  嗯这波招聘广告插入的,很隐晦没毛病,0-0

  下期咱们屌程见了,各位!

学习java基础的第一步是安装好JDK写┅个Hello World,?其实JDK的学习没有那么简单关于JDK有两个问题是很容易一直困扰java基础程序员的地方:一个是CLASSPATH的问题,其实从原理上来说是要搞清楚JRE的ClassLoader是如何加载Class的;另一个问题是package和import问题,如何来寻找类的路径问题把这两个问题摸索清楚了,就扫除了学习java基础和使用JDK的最大障碍嶊荐看一下王森的《java基础深度历险》,对这两个问题进行了深入的探讨

第二步是学习java基础的语法。java基础的语法是类C++的基本上主流的编程语言不是类C,就是类C++的没有什么新东西,所以语法的学习大概就是半天的时间足够了。唯一需要注意的是有几个不容易搞清楚的关鍵字的用法public,protectedprivate,static什么时候用,为什么要用怎么用,这可能需要有人来指点一下我当初是完全自己琢磨出来的,花了很久的时间不过后来我看到《Thinking in java基础》这本书上面是讲了这些概念的。

第三步是学习java基础的面向对象的编程语言的特性的地方比如继承,构造器抽象类,接口方法的多态,重载覆盖,java基础的异常处理机制对于一个没有面向对象语言背景的人来说,我觉得这个过程需要花很长佷长时间因为学习java基础之前没有C++的经验,只有C的经验我是大概花了一个月左右吧,才彻底把这些概念都搞清楚把书上面的例子反复嘚揣摩,修改尝试,把那几章内容反复的看过来看过去,看了不下5遍才彻底领悟了。不过我想如果有C++经验的话应该一两天时间足夠了。那么在这个过程中可以多看看《Thinking in java基础》这本书,对面向对象的讲解非常透彻可惜的是我学习的时候,并没有看到这本书所以洎己花了大量的时间,通过自己的尝试和揣摩来学会的

第四步就是开始熟悉java基础的类库。java基础的基础类库其实就是JDK安装目录下面jre\lib\.*;

mit())做为┅个原子*作,但是假设我的业务需求是要把对两个不同数据库的*作做为一个原子*作你能做的到吗?这时候只能用JTA了假设*作过程是先往A數据库插一条记录,然后删除B数据库另一个记录我们自己写代码是控制不了把整个*作做为一个原子*作的。用JTA的话由App

在学习EJB之前要学习對象序列化和RMI,RMI是EJB的基础接着学习JMS和EJB,对于EJB来说最关键是要理解EJB是如何通过RMI来实现对远端对象的调用的,以及在什么情况下要用到EJB

茬学习完EJB,JMS这些东西之后你可能会意识到要急不可待学习两个领域的知识,一个是UML另一个是Design Pattern。java基础企业软件的设计非常重视框架(Framework)的设計一个好的软件框架是软件开发成功的必要条件。在这个时候应该开始把学习的重点放在设计模式和框架的学习上,通过学习和实际嘚编程经验来掌握EJB的设计模式和J2EE的核心模式

J2EE规范里面,除了EJBJMS,JTAServlet/JSP,JDBC之外还有很多很多的企业技术这里不一一进行介绍了。

Services也完全没囿任何新东西它像是一种黏合剂,可以把不同的服务统一起来提供一个统一的调用接口作为使用者来说,我只要获得服务提供者给我嘚WSDL(对服务的描述)就够了,我完全不知道服务器提供者提供的服务究竟是EJB组件还是.Net组件,还是什么CORBA组件还是其他的什么实现,我吔不需要知道Web Services最伟大的地方就在于通过统一的服务提供方式和调用方式,实现了整个Internet服务的共享是一个非常令人激动的技术领域。Web Services好潒目前还没有什么很好的书籍但是可以通过在网络上面查资料的方式来学习。

我要回帖

更多关于 java基础 的文章

 

随机推荐