Java的特性(这篇不发,太深奥)
1.跨平台特性
Java 语言设计之初的目标是“一次编写,到处运行”(Write Once, Run Anywhere, WORA),哎?上面好像听过这个说法对不对,我们前面说高级语言写好一次后,通过翻译成不同计算机系统认识的字节序列,就可以实现一次写好,到处运行。这里Java也是一样,Java有一个叫JVM虚拟机的东西,不同的计算机系统和设备都有对应不同的虚拟机,Java代码经过Javac命令编译后成为.class的字节码文件,然后虚拟机加载字节码文件后解释为特定平台的机器语言,这样Java 程序就可以在不同的计算机系统上运行。这个也是Java能广为使用的原因之一。
由此可见,我们编写的Java代码第一步将编译成.class的字节码文件,然后再由虚拟机加载解释为机器语言,最后计算机进行逻辑运算。
2.面向对象
Java是面向对象的语言。对象就是万物,人是一个对象,狗也是一个对象,车、你、房子都是对象(英语是Object),世界上的任何事物都是一个对象。
每个对象都有自己的属性,比如人有手、有年龄,车有轮子,发动机等等,这就是对象的属性。
每个对象都有自己能做的事情,比如狗能跑,房子能住,人能说话等等,这就是对象的方法(method函数)。
所以,对象有自己的属性和方法,属性可以被赋值,方法可以被调用,记住。
然后你就在想,人也有年龄,狗也有年龄,人能跑,狗也能跑,这就是对象的共同属性,我们把所有共同的属性抽离到一起成为动物(动物也可以是一个Object),就成了类(class)!
类就是相同属性和方法的对象抽象到一起形成的类群,比如男人女人抽象为人类,人和狗抽象为动物,人、房子、狗、颜色、数据、函数等等所有事物,抽象为Object!
这就是面向对象中类和对象的概念!还有类之间进行继承、封装等等概念,以及多态的概念!
面向对象编程有助于提高代码的可重用性和可维护性。
与面向过程编程对比
面向对象编程(Object-Oriented Programming, OOP)和面向过程编程(Procedural Programming)是计算机编程的两种基本范式。
面向对象编程强调将数据和操作数据的函数封装在一起形成对象。它通过封装、继承、多态等机制来组织代码,使得程序更加模块化、可维护和可扩展。而面向过程编程侧重于将程序分解为一系列的函数或过程,通常使用流程控制语句来控制每个函数或过程完成一个特定的任务。
代码结构上来看,面向对象使用类和对象来构建程序结构,每个类定义了一组共同的属性和方法(人类有名字,会跑),而对象则是类的实例(张三会跑)。而面向过程通常由一系列的函数或过程组成。
面向对象耦合性低,因为它把一些功能模块化的封装了起来,代码更灵活易于修改。而面向过程就紧密关联,不易于维护,适合干一些简单的场景。
3.安全特性
Java内置了一些安全特性来保证Java安全的运行,比如自动内存管理、自动垃圾回收GC、异常错误捕捉处理、沙箱模型等,防止恶意代码的执行。
4.标准类库
Java内置了很多的标准类库,用来让你方便开发,你只要引入对应的类库包,就可以使用类库中的API来实现你得功能。
无论是基础的字符串操作、日期,还是网络编程、输入/输出(I/O)流操作、图形用户界面(GUI)等等,都有成熟的类库支持你直接使用。
我们引入类库就是为了使用其中的API,对应上述面向对象的类和对象概念,就是引入包,使用包中的类生成对象,然后使用对象调用方法,方法就是API。
各式各样的API方法可以支持你完成各种功能,以后慢慢用。
5.多线程
碉堡的特性,电脑的cpu可以有多条线程来执行任务,Java代码可以完全利用到cpu的对条线程来‘同时’执行你分配的任务。
其实我们肉眼看到线程是同时执行,但是底层还是一个一个执行,这个停了那个开,那个停了这个开,嗖嗖嗖。
Java大致的一些特性就是这些了,以后我们会一步一步的逐个去研究使用它们,加油。
Java特性从浅到深大致学习路线