自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TreeSet保存自定义对象重写比较函数

方式一:默认排序/自然排序:Javabean类实现Comparable接口指定比较规则。创建TreeSet对象时候,传递比较器Comparator指定规则。我们在TreeSet的构造器介绍中可以看到这种方法的实现。

2024-03-06 18:26:02 136

原创 反射&动态代理

​​ 是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;​ 对于任意一个对象,都能够调用它的任意属性和方法;​ 这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。​利用创建的对象调用类里面的内容可以跟,把要创建的对象信息和方法写在配置文件中。读取到什么类,就创建什么类的对象读取到什么方法,就调用什么方法此时当需求变更的时候不需要修改代码,只要修改配置文件即可。

2024-03-05 20:43:37 587

原创 Git基础操作

云端和本地冲突,基础命令

2024-03-03 09:00:20 717

原创 MySQL基础语法

建立数据库:CREATE DATABASE my_database;删除数据库:DROP DATABASE my_database;使用数据库:USE my_database;

2024-03-03 08:36:50 935

原创 JVM笔记

回收线程共享的区域(方法去和堆区),线程不共享的区域(程序计数器,java虚拟机栈和方法堆栈)则不需要回收,栈的生命周期与线程的生命周期一致。当线程执行结束时,其线程栈也会被销毁,这些局部变量自然也会被释放,不需要垃圾回收。常见的引用类型强引用,最常见的引用方式,由可达性分析算法来判断软引用,对象在没有强引用情况下,内存不足时会回收弱引用,对象在没有强引用情况下,会直接回收虚引用,通过虚引用知道对象被回收了终结器引用,对象回收时可以自救,不建议使用。

2024-03-02 23:00:10 1063 1

原创 数据库笔记

事务,索引,存储引擎

2024-03-02 22:49:56 740

原创 使用Redis报错类型错误 java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String

使用Redis报错类型错误 java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String

2024-03-02 22:38:17 356

原创 找不到动态链接库dll文件的解决办法

2023-10-02 16:45:03 99

原创 exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter] with root caus

在 Java 11 及以后版本中,您需要做的是在类路径或模块路径中包含您自己的 Java EE API 副本。幸运的是,JDK 6/7/8 中提供的这些 Java EE API 仍在 JDK 中,但默认情况下它们不在类路径上。JAXB API 被视为 Java EE API,因此不再包含在 Java SE 9 中的缺省类路径中。Java 9 引入了模块的概念,默认情况下,聚合模块在类路径(或者更确切地说,模块路径)上可用。传统上与 Java 6/7/8 捆绑在一起的 Java EE API。

2023-08-30 21:26:14 211

原创 java内部类介绍

也就是说,在类的内部既可以定义成员变量和方法,也可以定义其他的类。定义内部类的常见格式如。

2023-08-16 15:40:38 65

原创 java中的String

第一个new首先在常量池中创建了一个字符串对象abc,后来new出来的s2是在堆中又创建了一个。对于每一个字符串,在常量池中是不会改变的,改变的只是引用对象的地址值,它的指向变了。2.相同的字符串只会在常量池中存一份。1.字符串是不可变对象。但new出来的则不一样。

2023-08-14 22:54:20 46 1

原创 Java数组介绍

c数组和Java数组的区别

2023-08-14 13:51:46 23 1

原创 Java简介

Java虚拟机(Java Virtual Machine,JVM),是一种能够在多种平台上运行Java字节代码的虚拟机。Java程序在编译完成后会生成字节码,该字节码会在运行时被JVM解释执行。JVM可以理解为一个运行Java字节码的虚拟计算机,对Java字节码进行解释执行,提供了Java程序运行的环境。

2023-08-13 18:29:51 27 1

原创 【C++】unordered_map和map

unordered_map:内部采用hash表结构,具有快速检索的功能,查找效率理论上高于map,但是 是无序的,缺点是哈希表的建立比较耗费时间,有可能还会哈希冲突(开链法避免地址冲突)是空间占用率高,因为map内部实现了红黑树,虽然提高了运行效率,但 是因为每一个节点都需要额外保存父节点,孩子节点和红。的,内部采用红黑树,可以自动排序,而且平均查找效率要 比列表更高,2.存放的元素都是K-V键值对,并且Key是不能重复的。

2023-08-08 08:23:09 60

原创 I/O多路复用(I/O多路转接)

I/O 多路复用使得程序能同时监听多个文件描述符,能够提高程序的性能,Linux下实现I/O多路复用的系统调用主要有 selectpoll和epoll。

2023-07-23 00:51:59 90

原创 MAC/IP/端口/socket网络套接字

IP 协议是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所 有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守 IP协议就可以与因特网互连互通。各个厂家生产的网络系统和设备,如以太网、分组交换网等,它们相互之间不能互通,不能互通的主要原因是因为它们所传 送数据的基本单元(技术上称之为“帧)的格式不同。IP协议实际上是一套由软件程序组成的协议 软件,它把各种不同“帧统一转换成“IP数据报。

2023-07-22 18:26:49 189

原创 WiFi图标消失的解决办法

分享WiFi图标消失的解决方案

2023-07-19 21:39:00 440 2

原创 Linux线程

◼ 与进程(process)类似,线程(thread是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,且共享同一份全局内存区域,其中包括初始化数据段、未初始化数据段,以及堆内存段。(传统意义上的 UNIX 进程只是多线程程序的一个特例,该进程只包含一个线程)◼ 进程是 CPU 分配资源的最小单位,线程是操作系统调度执行的最小单位。

2023-07-05 14:57:57 51 1

原创 守护进程介绍

◼ 进程组和会话在进程之间形成了一种两级层次关系:进程组是一组相关进程的集合,会话是一组相关进程组的集合。进程组和会话是为支持 shell 作业控制而定义的抽象概念,用户通过 shell 能够交互式地在前台或后台运行命令。◼ 进行组由一个或多个共享同一进程组标识符(PGID)的进程组成。一个进程组拥有一个进程组首进程,该进程是创建该组的进程,其进程 ID 为该进程组的 ID,新进程会继承其父进程所属的进程组 ID。

2023-06-30 23:55:38 27

原创 共享内存实现进程通信

◼ 共享内存允许两个或者多个进程共享物理内存的同一块区域(通常被称为段)。由于一个共享内存段会称为一个进程用户空间的一部分,因此这种 IPC 机制无需内核介入。所有需要做的就是让一个进程将数据复制进共享内存中,并且这部分数据会对其他所有共享同一个段的进程可用。◼ 与管道等要求发送进程将数据从用户空间的缓冲区复制进内核内存和接收进程将数据从内核内存复制进用户空间的缓冲区的做法相比,这种 IPC 技术的速度更快。

2023-06-30 23:41:15 130

原创 信号实现进程通信

◼ 信号是 Linux 进程间通信的最古老的方式之一,是事件发生时对进程的通知机制,有时也,它是在软件层次上对中断机制的一种模拟,。信号可以导致一个正在运行的进程被另一个正在运行的异步进程中断,转而处理某一个突发事件。◼ 发往进程的诸多信号,通常都是源于内核。引发内核为进程产生信号的各类事件如下:1 对于前台进程,用户可以通过输入特殊的终端字符来给它发送信号。比如输入Ctrl+C 通常会给进程发送一个中断信号。2 硬件发生异常,即硬件检测到一个错误条件并通知内核,随即再由内核发送相应信号给相关进程。

2023-06-29 17:01:43 137 1

原创 内存映射实现进程通信

​ 内存映射(Memory-mapped I/O)是将磁盘文件的数据映射到内存,用户通过修改 内存就能修改磁盘文件。

2023-06-29 15:59:30 78 1

原创 进程管道通信

◼ 进程是一个独立的资源分配单元,不同进程(这里所说的进程通常指的是用户进程)之间的资源是独立的,没有关联,不能在一个进程中直接访问另一个进程的资源。◼ 但是,进程不是孤立的,不同的进程需要进行信息的交互和状态的传递等,因此需要进程间通信( IPC:Inter Processes Communication )。

2023-06-28 23:00:25 39 1

原创 进程回收控制

主要介绍exec函数族和进程退出的相关控制

2023-06-26 10:49:23 33 1

原创 多进程概念与调试

介绍多线程的相关概念以及linux下多线程的创建,调试等操作

2023-06-24 13:33:46 98

原创 GDB介绍

在linux下使用gdb调试工具的学习笔记

2023-06-23 23:42:28 255 1

原创 makefile介绍

快速了解makefile的学习笔记

2023-06-23 21:57:41 1407 1

原创 静态库和动态库

库可以简单地看成一种代码仓库,他提供给使用者一些可以直接拿来使用的变量,函数和类;它也是一种特殊的程序,但是库不可以单独运行;库可分为两种,一种是静态库,一种是动态库,区别是静态库在程序的链接阶段会被复制到程序中,而动态库顾名思义,在运行时才调入内存。库的好处:代码保密,方面部署和分发。

2023-06-05 14:31:49 1738 1

原创 C++编译过程详解

GCC原名是GNU C语言编译器,本学习笔记主要介绍其基础用法

2023-06-02 16:13:22 216

原创 cpp中易混淆总结(面经总结)

这部分学习笔记主要记录cpp在使用时,语法上的一些区别,也是通过阅读的大量面经和自己平时遇到的困惑总结而来

2023-06-01 16:04:59 84 1

空空如也

空空如也

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

TA关注的人

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