自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 反射和设计模式

结合反射后,可通过配置文件 + 反射动态创建产品对象:将产品类的全限定名配置在 properties 或 xml 中,工厂类读取配置后通过反射实例化对象,新增产品时仅需修改配置,无需改动工厂代码。- 结合反射后,可通过注解标记策略类,程序启动时扫描所有策略类并通过反射实例化,存入策略容器,后续直接从容器中获取策略对象执行。反射是程序运行时自省自身结构的能力,核心是打破编译期的类型绑定,实现动态操作类或对象的成员。- 动态创建对象:无需通过 new 关键字,直接通过类的全限定名实例化对象。

2025-12-24 13:37:36 335

原创 多线程(3)

(3) Executors:线程池对应工具类(工厂类:提供线程池对象的类),内容提供大量静态方法,用于获取线。(2) 如果一个线程调用了 wait方法,此线程进入等待状态,wait() -->进入无限期等待状态。(1) 同步调用:调用者一旦发生方法的调用,则调用者需要停下,被调用的方法方法先执行,被调用的方。1. 线程池:线程容器,预先创建一些线程存储在池中,线程池中线程可以被重复的使用。2. 线程池的好处:减少创建线程和销毁线程的次数,反复使用池的线程,从而提高效率。

2025-12-19 09:24:00 382

原创 多线程(2)

(Blocked状态),只有当其他线程释放锁标记,此线程获取锁标记,才结束阻塞状态,同时获取cpu,可以执行{}中 的内容。2. void join() : 让某 线程加入到自身任务中,在哪个线程中调用其他线程join方法,则代表此线程让步其他线程。d. 执行的原理:当线程获取临界资源的锁标记时,锁标记空闲,则能获取该对象的锁标记,获取锁标记之。但是当线程获取临界资源对象的锁标记时,锁标记被其他线程占用,则此线程进入阻塞状态。1. 临界资源:多线程并发时,被多个线程共享的同一个对象,称为临界资源。

2025-12-17 13:59:06 394

原创 多线程(1)

2. 主线程:目前程序为单线程,此线程以main函数的开始为开始,以main函数的结束为结束,此线程被称为主。3. 多进程并发执行的原理:微观上串行(一个一个的进程进行执行,获取cpu时间片的进程具有执行权);(2) 数据:栈空间独立(每一个线程有独立的栈空间);b. 创建线程的目标对象:Mytarget mt = new MyTarget();c. 开启线程:t1.start();d. 开启线程:t2.start();1. 进程:操作系统(OS)中,每一个被执行的应用程序。线程也被称为轻量级的进程。

2025-12-16 16:54:49 297

原创 Map集合体系(2)

NavigableMap<K, V> :继承自 SortedMap ,提供了更多导航方法(如 lowerKey 、 floorKey 、 ceilingKey 、 higherKey ), TreeMap 也实现了它。- SortedMap<K, V> :继承自 Map ,是有序 Map 的父接口, TreeMap 实现了它。- entrySet() :返回所有键值对的集合( Set<Map.Entry<K, V>> )。4. Hashtable<K, V> (古老类,不推荐)

2025-12-08 11:18:11 271

原创 异常(3)

1. 类继承Exception 或是其子类,如果类继承了RuntimeException或是RuntimeException的子类,则抛出的异常。(2) 带有String类型参数的构造方法,借助super()为父类Throwable异常信息属性赋值。1. 子类的方法名、形参列表、返回值类型和父类相同。2. 子类的方法的访问修饰符和父类相同或是更宽。七、方法覆盖【终结版】【面试+开发重点】3. 子类不能抛出比父类更多、更宽的异常。(1) 一个无参数的构造方法。

2025-12-04 13:49:46 170

原创 异常(2)

(3) 语法:修饰符 返回值类型 方法名(形参列表)throws 异常类名1,异常类名2,异常类名3{}b. catch可以利用父类型处理本类型+所有子类型的异常,多态技术的应用。(4) 结果:消极处理异常只是推卸责任,程序还是会因异常而被终止。(6) 注意:消极处理异常时可以 利用父类型处理其子类型的异常。(5) 作用:消极处理异常可以让非运行时异常在编译阶段通过。(2) 位置:在方法声明的位置,进行消极处理异常。}catch(异常类名 e){1. 消极处理异常(声明异常)2. 积极处理异常(捕获异常)

2025-12-03 10:46:01 312

原创 异常(1)

(1) RuntimeException:运行时异常、未检查异常,与RuntimeException有直接或是间接继承关系的异常类。(2) 非RuntimeException:非运行时异常、已检查异常,与RuntimeException没有任何的继承关系的异常类。3. 异常的处理的必要性:减少用户的损失、同时减小给用户带来麻烦,也可以对用户做一些提示信息。(2) 结果:程序中一旦遇到异常,则被终止,不能继续执行异常之后的代码。(1) 产生原因:程序在运行过程中,遇到错误的代码,自动产生异常。

2025-12-02 14:23:14 244

原创 Map集合体系的特点

Hashtable:古老实现,线程安全(效率低),不允许 Key/Value 为 null,已被 ConcurrentHashMap 替代(并发场景推荐后者)。- HashMap(核心实现):基于哈希表,查询、添加、删除效率极高(O(1)),线程不安全,允许 Key/Value 为 null(仅一个 null Key)。- TreeMap:基于红黑树,自动按 Key 排序(自然排序/自定义比较器),查询效率 O(log n),不允许 null Key,适合需要排序的键值对存储。

2025-11-27 14:19:08 268

原创 Collection集合体系

e. Object set(int index , Object o):将指定下标对应元素进行修改,修改为o对象。a. boolean add(Object o):将元素存储到List集合,默认存储在集合的尾部。d. Object remove(int index):删除指定下标对应的元素,返回值代表被删除的对象。b. add(int index,Object o):将指定的元素插入到集合对应的下标位置。元素(add方法时),才完成数组空间分配,数组的初始长度为10,每次扩充为1.5倍。

2025-11-26 15:33:45 244

原创 String是什么?

在几乎所有的编程语言里,字符串都是最基础也最常用的数据类型之一。总的来说,String 就像是编程世界里的"积木",用来搭建各种文字信息。- 拼接:把两个或多个字符串连接在一起,比如 "你好" + "世界" 得到 "你好世界"- 当你对字符串进行"修改"操作时,比如拼接或截取,实际上是创建了一个全新的字符串对象。- 例如,"Python" 这个字符串,索引 0 对应 'P',索引 1 对应 'y'2. 可索引:字符串中的每个字符都有一个位置编号,也就是索引。- 查找:在一个字符串里查找特定的字符或子串。

2025-09-27 14:33:24 1022

原创 1.2 Python 的特点与优势​

Python 是开源的,拥有庞大且活跃的社区。这意味着你可以免费使用和修改 Python,同时社区提供了丰富的第三方库(如 NumPy、Pandas、Django)和文档资源,加速开发进程。Python 凭借其简洁的语法、丰富的生态系统和广泛的适用性,成为数据科学、Web 开发、自动化测试等领域的首选语言。Python 以简洁的语法著称,代码可读性强,减少了不必要的符号和冗余代码。Python 可以在 Windows、macOS、Linux 等多种操作系统上运行,无需修改代码。# 查看数据基本信息。

2025-06-26 16:52:31 752

原创 1.1 Python 的起源与发展历程​

Python 从一个圣诞假期的个人项目,发展成为全球最受欢迎的编程语言之一,其成功源于。未来,Python 将继续在人工智能、科学计算等领域发挥核心作用。

2025-06-25 17:47:49 2154

原创 第十四章 多线程

当多个线程同时执行同步代码块中的代码时,每个线程都要先获取锁对象身上的锁资源,一旦有一个线程抢到了锁,则其他线程不允许进入同步代码块;当抢到锁的线程执行完同步代码块中的程序时,释放锁资源,所有线程重新抢占锁资源。相比来讲,启动线程较为繁琐。当有一个线程开始执行方法,则其他线程运行进入方法,只有等到执行方法的线程执行完成,其他线程才能进入该方法;让当前线程进入睡眠状态,有计时等待状态,当时间到期时,线程会从睡眠状态进入到就绪状态。当线程遇到同步代码块,如果锁资源已经被其他线程占用,则当前线程会进入阻塞状态;

2025-06-19 14:35:17 1454

原创 第十三章:集合 [重点:考试+面试+企业]

理解:集合存储多个对象的容器,集合就是一种工具,在大多数情况下是可以替换数组。总结:如果希望根据对象的属性值判断是否为同一个元素,则需要重写hashCode。中所有的元素需要重新计算位置,这个过程就称为rehash;类型的对象,有序、有下标、元素可以重复;不相等,则将该元素添加到集合中为什么不直接调用equals。如果key不存在,直接添加键值对,返回值为null。都不相等,则直接将当前对象添加到集合 中;:往集合中添加一个对象,成功-true;等,如果相等,则不再添加到集合;

2025-06-19 14:30:36 572

原创 第 十二章:常用类

根据下标获取对应的字符串中的字符,如果给定的下标超过了合法的下标范围,则运行报错,错误信息为:StringIndexOutOfBoundsException(字符串。这种获取字符串对象的形式,产生两个对象,一个在堆空间中,另一个需要查看串池中是否存在该对象,存在-字面值为常量,一旦创建,不能更改,所以完成字符串拼接,需要拷贝一个副文本完成拼接。字符串在当前字符串中第一次出现的首字母的下标,如果没有出现,则返回-1。时,参与转换的String必须是纯数字,否则运行报错,错误信息。修饰,不允许被子类覆盖;

2025-06-19 14:26:46 855

原创 第十一章:内部类

表达式应用场景:对函数式接口的实现(接口中有且只有一个抽象方法称为函数式接口。内部类的分类:成员内部类、静态内部类、局部内部类、匿名的内部类。匿名内部类只能创建一个对象,而且对象的创建和类的定义一起完成。表达式:对匿名内部类的进一步简化,大大的减少了代码的冗余。内部类:定义在一个类 内部的类被称为 内部类。类本身没有自己的类名,是一个特殊局部内部类。匿名内部类必须继承一个父类或是实现一个接口。内部类可以直接使用外部类的属性和方法。有参数,没有返回值接口名 引用 = (有返回值,有参数接口名 引用 = (

2025-06-19 14:23:55 723

原创 第十章:接口

接口与接口之间为多继承关系,如果实现类不想成为抽象类,则需要覆盖接口中所有。由于接口与接口之间为多继承,类与接口之间为多实现的关系,所以利用父类型(如果类实现多个接口时,需要把实现所有接口中所有的抽象方法全部覆盖(的抽象方法,而且覆盖接口中方法时,访问权限必须是public(普通接口:接口中有多个抽象方法,或许还有属性开发中最常见。如果一个类实现接口,需要实现所有方法,包括父接口的。常量接口:接口中没有抽象方法,只有属性【了解】标记接口:也称为 空接口,接口中没有定义任何。

2025-06-19 14:22:51 761

原创 第九章:三个修饰符

注意:不要为了使用方便,将所有属性和方法定义静态的,有些属性必须基于对象而存在,不能被共享,特点:静态属性和创建多少对象没有关系,基于类存在,所有对象共享同一个。通常会将 工具类中方法定义为静态,作用:在类加载的时候,完成静态属性初始化工作。特点:只有方法的声明部分,没有方法实现部分(修饰的属性称为 静态属性、静态变量、类变量。定义在类以内,方法以外局部变量:定义在函数/修饰的方法:允许子类继承,但是不允许被覆盖。3. final修饰的类:不能被继承,没有子。包、类名、父类、属性、构造方法、方法等)

2025-06-19 14:21:03 842

原创 第八章:面向对象-三大特性

如果子类中定义了和父类:方法名、返回值相同,但是形参列表不同的方法,不再是方法的覆盖,而是构成方法重载。默认创建一个对应的父类对象,而且默认采用父类的无参数构造方法完成父类对象的创建。如果子类中定义了和父类方法名相同、形参列表相同、返回值不同的方法,则编译报错。自动检测子类是否覆盖父类中方法,子类覆盖了父类中方法,则优先使用子类的。以父类型的引用调用属性和方法,只能调用父类中定义的属性和方法 -方法的覆盖:子类中定义了和父类中相同的方法。法,通过继承关系,也可以调用父类中的方法。

2025-06-19 14:17:49 802

原创 第七章:面向对象

一个类中不能有同名的成员变量,但是成员变量可以局部变量命名相同,局部变量优先被使用(构造方法在创建对象时,根据指定的实际参数决定利用哪一个构造方法,完成对象的创建(面向对象:首先将一些内容看成一个整体,作为对象,利用对象之间的关系,解决问题。每个对象在堆空间中相互独立,操作一个对象的属性,不会影响其他对象的属性信息。对象的属性:代表对象的特征,有什么特点,对应的数据静态部分,利用变量体现。对象的方法:代表对象有什么功能,能做什么,对应的为动态部分,利用函数/:应用在 一个构造方法中调用本类的其他构造方法。

2025-06-19 14:15:26 592

原创 第六章:数组

访问数组时超过数组的有效下标时,编译通过,运行报错,错误信息为:数组下标越界。同类型的数组变量之间可以相互赋值,传递的是数组中首地址。,由于数组名中存储了数组在内存中首地址,再通过[]注意:分配空间的数据类型和声明的数据类型一致/理解:数组是一组连续的存储空间,可以存储多。数组的遍历:通过数组的下标将数组内容进行一。冒泡排序:每次将相邻的两个元素进行比较,排序:将数组中元素按照一定的规则进行存储。数组的重要因素:数组的长度、数据类型。数据类型对应的字节数访问数组:数组名[将原数组中元素一一复制到新数组中。

2025-06-19 14:12:32 510

原创 第五章:函数

函数从上往下依次执行,如果如果函数的调用,则优先执行被调函数内部的代码,被调用函数执行完毕之后,带着返回值。在很多情况下,函数和调用者之间需要数据交互,调用者需要给函数传递一些交互数据,交互。回归:基于出口的结果,逐层向上回归,依次计算每一层的结果,直至回归到最顶层。形式参数:简称为形参,在函数定义时,约定调用者需要传递的数据类型及参数名。理解:函数和调用者之间的一种数据交互,调用通过调用函数获取的数据结果(实际参数:函数在调用时,给形参赋值的数据,简称为实参。函数定义的位置:定义在类以内,其他的函数以。

2025-06-19 14:09:49 780

原创 第四章:循环结构

执行原理:首先执行循环变量的初始化,执行循环体,循环变量的改变,判断条件,条件成立-利用循环嵌套打印图形:外层循环控制行,内层循环控制列(内层循环有时受外层循环的控制)直到循环条件不成立,结果为false,跳出循环,继续执行循环后面的语句。-true,执行循环体,循环变量的改变,再次判断循环条件,条件成立。循环组成部分:循环变量的初始化、循环条件、循环变量的改变。,则执行循环体,循环变量改变,再次判断循环条件-true。先判断外层循环条件,再判断内层循环的循环条件。特点:先判断,再执行,执行的次数为。

2025-06-19 14:03:14 599

原创 第三章 分支结构

(2) 执行的流程:执行循环变量的初始化(执行一次),判断循环条件,条件成立-true,执行循环体,循环变量的改变,再次判断循环条件,条件成立-true....直到循环条件不成立,结果为。(3) 如果循环条件/循环变量设置的不合理/没有发生改变,可能会出现死循环(ctrl+c终止)for(循环变量的初始化;果,从上往下依次匹配case后面的值,匹配成功,执行对应后面的语句,如果都没有匹配成功,则执行default的语句。(1) 特点:先判断,再执行,执行的次数为 0~n次。

2025-06-19 13:53:41 1722

原创 第二章:变量、数据类型、表达式、运算符

(3) 没有double|float,有long,则结果为long。(4) 没有double|float|long,有int,则结果为。---------以上为开发重点-----------------"奖励手机一部":"蹲起20个";// 先使用a的原始数据,再a自。// 先将a自身加1,再使用的加1之。(2) 没有double,有float,则结果为float。double:8B,双精度,字面值可以加D/d,也可。

2025-06-19 13:48:58 789

原创 第一章:Java的环境搭建

1. 创建一个Java的源文件:以 .java结尾 ( First.java。Windows+MACOS-> 后端开发 linux->部署环境)简单: 将 .java -> 生成 .class 文。2. 注意:实际运行的时候执行 的为 .class ,Java源。(3) JDK:Java开发工具,JDK = JRE+编译器+工。编译:将 java的源文件(.java 结尾的文件) ->运行:.class 文件 -> 通过解释器 -> 逐行解释。(2) JRE:Java运行环境,JRE= 解释器+JVM。

2025-06-19 13:41:52 373

原创 初识Deepseek

在智能汽车领域,吉利、岚图、比亚迪等车企纷纷与DeepSeek达成合作,通过其认知大模型与车载AI系统的融合,解决智能汽车模糊意图理解与主动服务能力的难题,为用户带来更智能便捷的出行体验。到2025年1月20日,DeepSeek正式发布的DeepSeek-R1模型,更是在数学、代码、自然语言推理等任务上,性能比肩OpenAI o1正式版,展现出强大的实力。随着技术的不断迭代,它有望在更多领域发挥更大的作用,为人们的生活和工作带来更多的便利与惊喜,推动整个人工智能行业迈向新的高度。

2025-03-07 16:08:59 385

原创 初识Java

以游戏开发为例,游戏中的角色类可以作为父类,不同职业角色类继承自它,各自实现独特的技能方法,利用多态性,在游戏运行时根据实际情况调用不同角色的技能,丰富游戏玩法。Java具备“一次编写,到处运行”特性,其编写的程序能在不同操作系统,如Windows、Linux、macOS上顺畅运行。Java程序编译成字节码文件后,可在任何安装JVM的系统上运行,极大提升了开发效率,降低了开发成本。在网络通信方面,Java类库提供了便捷的接口,帮助开发者轻松实现客户端与服务器的数据交互,极大提升了开发效率。

2025-03-07 16:07:45 168

空空如也

空空如也

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

TA关注的人

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