自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

原创 07、多态 -- 面向对象的特性

一个引用类型的变量可以指向多种实际对象,这一点称为多态(polymorphism)。引用类型的变量在运行时能够自动地选择适当的方法,称为动态绑定(dynamic binding)。这种多态也叫做:运行时多态。多态是一项让程序员“将改变的事物与未变的事物分离开来”的重要技术。可以消除类型 之间的耦合关系。提高代码的可扩展性和复用性。运行时多态的 实现:通过方法的重写来实现的。父类引用可以指向子类对象,通过。

2025-05-21 09:17:32 627

原创 06、继承 -- 面向对象的特性

继承是用来表示类之间的is-a 关系。如:猫是一种哺乳动物。关键字 extends 指示正在构造的新类派生于一个已存在的类。这个已存在的类称为超类(superclass)、基类(base class)、父类(parent class)。新类称为子类(subclass / child class)、派生类(derived class)。超类和子类是 Java 程序员最常用的两个术语。超”(super)和 “子”(sub)来源于计算机科学与数学理论中。

2025-05-21 09:13:55 1029

原创 05、封装 -- 面向对象的特性

封装(Encapsulation) – 如何隐藏信息保护数据。

2025-05-20 14:00:51 1017

原创 04、抽象 -- 面向对象的特性

设计思想。

2025-05-20 13:54:05 963

原创 03、类 之间的 关系 的图解

类之间最常见的关系有:继承(“is-a”) :一个类继承了 另一个类。实现不易解耦的复用。通过多态实现解耦(即:动态更换对象)。关联(“has-a”) :一个类 作为 另一个类的成员变量。实现容易解耦的复用。关联:两个类关系独立、平等。通过接口或抽象类实现解耦(即:动态更换关联的对象)。聚合:两个类关系独立、可分割的整体与个体。通过接口或抽象类实现解耦(即:动态更换关联的对象)。组合:两个类关系。

2025-05-20 13:47:32 681

原创 02、类、对象 -- 面向对象的核心概念

一、类(Class)一、类(Class)

2025-05-17 15:00:50 939

原创 01、面向对象 vs 面向过程 vs 函数式

如:FileConstants、MysqlConstants 等,FileUtils、StringUtils 等。相应的 VO(View Object)、BO(Business Object)、Entity。Controller 类、Service 类、Repository 类中。一个类,无论是否需要,为所有属性都提供了 get / set 方法。两个语法概念,不支持面向对象编程的特性(如:封装、继承、多态),为核心,把问题分解成一个个步骤,对每个步骤进行相应的抽象,形成。

2025-05-17 14:56:29 835

原创 10、final 域重排序规则

对于 final 域,处理器和编译器要遵守以下两个重排序规则。

2025-05-17 14:46:44 1028

原创 09、关键字 this、static、super、final 等

【abstract 不能与 final 方法同时出现】。Abstract 与 final 永远互斥。对于 abstract 方法来说,该方法应该有子类重写,final 方法不能被重写。对于 abstract 类来说,该类主要用于派生子类。final 类不能被派生。【abstract 与 static 不能同时修饰方法】static 修饰方法的时候用类来调用方法。用类调用 abstract 方法没有意义,所以会出错。【abstract 与 private 不能同时修饰方法】

2025-05-16 10:21:49 983

原创 08、数组

Object 类中的一个本地方法,这里虽然返回 Object,看着需要强制类型转换,但 Object 子类重写了这个方法,会返回相应的类型。如:int[][] twoDimensionalArr = {{1,2,3},{4,5,6},{7,8,9}};如:int[][] twoDimensionalArr = {{1,2,3},{4,5},{6,7,8,9}};为了避免 d,e,f,g,h 这几个数据会被搬移三次,我们可以先记录下已经删除的数据。是一个本地方法,方法对应的实现不在当前文件里,而是在。

2025-05-16 09:34:19 706

原创 07、流程控制

与任何程序设计语言一样,Java 支持使用条件语句和循环结构来确定控制流程。

2025-05-16 09:23:49 781

原创 06、数据类型之间的转换

十进制小数乘 2 取积中的整数部分。然后,将积中的小数部分继续乘 2 取积中的整数部分,直到积中的小数部分为 0 为止。用十进制数除 2 取余,得到商之后继续除 2 取余,直到商为小于 1 为止。:父类转子类,需强制转换,需强制转换且确保对象实际实现接口。:1 符号位 + 11 指数位 + 52 尾数位(精度。:1 符号位 + 8 指数位 + 23 尾数位(精度。:父类转子类,需强制转换,且需类型检查(否则抛出。整型溢出时,根据补码规则循环回绕,导致符号翻转。:将大范围类型转换为小范围类型时,需强制转换。

2025-05-15 09:41:52 769

原创 05、运算符

结果 200 将被视为字符串,并与字符串 Javatpoint 连接,以生成 Javatpoint200 的输出。数字 10 和 20 将首先乘以 200,因为乘法的优先级高于加法。“+” 号左右,一边为 String 类型时,则变成字符连接符。首先, 10 和 20 被视为数字,相加为 30。会对两侧表达式均求值(即使左侧已确定结果)。然后,将结果 200 视为字符串并与字符串。结果中的小数部分,返回一个整数结果(不是。(一个为 1 一个为 0 ,才位 1)然后,30 被视为字符串,并与字符串。

2025-05-15 09:21:17 848

原创 04、字面量(直接量)、变量、常量

在 Java 中,编译时常量化(Compile-Time Constant) :是指某些变量或表达式的值在编译阶段就能被确定,并被编译器直接替换为字面量的过程。这种常量化的核心是值不可变,且其值在编译时即可完全计算出来。4.2、示例源码// ✅ 表达式常量: 62.831...// ❌ 非常量表达式(包含方法调用)// 实例变量// 类变量static {// 直接字面量// 编译时常量化 -- (类似:宏替换)

2025-05-15 08:50:44 771

原创 03、数据类型

如:‘A’ 是编码值为 65 的字符常量。“A” 是包含一个字符的。如:值 0 相当于布尔值 false , 非 0 值相当于布尔值 true。的 int、long、short 或 byte 类型。,其范围从 \u0000 ~ \uFFFF。有两个值:false 和 true,用来判定。→ 表示 ASCII 值为 0 的字符。现在只能描述 Unicode 字符集中,(八进制的 141 = 十进制的 97)float 最大可以保留。无符号(unsigned)形式。2、接口(Interface)

2025-05-15 08:40:46 667

原创 03、类变量、实例变量、局部变量

在程序的执行过程中,它的值是可以被改变的。语法格式:【修饰符】类型 field名 = 默认值;变量名的命名规则:首字母小写,有多个单词组成时,要满足驼峰标识。

2025-05-14 16:02:16 833

原创 02、访问控制 修饰符

Java 中,访问修饰符(Access Modifiers)用于控制类、方法、变量等成员的可见性和访问权限。它们定义了其它类或模块是否可以访问某个成员(如:调用方法、读取字段等)。

2025-05-14 15:55:28 213

原创 01、包、import

类似于书本的“目录”,帮助读者快速定位内容,但目录本身不影响书籍内容的执行速度。编译时间,但影响可以忽略不计(现代 IDE 和编译器。语句告诉编译器在编译时如何查找类或静态成员的。// 导入 Math 类下所有的静态成员。引入声明(如:函数、类定义),否则。在运行时动态加载,确保类唯一性。( compiler)的工作。是预处理指令,在编译前将。不将代码复制到当前文件中。仅是为了简化代码书写。2、包提供了更容易的的。使项目的组织更加清晰。

2025-05-14 15:53:42 960

原创 08、初始化块 -- 成员变量初始化

修饰符 ] {// 可执行性的语句。修饰符 :只能出现 static有 static,说明它是类初始化块静态初始化块。无 static,说明它是实例初始化块非静态初始化块。由于初始化块没有名字。所以,它只能被“隐式”执行。

2025-05-14 15:37:15 863

原创 07、构造器 (constructor) -- 初始化成员变量

在创建对象时,被JVM自动调用的特殊方法。注意:构造器不能被继承不能被重写、可以被重载。2、声明构造器的语法【修饰符】构造器名(多个形参声明) {// 0~N 条可执行的语句。【修饰符】 – 可以省略。还可以是 public | protected | private。构造器名称 –不能省略。必须与类名相同。形参声明 –形参名满足首字母小写 + 驼峰标识。多个形参声明之间用英文逗号隔开。

2025-05-14 15:33:43 658

原创 02、注释

用于解释说明程序的文字。

2025-05-13 09:09:20 118

原创 01、Java 标识符、关键字、保留字、直接量、分隔符

否,在 Java 中,delete、next、main、exit 和 null 不是关键字。(1) 由字母(中文字符、日文字符、韩文)、数字、下划线、$组成,不能以数字开头。(4) 别用 Java API 里面的类名作为自己的类名。: 不可继承/不可修改(类、方法、变量)。: 保留未使用(类似 C 语言的跳转)。: 保留未使用(类似 C 的常量声明)。(隐式): 包级私有(无需显式声明)。,(比如:类名,方法名,变量名等)。: 尝试执行可能抛出异常的代码块。: 声明方法可能抛出的异常类型。

2025-05-13 09:07:36 727

原创 06、方法调用

方法调用不等同于方法中的代码被执行。方法调用阶段唯一的任务就是确定被调用方法的版本(即:调用哪一个方法暂时还未涉及方法内部的具体运行过程。Java 的 Class 文件的编译过程中不包含传统程序语言编译的连接步骤。因此,一切方法调用在Class 文件中都只是符号引用,存储在静态常量池中。而不是方法在实际运行时,内存布局中的入口地址(即:直接引用这个特性给 Java 带来了更强大的动态扩展能力,但也使得。

2025-05-12 20:05:46 420

原创 05、方法参数 的 值传递 与 引用传递

Java没有引用传递,所有参数传递均为值传递。对于引用类型,传递的是对象引用的副本(即:对象的内存地址的副本而非引用本身。方法内部只能修改对象引用的副本(即:对象的内存地址的副本无法改变原对象引用指向的对象。

2025-05-12 19:58:34 458

原创 04、方法

main() 方法一定是静态的。如果 main() 允许是非静态的,那么在调用 main 方法时,JVM 就得实例化它的类。在实例化时,还得调用类的构造函数。如果这个类的构造函数有参数,那么就会出现歧义。是的,main 方法可以在 Java 中同步,synchronized 修饰符允许用于 main 方法的声明中,这样就可以在 Java 中同步 main 方法了。// 该方法可以正常运行。System.out.println("同步 main 方法");

2025-05-11 12:17:30 1080

原创 04、JDK 常用的基本工具

当 Java 类的本地方法发生变更时,重新生成头文件以保持本地代码与 Java 代码的一致性。当需要在 Java 中调用 C/C++ 编写的函数(如:高性能计算、硬件操作)时。:方法级 CPU 热点抽样(Sampling)和精确追踪(Profiling)。:堆/非堆内存使用情况(Eden、Survivor、Old Gen 等):堆转储(Heap Dump)生成与分析(对象实例分布、引用链追踪)。:线程状态可视化、线程转储(Thread Dump)与死锁检测。,确保 Java 与本地代码的正确对接。

2025-05-08 14:29:58 890

原创 03、Java 配置 环境变量 的作用

Java 程序所需要的。因此,添加在此环境变量里边。让操作系统能找到我们所使用的命令。后边的两个 jar 包中的类,是。告诉 JVM ,去哪里去找我们。

2025-05-08 14:28:19 224

原创 02、JDK、JRE、JVM、JIT

2025-05-08 14:18:38 275

原创 01、jdk 的迭代版本

1、Oracle Java SE 支持路线图(2015-05-04GA Date:发布日期。Premier Support Until:首席支持截止日期Extended Support Until:延长支持至Sustaining Support:维护支持Indefinite:不定期Long-Term-Support (LTS) releases:长期支持版本。

2025-05-08 14:16:19 413

原创 06、Java 语言的编码方案

Java 官方文档明确指出其字符和字符串基于Unicode标准Java 语言规范文档的第 3 章“词法结构”中明确提到:Java 编程语言使用16 位代码单元的序列来表示文本,采用UTF-16 编码。Java 的 char 类型是UTF-16 的 code unit,占用2 字节(也就是 16 位)。char 类型表示不了的字符,可以用字符串存储。。Java 的 字符串是UTF-16 code unit 的序列。

2025-05-08 11:55:13 763

原创 08、System.gc()

某些 Native 资源(如:堆外内存)可能依赖 GC 触发回收。JVM 的自动优化策略(如分代收集、动态调整 GC 频率)。不同 JVM 实现(如 HotSpot、OpenJ9)对。在内存敏感的性能测试中,手动触发 GC 以观察。是否触发 GC、何时触发、使用哪种垃圾回收器。(如:Serial GC、G1 GC 等)。尤其在 Full GC 时,因此,代码行为可能不一致。仅向 JVM 发送一个。2、使用场景(谨慎使用)(通过 JVM 参数。

2025-05-08 11:44:50 134

原创 07、垃圾回收

信任 JVM 的自动管理,优先优化代码逻辑和 JVM 参数(如:选择合适的 GC 算法)。:99% 的场景应依赖 JVM 的自动管理,手动调用通常弊大于利。JVM 的垃圾回收策略(如分代回收、动态调整频率)可能被干扰。JVM 会根据内存使用情况和 GC 算法(如:G1、ZGC)不同 JVM 实现(如:HotSpot、OpenJ9)对。:复用对象(如:对象池)、避免不必要的临时对象。:关闭文件流、数据库连接等(用。阻塞应用线程,影响性能。:可通过 JVM 参数。:自动内存回收机制。,且需权衡性能风险。

2025-05-08 11:42:36 281

原创 05、类名、文件名、主类

2025-05-08 11:32:27 166

原创 04、Java 的两种核心机制

2025-05-08 11:29:09 396

原创 03、Java 与 C++

一、联系一、联系1、面向对象编程(OOP)两者均支持封装、继承、多态等面向对象特性。使用类(class)和对象(object)组织代码,提升模块化和可维护性。2、语法相似性基础语法(如:变量声明、循环、条件语句)高度相似,便于开发者跨语言迁移。3、标准库支持均提供丰富的标准库。如: Java 的java.util和 C++ 的 STL(标准模板库4、Java 语言的底层一大部分基于 C++ 实现的内存管理、垃圾回收、即时编译操作系统本地代码本地方法。

2025-05-08 11:13:33 714

原创 02、Java 语言的特点

简单性、面向对象、可移植(平台无关)、安全、健壮性、编译&解释、高性能、多线程、动态。1、简单性(Simplicity)上世纪九十年代,和团队希望构建一个无需深奥训练,就可以进行编程的系统。在设计 Java 时,以便系统更容易理解,就让 Java 的语法尽可能的接近 C++。Java 的语法算是 C++ 语法的一个“纯净”版本。如:没有头文件、指针、结构、联合、操作符重载、多重继承、手动管理内存等。实现机制去复杂化。

2025-05-08 11:04:45 939

原创 01、Java 是什么

覆盖企业级开发、大数据、移动应用等领域,拥有丰富的。、面向对象、支持自动内存管理(垃圾回收)。类库、框架、Web 服务器、中间件。围绕 Java 语言,出现了各种。跨操作系统的可移植性。

2025-05-08 10:54:12 158

原创 13、整数、浮点数 在计算机中的存储形式

一、原码、反码、补码一、原码、反码、补码关于整数的存储最高位是符号位。1 负数,0 整数,所有的数字在计算机里都是以补码的形式保存的。方便计算机的快速的计算。

2025-05-08 10:01:37 1164

原创 12、URL 编解码

URL 编码及其实现原理

2025-03-26 17:20:05 1854

原创 11、如何解决乱码问题

乱码的产生原因,以及常见的解决乱码的方案

2025-03-26 17:03:26 180

变色的进度条

教你瞬时改变进度条的颜色。如何瞬时改变网页的背景颜色。对于一切网页特殊的需求编写的。

2013-03-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除