初学者学Java常遇到的问题,我都给你回答了!

前言

只有光头才能变强。前端

文本已收录至个人GitHub精选文章,欢迎Stargithub.com/ZhongFuChen…git

春节在家刷知乎,看到了一个知乎的问题:《学习Java能够干什么呢?程序员

我是一个Java的初学者,大概学了四天,对Java到底能作什么仍是一头雾水,天天对着黑屏(DOS系统)除了编译仍是编译,那么Java对于一个初学者来讲Java能够作些什么呢?github

问题的连接:面试

看到了这个问题,就想起了我在大学自学的时候有一样的问题,如今工做了,来写写本身的见解,但愿对广大的初学者有所帮助。算法

注:本文很是适合零基础初学者观看数据库

若是别人让我介绍我是作什么工做内容的,我可能会用如下的方式告诉他(不知道学Java能够干些什么,可能就不知道下面的流程是怎么样的):编程

“你能够掏出手机,打开微信”后端

掏出手机,打开微信

“咱们都是玩微信的人,要进入微信先得有个帐户,因此要先注册“设计模式

微信注册页面

“注册实际上就是把你的帐号和密码「保存」起来”。

帐号和密码「保存」起来

“若是你注册成功了,那小本本「数据库」就有你的帐号和密码了。等你登陆的时候,就去小本本「数据库」查一下你输入的帐号和密码是否匹配

登陆

“看到这里,有没有以为「程序员」真是容易当,不就把输入的数据记录下小本本,等用到的时候再查一下而已嘛。其实否则,就比如微信的注册页面,拿IOS系统来讲,从IOS 6 到如今的IOS 12已经有6个版本了。Iphone手机屏幕的尺寸也一直在变,从3.5英寸到如今的6.5英寸。微信团队须要对不一样的「版本」,不一样的「屏幕大小」进行兼容,让iPhone4s仍是iPhoneXS Max都能用上微信。(起码在不一样的手机上,看到的注册功能都是完整的,而不是东一块西一块不整齐的)”

兼容问题

“还好比说,小本本「数据库」记下的密码不能是你输入的「原始密码」。举个例子:某一天,一个在微信团队的小伙子拿到了存放帐号和密码的小本本「数据库」,把小本本「数据库」的内容给公开了。(或者说一个黑客把微信给攻破了,而后公开小本本「数据库」),那岂不是谁均可以上个人微信号了?”

公开小本本的内容

“程序员们固然能够考虑到这点,他们会这样作,将你输入的密码进行「加密」存到小本本「数据库」中。不管是谁,拿到加密后的密码,都**不能「反推」**你原始输入的密码。”

密码加密

“因此,每次比对的都是加密后的密码”

比对的是加密后的密码

一个功能远远没有上面所讲的那么简单,可能一个小小的功能背后是一个大大的团队在支持...

收藏等于白嫖,点赞关注才是真情!

收藏等于白嫖,点赞关注才是真情!

收藏等于白嫖,点赞关注才是真情!

我学习Java能作什么?

题主目前你学了四天有这种状况是很是常见的。我当时学了四天学了什么?

  • 安装Java开发环境用了一天
  • 学习基础的语法:基本的面向对象概念、for循环、if、三目运算符,简单的API(能输出HelloWorld)

若是题主能继续坚持学习Java基础,发现可能将近一个月都是对着黑窗口在玩。

  • 不管这个黑窗口是系统自带的,仍是题主已经在用IDE了

集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,通常包括代码编辑器、编译器、调试器和图形用户界面工具

学习Java基础的确不能作出些有趣的东西,学着学着会有枯燥的感受。面向对象-封装继承多态、集合、多线程、反射、网络编程、内部类等等这些Java基础都是在黑窗口上学习和实践的。

这些玩意有意思吗?是没什么意思,学完这些知识会让本身产生疑问 “这些基础能写成一个应用吗”(不管是如今用的知乎APP仍是PC版的知乎)。

这是一个很是正常的疑问,我在初学的时候也常常问本身:”我学这些东西好像没什么卵用啊,为何网上(知乎、贴吧等论坛)的都在说 “初学要打好基础等你学好Java基础,那工做就不愁了

可是我当时一点都不知道这些基础用在哪里,迷茫

我看视频仍是看书?

题主可以在知乎上提问了,我也默认题主已经在知乎看到过很多相似的问题,可能还没找到本身想要的答案。在搜索的时候应该能看到相似的问题《自学Java看视频仍是看书

这个问题在初学的时候我也常常纠结。纠结的缘由很简单:

  • 会有一部分人说:看视频没用,视频讲得太简单了,都是骗你去培训班的。看视频也太慢了,学习最快仍是看书好
  • 会有一部分人说:零基础看书看不进去,学不会的,看视频好,一个老师带着你学习

这个问题我在工做了之后还跟同事讨论过,我是支持零基础学习看视频,他是支持直接看书籍

我俩谁也说服不了谁。那究竟是初学看视频比较好,仍是看书籍比较好?

知识点好多,我记不住

随便找一本评分比较高的Java基础的书籍来看一下,都是很是的。以《Java疯狂讲义》为例,有889页。拿着他比砖头还要重。

今天跟着书籍/视频学习了「内部类」,等学到多线程的时候再看一下这个「内部类」,发现已经看不懂他的语法了。昨天跟着书籍/视频学习了「网络编程」,发现上周学完的集合API全忘掉了....

咋整?知识点这么多,有这么多的API,我不可能所有能记得住啊...学完很容易就忘记了。

哪些须要重点学习,工做中经常使用的知识点有哪些

在初学Java的时候而后去相关的IT论坛逛逛,发现全都看不懂。明明是在学编程,但IT论坛的问题一个都看不懂。看着一大堆的专业名词,就犹如明明是中国人但看不懂奰媕鳏魍谶觳豳这些字同样。

初学者在论坛上看到面向切面编程、高并发、AOC、IOC、Mybatis、Linux这些可能都不知道是干吗的,明明是Java的标签,但出来专业名词的好像都看不懂。

Java要学的东西也太多了吧,基础已经这么多了,后面的怎么学,我应该学习哪些重点啊?

我学到怎么样的程度能够找到一份工做

我耗时几个月熬过头了,已经学了Java基础、JavaWeb、简单的数据库、SSM框架等等一些基本的使用了。如今想要找一份工做,但不知道企业招人的标准是什么。

如今我学得这些,我以为还有点虚,感受跟实际工做的内容有较大的差距,学了这么多仍是没有一点儿的底气,怎么办?

会写一点点的SSM和增删改查,简单的会写,难的就不会了**。很急,在线等,怎么办**。

个人理解

学习Java能干什么?

如今Java按简单来讲有两种方向:后端和客户端

  • 对造APP感兴趣的能够学Android
  • 对服务端感兴趣的能够学Java后端
  • (后端延伸出去也能够学大数据...

既然你会在知乎上提问了,你有没有想过你输入完内容,点击发布问题按钮的时候程序员为你作了些什么?

  1. 点击发布问题的时候,至少你提的这个问题是须要能被你再次打开,看看有没有相关回答者的吧?那是否是知乎要拿小本本把你这个问题给记录下来,后续找到了这个问题而后给你下一次打开。
  2. 那至少要作的就得把你发布的问题记录下来(记下),等你再次点开的时候再找到你的问题(查找),若是你把问题给删除了,那就得把记下的问题给删掉(删除),若是你把问题给修改了,那就得把你记下的问题给修改了。总之,你先要把问题给发布(存到小本本里边),你才能删改查
  3. 上面这些工做谁来干?程序员写代码来作。可能用Java,可能用Python,可能用Go,可能用全世界最好的语言PHP...

扯了一大堆,那我为啥还每天对着黑窗口在学习?而不是直接学习《如何实现相似知乎的发布问题功能》

显然你读懂一篇英文课文以前,你总得认识单词。你连单词都不认识,怎么作阅读理解呢?学习Java能作不少东西,你平常用到的APP/浏览的网页背后极可能就是用Java写的代码。

总之,学习Java了能够能让你了解一个网站和APP的基本运行原理,点了一个按钮会发生什么,为何会这样。

  1. 知道为何今年淘宝双十一在添加购物车的时候,有时会出现失败
  2. 知道为何我在查飞机票的时候,查不到信息
  3. 知道为何.....

看书仍是看视频

我是建议零基础看视频入门的,缘由有如下:

  • 大部分零基础学Java的同窗都没有比较好的理解能力,看视频能够帮助你快速入门(视频能够加速观看)

  • 避免踩坑。书上讲的知识点的确是很是全,但有两个问题:

    • ①初学者抓不到重点,可能对着细小的知识点猛学一顿,发现这个知识并没多大的卵用。
    • ②初学者不知道学习路线。看书不是完完整整从头看到尾的,极可能书上一段的知识点如今已经没用了,可是你仍是费劲去学(好比AWT SWING 如今就用得不多了,但书仍是有大篇幅去讲解,若是你顺着学可能就浪费不少时间在里边)

看视频能让你抓住重点,快速了解知识点。但总的来讲是因人而异,有的人理解能力就是好,看书就很快就学会了。

知识点太多,学完就忘,记不住

要明确的是,咱们写代码的不是背书,不是让你将全部的API给记下来。如今开发工具,提示功能已是比较好的了。在工做的时候忘了,也能够查百度/Google。

咱们并不须要把全部的东西给记下来,重要的是:咱们知道有这项技术,这项技术能帮咱们解决掉什么问题

因此,在学习一项技术以前,必需要知道为何。为何须要学习这项技术,不学的话行不行。学了这项技术,我能解决什么问题。

若是不理解为何要学习某项技术,就去学用法和API。我认为若是隔一阵子不用,的确是会忘记的。

好比说,如何你连“为何要用多线程”你都没法用通俗的话来解释清楚。

即使你当时学习的时候知道多线程能够用xxx方式来建立,多线程的xxx的api。那再过两个月,人家问你”Java多线程有什么用啊?”。

你想一想你还能答什么,我认为你是记不住“多线程能够用xxx方式来建立、多线程的xxx的api”这些知识点了。

  • 若是你不知道学习某项技术是干吗用的,那先不要学

  • 若是你不知道学习某项技术是干吗用的,那先不要学

  • 若是你不知道学习某项技术是干吗用的,那先不要学

重点的东西能够写笔记记录下来(这个也是因人而异,我身边的大佬不少也不写笔记。可是我是推崇写笔记的)。

哪些须要重点学习,工做经常使用的知识点

我简单整理了一下画成了思惟导图:

总结一下我认为学习Java的路线:

  • Java基础-->流程控制-->面向对象(包括Java语法)-->Java集合-->Java IO流-->异常-->多线程-->网络编程-->反射
  • JavaWeb基础-->HTML/CSS/JavaScript/jQuery-->Tomcat-->XML/注解->Servlet-->HTTP-->Filter过滤器和监听器-->JSP-->AJAX/JSON-->数据库(MySQL)-->JDBC和DbUtils
  • 项目管理和框架-->Maven-->SpringBoot
  • Linux基本命令

最后咱们的项目是这样的:

  • 以Maven来管理咱们的项目
  • 前端经过BootStrap来搭建页面框架
  • SpringBoot来搭建Java后端环境,SpringMVC处理前端请求(SpringBoot整合了)
  • DAO层使用DbUtils组件来完成,MySQL做为数据库

怎么样才能找到工做

只要你能从零把一个项目搭建起来,能运行在服务器上。用上的技术还不烂,那我认为就能够找到Java的工做了。

其实学完上面的,认认真真花一个月从零本身写一个达到找工做的门槛是不难的。但面试以前是必定须要刷面试题的。

若是仍是学生的同窗必定必定要参加校招,必定必定要刷算法题,巩固计算机网络、操做系统、数据库的基础。

若是仍是学生的同窗必定必定要参加校招,必定必定要刷算法题,巩固计算机网络、操做系统、数据库的基础。

若是仍是学生的同窗必定必定要参加校招,必定必定要刷算法题,巩固计算机网络、操做系统、数据库的基础。

坚持坚持坚持学习就确定能找到工做!

最后

因为篇幅问题,不少细节就没在文章中写了。可是我已经把我自学到找到工做以及工做经常使用到的技能都写成了博客。如今已经更新了300+多的原创文章。

从Java基础(集合、多线程、设计模式)到JavaWeb基础(Servlet、JSP、过滤器)再到JavaEE经常使用框架(SpringMVC、Spring、Mybatis、SpringBoot)再到找工做的经历(写简历,刷面试题)再到工做后经常使用的技能(Linux命令,SQL编写,经验分享)都记录了下来。文章质量都杠杠的,欢迎查阅

若是你们想要实时关注我更新的文章以及分享的干货的话,能够关注个人公众号「Java3y」。

  • 🔥海量视频资源
  • 🔥Java精美脑图
  • 🔥Java学习路线
  • 🔥开发经常使用工具
  • 🔥精美整理好的PDF电子书

在公众号下回复「888」便可获取!!

本已收录至个人GitHub精选文章,欢迎Stargithub.com/ZhongFuChen…

求点赞 求关注️ 求分享👥 求留言💬 对我来讲真的 很是有用!!!

收藏等于白嫖,点赞才是真情!

收藏等于白嫖,点赞才是真情!

收藏等于白嫖,点赞才是真情!

相关文章
相关标签/搜索