自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM虚拟机

JVM(Java Virtual Machine)简称Java虚拟机,也就是一个虚拟的计算机,一个抽象的计算机,为运行Java字节码提供了一个运行时环境。存在于软件层面,通过在实际的物理硬件上模拟虚拟机指令集来运行Java应用程序,不依赖于任何特定的底层硬件和操作系统。因此Java程序可以在任何安装有JVM的系统上运行,无需修改代码。JVM是Java技术的核心组成部分,使得Java能够实现“一次编写,到处运行”(Write Once, Run Anywhere,WORA)的跨平台特性。

2024-03-04 01:14:07 1103

原创 Java并发编程

是一个运行中的程序的实例,拥有独立的内存空间。在Java中,当运行一个Java应用程序时,例如通过命令行使用java命令,操作系统为该应用程序启动了一个新的进程。并发编程的出现主要是为了更有效地利用计算资源,特别是在多核处理器普遍存在的当代,通过并发执行可以显著提高程序的性能和响应速度。这两个例子中的进程都拥有自己的独立内存空间,可以加载不同的类和资源,它们在操作系统层面是完全独立的。当运行这个类时,Java虚拟机(JVM)会启动,操作系统会为其创建一个新的进程,然后在这个进程中执行。

2024-02-21 13:36:58 829

原创 基本代码讲解

换句话说,这个引用变量的值,也就是它持有的内存地址,将不可更改。当我们在代码中创建一个对象时,我们通常会使用一个引用变量来持有这个对象的内存地址,从而可以通过这个引用变量来操作对象。综合来看,这行代码的意思是:在当前类中声明了一个私有的、不可变引用的、线程安全的Map,键是整数类型,值是处理。换句话说,这个变量的引用是不可变的,但是Map本身的内容是可以修改。:一个访问修饰符,表示这个成员变量只能在当前类的内部访问,对外部类和子类都不可见。:这是声明了一个Map接口,它的键(Key)是。

2024-02-21 01:10:57 1794

原创 浅谈IDEA的目录

这种目录结构的好处是,提供了清晰的代码组织方式,将应用代码和测试代码分离,同时也区分了代码文件和资源文件。在编译和打包过程中,这些资源文件会被复制到输出的类路径中,这样它们就可以与编译后的。:这个目录存放的是测试源代码文件,通常包括单元测试、集成测试等。:这个目录同样用于存放测试时所需的非代码资源,这些资源专门用于测试环境,不会与主代码一起被打包。:这个目录存放的是项目的主要代码,即实现项目功能的代码。:这个目录存放的是项目的测试代码,即用于测试主要代码功能的代码。文件都应该放在这个目录下。

2024-02-20 00:03:57 1206

原创 集成开发环境IDEA

IntelliJ IDEA是一个流行的Java集成开发环境,提供了上述所有的集成特性,并且支持多种编程语言和框架,因此被广泛认为是一个强大的IDE。IDE的集成特性大大减少了开发者在不同工具之间切换的时间,提高了开发效率,使得开发者可以更加专注于编码本身。:集成构建工具(如Maven、Gradle、Ant)的功能,允许开发者配置和执行自动化构建过程,包括编译、测试、打包等。:集成版本控制系统(如Git、SVN)的功能,使得开发者可以直接在IDE中进行代码的提交、更新、分支管理等操作。

2024-02-20 00:01:07 584

原创 面试题之如何排查代码程序慢问题

排查Java代码性能问题是一个系统性的工作,通常需要结合不同的工具和方法来定位和解决问题。以下是一些常见的排查步骤和方法。

2024-02-19 23:51:19 1214

原创 远程调试详解

远程调试通常涉及两个主要组件:本地开发环境(在这种情况下是IntelliJ IDEA)和远程服务器上运行的Java应用程序。在远程调试过程中,本地开发环境通过网络连接到远程服务器上的JVM并且能够控制和监视其执行过程。

2024-02-19 13:39:18 416

原创 软件开发相关概念

整个CI/CD流程的实现通常依赖于一系列工具,例如Jenkins、GitLab CI、CircleCI、Travis CI、Spinnaker、Argo CD等,这些工具可以帮助自动化整个软件的构建、测试、部署过程。持续部署是在持续集成的基础上,每当主分支的代码通过所有测试时,就自动将代码部署到生产环境中。持续交付是持续部署的一个子集,它确保软件可以随时部署到生产环境,但是触发部署的动作可能是手动的。:构建后自动执行测试套件,包括单元测试、集成测试、性能测试等,以确保代码质量。

2024-02-19 10:00:05 738

原创 详解Spring的pom.xml文件

XML声明,指定了XML文档的版本和编码。这里声明了版本为1.0,编码为UTF-8,确保Maven可以正确解析文件中的字符。元素是Maven项目对象模型(POM)的根元素,包含了构建项目所需的所有配置信息。这个元素包含了多个属性和子元素,定义了项目的基本信息、依赖、插件、构建配置等。:这个属性定义了XML命名空间(XML Namespace),它是一个独一无二的标识符,用来区分不同XML文档中元素的意义。在这里,它指明这个元素以及它包含的所有子元素都属于这个命名空间,这是Maven POM 4.0.0

2024-02-09 11:57:35 1592

原创 一个interface接口既能作为入参,也能作为出参

一个interface接口既能作为一个方法的入参,也能作为一个方法的出参

2024-02-08 10:32:44 386

原创 Spring容器的IOC

如前面示例中所展示的,通过。

2024-02-07 18:05:50 805

原创 MacBook Pro常用快捷键

+ + :立即锁定屏幕 在Chrome浏览器中,使用几种快捷键在多个网页标签页之间进行切换: 在Chrome浏览器中,收藏的网页通常显示在书签栏上,这个书签栏默认出现在地址栏的下方。如果你发现书签栏不显示在每个新标签页之外的页面上,可能是因为书签栏被设置为仅在打开新标签页时显示。可以使用快捷键 + + 来切换书签栏的显示和隐藏状态。

2024-01-21 19:27:08 506

原创 Java序列化与反序列化

持久化:将对象的状态保存到一个文件中,或者存储到数据库中,以便未来可以重新创建出原始对象。Java反序列化是指将序列化的数据(字节序列)恢复成原来的Java对象的过程。从文件、数据库或其他数据存储中读取序列化后的对象数据,并恢复成Java对象。Java序列化是指将对象的状态信息转换为可以存储或传输的形式的过程。在网络传输过程中接收序列化的对象字节序列,并将其恢复为Java对象。2.Java反序列化的目的。2.Java序列化的目的。3.Java反序列化方式。这两个类来实现对象的序列化和反序列化。

2024-01-05 00:54:52 454 1

原创 JSON简单介绍

JSON(JavaScript Object Notation),一种轻量级的数据交换格式,尤其是作为前后端数据传输的标准格式,易于阅读和编写,独立于编程语言,使得JSON在Web开发中非常流行,。在Java中,JSON广泛用于网络通信、配置文件、数据存储等场景。开发者通常会使用第三方库来解析和生成JSON数据。

2024-01-03 09:56:37 472 1

原创 Lambda表达式

(x, y) -> x + y // 一个接受两个参数 x 和 y 的Lambda表达式,返回它们的和。1.参数列表:和普通函数的参数列表类似,可以有多个参数,也可以没有参数。2.箭头符号:通常是一个 "=>" 或者 "→",用来分隔参数列表和函数体。Lambda表达式,又称为匿名函数或闭包,是一种简洁的表示匿名函数的方式,3.函数体:包含表达式或语句块,这部分定义了Lambda表达式的功能。Lambda表达式通常用于编写简短的函数,尤其是在需要函数作为参数的地方。(参数列表)-> {表达式}

2024-01-01 14:56:24 361

原创 必须记住的常识

一个普通类继承一个抽象类时,不需要强制实现抽象类中的所有普通方法。可以选择性地覆盖(override)这些方法。一个抽象类继承一个抽象类时,不需要实现抽象类中的所有抽象方法,但是抽象类不能被实例化。1、一个普通类继承一个抽象类时,它必须实现抽象类中的所有抽象方法。一个抽象类实现了一个接口不需要重写接口里面的所有方法。2、一个普通类实现了一个接口必须要重写接口里面的所有方法。普通类,也称为具体类)

2023-12-28 13:04:13 333 2

原创 Java的异步编程

同步操作意味着在同一时间只能有一个线程能够执行某段代码同步操作可以保证数据的一致性和线程安全,但是会降低程序的执行效率。

2023-12-28 01:43:08 412 1

原创 简单了解线程

进程:操作系统进行资源分配和调度的一个独立单位。每个进程都有自己的独立内存空间,一个进程无法直接访问其他进程的内存。比如你打开一个应用程序,比如浏览器,那么操作系统就会创建一个新的进程来运行这个应用程序。线程:线程是进程的一个实体,是CPU调度和分派的基本单位,一个进程可创建多个线程,这些线程都运行在该进程的内存空间内,线程之间可共享进程的资源。比如在浏览器中打开多个标签页,每个标签页都可以看作是一个独立的线程。eg:进程:当你启动QQ时,操作系统会为QQ创建一个新的进程。

2023-12-28 01:20:17 361 1

原创 Java中的面向对象(OOP)

面向对象 Object-Oriented Programming, 作为Java编程语言的核心思想,其实就是将现实世界中的事物抽象成对象, 并通过对象之间的交互来实现程序的功能。

2023-12-27 01:22:25 24 1

原创 深入学习ArrayList

ArrayList是Java集合框架(Java Collection Framework)中的一部分。是实现了List接口的动态数组。所以它具有List接口的所有特性。可以根据需要自动增加大小,允许我们存储不同类型的对象,包括null。

2023-12-25 13:07:56 41

原创 Git详细教程

官网:Git下载:Git - Downloading Package详见:Git教程(超详细,一文秒懂)-CSDN博客

2023-12-25 11:29:13 17

原创 Java的一个普通类

Java的一个普通类里面究竟可以装什么。

2023-12-24 19:25:52 73 1

原创 Java关键字:this和super

当我们说"super引用当前对象的父类"时,意思是说,通过使用super关键字,我们可以访问到当前对象从其父类继承来的字段和方法。这里的"引用"并不是说super是一个变量,而是说super提供了一种方式,让我们可以访问到当前对象的父类部分。一个引用就是一个变量,这个变量存储的是对象在内存中的地址,通过这个地址,我们可以访问到这个对象。来调用当前类的其他构造方法,这通常在构造方法中使用,且必须是构造方法的第一条语句。来调用父类的构造方法,这通常在子类的构造方法中使用,且必须是构造方法的第一条语句。

2023-12-24 17:56:36 15 1

原创 深拷贝和浅拷贝

拷贝其实就是一个赋值的过程。

2023-12-24 16:49:17 18 1

原创 Java创建和初始化数组的方式

Person[] persons = {new Person("张三", 1), new Person("李四", 2), new Person("王五", 3)};需要注意的是,Java中的数组在创建时会自动赋予默认值。初始化:数组初始化是指为数组中的每个元素分配内存空间,并赋予初始值。声明:在Java中声明数组时,需要指定数组的类型和数组的变量名。访问:可以通过数组的索引(基于0)访问数组中的元素。多维数组:Java也支持多维数组,最常见的是二维数组,如。在Java中,数组是一种基本的。

2023-12-23 10:00:02 73 1

原创 Java中的基本类型和引用类型

基本类型的变量存储的是实际的数值,它们在内存中占据固定的空间,系统会根据不同的类型为它们分配不同大小的内存。引用类型的变量存储的是对象的引用(也可以理解为地址),而不是实际的对象本身。当我们创建一个新的对象时,系统会在堆内存中为这个对象分配空间,并返回这个空间的引用给变量。3.内存简述:内存是存储数据的,不同类型的数据要存储在不同的区域,即分类存放,不同的区域作用和功能也不一样。String类型的变量clothes所对应的内存区域存储的是地址,真正的数据是在地址对应的内存区域里,

2023-12-23 09:37:31 25 1

原创 HTTP接口与RPC接口

这个应用需要从某个气象站获取天气数据,但应用程序和气象站并不能直接通信,它们之间需要一个"翻译员"来帮助它们理解对方的数据,这个"翻译员"就是Web服务。HTTP接口通常以API(应用程序接口)的形式提供,开发者可以通过编程方式调用这些API,实现与服务器的交互。Web服务就像是一个翻译员,帮助使用不同"语言"(编程语言)编写的应用程序理解对方的"话"(数据)。所以,简单来说,Web服务就是让不同的应用程序能够通过网络进行交流和数据交换的一种技术。请求体:包含了请求的具体内容,如表单数据、JSON数据等。

2023-12-18 13:35:05 245

原创 接口与抽象类的区别

一种特殊的类,表示一种抽象的概念,不能被实例化,只能被其他类继承。

2023-12-17 16:58:48 17 1

原创 Java中的接口及实现类

接口(Interface)是一种引用类型,在Java等面向对象的编程语言中,它是方法和常量的集合。接口是完全抽象的,它不包含实现(方法体),只包含方法的声明和常量。代码含义:创建一个新的Dog对象,并将这个新创建的Dog对象的引用赋值给变量myDog。Dog:这是一个类名,表示我们要创建的对象的类型是Dog。myDog:这是我们定义的变量名,它将用来存储Dog对象的引用。:这是赋值操作符,它将右侧创建的新对象的引用赋值给左侧的变量。new:这是一个关键字,用于创建新的对象。Dog()

2023-12-17 01:42:32 220

原创 Java中8种常见的数据结构

数组、链表、堆、栈、队列、树、哈希、图。

2023-12-17 00:51:04 323 1

原创 Redis五种类型的存取方式

redisTemplate.opsForValue().set(键, 值)redisTemplate.opsForValue().get(键)3.Set无序不可重复。2.List列表类型。4.Zset数据类型。5.Hash数据类型。

2023-11-28 00:29:10 401 1

原创 安装docker的一些命令

查询防火墙状态,绿色的时开启了防火墙,黑色的是表示防火墙关闭。15.运行tracker。一定修改自己的虚拟机地址。13.删除 镜像内容。查看docker版本。

2023-11-28 00:27:21 17 1

空空如也

空空如也

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

TA关注的人

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