首页 Java java教程 面试需要掌握的java基础知识,你都会了吗

面试需要掌握的java基础知识,你都会了吗

Jul 26, 2018 pm 03:12 PM

Java知识不是一朝一夕就能掌握的,有些刚学出来的新人,没有一点务实的精神,自以为是,感觉自己基础学好了,好高骛远,一味的总想赶快学习进阶的知识,不是我在这里贬低初学者,俗话说万丈高楼平地起,把你的基础打扎实了再说。来看看下面的菜鸟是什么窘态。


这里涉及到了异常栈,编译期,main函数等等再基础不过的知识,有那么部分毫不客气的新人就说了,为什么你不讲得通俗易懂点儿呢?

通俗易懂,是需要成本的。

异常即是程序不期望的异常情况,它处理不了交给程序员自己来处理了。是个再基础不过的数据结构,出现它就说明栈顶的元素,是最后入栈的。那么,看到你出错后控制台抛出的那堆文字没有?贴出来,距离XXXException最近的通常就是最关键的信息。

你看,就算精简为“控制台抛出的那堆文字”,比较起来,是不是“异常栈”更加节约双方的时间,毕竟以当前IT业界的薪资水准,老鸟可能已经浪费了公司好几十块。

更何况,可能有人是连“控制台”都无法理解的,这就涉及到了作用2。

还有更不务实和浮夸的新手。

我见过一份简历,quartz、POI、easyUI、jquery等等,写了一堆。这人自己可能觉着,这些名词高端,厉害,可是呢,看看这份技能表:

就暴露出了他的问题,此人并不懂他所说的这些名词是什么。

至少,一个有基础的程序员就不会写上熟悉xml、json、dom4j技术,也不会把“在线支付”和servletjsp放在同一栏下面。他无需长篇累述自己的技能树多么丰满,合适的内容,合理的排版,本身就代表了他的水准。

新人基础不扎实,没关系,可以慢慢学习,但是学习要有个学习的态度和方法,要有解决问题的能力,要发挥自己的主观能动性,不要什么问题都做伸手党,让别人把东西嚼碎了喂给你。这样的话,自己是很难成长起来的。

比如:

般来说,挨了这三连怼的老鸟无不火从心起,但凡有例外,要么脾气太好要么姑娘太好看。

合适的解决方案:搜索关键字->查看文档->阅读源码->询问老鸟关键字->*。

从来没到过的问题如何解决呢?或者扩展一下,我写的功能,如何适应未来千奇百怪的需求呢?当然,这其实本质还是个码量和阅读量的问题。

下来,给新人一点学习的方法和思路。

我把学习分为几个阶段:

(一)基础理解阶段,你看到一个基础知识点,开始理解它的含义,看到具体的实例能反应出它所对应的基础知识。比如看到Animal cat=new Cat()能反应出它体现了如下知识点:声明、实例化、引用、多态。

(二)串联阶段,把知识点串联起来,构建出它本源的样子,比如上面的例子,结合JVM相关知识,脑海里出现一张粗略的堆栈图,就像这幅图:

这样的能力不光可以用于向本源推测,也可以主动的把知识点组合,玩味出新的结构,比如,新需求是“根据配置来产生动物”。

那么,我们分析会有一个根据配置项来产生动物实例的构建工具。代码可能长下面的样子:

Animal animal=AnimalFactory.createAnimal(“猫”);

在createAnimal里,我们对字符串进行if判断,决定到底是new Cat还是new Dog

事实上,这样的结构已经有人总结在了GoF里。诶,GoF是什么?忘了本段是说什么的吗?

(三)进阶阶段,具备串联知识点的能力之后,就应当有看到未知技术逆推具体实现的能力。比如hibernate,它的功能是什么?核心在于“实现持久层和数据层的同步”,也就是说,数据表和JavaBeanPOJO的映射。那么,我们来思考,假如从来不存在hibernate类似的ORM框架,要如何实现这个功能呢?

首先,我们要有和数据库沟通的工具和配置,java可以选用jdbc,数据库相关配置可以使用xml、json、bean任意方式。我们也可以看到,hibernate底层就是jdbc,也有Configuration这个配置入口。

然后要有种配置方式让数据表和Bean达成统一。为什么?因为它们的信息量不一致,包含的信息是相交的关系,比如,它们都有类似的数据类型(varchar->String),又有互不相融的内容(索引和约束),得出结论,我们需要一个映射工具,来使相交的部分匹配,并且补充缺失的内容。于是,我们可以推论出,hibernate一定有个映射工具(xml和annotation)。

再后,为了适应多种不同的数据库,每一条语句可能都有不同的表达,比如Oracle有Number(*,*)这个类型,对于mysql就不适用,我们需要设计一个数据库的适配器。在hibernate里,这个部分叫做方言,Dialect。

经过这样的分析过程,不管是实现新的需求,还是分析未知的框架,都具备了理论上的基础。

就我个人的见解,达到这个阶段的程序员,才能称之为合格。说了这么多了,需要自己内省,才知道自己的问题出在哪里,然后发现问题解决问题。

相关文章:

java基础知识小小结

相关视频:

最新Java完整视频教程

以上是面试需要掌握的java基础知识,你都会了吗的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Java的类负载机制如何起作用,包括不同的类载荷及其委托模型? Java的类负载机制如何起作用,包括不同的类载荷及其委托模型? Mar 17, 2025 pm 05:35 PM

Java的类上载涉及使用带有引导,扩展程序和应用程序类负载器的分层系统加载,链接和初始化类。父代授权模型确保首先加载核心类别,从而影响自定义类LOA

如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存? 如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存? Mar 17, 2025 pm 05:44 PM

本文讨论了使用咖啡因和Guava缓存在Java中实施多层缓存以提高应用程序性能。它涵盖设置,集成和绩效优势,以及配置和驱逐政策管理最佳PRA

如何将JPA(Java持久性API)用于具有高级功能(例如缓存和懒惰加载)的对象相关映射? 如何将JPA(Java持久性API)用于具有高级功能(例如缓存和懒惰加载)的对象相关映射? Mar 17, 2025 pm 05:43 PM

本文讨论了使用JPA进行对象相关映射,并具有高级功能,例如缓存和懒惰加载。它涵盖了设置,实体映射和优化性能的最佳实践,同时突出潜在的陷阱。[159个字符]

如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案? 如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案? Mar 17, 2025 pm 05:46 PM

本文讨论了使用Maven和Gradle进行Java项目管理,构建自动化和依赖性解决方案,以比较其方法和优化策略。

如何使用适当的版本控制和依赖项管理创建和使用自定义Java库(JAR文件)? 如何使用适当的版本控制和依赖项管理创建和使用自定义Java库(JAR文件)? Mar 17, 2025 pm 05:45 PM

本文使用Maven和Gradle之类的工具讨论了具有适当的版本控制和依赖关系管理的自定义Java库(JAR文件)的创建和使用。

See all articles