您的位置  > 互联网

使用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程序。 然而,很多人一旦学完了Java并使用了IDE,就忘记了这一切。 为什么强调需要了解这一点? 了解了Java最纯粹的启动方式后,当出现启动问题时,就可以分析当时启动的目录数量、执行命名、参数、是否有遗漏等。 这将帮助你解决实际开发过程中那些可能与环境有关的奇怪问题。

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

javac 将java文件编译成class文件

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

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

3. 数据类型

这个没什么好说的,无非就是掌握Java中的基本类型和对象类型。可以进一步了解JDK是如何自动转换的,包括装箱和拆箱等,还要注意避免类型相等的判断拳击之后。

主要知识点:

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

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

类型: ,

类型特点

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

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

类的概念和

创建过程:

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

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

注意事项:

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

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

5. 访问控制

这也是Java封装特性的基础。 需要掌握的有:

对于类, ,field的修改效果

6. 过程控制

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

你需要掌握的是:

流控制语法,例如 if、loop、for、while 等。

7. 面向对象编程的概念

这是任何Java开发人员都需要掌握的Java核心概念。 Java中的很多特性或者知识点都与Java面向对象编程概念相关。 在我的理解中,一个好的开发人员不仅需要了解这些特性(知识点)本身,还需要知道这些对象在Java面向对象编程概念中是如何体现的,这样更有利于开发人员掌握Java。 这种开发语言以及其他面向对象的编程语言。 这里只是一个简短的列表。 主要知识点包括:

面向对象的三大特性:封装、继承、多态; 它们各自的定义概念、体现了哪些特点、以及各自的使用场景

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

重载的概念和使用

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

抽象、抽象类、接口

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

接口回调

8.

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

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

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

静态方法的定义和使用

静态类的定义和使用

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

9. 基础知识点

这里主要列出一些比较零散、没有系统分类的Java知识点。 在日常开发中也大量使用。 实际上这个主题还有很多内容,但我现在只是在这里总结一下:

包括:

, , / ,最终的 , ,

10. 集合框架

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

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

集合框架系统:基础、Map

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

集合相关工具类的使用等

11.异常框架

Java 开发中可能不会认真对待异常。 一般遇到异常时,可以直接抛出,也可以随便处理,不会对程序的整体运行造成大的影响。 然而,在企业级设计和开发中,异常设计和处理的质量往往关系到系统整体的健壮性。 对于开发人员来说,一个好的系统的异常处理应该是统一的,避免很多异常处理逻辑分散在各处; 对于系统来说,异常应该是可控的,并且易于操作和维护。 某些异常发生后,应该有处理的方法,并懂得如何操作和维护。 因此,异常框架虽然很简单,但是异常处理对于整个企业级应用开发来说却非常重要。 为了很好地处理异常,你需要了解Java中的异常系统。

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

不寻常的系统:

错误

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

12. Java IO

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

对于IO,Java不仅提供了基本的Input及相关API,还提供了一些简化操作等API。 在某些开发(涉及大量IO操作的项目)中也非常重要,一般日常开发中也会涉及到。 (日志、临时文件的读写等)。

这里主要的知识点是:

基础IO系统:包括、、/、文件读取、各种流读取等。

NIO的概念、具体使用方法及使用场景

13.多线程并发

多线程通常被认为是 Java 中的一个困难领域。 多线程可以有效提高CPU占用率,提高系统整体效率,尤其是在大量IO操作被阻塞的情况下; 但这也是一把双刃剑。 如果使用不当,系统不会有太大的改善,或者说没有改善,还会造成多线程之间的调试等问题。

多线程的内容很多。 我只是简单讲解一下Java中初步使用多线程需要掌握的知识点。 以后有机会我会详细介绍一些高级功能的使用场景。

多线程的实现与启动

和差异

、各自的特点及比较

线程池

异步获取执行结果

..

14.网络

Java还提供了可以直接操作TCP协议和UDP协议的API。 当需要强调网络性能时,可以直接使用TCP/UDP进行通信。 通过查看etc的源码,可以看到这些相关API的用法。 不过TCP一般很少直接使用,都是使用MINA、Netty等框架来处理。 由于这方面发展不多,所以就不详细列出了。

15. 时间和日期处理

对于几乎每个应用程序来说,都无法绕过时间和日期处理,但是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开发带来了极大的便利。 从依赖的引入和管理,到开发流程和发布输出的更新,甚至版本更新,使用Maven可以大大简化开发过程的复杂性,从而节省大量时间。 可以说maven已经成为Java开发者的标准。 因此,我把maven作为一个java开发人员必备的基础知识点。 以后我会补充一些自己使用maven的经验和技巧等,这里不再赘述。

18. 泛型

这是JDK5引入的新概念。 它实际上是一个语法糖,在编写Java代码时会有点方便。 对于一般的应用或者业务开发,只需要简单的使用即可,不一定需要定义泛型。 不过在开发一些基础公共组件的时候会用到它。 需要的时候可以仔细看看这部分。 一般情况下,只要简单的使用就可以了。

19. 注释

jdk5之后也是引入的。 它是一个从一开始就使用xml作为标准配置文件的优秀框架。 不过,后来,尤其是-boot兴起之后,使用注解来简化xml配置文件的方式越来越流行。 对于开发者来说,可以节省大量的xml配置时间。 但缺点是注解分散在各个类中。 与xml不同的是,所有配置都可以全局理解和管理,所以没有办法完全替代所有xml。 对于普通开发者来说,使用注解就足够了。 一些公开组织的开发者可能需要了解注解的定义和实现,需要的时候可以仔细看看。

20.RMI

on是Java语言特有的远程调用接口,使用起来比较简单方便。 但如果需要跨语言支持,则需要使用其他方法来支持。 一般来说,程序不需要使用RMI,但在特定情况下可以使用。 在一个项目中,我使用RMI来控制程序的远程启动和停止。

21.JNI

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

以上只是简单介绍一下我的一些看法以及对这些Java基础知识点和技术点的介绍。 这些内容来源于我多年来使用Java的一些总结。 希望给那些刚刚接触Java,或者打算从Java进行开发的人一些建议。 希望自己能够更加高效地学习和使用Java,避免走弯路,浪费宝贵的时间。 内容还存在一些不完善的地方,会在以后的文章中补充。 由于个人能力有限,当然会有一些错误和遗漏。 欢迎指正,共同讨论,共同完善本文。 希望能够真正帮助到有需要的人。

如果您在学习过程中遇到问题,希望有一个交流和讨论的场所,欢迎您加入:

点击链接加入群聊【java/EE技术交流群&】:重定向

相关信息:

java环境搭建及基本语法

Java基础知识

java IO流讲座