我对开发语言基础的理解
我们在学习软件开发的时候,最先学习都就是一门编程语言,语言是我们开发的基础,也是我们开发的工具,今天来讲一讲我对于我目前从事的Android开发所用的Java的理解
首先说一下语言与应用
这是刚开始学习还没有入门的新同学经常误解的一个问题,以为学会了Java,就能做开发了,但也有大家“日常用语”的一部分锅,比如有人问,“你在做什么开发呀”,然后做Java web开发的同学就会说“Java开发呀”,然而其实Java开发说的是Java web开发,Java web开发又包含了Java EE的知识,还包含对数据库,Linux,SSH框架等的学习,甚至还需要一些前端的知识,并不只是学习Java语言这么简单的,PHP等web开发亦是如此
所以我们就要区分语言、应用
我们首先学习的是Java语言,它的语法、特性、及其功能,其中包括基础的数据结构啊,基本语法,流程控制,IO,多线程等基础的、大多数语言都具备的功能,以及多态,反射等Java独有的特性,并且语言都是在不断的完善更新的,比如Java8加入了lamada表达式,最近才发布的Java9加入的模块化等等
而后才是语言的应用,不同的语言根据不同的设计以及不同的特性有不同的应用点,有些语言很万能,多用,比如Kotlin,除了之前所支持的Native开发,web开发,Android开发,现在又宣布以后会支持iOS开发,有些语言则应用点单一,比如PHP,只能用于web开发
Java语言的应用点还是比较多的,在web开发中也不仅仅支持后端开发,在上古时代的时候,Java applet还被用于前端开发,只是后边被JavaScript给刷下来了。
还有很多同学不知道的是,我们用的很多桌面应用,其实也是用Java来开发的,这时你会想,“Java程序不是需要JRE才能运行么,如果我用了Java写的应用程序,为什么从来没有装过JRE呢?”,其实用Java开发的桌面应用程序,打包的时候都自带了JRE,说出来也许你会比较震惊,我们日常使用的Android Studio,就是用Java开发的,并且Jetbrains所开发的IDE,也都是用Java开发的,Jetbrains是一家Java功力很深厚的公司,所以才创造出了现在被钦定的Kotlin
出了上述所说的,Java还被用于我们所熟知的Android开发,在Android系统中,自带了一个JVM来运行我们开发的Java程序,
Android的frameworks源码,也是用Java来开发编写的
说到这里,相信大部分同学已经能分清语言和应用了
Java基础
其实说这个问题比较多余,我也不打算展开,这里就给大家说一个概念
Java基础的内容,大家看一遍《Java核心技术》的目录,基本上都包含了,看《Java编程思想》也是可以的,《Java编程思想》如同书名,阐述的是Java设计的思想,以及你编程的思想,建议先看《Java核心技术》,再看《Java编程思想》,不要觉得《Java编程思想》很厚,讲的很深,只要你有一定编程经验,结合编程场景,是非常容易理解的,掌握了其中的思想,在编程中,也会对你有指导作用
我理解的Java基础包含如下内容
基础认识 (JDK、JVM、JRE)
数据类型、变量、运算符、字符串、数组
流程控制
对象与类(深入理解面向对象,划重点)
继承
接口
内部类
多态
泛型
集合(其实就是Java所提供一些数据结构)
IO
多线程
异常处理
网络编程
反射
其实还包括Swing和AWT图形编程,这个主要应用于桌面端程序编写,我们用Java进行web或Android开发,是不需要掌握的
在上述的内容中,我觉得最要重点掌握的,就是面向对象的思想,这个一定要深入理解,Java可以说是是一门纯面向对象的语言,理解了面向对象,你理解其他问题就会容易很多
如果你从事的是web开发,那么多线程和网络编程,也是你必须要下功夫的了
对于Android开发,我建议新同学过一遍基础,就可以开始学习Android了,然后再从实践中,回过头了学习你没有掌握的Java基础知识,学习一门语言,光看是没有用的,一定要动起手来,然后再实践中学习,你才有体会,才有理解
划重点,理解才是重中之重,一定要体会,理解,看看《Java编程思想》,我觉得对你一定有帮助
其他的?
当你基础掌握的还可以了,你当然想去更深的地方,我懂的,这个时候你可以学习一些JVM的知识,推荐的书是《深入理解JVM》,周志华老师写的,看了你就能懂Java是如何在JVM上跑起来的了,也能理解Java的一些设计,内存管理的知识
当然你也可以看一些Java其他应用,可以看一些开源库来理解,Github就是程序员的图书馆,多看看,总是有好处的
总结
以上就是我所理解的Java基础,不足和偏颇是不能避免的,希望大家多多提出和讨论。要我给出一个建议,那就是多动手实践,然后在实践中多理解体会和思考。
并且要说明一个问题,我们今天讲的是开发中的语言基础,就是说Java是Android开发的语言基础,不是讲的Java语言中基础的东西,我们上述所说的内容已经包含了Java语言中的大部分内容,都理解了,学会了,也就可以说掌握Java了,并不是只是掌握了Java中的“基础”,说明一下
当然我自己也是在学习中拉,如果有大牛看到了,也请不吝多多赐教,谢谢大家,我是麦田哥,点个like吧~