不少初学者朋友在学习Java过程中,会对着视频敲Java项目,其中遇到的BUG还能解决,但就是每次敲完一个项目,就感觉很空虚,项目里面的知识点感觉懂了但又好像没懂

这些朋友应该怎样才能掌握一个项目所用的知识点呢?至少不至于过了一头半个月就想不起来这个项目是什么东西呢?

1 刚开始运行项目的时候,你别根据视频或现有代码敲, 而是得先运行通人家的代码。

自己敲代码的时候,会拘泥于API或模块的细节,多敲代码后反而会一头雾水。而且,你敲代码的时候,很有可能因为敲错一个地方而导致整个系统没法运行,而且这种错误很难排查,往往你用了1天敲完整个系统,跑不通,用了3天时间发现了10个敲错了地方,改了还是跑不通,再用了5天,把所有问题都改了,才跑通,这样就浪费至少1周时间了。

找项目,你得找一定能跑通的 ,比如star比较多的github项目,或者销量比较好的视频教程,或者干脆买书,书上的代码经过出版社加持,大多能跑通。 否则你学了半天,找了一个跑不通的项目,再用半个月去调试,这样浪费的时间更多了。

找到可以跑通的项目后, 根据说明,优先搭建环境 ,比如选对jdk版本,搭建好mysql数据库环境,创建好MySQL的表,搭建好IDEA集成开发环境,必要的话再搭建好分布式组件,再通过pom.xml文件引入依赖包。环境好环境,再按提示跑系统,可以这样说,系统跑通了,这个项目你就成功一半了。

后面很关键, 别先理解源码的含义,先结合一个业务流程,跑通增删改查的流程 。 请注意,别多跑业务流程,因为大多数业务的流程很相似,跑通一个就行了。

从界面上跑通一个流程后,你再去看代码,先看从前端到后端再到数据库的流程,看下请求经过了哪些类,这些类是怎么处理了,最后是怎么落实到数据库里的。

比如现在大多数Java项目,都是spring boot,从控制器到业务逻辑类再到repo层,外带Spring Cloud Alibaba组件,或者nginx,netty,redis等组件。当你跑通一个流程后,你就知道请求怎么被控制器方法处理,控制器方法怎么做参数验证,控制器方法如何调用业务方法,业务方法怎么通过JPA(或其它ORM)访问数据库。 总之先理解流程,再理解sprign cloud alibaba组件等枝干。

5 然后你再依样画葫芦,多跑几个业务流程,再结合代码理解整体流程, 这时,你可以关注些细节,缺啥补啥 。比如你不理解@Service注解,那你就去查,你不理解JPA连接数据库的业务模型类或连接数据库的Repo类的含义,那你也查,这样你就通过运行效果,能对应到具体的代码上,然后能通过看代码,理解相关语法细节。

请注意,一定是先流程再细节,先框架再语法。 当你理解流程的时候,一定别拘泥语法,遇到不懂的,先整体上理解,比如先理解,通过业务模型类能做JPA映射,在基础上理解流程,等你理解好流程以后,再去通过业务模型类里面的@Table和@Entity等注解,理解做映射的细节步骤。

6 当你看明白流程和搞清楚流程中的细节语法以后,再去看衍生的组件。比如某个项目的重点是讲Spring Boot整合spring cloud alibaba微服务,那么你先通过看其它资料,知道Nacos,Sentinel等组件是干嘛的,再到项目中找到和Nacos和Sentinel的相关配置,比如Nacos体现在配置文件里,Sentinel体现在xx类和xx注解中。

而且,在项目中,一定是会把Nacos和Sentinel等组件体现到业务中,你可以通过业务,很好地进一步理解Nacos和sentinel的用法和api。

用这种方法,你能很快理解项目的框架和其中的组件,这种方法的操作要点是先搭环境再运行通再结合业务看,看明白以后,你想怎么记就怎么记,用记事本什么都行

但我可以这样说,由于这是学习项目,不是你参与开发过的商业项目,更不是公司用来挣钱的商业项目。 所以你只是从人家的项目里理解技能,这样对你提升技能的帮助,也是有限的。 你产生似懂非懂的感觉,或者过了一两个月后忘记项目细节,这很正常,也无法避免,更无法缓解和改善。

但是后面你要继续做的, 绝不是自己动手从零开始实现这个项目, 这也是很多初学者的误区,解释下原因。

1 以初学者的能力,从零开始敲一个项目,难度太大,这样做的结果大多是不了了之。

2 如果从零开始敲项目有效果,那么排查万难硬着头皮敲一个,也不是不可以,但公司里不是这样开发项目的,公司里开发项目的方式一般是根据现有代码改,而不是从零开始敲,所以自己敲一个项目,哪怕用了三个月半年时间敲出来,其实大概率是无用功。

3 有比从零开始敲项目更好的学习方法,所以从零敲项目没必要。

这里说个观点,通过学习项目学习,哪怕这个项目包含的技术要点再多,但充其量只是拾人牙慧。可以靠这种方式入门,但为了高效提升,或者提升到更高的程度,一定得参与商业项目开发,即直接到公司里去做项目。

所以跑通一个Java项目后,如果你感觉把握不大,可以再去找个跑一下,但项目数量别操作3个。跑通后,赶紧去找实习细节。

1 如果是在校生,你直接问你们老师,或者是硕导博导,他们一般有外面公司的项目。你就和他们说,我想学习,能不能晚上周末或假期,到

你们教研室来学做项目,不收钱,只要让我参与就行。

这样老师有了免费劳力,一般都肯,然后你进项目组以后,争取自己动手开发一个项目,说动手开发一个项目也不准确,应该是按现有项目改出一个功能,这样比你运行通5个项目都强。或者可以这样说,你哪怕运行通,或者所谓吃透再多的项目,都比不上自己在商业项目中实现一个功能模块。

2 如果你大三大四,快实习了,你就把你跑通的项目写到简历中,然后出去找实习公司,当然中间是要背面试题。找实习公司也先别看钱,优先获取实践机会,这样等你毕业后,因为你的技能是通过真实项目掌握的,你一定远比通过学习项目的其它人强。

3 如果你已经工作,想要转行到Java开发,那也一样,背面试题,简历上写你运行通的Java项目,优先找个能提供实践的机会,必要的话,你找个培训班,用钱买人家辅导服务,用钱买人家推荐工作的服务。

最后做个总结。

1 如果大家只是运行人家的项目学习,通过人家的java项目学习,哪怕你把人家项目中的每个细节都掌握,面试找工作时,顶多得到的评价是“熟悉xx框架,熟悉xx语法”,但很难证明相关技能的项目开发经验,这样找工作得碰运气。 不过这块不能省,很多零基础的学员都这样入门的。

2 这里多说一句,如果你能结合你学习项目的需求,说明xx技术的用法,那倒有可能让面试官感觉你有xx技术的项目实践经验,这样哪怕你之前没做过真实项目,只要你结合项目说的技术到位,再背些面试题,还真有可能找到工作。

3 一定注意,你运行人家的项目,目的是为了找java工作,所以你在通过人家的项目学习时, 不仅要做到理解其中的含义,更要把其中学到的技术用到找工作(或找更高级的工作)上,所以通过运行人家代码学习时,一定别拘泥于只搞明白人家项目技术。

初学者如何吃透一个Java项目相关推荐

  1. 如何真正的吃透一个Java项目?

    如何真正的吃透一个Java项目?这里要说吃透一个Java项目的标准就是:下次遇到此类Java项目可以快速使用写过的Java项目的解决方案完成它. 要达到这个的标准,还得从开发一个Java项目的过程来分 ...

  2. 超强使用干货!教你如何吃透一个Java项目

    整理了一些Java项目,分享给大家 1. 一款Java开源的Spring Boot即时通讯IM聊天系统 地址:一款Java开源的Spring Boot即时通讯IM聊天系统 2. Java外卖点餐系统[ ...

  3. 如何吃透一个java项目

    见字如面,我是威哥,一个从普通二本院校毕业,从未曾接触分布式.微服务.高并发到通过技术分享实现职场蜕变,成长为RocketMQ社区优秀布道师.大厂资深架构师,出版<RocketMQ技术内幕> ...

  4. 如何使用eclipse软件创建一个Java项目?

    同学们在参加Java的时候老师肯定会教给你们如何去创建一个项目,这里怕有些同学没记住,所以单独为大家分享一篇如何使用eclipse软件创建一个Java项目教程,感觉有用的话收藏转发一下~ eclips ...

  5. eclipse怎么导入一个Java项目(莫要错过,最详细教程!)

    导出项目教程链接-->传送门 对于eclipse软件,常规的打开文件方法是无法打开一个项目的, 那么怎样导入一个java项目呢?方法如下 第一步 在电脑打开eclipse软件,点击file-&g ...

  6. java gradle入门_Gradle入门:我们的第一个Java项目

    java gradle入门 这篇博客文章描述了如何使用Gradle编译和打包一个简单的Java项目. 我们的Java项目只有一个要求: 我们的构建脚本必须创建一个可执行的jar文件. 换句话说,我们必 ...

  7. Gradle入门:我们的第一个Java项目

    这篇博客文章描述了如何使用Gradle编译和打包一个简单的Java项目. 我们的Java项目只有一个要求: 我们的构建脚本必须创建一个可执行的jar文件. 换句话说,我们必须能够使用以下命令运行程序: ...

  8. 创建一个java项目

    新建一个java项目 创建一个java项目 使用MyEclipse 新建项目 文件>新建>java项目 项目名称与存放路径 如果弹出此项,选择yes 项目创建成功 界面的效果 项目目录中的 ...

  9. idea怎样创建一个java项目?

    idea创建java项目的方法:首先在电脑上打开idea,并依次点击"File->New->Project";然后选择JDK安装的路径,并点击New;接着创建一个简单的 ...

最新文章

  1. pythonbool运算教学_python,_pandas Series bool与运算,python - phpStudy
  2. Windows ThinPC 最终版已 RTM
  3. ML之DT:基于简单回归问题训练决策树(DIY数据集+三种深度的二元DT性能比较)
  4. Python标准库:itertools迭代器函数
  5. eclipse/myeclipse选中编辑区域文件,Package Explorer定位文件所在项目及文件夹
  6. MyEclipse上Git的使用(包含导入和导出)
  7. http和socket之长连接和短连接区别
  8. struts2+jquery 实现ajax登陆
  9. python对初学者的看法_python学习之道(1)——新手小白对print()函数的理解,Python,之路,一,浅谈...
  10. Java ResourceBundle keySet()方法及示例
  11. 又是整数划分(poj1032)
  12. 关于消灭冲击波的蠕虫
  13. tp1900芯片对比7621a_TP无线路由器WDR7660千兆版,厉害了单芯片TP1900
  14. c51中的_crol_和_cror_
  15. 自带作弊功能的老虎机--一样会让你输光,呵呵
  16. Spring Boot/Spring Cloud 集成Page Office支持word、excel、ppt在线浏览编辑
  17. Timer源代码分析
  18. 什么是RAID?RAID有什么用?RAID原理
  19. python测试request代理IP是否替换
  20. OkGo上传文件、图片的用法

热门文章

  1. IP多播(计算机网络-网络层)
  2. Eclipse MyEclipse 代码提交时,让svn忽略classpath、target、.project
  3. [web] request的Content-Type小结
  4. 大容量充电宝什么牌子最好?市面上最大容量充电宝推荐
  5. Java中Set Map List 的区别
  6. 哪个邮箱登录安全?163 VIP邮箱登录入口是哪个?
  7. Spark 生态系统组件
  8. MATLAB的图像显示方法
  9. 2.开关电源中常见的控制算法
  10. Android美化之全局透明背景