自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RocketMQ基础知识

Apache RocketMQ 通过客户端SDK和服务端通信协议保障消息按照服务端存储顺序投递,但业务方消费消息时需要严格按照接收—处理—应答的语义处理消息,避免因异步处理导致消息乱序。Apache RocketMQ 顺序消息投递仅在重试次数限定范围内,即一条消息如果一直重试失败,超过最大重试次数后将不再重试,跳过这条消息消费,不会一直阻塞后续消息处理。满足以上条件的生产者,将顺序消息发送至 Apache RocketMQ 后,会保证设置了同一消息组的消息,按照发送顺序存储在同一队列中。

2023-11-09 19:50:07 66 1

原创 爬虫基础知识

获取网页向网站的服务器发送一个请求,服务器返回的响应体就是网页源代码提取信息使用正则表达式、第三方库如Beautiful Soup、pyquery、lxml等高效地从源代码中提取网页信息保存数据提取数据后,我们一般会将提取到的数据保存到某处以便后续使用,如保存为TXT文本、JSON文本,也可以保存到数据库自动化就是爬虫程序可以代替人来完成上述操作,自动化地爬取数据,并在过程中进行各种异常处理及错误重试等操作。

2023-10-28 15:32:29 666 1

原创 Redis基础

Redis(Remote Dictionary Server)是一个开源的高性能键值(key-value)缓存数据库,它主要用于将数据存储在内存中,以提供快速的读写访问速度。

2023-10-13 16:35:44 66

原创 Zookeeper详解

在ZAB(ZooKeeper Atomic Broadcast)协议中,崩溃模式(Crashed Mode)指的是ZooKeeper集群中的领导者(Leader)崩溃或失去连接,或者集群中的多数服务器同时崩溃或失去连接,导致无法选举出新的领导者的情况下的工作模式。命名服务是指通过指定的名字来获取资源或者服务的地址,利用 zk 创建一个全局唯一的路径,这个路径就可以作为一个名字,指向集群中某个具体的服务器,提供的服务的地址,或者一个远程的对象等等。根据临时节点的特性,相关联的节点Lock1会随之自动删除。

2023-10-11 19:13:07 195

原创 Docker基础及其常用命令

举例来说,你可以在 Ubuntu 的 image 基础上,往里面加入 Apache 服务器,形成你的 image。总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。一样,镜像是静态的定义,容器是镜像运行时的实体。image 文件是通用的,一台机器的 image 文件拷贝到另一台机器,照样可以使用。总之,容器有点像轻量级的虚拟机,能够提供虚拟化的环境,但是成本开销小得多。

2023-10-11 15:01:29 38

原创 Java中的异常处理

何为异常?在Java中,异常是指破坏程序正常流程的事件。 它是在运行时抛出的对象。Java中的异常处理是处理运行时错误的强大机制之一,这样就可以维护应用程序的正常流程。异常类的层次结构Error 和 ExceptionErrorError类以及他的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代码处理。ExceptionException以及他的子类,代表程序运行时发送的各种不期望发生的事件。可以被Java异常处理机制使用,是异常处理的核心。checked exc

2021-07-16 00:25:40 123

原创 Java中多线程的同步机制

何为线程同步?线程同步是为了确保线程安全,所谓线程安全指的是多个线程对共享资源进行访问时,有可能产生数据不一致问题,导致线程访问的资源并不是安全的。(如果多线程程序运行结果和单线程运行的结果是一样的,且相关变量的值与预期值一样,则是线程安全的。)线程同步的两种类型:互斥和线程间通信1)互斥互斥有助于防止线程在共享数据时相互干扰。在java中,这可以通过三种方式实现1)同步方法 Synchronized method2)同步代码块 Synchronized block3)静态同步

2021-07-15 00:40:09 581 1

原创 Java中的多线程

进程与线程进程是系统资源分配的最小单位,进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵,通常一个任务就是一个程序,而一个程序就是一个进程。线程是CPU执行调度的最小单位(资源调度的最小单位),线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。为什么使用多线程从计算机底层来说

2021-07-15 00:28:34 165

原创 设计模式之动态代理

代理模式介绍代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。简言之,代理模式就是设置一个中间代理来控制访问原目标对象,以达到增强原对象的功能和简化访问方式。代理模式UML类图静态代理由程序创建或特定工具自动生成源代码,在程序运行前,代理类的.class文件就已经存在,通过将目标类与代理类实现同一个接口,让代理类持有真实类对象,然后在代理类方法中调用真实类方法,在调用真实类方法的前

2021-07-08 17:53:18 323

原创 Java中的值传递

值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。在Java所有的参数传递中,不管是基本类型还是引用类型,都是值传递。典型测试例子:public class Test { public static void main(String[] args) { Day today = new Day("Monday"); Day tomorrow = new Day("Tues.

2021-07-06 23:50:52 212

原创 Java中的枚举类型

基本概念Java中的Enum是一种包含一组固定常量的数据类型可以将Java枚举看作具有一组固定常量(不变的变量)的类。Java enum常量是静态的,并且是隐式的final。它从JDK 1.5开始被使用Java Enum在内部继承了Enum类,因此它不能继承任何其他类,但是可以实现许多接口。 我们可以在Java枚举中包含字段,构造函数,方法和main方法tips:枚举可提高类型安全性枚举可轻松用于切换可以遍历枚举枚举可以具有字段,构造函数和方法Enum可以实现许多接

2021-07-05 23:36:21 272

原创 Java中的注解

Java注解(Annotation)是一种表示元数据的标签,即附加在类、接口、方法或字段上,以指示Java编译器和JVM可以使用的一些附加信息。Java中的注解用于提供附加信息,因此它是XML的另一种选择。Java 内置注解@Override@Override注释确保子类方法覆盖了父类方法。如果不是这样,就会发生编译时错误。@SuppressWarnings@SuppressWarnings注释:用于抑制编译器发出的警告@FunctionalInterfacejava8支持,.

2021-07-04 20:13:20 82

原创 Java中的对象拷贝

对象拷贝是一种创建对象精确副本的方法。对象类的clone()方法就是用于拷贝对象的。为什么需要拷贝对象?直接new一个对象不行吗?答:拷贝的对象可能包含一些已经修改过的属性,而new出来的对象的属性都还是初始化时候的值,所以当需要一个新的对象来保存当前对象的“状态”就靠clone方法了。如果把这个对象的临时属性一个一个的赋值给我新new的对象的话,可以是可以,但是一是麻烦,二是clone是一个native方法,在底层实现的,速度快。tips:们常见的Object a=new Object(..

2021-07-01 23:36:46 3558

原创 Java中的反射机制

含义反射(reflection)机制是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力。用比喻来说,那种程序能够“观察”并且修改自己的行为.在面向对象的编程语言如Java中,反射允许在编译期间不知道接口(类)的名称,字段、方法的情况下在运行时检查类、接口、字段和方法。这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制.获取Class对象的三种方法public class Student { private String id;

2021-07-01 00:06:51 90

原创 Java中的流式编程

Stream是Java 8提供的新功能,是对集合(Collection)对象功能的增强,能对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或大批量数据操作 (bulk data operation)。 与Lambda 表达式结合,也可以提高编程效率、简洁性和程序可读性。同时它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用 fork/join 并行方式来拆分任务和加速处理过程。通常编写并行代码很难而且容易出错, 但使用 Stream AP.

2021-06-29 23:23:41 3736

原创 Java中的Lambda表达式

Java中的Lambda表达式含义:Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 表达式是使用最小可能语法编写的函数定义:Lambda 表达式产生函数,而不是类。 虽然在 JVM(Java Virtual Machine,Java 虚拟机)上,一切都是类,但是幕后有各种操作执行让 Lambda 看起来像函数 —— 作为程序员,你可以高兴地假装它们“就是函数”。Lambda 语法尽可能少,这正是为了使 Lambda 易于编写和使用。函

2021-06-28 23:46:02 3761

空空如也

空空如也

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

TA关注的人

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