初学Java的同学可能都会考虑一个问题,“我究竟要学到什么程度才能去找一份Java的工作?这个问题在我当年学习的过程也萦绕许久,后来通过自己找工作的经历,以及工作后的多方调查,对这个问题的答案已经了熟于心了,今天用这篇文章来给大家解答一下,要顺利找到第一份Java工作,所必须具备的技能。
>>Java基础语法
Java语法是就相当于英文中的26个字母,你需要将每个关键词都学的很透彻,对于初学者来说,最困难的概念是基本结构,例如循环和分支。这部分没有过多的技巧,多去做一些相关的练习题,熟能生巧。关键词包括:
l 类,变量和方法
l 数据类型
l String
l 基本运算符
l 基本结构:循环,分支
>>面向对象编程(OOP)
OOP严格意义上来说有两个模块,一是面向对象的思维,二是面向对象的编程语法。
面向对象的思维这个理解起来有点难,因为我们在学Java的基础语法时,习惯了用面向过程的思维去编程,转变为面向对象时头脑中会很混乱,即使老师举很多实例去解释 依旧会产生很多困惑,碰到这种情况不要着急,面向对象的思维需要长期去培养,同基础语法一样,思维也需要大量的实践去培养。
面向对象涉及到的语法主要有:类、继承、接口、多态、封装,这是Java编程中另一个重要的组成部分,可以说在工作中,无论用哪种框架,哪种编辑器,面向对象的编程都是重中之重。这个模块也是在面试中的重点,所以一定要掌握扎实!
>>集合框架
Java为不同的集合提供了一个集合框架。集合基于数据结构,比如常见的:列表、数组、集合、哈希图等等。因此,在研究集合时,最好了解一点数据结构的相关知识。
主要副题:
l List
l Set
l Map
l ArrayList
l LinkedList
l Queue
l Deque
l HashSet,HashMap,HashTable
l TreeSet, TreeMap
学习集合的主要困难在于他们之间的区别,以及何时用到适合的集合类型。同样的,也是必须实践出真知。
>>异常处理
异常是在执行程序时可能发生的异常情况。很多人在学习的过程中理解不了异常的作用,我在初学的时候也有相同的疑问,编辑器已经有报错的功能了,为什么还要自己去编写一段处理异常的代码。后来随着项目使用的异常处理越来越多,我对异常处理有了深刻的了解。
举个简单的例子:当你下载文件时,如出现什么错误,用户希望下载器能告诉他出现了什么问题,比如硬盘不足等等,当用户提供了足够的硬盘空间以后,下载继续自动进行。而不是说空间一不足,立刻下载器就崩溃,这就是异常技术。
异常处理的关键词:
l 异常处理机制
l Try、catch、finally
l Throw、throws
l 异常层次结构
l 已检查/未检查的异常
l 错误和异常之间的区别
l 手动抛出异常
>>输入/输出流
Java使用流来执行输入和输出的操作。在项目中,需要经常进行读写操作。对于初学者来说,这也是一个比较困难的知识点,而且在Java的学习过程中,这一点的重要性并不是很突出,导致很多人在工作后碰到文件的读写操作就干瞪眼了。
流主要关键词:
l 字节流(FileInputStream,FileOutputStream)
l 字符流(FileReader,FileWriter)
l 标准流(System.in,System.out)
>>Java多线程/并发
多线程和并发操作是Java高级编程的核心主题。这部分几乎所有的同学都理解不了,不过没有关系,这部分对于初级开发者来说不是很重要。可以在工作的过程中慢慢深入了解。我为什么要把这个模块放在文章里,主要是目前市场上有些公司的面试会问及多线程并发的问题,为了Offer,我推荐大家还是看看。
多线程/并发关键词:
l 线程的生命周期
l 系统服务
l 线程同步
l 线程死锁
l 线程操作
l Wait,notify,notifyAll
l 中断
l Sleep,yield,join
>>Lambda表达式
Java lambda表达式出现在Java 8中,这是一个经常被开发者忽略的工具。Lambda表达式是一个可以创建的函数,不属于任何类,可作为对象传递或执行。
Lambda主要关键词:
l 单方法界面
l 匿名接口
l Lambda类型推断
l Lambda参数
l Lambda函数体
l 从Lambda表达式返回值
l Lambda作为对象
l Variable capture
>>算法和数据结构
每一门编程语言的学习过程中,最有争议的问题之一就是每个学生是否应该学习标准的排序和搜索算法。有的人认为,大部分算法已经编写在库中,使用起来很方便。另一部分人认为,学习算法的过程就是锻炼编程思维的过程,一定要学习。
我更倾向于后者的说法,因为我经历过很多面试,无论是自己去求职还是面试求职者,都会在面试过程中考察算法和数据结构的相关问题。如果想要保证自己不被落选,这方面的知识还是多学习一点。
>>实用的库和组件
库和组件是能否胜任一份工作的重要指标,库和组件能大大提升开发效率。所以公司在招聘时会特别注重这一点,面试时会询问你的库和组件的使用和学习经历。下面几个常见的库和组件可以多了解一下:
l Servlet
l JDBC
l log4j
l JSON
l Guava
l Apache Commons
>>Spring/Hibernate
在以前,成为Java工程师有以上知识足矣,但是随着近几年技术的变更和开发者的急剧增长,开发者的门槛也逐渐增加,比如Spring/Hibernate,不会这两门技术,很难找到工作。
>>结论
上面就是成为一名Java开发者所需要的学习的知识,有些知识需要精通,比如基础语法、OOP,集合框架,异常处理,流,实用的库和组件,Spring框架等;有些只需要了解,能在面试中回答出来,给面试官留下一个好的印象,比如多线程/并发,Lambda表达式,算法和数据结构。希望对小白能有帮助,也祝大家的Java学习之路能够顺顺利利。
最后
如果你想要学习Java的话,我给你分享一些Java的学习资料,你不用浪费时间到处搜了,从Java入门到精通的资料我都给你整理好了,这些资料都是我做Java这几年整理的Java最新学习路线,Java笔试题,Java面试题,Java零基础到精通视频课程,Java开发工具,Java练手项目,Java电子书,Java学习笔记,PDF文档教程,Java程序员面经,Java求职简历模板等,这些资料对你接下来学习Java一定会带来非常大的帮助,每个Java初学者都必备,请你进我的Java技术qq交流群自行下载,所有资料都在群文件里,进去要跟大家多交流学习哦。