Java开发必须掌握的21个Java核心技术!

 2024-01-28 03:04:12  阅读 0

写这篇文章的目的是总结一下我这些年使用Java的一些经验。 希望能给您带来一些经验,帮助您更好地学习和使用Java。

这次介绍的主要内容是与J2SE相关的部分。 另外,以后还会介绍一些J2EE以及Java中的各种框架相关的内容。

经过这么多年的Java开发,结合​​一些面试Java开发人员的经验,我认为J2SE主要是掌握以下内容。

1.JVM相关

对于刚接触Java的人来说,JVM相关知识并不一定需要深入了解。 对概念的简单理解就足够了。

然而,对于一个拥有3年以上Java经验的高级开发人员来说,不了解JVM几乎是无法接受的。

JVM是Java运行的基础。 很难相信对JVM一无所知的人能够彻底理解Java语言。

当我面试有 3 年以上 Java 经验的开发人员时,JVM 几乎是必问的问题。

当然,JVM并不是唯一决定技术能力好坏的面试题,但它可以证明Java开发能力的水平。

在JVM范畴,我认为需要掌握的知识是:

JVM内存模型和结构

GC原理、性能调优

调优:转储、分析内存结构

class二进制字节码结构、类系统、类加载过程、实例创建过程

方法执行流程

Java主要版本更新提供的新特性(需要简单了解)

2.Java操作

这看起来可能很简单。 谁不知道如何运行java程序?

但很多时候,我们只是通过IDE来执行java程序。 底层IDE是如何执行java程序的? 很多人不明白。

这个知识点是Java开发者需要掌握的最基本的东西。 第一个肯定是教你如何在命令行上执行Java程序。 然而,很多人在学习完 Java 并使用 IDE 后就忘记了这一点。 。

为什么强调需要了解这一点? 了解了Java最纯粹的启动方式后,当出现启动问题时,就可以分析当时启动的目录数量、执行命名、参数、是否有遗漏等。

这将帮助你解决实际开发过程中那些可能与环境有关的奇怪问题。

这里你需要掌握的知识是:

javac 将java文件编译成class文件

如何使用java命令以及如何在命令行启动java类

java程序涉及到的各种路径(java..path、java运行的主目录等)

3. 数据类型

这个没什么好说的,无非就是掌握Java中的基本类型和对象类型。

可以详细了解JDK是如何自动转换的,包括装箱和拆箱等,注意避免装箱后的类型相等判断。

主要知识点:

基本类型:int、long、float、、。 。 。

对应对象类型:其他类型到基本类型的转换、装箱和拆箱

类型:,

类型特点

4. 对象和实例

对此,开发人员需要了解类和类的概念以及它们之间的区别,这是Java面向对象特性的基础。

主要知识点有:

dll文件转换为so文件_文件转换为图片_文件转换为jpg格式

类的概念和

创建过程:

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

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

注意事项:

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

与默认无参构造函数相关的功能

5. 访问控制

这也是Java封装特性的基础。 需要掌握的是: 对于类、字段的修改。

6. 过程控制

Java流控制的基础。 虽然有些语法不一定常用,但你需要理解它们并在适当的地方使用它们。

需要掌握的有:if、、loop、for、while等流程控制语法。

7. 面向对象编程的概念

这是任何Java开发人员都需要掌握的Java核心概念。

Java中的很多特性或者知识点都与Java面向对象编程概念相关。

在我的理解中,一个好的开发者不仅仅需要自己了解这些特性(知识点)。

也更有必要了解这些对象在Java的面向对象编程理念中是如何体现的,这将更有利于开发人员掌握Java以及其他面向对象编程语言的开发语言。

这里只是一个简短的列表。 主要知识点包括:

面向对象的三大特点:封装、继承、多态;

它们各自的定义概念,体现了哪些特点,以及各自的使用场景

静态多调度和动态单调度的概念

重载的概念和使用

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

抽象、抽象类、接口

多态性:方法重写的概念和使用

接口回调

8.

静态属性在日常Java开发中也经常使用。 你需要了解关键字相关的用法,以及它们与其他关键字的使用,比如是否可以与final、final等关键字结合使用。

您需要掌握的主要内容是:

类加载时静态属性的定义、使用和初始化

静态方法的定义和使用

静态类的定义和使用

静态代码块的定义和初始化时序

基础知识点

这里主要列出一些比较零散、没有系统分类的Java知识点。

在日常开发中也大量使用。 实际上这个主题还有很多内容,但我现在只是在这里总结一下:

文件转换为jpg格式_文件转换为图片_dll文件转换为so文件

包括:

特林/

最终的

采集框架

这是一个需要更多掌握的部分。 在做Java开发的时候,可以说没有必要使用集合框架。 这个非常重要。 你必须理解这里编译的Java面试题和答案。

但这里的知识点并不难,但是最好了解集合的内部实现,因为这将帮助你选择合适的框架来解决不同场景下的问题。 例如,一个有10000个元素的集合,往往需要在进行判断操作时,了解集合的特性或者内部实现,才能很容易做出正确的选择。

这里包含以下内容(不包括并发相关事项):

集合框架系统:基础、地图

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

集合相关工具类的使用等

异常框架

Java 开发中可能不会认真对待异常。 详细解释了处理它们的最佳实践。

一般遇到异常时,可以直接抛出,也可以随便处理,不会对程序的整体运行造成大的影响。 然而,在企业级设计和开发中,异常设计和处理的质量往往关系到系统整体的健壮性。

对于开发人员来说,一个好的系统的异常处理应该是统一的,避免很多异常处理逻辑分散在各处; 对于系统来说,异常应该是可控的,并且易于操作和维护。 某些异常发生后,应该有处理的方法,并懂得如何操作和维护。 因此,虽然异常框架很简单,但是异常处理对于整个企业级应用开发来说却非常重要。 为了很好地处理异常,你需要了解Java中的异常系统。

这部分需要掌握的知识点并不多,主要有:

不寻常的系统:

错误

与一般的区别、具体加工方法等。

12. Java IO

Java中的IO不仅仅只是文件读写那么简单,还包括网络读写等一切输入输出操作。 比如读取标准HTTP请求中Post的内容也是一个输出过程等等……

对于IO,Java不仅提供了基本的Input及相关API,还提供了一些简化操作的API,例如(Logs、临时文件的读写等)。

这里主要的知识点是:

基础IO系统包括,,/,文件读取,各种流读取等,NIO的概念,具体使用方法和使用场景。

多线程并发

多线程通常被认为是 Java 中的一个困难领域。

正确使用多线程可以有效提高CPU占用率,提高系统整体效率,尤其是在大量IO操作被阻塞的情况下; 你必须理解这里编译的Java面试题和答案。

但这也是一把双刃剑。 如果使用不当,不仅系统提升甚微或没有提升,还会造成多线程之间调试等问题。

多线程的内容很多。 我只是简单讲解一下Java中初步使用多线程需要掌握的知识点。 以后有机会我会详细介绍一些高级功能的使用场景。 在Java技术栈公众号回复“多线程”即可获取多线程系列教程。

多线程的实现与启动

和差异

、各自的特点及比较

线程池

异步获取执行结果

网络

Java还提供了可以直接操作TCP协议和UDP协议的API。

当需要强调网络性能时,可以直接使用TCP/UDP进行通信。

通过查看etc的源码,可以看到这些相关API的用法。

不过TCP一般很少直接使用,都是使用MINA、Netty等框架来处理。 由于这方面发展不多,所以就不详细列出了。

时间和日期处理

对于几乎每个应用程序来说,都无法绕过时间和日期处理,但是JDK8之前与时间相关的API使用并不友好。

在那个时代,有像 Joda 这样的时间框架。 JDK8发布后,新的时间API基本集成了其他框架的优点,可以直接使用。

对于Java开发人员来说,需要熟练使用API​​来处理时间和日期。

具体知识点不再列出。 以后我会专门写一篇文章来总结一下JDK8中时间日期API的使用。

16.XML解析/JSON解析

其实这两块内容并不是J2SE的一部分,但是在日常开发中,与其他程序、配置文件的交互越来越离不开这两种格式的解析。

然而,对于开发人员来说,能够了解 XML/JSON 解析的一些具体原理和方法,将有助于您更好地在每个特定场景中选择合适的方法,使您的程序更加高效和健壮。 。

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

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

17.Maven使用

Maven并不是Java的一部分,但是Maven是革命性的,给Java开发带来了极大的便利。 这30个你一定很熟悉。

从依赖的引入和管理,到开发流程和发布输出的更新,甚至版本更新,使用Maven可以大大简化开发过程的复杂性,从而节省大量时间。

可以说maven已经成为Java开发者的标准。 因此,我把maven作为一个java开发人员必备的基础知识点。

在Java技术栈公众号回复“Maven”即可获取Maven系列教程。 以后我会补充一些自己使用Maven的经验和技巧,这里不再赘述。

泛型

这是JDK5中引入的新概念,实际上是一种语法糖。

写Java代码的时候还是比较方便的。 对于一般的应用或者业务开发,只需要简单的使用即可,可能不需要定义泛型等操作。

不过在开发一些基础公共组件的时候会用到它。 需要的时候可以仔细看看这部分。 一般情况下,只要简单的使用就可以了。

注解

jdk5之后也是引入的,你一定要明白。

它是一个从一开始就使用xml作为标准配置文件的优秀框架。

不过,后来,尤其是-boot兴起之后,使用注解来简化xml配置文件的方式越来越流行。 对于开发者来说,可以节省大量的xml配置时间。

但缺点是注解分散在各个类中。 与xml不同的是,所有配置都可以全局理解和管理,所以没有办法完全替代所有xml。

对于普通开发者来说,使用注解就足够了。 一些公开组织的开发者可能需要了解注解的定义和实现,需要的时候可以仔细看看。

20.落基山研究所

on是Java语言特有的远程调用接口,使用起来比较简单方便。

但如果需要跨语言支持,则需要使用其他方法来支持。

一般来说,程序不需要使用RMI,但在特定情况下可以使用。 在一个项目中,我使用RMI来控制程序的远程启动和停止。

21.JNI

Java允许调用Java中的本地接口方法,一般用于调用C/C++代码。

需要注意的是Java中加载so/dll文件的路径问题。 调用接口本身并不复杂,但往往需要花费大量时间来检查所需的本地接口库是否加载。

以上只是简单介绍一下我的一些看法以及对这些Java基础知识点和技术点的介绍。

这些内容来源于我多年来使用Java的一些总结。 内容还存在一些不完善的地方,会在以后的文章中补充。

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码