3.Java基础知识 文章目录一、Java语言特点 面向对象和面向过程的区别1. java语言的特点2. 面向对象和面向过程的区别核心思想对比主要区别详解举例说明实现“开车从A点到B点”优缺点与适用场景二、 字面量三、变量四、进制五、原码反码和补码六、数据类型1.概念2.作用3.分类:引用数据类型和基本数据类型以下为基本数据类型七、关键字及其使用八、标识符一、Java语言特点 面向对象和面向过程的区别1. java语言的特点简单易学有丰富的类库语法相对简洁去除了C中复杂的特性如指针、多重继承并提供了自动垃圾回收机制, 。面向对象Java是完全面向对象的语言支持封装、继承、多态三大特性所有代码都写在类中让程序耦合更低内聚性更高。平台无关性跨平台通过“一次编写到处运行”的Java虚拟机JVM实现编译后的字节码可以在任何安装了JVM的操作系统上执行。健壮性与安全性强类型检查、异常处理机制、自动内存管理垃圾回收减少了程序崩溃的可能安全管理器Security Manager和字节码验证器提供了运行时的安全保护。分布式支持内置了网络编程库如java.net方便开发分布式应用和Web服务。多线程支持在语言级别提供了多线程机制Thread类、Runnable接口便于开发并发程序。动态性支持运行时加载类、反射Reflection机制使得程序在运行期间能够动态获取信息和调用方法。进程Process是操作系统进行资源分配和调度的基本单位。每个进程都有自己独立的内存空间代码段、数据段、堆栈等进程间的数据共享需要通过进程间通信IPC机制如管道、消息队列、共享内存等来实现。一个进程崩溃通常不会影响其他进程。线程Thread是进程中的一个执行单元是CPU调度和分派的基本单位。同一个进程内的多个线程共享进程的内存空间和系统资源如打开的文件、全局变量等因此线程间通信更加高效但同时也带来了数据同步和线程安全的问题。关系与区别包含关系一个进程可以包含多个线程。资源开销进程创建、切换和销毁的开销远大于线程。通信方式进程间通信复杂线程间通信简单直接读写共享内存。健壮性一个线程崩溃可能导致整个进程崩溃而进程之间是隔离的。Java中的多线程Java在语言层面通过java.lang.Thread类和java.lang.Runnable接口提供了对多线程的直接支持使得开发者能够方便地创建和管理线程编写并发程序充分利用多核CPU的计算能力。2. 面向对象和面向过程的区别面向对象编程Object-Oriented Programming, OOP和面向过程编程Procedure-Oriented Programming, POP是两种主流的程序设计范式它们在思想、结构和适用场景上存在显著差异。核心思想对比对比维度面向过程 (POP)面向对象 (OOP)核心思想以过程函数为中心关注解决问题的步骤和流程。以对象数据行为为中心关注问题域中实体的属性和交互。程序组成由一系列函数或过程构成数据与函数分离。由一系列对象构成每个对象封装了数据属性和操作数据的方法行为。数据与操作数据通常作为全局变量或在函数间传递操作围绕数据展开。数据和对数据的操作被封装在对象内部通过对象的方法进行访问和修改。代码复用主要通过函数库和模块化实现。通过继承、组合、多态等机制实现更高层次的复用和扩展。典型语言C、Pascal、早期的 BASIC。Java、C、Python、C#。主要区别详解程序设计角度面向过程思考“怎么做”How。将问题分解为一系列步骤然后编写函数来实现每个步骤最后按顺序调用这些函数。面向对象思考“谁来做”Who。将问题分解为一系列对象定义每个对象的职责和行为通过对象之间的协作来解决问题。数据与代码的关系面向过程数据和处理数据的函数是分离的。函数是主动的数据是被动的。面向对象数据和处理数据的函数被捆绑在一起形成“对象”。对象是主动的它知道自己能做什么方法。三大特性OOP独有封装Encapsulation将对象的属性和实现细节隐藏起来只对外暴露必要的接口。提高了安全性和代码的模块化。继承Inheritance允许创建新类子类基于现有类父类来构建实现代码的复用和层次的抽象。多态Polymorphism同一操作作用于不同的对象可以产生不同的执行结果。提高了程序的灵活性和可扩展性。程序结构面向过程程序结构是线性的或树状的主函数调用一系列子函数。面向对象程序结构是网状的由多个对象通过消息传递进行交互。举例说明实现“开车从A点到B点”面向过程思路启动发动机()挂挡()踩油门()控制方向盘()刹车()熄火()关注的是“开车”这个动作的步骤面向对象思路涉及的对象驾驶员、汽车。汽车对象有属性品牌、颜色、速度、油量有方法启动()、加速()、转向()、刹车()。驾驶员对象有方法驾驶(某汽车)。程序表现为驾驶员.驾驶(汽车)在驾驶方法内部驾驶员对象会调用汽车对象的一系列方法。关注的是“谁”参与以及“谁”能做什么优缺点与适用场景面向过程优点流程清晰适合解决步骤明确的简单问题性能通常更高无对象创建和消息传递开销。缺点代码复用性差难以应对复杂需求变化数据和函数分离导致维护困难。适用场景性能要求极高的系统如操作系统内核、嵌入式系统、简单的脚本或工具。面向对象优点易于建模现实世界代码复用性高通过继承、组合易于维护和扩展封装变化更适合大型复杂项目。缺点性能略有开销设计复杂度相对较高。适用场景大型软件系统、GUI应用程序、业务系统、需要长期维护和迭代的项目。二、 字面量计算机是用来处理数据的字面量Literal是指在源代码中直接表示一个固定值的书写方式。三、变量变量就是用来存储一个数据的内存区域可以理解成盒子且里面存储的数据可以变化。变量使用的注意事项变量使用前要声明变量声明后不能存储其他类型变量变量的有效范围是从定义开始到“}”截止,同一个范围内部不能定义2个同名的变量。变量定义的时候可以没有初始值但是使用的时候必须给初始值。四、进制二进制:由0 1 组成,以0b开头八进制:由0到7组成,以0开头二进制中三位一组十六进制:由1到f组成,以0x组成二进制中四位一组数据在计算机底层都是采用二进制存储的最小单位是字节一个字节等于8个二进制位1B8b。五、原码反码和补码原码:最高位为符号位,0表示正,1表示负,其余表示数值大小反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外补码:正数的补码与其原码相同;负数的补码是在其反码末尾1六、数据类型1.概念java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。2.作用数据类型就是约束变量存储数据的形式。3.分类:引用数据类型和基本数据类型以下为基本数据类型整数型byte 一个字节 -128—127short 两个字节 -215—215-1int 四个字节 -231—231-1long 八个字节 -263—263-1L/l浮点型float 四个字节 -3.403E38—3.403E38double 八个字节 -1.798E308—1.798E308F/f字符型char 两个字节 0—65535布尔型Boolean 理论上值占八分之一个字节,因为一个开关就决定true和false,但是java中boolean类型没有指明明确的大小七、关键字及其使用特点组成字母全部为小写注意事项goto与const作为保留字存在目前并未使用八、标识符概念就是给类、接口、方法、变量等起名字时使用的字符序列组成规则英文大小写字符、数字、$和下划线_注意事项不能以数字开头、不能是java中的关键字、区分大小写命名规则包要求全部小写一般是公司域名倒着写例com.heima.包的作用 www.heima.com类或接口如果是一个单词要求首字母大写如果多个单词要求每个单词首字母大写驼峰命名方法和变量如果是一个单词每个字母都小写如果是多个单词从第二个单词开始首字母大写常量如果是一个单词所有字母大写如果是多个单词也是所有单词大写但是用_下划线分开