Java介绍

b0026d35bd004cfa8bb53023a4f37e08.gifJava 是一门纯粹的面向对象编程语言,它吸收了C++的各种优点,还努力摒弃了C++里难以理解的多继承、指针等概念,真正地实现了面向对象理论,因而具有功能强大和简单易用两个特征。

 

 

除了基础语法之外,Java还有许多必须弄懂的特性:封装、继承、多态。此外还有泛型、反射等特性,很多框架的技术都依赖它们,比如 Spring 核心的 IOC 和 AOP,都用到了反射。而且 Java 自身的动态代理也是利用反射实现的。

 

此外 Java 还有一些标准库也非常常见,比如集合、I/O、并发,这些类型与功能丰富的库几乎在 Web 开发中无处不在,也是面试经常会被问到的,所以在自学 Java 后端之前,不妨先打好这些基础,另外 Java8 的一些新特性我们也要重点关注,比如 Lambda 表达式、集合和 Stream 流操作、全新的 Date API 等等。

 

面向对象思想

面向过程和面向对象的区别

面向过程

 

优点:性能比面向对象好,因为类调用时需要实例化,开销比较大,比较消耗资源。

缺点:不易维护、不易复用、不易扩展

 

面向对象

 

优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护

缺点:性能比面向过程差

 

面向对象的三大特性

封装

隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性。

 

继承

提高代码复用性;继承是多态的前提。

 

多态

父类或接口定义的引用变量可以指向子类或具体实现类的实例对象。提高了程序的拓展性。

 

面向对象五大原则

单一职责原则SRP(Single Responsibility Principle)

类的功能要单一,不能包罗万象,跟杂货铺似的。

 

开放封闭原则OCP(Open-Close Principle)

一个模块对于拓展是开放的,对于修改是封闭的,想要增加功能热烈欢迎,想要修改,哼,一万个不乐意。

 

里式替换原则LSP(the Liskov Substitution Principle LSP)

子类可以替换父类出现在父类能够出现的任何地方。比如你能代表你爸去你姥姥家干活。哈哈~~

 

依赖倒置原则DIP(the Dependency Inversion Principle DIP)

高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象。就是你出国要说你是中国人,而不能说你是哪个村子的。比如说中国人是抽象的,下面有具体的xx省,xx市,xx县。你要依赖的抽象是中国人,而不是你是xx村的。

 

接口分离原则ISP(the Interface Segregation Principle ISP)

设计时采用多个与特定客户类有关的接口比采用一个通用的接口要好。就比如一个手机拥有打电话,看视频,玩游戏等功能,把这几个功能拆分成不同的接口,比在一个接口里要好的多。

 

JVM、JRE和JDK

Java工具包的基本构成

 

Java技术体系

 

JVM

 

Java Virtual Machine是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此Java语言可以实现跨平台。

 

JRE

 

Java Runtime Environment包括Java虚拟机和Java程序所需的核心类库等。核心类库主要是java.lang包:包含了运行Java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包

 

如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

 

JDK

 

Java Development Kit是提供给Java开发人员使用的,其中包含了Java的开发工具,也包括了JRE。所以安装了JDK,就无需再单独安装JRE了。其中的开发工具:编译工具(javac.exe),打包工具(jar.exe)等

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/309654.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言——扫雷

扫雷是一款经典的小游戏,那如何使用C语言实现一个扫雷游戏呢? 一、全部源码 直接把全部源码放在开头,如有需要,直接拿走。 源码分为三个文件: test.cpp/c 主函数的位置 #include "game.h"int main() {…

电影《海王2》观后感

上周看了电影《海王2》,整体特效和打斗还是非常不错的,自己在写文章的时候,看完电影已经一周了,相当于是叙事自我在描述这段经历。 (1)体验自我VS叙事自我 首先简单说明下“体验自我”和“叙事自我”&…

数据库系统原理例题之——SQL 与关系数据库基本操作

SQL 与关系数据库基本操作 第四章 SQL 与关系数据库基本操作【例题】一 、单选题二 、填空题三 、简答题四 、设计题 【答案&解析】一、单选题二、填空题三、简答题四、设计题 【延伸知识点】【延伸知识点答案&解析】 第四章 SQL 与关系数据库基本操作 【例题】 一 、…

网络技术基础与计算思维实验教程_4.1_PSTN和以太网互连实验

实验内容 实验目的 实验原理 关键命令说明 实验步骤 构建以太网 工作区中放置路由器 交换机 PC机 直通线互连PC0和交换机 交换机和路由器 构建PSTN 放置PSTN 放置PC 为路由器安装modem 打开电源 再为终端安装modem 单击路由器选择图形配置 这个IP地址将成为PC0的默认网关地…

超详细YOLOv8姿态检测全程概述:环境、训练、验证与预测详解

目录 yolov8导航 YOLOv8(附带各种任务详细说明链接) 搭建环境说明 不同版本模型性能对比 不同版本对比 参数解释 模型解释 训练 训练示意代码 训练数据与.yaml配置方法 .yaml配置 数据集路径 标签数据说明 训练参数说明 训练过程示意及输出…

maven在pdf转image上的陷阱

在pdf转image上&#xff0c;需要两个插件&#xff1a; <dependency><groupId>org.apache.pdfbox</groupId><artifactId>fontbox</artifactId><version>2.0.4</version></dependency><dependency><groupId>org.xht…

数据分析硬核工具Origin各版本安装指南

下载链接 https://pan.baidu.com/s/12mENFtRFdNaLzVKmE6w_Uw?pwd0531 1.鼠标右击【Origin 2022(64bit)】压缩包&#xff08;win11及以上系统需先点击显示更多“选项”&#xff09;选择【解压到 Origin 2022(64bit)】。 2.双击打开解压后的【Origin 2022(64bit)】文件夹。 3.…

东方甄选小作文事件最大的赢家是谁? 董宇辉还是俞敏洪

有人说东方甄选小作文事件没有赢家&#xff0c;小马识途营销顾问认为小作文事件最终也没有输家。就公司来讲&#xff0c;有机会培养更多优秀主播&#xff0c;未来发展更健康了&#xff1b;就俞老师来讲&#xff0c;是把宇辉的薪酬和职位提高了&#xff0c;这些也是宇辉本来就应…

SQL注入【ByPass有点难的靶场实战】(九)

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性&#xff0c;仅供安全研究与学习之用&#xff0c;读者将信息做其他用途&#xff0c;由Ta承担全部法律及连带责任&#xff0c;文章作者不承担任何法律及连带责任。 0、总体思路 先确认是否可以SQL注入&#xff0c;使用单…

无表情包不MEME,PADD 最具潜力的BRC20 meme

BRC20 出圈&#xff0c;PADD 埋伏正当时 近期&#xff0c;市场向好&#xff0c;BRC20 在一定程度上推动了牛市的进程&#xff0c;基于BRC20的生态正在蓬勃发展&#xff0c;meme coin 已经成为生态中不可或缺的一部分&#xff01; 投资 meme coin 要的是以小博大&#xff0c;sat…

vivado CDC约束-“设置总线倾斜”对话框

“设置总线倾斜”对话框 在AMD Vivado™ IDE中&#xff0c;可以通过多种方式设置总线偏斜约束&#xff1a; •通过时间约束编辑器。选择窗口 → 时间限制 → 断言 → 设置总线倾斜。从“时序约束编辑器”中&#xff0c;可以添加、删除或修改总线扭曲约束。 注意&#…

自制双色球/大乐透摇奖小程序代码

自制双色球/大乐透摇奖小程序 双色球/大乐透 双色球/大乐透等彩票摇奖深受大众彩迷的喜爱&#xff0c;但是每次摇奖的随机性总是有内部操作的空间&#xff0c;为了将降低可能存在的黑幕&#xff0c;本人自制了简单的双色球/大乐透摇奖小程序,可以供官方参考&#xff1a; def…