- 博客(30)
- 收藏
- 关注
原创 TreeSet保存自定义对象重写比较函数
方式一:默认排序/自然排序:Javabean类实现Comparable接口指定比较规则。创建TreeSet对象时候,传递比较器Comparator指定规则。我们在TreeSet的构造器介绍中可以看到这种方法的实现。
2024-03-06 18:26:02
228
原创 反射&动态代理
是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能够调用它的任意属性和方法; 这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。利用创建的对象调用类里面的内容可以跟,把要创建的对象信息和方法写在配置文件中。读取到什么类,就创建什么类的对象读取到什么方法,就调用什么方法此时当需求变更的时候不需要修改代码,只要修改配置文件即可。
2024-03-05 20:43:37
639
原创 MySQL基础语法
建立数据库:CREATE DATABASE my_database;删除数据库:DROP DATABASE my_database;使用数据库:USE my_database;
2024-03-03 08:36:50
1072
原创 JVM笔记
回收线程共享的区域(方法去和堆区),线程不共享的区域(程序计数器,java虚拟机栈和方法堆栈)则不需要回收,栈的生命周期与线程的生命周期一致。当线程执行结束时,其线程栈也会被销毁,这些局部变量自然也会被释放,不需要垃圾回收。常见的引用类型强引用,最常见的引用方式,由可达性分析算法来判断软引用,对象在没有强引用情况下,内存不足时会回收弱引用,对象在没有强引用情况下,会直接回收虚引用,通过虚引用知道对象被回收了终结器引用,对象回收时可以自救,不建议使用。
2024-03-02 23:00:10
1132
1
原创 使用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
1114
原创 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
367
原创 java中的String
第一个new首先在常量池中创建了一个字符串对象abc,后来new出来的s2是在堆中又创建了一个。对于每一个字符串,在常量池中是不会改变的,改变的只是引用对象的地址值,它的指向变了。2.相同的字符串只会在常量池中存一份。1.字符串是不可变对象。但new出来的则不一样。
2023-08-14 22:54:20
96
1
原创 Java简介
Java虚拟机(Java Virtual Machine,JVM),是一种能够在多种平台上运行Java字节代码的虚拟机。Java程序在编译完成后会生成字节码,该字节码会在运行时被JVM解释执行。JVM可以理解为一个运行Java字节码的虚拟计算机,对Java字节码进行解释执行,提供了Java程序运行的环境。
2023-08-13 18:29:51
275
1
原创 【C++】unordered_map和map
unordered_map:内部采用hash表结构,具有快速检索的功能,查找效率理论上高于map,但是 是无序的,缺点是哈希表的建立比较耗费时间,有可能还会哈希冲突(开链法避免地址冲突)是空间占用率高,因为map内部实现了红黑树,虽然提高了运行效率,但 是因为每一个节点都需要额外保存父节点,孩子节点和红。的,内部采用红黑树,可以自动排序,而且平均查找效率要 比列表更高,2.存放的元素都是K-V键值对,并且Key是不能重复的。
2023-08-08 08:23:09
121
原创 I/O多路复用(I/O多路转接)
I/O 多路复用使得程序能同时监听多个文件描述符,能够提高程序的性能,Linux下实现I/O多路复用的系统调用主要有 selectpoll和epoll。
2023-07-23 00:51:59
171
原创 MAC/IP/端口/socket网络套接字
IP 协议是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所 有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守 IP协议就可以与因特网互连互通。各个厂家生产的网络系统和设备,如以太网、分组交换网等,它们相互之间不能互通,不能互通的主要原因是因为它们所传 送数据的基本单元(技术上称之为“帧)的格式不同。IP协议实际上是一套由软件程序组成的协议 软件,它把各种不同“帧统一转换成“IP数据报。
2023-07-22 18:26:49
436
原创 Linux线程
◼ 与进程(process)类似,线程(thread是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,且共享同一份全局内存区域,其中包括初始化数据段、未初始化数据段,以及堆内存段。(传统意义上的 UNIX 进程只是多线程程序的一个特例,该进程只包含一个线程)◼ 进程是 CPU 分配资源的最小单位,线程是操作系统调度执行的最小单位。
2023-07-05 14:57:57
116
1
原创 守护进程介绍
◼ 进程组和会话在进程之间形成了一种两级层次关系:进程组是一组相关进程的集合,会话是一组相关进程组的集合。进程组和会话是为支持 shell 作业控制而定义的抽象概念,用户通过 shell 能够交互式地在前台或后台运行命令。◼ 进行组由一个或多个共享同一进程组标识符(PGID)的进程组成。一个进程组拥有一个进程组首进程,该进程是创建该组的进程,其进程 ID 为该进程组的 ID,新进程会继承其父进程所属的进程组 ID。
2023-06-30 23:55:38
84
原创 共享内存实现进程通信
◼ 共享内存允许两个或者多个进程共享物理内存的同一块区域(通常被称为段)。由于一个共享内存段会称为一个进程用户空间的一部分,因此这种 IPC 机制无需内核介入。所有需要做的就是让一个进程将数据复制进共享内存中,并且这部分数据会对其他所有共享同一个段的进程可用。◼ 与管道等要求发送进程将数据从用户空间的缓冲区复制进内核内存和接收进程将数据从内核内存复制进用户空间的缓冲区的做法相比,这种 IPC 技术的速度更快。
2023-06-30 23:41:15
179
原创 信号实现进程通信
◼ 信号是 Linux 进程间通信的最古老的方式之一,是事件发生时对进程的通知机制,有时也,它是在软件层次上对中断机制的一种模拟,。信号可以导致一个正在运行的进程被另一个正在运行的异步进程中断,转而处理某一个突发事件。◼ 发往进程的诸多信号,通常都是源于内核。引发内核为进程产生信号的各类事件如下:1 对于前台进程,用户可以通过输入特殊的终端字符来给它发送信号。比如输入Ctrl+C 通常会给进程发送一个中断信号。2 硬件发生异常,即硬件检测到一个错误条件并通知内核,随即再由内核发送相应信号给相关进程。
2023-06-29 17:01:43
283
1
原创 进程管道通信
◼ 进程是一个独立的资源分配单元,不同进程(这里所说的进程通常指的是用户进程)之间的资源是独立的,没有关联,不能在一个进程中直接访问另一个进程的资源。◼ 但是,进程不是孤立的,不同的进程需要进行信息的交互和状态的传递等,因此需要进程间通信( IPC:Inter Processes Communication )。
2023-06-28 23:00:25
129
1
原创 静态库和动态库
库可以简单地看成一种代码仓库,他提供给使用者一些可以直接拿来使用的变量,函数和类;它也是一种特殊的程序,但是库不可以单独运行;库可分为两种,一种是静态库,一种是动态库,区别是静态库在程序的链接阶段会被复制到程序中,而动态库顾名思义,在运行时才调入内存。库的好处:代码保密,方面部署和分发。
2023-06-05 14:31:49
2324
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人