亿元级IT行业生态链
一站式解决方案提供商

24小时免费咨询电话
010-52725243

新闻资讯

AJIA NEWS

石家庄阿甲科技:关于Java后台开发中的知识体系

来源:阿甲视点 发布日期:2018-01-22

Java语言是目前所有编程语言中,最受后台开发人员欢迎的语言。Java拥有跨平台、面向对象、泛型编程等特性。在TIOBE编程语言排行榜中,连续夺得第一宝座,并且在所有的后台开发人员当中,Java程序员也是占比非常重的.

南昌阿甲科技公司:关于Java后台开发中的知识体系

下面只是简单梳理下Java后台开发中用到的知识。


1、Java的运行(基础必备)


这个知识点是最最基本的java开发者需要掌握的,初学java,第一个肯定是教你如何在命令行中执行java程序,但是很多人一旦把java学完了,IDE用上了,就把这个都忘了。为什么强调要知道这个呢,知道了java最纯粹的启动方式之后,你才能在启动出问题的时候,去分析当时启动的目录多少,执行命名如何,参数如何,是否有缺失等。 这样有利于你真正开发中去解决那些奇奇怪怪的可能和环境相关的问题。


在这里需要掌握的知识有:


javac 编译java文件为 class 文件


java 命令的使用, 带package的java类如何在命令行中启动


java程序涉及到的各个路径(classpath, java。library。path, java运行的主目录等)


2、JVM相关(包括了各个版本的特性)


JVM的相关知识点:JVM内存模型和结构GC原理,性能调优调优:Thread Dump, 分析内存结构


class 二进制字节码结构, class loader 体系 , class加载过程 , 实例创建过程等等


3、数据类型


数据类型无外乎就是Java中的基本类型和对象类型的掌握如:


基本类型: int, long, float, double, boolean ,.....


对应的对象类型: Integer 等类型到基本类型的转换, 装箱和拆箱


Object类型: equals, hashcode


String 类型的特点


4.对象和实例,对象的创建


Class和 Instance 的概念


Instance 创建的过程:


1。 无继承:分配内存空间, 初始化变量, 调用构造函数


2。 有继承:处理静态动作, 分配内存空间, 变量定义为初始值 , 从基类->子类, 处理定义处的初始化, 执行构造方法


需要注意的点:


静态属性等从基类->子类进行初始化


默认无参构造方法相关的特性


5.面向对象编程的概念


面向对象三大特性:封装,继承,多态; 各自的定义概念,有哪些特性体现出来,各自的使用场景


静态多分派,动态单分派的概念


重载的概念和使用


继承:接口多实现,基类单继承


抽象,抽象类,接口


多态:方法覆盖的概念和使用


接口回调


6.流程控制


if, switch, loop, for, while 等流程控制的语法


7.访问控制


这是Java封装特性的一个基础


8.集合框架


这个是一个需要多加掌握的部分,做java开发,可以说没有不用到集合框架的,这很重要。但是这里的知识点并不难,但是对于集合最好要了解内部的实现方式,因为这样有助于你在各个不同的场景选择适合的框架来解决问题,比如有1W个元素的集合,经常要进行contains判断操作,知道了集合的特性或者内部实现,就很容易做出正确的选择。


这里包括了如下内容(并发相关不包含在内):


集合框架的体系: 基础Collection ,Map


具体集合实现的内容, List ,Set ,Map 具体的实现,内部结构, 特殊的方法, 适用场景等


集合相关的工具类 Collections 等的用法


9.IO流


IO在Java中不仅仅是文件读写那么简单,也包括了socket网络的读写等等一切的输入输出操作。在这中的知识点主要有:


基本IO的体系: 包括有InputStream , OutputStream, Reader/Writer, 文件读取,各种流读取等


NIO 的概念, 具体使用方式和使用场景


10.多线程并发


多线程是Java中普遍认为比较难的一块。多线程用好了可以有效提高cpu使用率, 提升整体系统效率, 特别是在有大量IO操作阻塞的情况下;但是它也是一柄双刃剑, 如果用不好,系统非但提升不大,或者没有提升,而且还会带来多线程之间的调试时等问题。


在多线程中内容有很多,只是简单说明一下Java中初步使用多线程需要掌握的知识点,以后有机会单独再详细介绍一些高级特性的使用场景。


多线程的实现和启动


callable 与 runable 区别


syncrhoized ,reentrantLock 各自特点和比对


线程池


future 异步方式获取执行结果


concurrent 包


lock


11.Java中也是提供了可以直接操作TCP协议、UDP协议的API。在需要强调网络性能的情况下,可以直接使用TCP/UDP 进行通讯


12.时间和日期的处理


几乎对于每个应用来说,时间日期的处理也是绕不过去的,但是JDK8 之前的时间相关API用法并不友好。在那个时代,可以选择Joda等时间框架。到了JDK8 发布之后,全新的时间API基本融合了其他框架的优点,已经可以很好的直接使用了。


对于Java开发者来说,需要熟练地使用API来对时间和日期做相关的处理。


具体知识点不再罗列,会在以后再写个专门的文章来总结一下JDK8中时间日期API的用法。


13.XML解析/ JSON解析


对于一个开发者来说,能够了解一些XML/JSON具体解析的原理和方法,有助于你在各个具体的场景中更好的选择合适你的方式来使得你的程序更有效率和更加健壮。


XML: 需要了解 DOM解析和 SAX解析的基本原理和各自的适用场景


JSON: 需要了解一些常用JSON框架的用法, 如 Jackson, FastJson, Gson 等。。


14.RMI


RemoteMethodInvocation ,Java语言特有的远程调用接口,使用还是比较简单方便。不过需要跨语言的情况下,就需要使用 webservice 等其他方式来支持。一般来说,程序都不需要使用RMI,不过可以在特定的情况下使用,我就在一个项目中,使用RMI来进行程序远程启动停止的控制。


15.JNI


Java Native Interface,可以允许Java中调用本地接口方法,一般用于C/C++代码的调用。需要注意的是在java中加载so/dll文件的路径问题,本身调用接口并不复杂,但是经常在是否加载了所需的本地接口库中花费较多时间。


总结:目前大多数的Java后台开发人员都已经掌握了Java8版本中的相关知识点,因此Java8版本还是当下的主流开发语言,但是面临着Java9的出现,以上的知识点是否还能应用,就成为众多Java人员所考虑的问题。石家庄阿甲科技阿甲科技后台开发人员和阿甲科技Java程序员,再沿用Java8的前提下,希望能够将Java8版本中相关的开发技术沿用到Java9当中,好为用户打造更为全面的后台开发程序。


免责声明:本文由小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除。

欢迎访问阿甲科技集团官方网站!