一、Java简介
Java是一种广泛使用的编程语言,Java的设计初衷是“一次编写,到处运行”,这得益于其跨平台的特性,即编写的Java程序可以在任何支持Java虚拟机(JVM)的平台上运行,无需修改。
Java的主要特点包括:
- 面向对象:Java是一种纯面向对象的语言,它支持类、继承、封装和多态等面向对象的基本概念。
- 可移植性:Java程序通过JVM在不同的操作系统上运行,这使得Java程序具有高度的可移植性。
- 健壮性:Java提供了强类型检查、数组边界检查、异常处理等机制,使得Java程序更加健壮。
- 安全性:Java通过沙箱安全模型、类加载器、安全管理器等多种机制来确保程序的安全性。
- 分布式:Java支持多种网络协议,可以方便地开发分布式应用,如远程方法调用(RMI)和Web服务等。
- 多线程:Java内置对多线程的支持,可以通过线程(Thread)和并发库(如Executors框架)来编写高效的多线程程序。
- 丰富的库:Java标准库(Java Standard Edition, JSE)提供了大量的类和方法,用于执行常见的编程任务,如输入/输出、网络通信、数据库连接等。
Java文件运行过程
- 编写源代码(.Java)
- 编写Java文件(编译生成.class文件)
- 在JVM 上运行.class文件
二、Java语言基础语法
八大基础数据类型
1.整型(Integer Types)
- byte:占用1个字节,取值范围为-128到127。
- short:占用2个字节,取值范围为-32,768到32,767。
- int:占用4个字节,是Java中最常用的整数类型,取值范围非常大,通常为-2,147,483,648到2,147,483,647。
- long:占用8个字节,用于表示非常大的整数,取值范围极大,需要在数值后加L或l来声明。
2.浮点型(Floating-Point Types)
- float:占用4个字节,用于表示有小数部分的数值,需要在数值后加F或f来声明。
- double:占用8个字节,是Java中默认的浮点类型,表示范围更广,精度更高。
3.字符型(Character Types)
- char:占用2个字节,用于表示单个字符,可以存储Unicode字符集中的任何字符。
4.布尔型(Boolean Type)
- boolean:不是以数值形式存储,而是表示逻辑上的真(true)或假(false)。
三、面向对象三大特性:封装、继承与多态
1.封装:封装是隐藏对象的属性和实现细节,仅对外公开接口(即方法)与对象进行交互。封装是保护对象内部状态、属性和实现细节免受外部代码直接访问的一种机制。它使得代码更加模块化,并且有助于降低对象之间的耦合度。
特点:
- 隐藏内部实现细节。
- 只对外公开必要的接口。
- 提高了数据的安全性。
- 提高了代码的复用性。
实现方式:
- 使用访问修饰符(如Java中的private、protected、public等)来控制对类成员的访问。
- 提供公共的getter和setter方法来访问和修改私有成员。
2.继承:继承是一种代码复用的方式,它允许我们定义一个类(子类或派生类)来继承另一个类(父类或基类)的属性和方法。子类可以拥有父类的所有属性和方法,并且可以添加新的属性和方法或覆盖(重写)父类的方法。
特点:
- 提高了代码的重用性。
- 实现了代码的扩展性。
- 建立了类之间的层次关系。
实现方式:
- 在定义子类时,使用extends或inherits关键字来指定继承的父类。
- 子类可以重写父类的方法,以提供特定的实现。
3.多态:多态是指允许不同类的对象对同一消息作出响应。在面向对象编程中,多态性通常通过方法的重写(Override)和重载(Overload)来实现。此外,接口和抽象类也是实现多态性的重要手段。
特点:
- 提高了程序的扩展性和灵活性。
- 允许使用父类类型的引用指向子类对象。
- 可以在运行时决定调用哪个类的方法。
实现方式:
- 方法重写:子类可以提供一个特定签名的方法实现,该方法在父类中已有定义。运行时,将根据实际对象的类型来调用相应的方法。
- 方法重载:在同一个类中,可以有多个同名方法,只要它们的参数列表不同即可。调用时将根据传入的参数类型与数量来选择具体的方法。
- 接口和抽象类:通过定义接口或抽象类,子类可以实现或继承它们,从而提供具体的实现。这允许在不知道具体实现类的情况下,编写使用这些接口或抽象类的代码。
四、引用数据类型
引用数据类型不是直接存储数据值,而是存储对某个对象的引用(即内存地址)。
Java中的引用数据类型包括:
- 类(Class Types):用户自定义的类,如String、ArrayList等,都是引用数据类型。
- 接口(Interface Types):是一种特殊的引用类型,是方法声明的集合。
- 数组(Array Types):数组是固定大小的、同类型元素的集合,可以是基本数据类型的数组,也可以是引用数据类型的数组。
五、为什么Java里有基本数据类型和引用数据类型?
引用类型在堆里,基本类型在栈里。
栈空间小且连续,往往会被放在缓存。引用类型cache miss率高且要多一次解引用。
对象还要再多储存一个对象头,对基本数据类型来说空间浪费率太高。
对文章感兴趣的可以关注公众号“编程百事通”。
本人已上岸,从培训机构花18888元买的资料用不上了,现无偿分享,需要Java基础知识点总结以及Java实战项目的后台私信发送“1”,即可免费领取。记得点赞转发。