Java

一文搞清楚Java中的包、类、接口

写在开头 包、类、接口、方法、变量、参数、代码块,这些都是构成Java程序的核心部分,即便最简单的一段代码里都至少要包含里面的三四个内容,这两天花点时间梳理了一下,理解又深刻了几分。 Java中的包 Java 定义了一种名字空间,称之为包:package。一个类总是属于某个包,类名(比如Person)只是一个简写,真正的完整类名是包名.类名,这才是唯一确定一个类路径的写法,不同包中的类名允许重复。

java基础结束

Static 介绍 接口 作用: 约束 定义一些方法,让不同的人实现- public abstract public static final 接口不能被实例化;接口中没有构造方法 implement可以实现多个接口 使用接口必须要重写接口的方法 抽象类

Vue项目建一个原神人物界面

前言 正好这几天在学习java web开发的部分。之前前端都是直接html+js无脑写法。今天想试试用Vue和Axios来写一个前端界面。试了一下才发现,确实还是框架好用,特别是Element组件库。 里面太多组件都非常好用,今天本来不知道写点啥,突然想到几天前看到有人开了个网站介绍了画江湖之不良人的人物介绍(我也是10年老粉了)。那我不放写一个原神的人物介绍吧!纯当试试前端开发,至于为啥是原神。

使用centos自带的防火墙配置禁ip访问程序

首先使用crontab配置定时任务 crontab -e创建新的任务 0 * * * * /root/banip.sh   创建新的脚本 touch banip.sh   编辑脚本 vim banip.sh   敲击insert 脚本内容为 #!/bin/bash # 获取最近20次登录失败的IP地址 FAILED_LOGINS=$(journalctl --since="2

docker镜像分层

镜像分层 您知道可以查看镜像是如何组成的吗?使用docker image history命令,您可以查看镜像中的每个层次的创建命令。 1.使用docker image history命令查看您在教程中创建的getting-started镜像中的层次。 您应该会得到类似以下的输出(日期/ID可能不同)。 每一行代表镜像中的一个层次。这里的显示从底部显示基础层次,最新层次在顶部。使用这个命

Seata 1.8.0 正式发布,支持达梦和 PolarDB-X 数据库

作者:季敏 用户登记 欢迎已使用用户在此链接登记,便于我们更好的针对业务场景优化: https://github.com/seata/seata/issues/1246 发布概览 1.8.0 中对 AT 模式扩展了达梦和 PolarDB-X 2.0 数据库的支持。 共通过了 80 多组 jdk(8,11,17,21)+ Spring 各版本 + OS(x86,arm64)+ druid 主要版本的

【译】人工智能需要什么才能完成我的工作

人工智能需要什么才能完成我的工作? 原作:史蒂夫·纽曼 引子:探索当前LLMs与真正的通用智能之间的差距   当今最重要的问题之一是人工智能的发展轨迹。这些系统的能力将如何?时间表是什么?我们是否会因电子产品而黯然失色,还是又陷入了另一个炒作泡沫? 人们对于如何衡量进展存在分歧,更不用说预测进展了。我认为一个好的衡量标准是计算机能够在工作场所取代人们的程度。这具有很好的具体性:您可以环顾

Flink CEP 详细讲解+案例

Flink CEP 详细讲解+案例 一、基本概念 1. CEP 是什么   所谓CEP,其实就是“复杂事件处理(Complex Event Processing)”的缩写;而 Flink CEP,就是 Fl

Spring基础 - Spring和Spring框架组成

什么是Spring? Spring的起源 要谈Spring的历史,就要先谈J2EE。J2EE应用程序的广泛实现是在1999年和2000年开始的,它的出现带来了诸如事务管理之类的核心中间层概念的标准化,但是在实践中并没有获得绝对的成功,因为开发效率,开发难度和实际的性能都令人失望。 曾经使用过EJB开发JAVA EE应用的人,一定知道,在EJB开始的学习和应用非常的艰苦,很多东西都不能一下子就很容易

MyBatis 系列:MyBatis 源码环境搭建

目录一、环境准备二、下载 MyBatis 源码和 MyBatis-Parent 源码三、创建空项目、导入项目四、编译 mybatis-parent五、编译 mybatis六、测试总结 一、环境准备 jdk:17 maven:3.9.5 二、下载 MyBatis 源码和 MyBatis-Parent 源码 Mybatis:https://github.com/mybatis/mybatis-3.gi

SpringMVC常用注解

探索SpringMVC常用注解 SpringMVC是一个用于构建Web应用程序的框架,它提供了丰富的注解来简化开发过程。在这篇文章中,我们将深入了解一些常用的SpringMVC注解,从它们的起因到实际应用。 起因 Web应用程序的开发涉及到处理HTTP请求和响应,传统的方式通常需要编写大量的XML配置和复杂的代码。SpringMVC注解的引入旨在简化这个过程,使得开发者可以更轻松地构建强大的Web

spring--AOP的实现原理

Spring AOP(面向切面编程)是 Spring 框架的一个关键组成部分,它提供了一种将横切关注点(如日志记录、事务管理、安全等)与业务逻辑分离的方法。Spring AOP 的实现主要依赖于代理模式,以下是其工作原理的简要概述: 代理模式: Spring AOP 通过创建目标对象的代理来应用横切逻辑。这些代理在目标方法执行前后包围目标方法调用,以此来实现横切关注点的织入。 代理的创

简单剖析Hashmap

剖析 Java Hashmap 源码 在 Java 的集合框架中,HashMap 是一颗璀璨的明珠。通过深入挖掘其源码,我们将揭开 HashMap 的神秘面纱,理解其底层原理、扩容机制和数据结构。 1. HashMap 源码导读 我们首先来看一段简单的代码,创建一个空的 HashMap: 2. HashMap 底层原理 - 数组与链表 HashMap 的底层结构是一个数组,每个数组元素是一个链表

spring--JDK动态代理和CGLIB代理的区别

JDK 动态代理和 CGLIB 代理是 Java 中常用的两种动态代理实现方式,它们各有特点和适用场景: JDK 动态代理: JDK 动态代理是基于接口的代理方式,它使用 Java 反射机制来创建代理对象,并要求目标对象实现一个或多个接口。 在代理过程中,JDK 动态代理会创建一个实现了目标对象所有接口的代理类,并在调用时通过 InvocationHandler 来处理。 JDK 动态代理的优点

spring--JDK动态代理的实现原理

JDK 动态代理的实现原理涉及到 Java 的反射机制。它允许在运行时动态创建一个代理类,这个代理类实现了一组接口,并将所有方法调用转发到一个 InvocationHandler 实例。下面是 JDK 动态代理的实现原理的详细步骤: 定义接口:首先,定义一个或多个接口,这些接口声明了需要被代理的方法。 实现 InvocationHandler 接口:创建一个实现了 InvocationHa

spring--CGLIB动态代理的实现原理

CGLIB(Code Generation Library)是一个强大的、高性能、高质量的代码生成库,它可以在运行时扩展 Java 类和实现 Java 接口。CGLIB 动态代理是基于继承的方式来实现的,它不需要接口,可以代理普通类。以下是 CGLIB 动态代理的实现原理: 继承:CGLIB 动态代理通过继承目标类来创建子类,并在子类中覆盖父类的方法。 代码生成:CGLIB 使用 ASM(

spring--AOP通知类型有哪些

Spring AOP(Aspect-Oriented Programming,面向切面编程)提供了五种类型的通知(advice),这些通知定义了切面(aspect)是在目标对象的方法执行的哪个点被应用。以下是这五种通知类型: 前置通知(Before advice):在目标方法执行之前执行的通知,无法阻止方法的继续执行(除非它抛出一个异常)。 后置通知(After returning adv

零基础入门Vue之窥探大法——计算与侦听

前言 在 上一小节 我介绍了我学习vue入门 插值语法 的过程。 在本篇,我将记录我对vue的 计算属性和侦听器 的学习记录 注:本篇对于”侦听“和”监听“是一个意思 一、计算属性 在官网上,可以看到这样一个例子: Vue官方预判到了某些人学了Vue,会在{{}}写复杂的语句,而这些语句会大大降低可读性,但有时候又不得不去写这么复杂的逻辑来满足业务需求 因此Vue提供了新的配置项:comput

MySQL-13.MySQL约束

1.约束(constraint)概述 1.1 为什么需要约束 数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成的无效操作或错误信息而提出的。 为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制。从以下四个方面考虑: 实体完整性(Entity

基于开源IM即时通讯框架MobileIMSDK:RainbowChat v11.0版已发布

关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持UDP 、TCP 、WebSocket 三种协议,支持iOS、Android、H5、小程序、Uniapp、标准Java平台,服务端基于Netty编写。 工程开源地址是: 1)Gitee码云地址:https://gitee.com/

面试官:什么是泛型擦除、泛型上界、泛型下界、PECS原则?

文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 :《尼恩技术圣经+高并发系列PDF》 ,帮你 实现技术自由,完成职业升级, 薪酬猛涨!加尼恩免费领 免费赠送 经典图书:《Java高并发核心编程(卷1)加强版》 面试

RocketMQ消息生产

本文只提供生产者和消费者部分的示例代码,其它配置部分见RocketMQ消息客户端生产与消费的基本实现 依赖框架 JDK: java version "1.8.0_391" RocketMQ SDK: rocketmq-spring-boot-starter:2.2.3 消息分类 按消息类型 按照消息自身特性可分为:普通消息、顺序消息、事务消息、延时定时消息。 普通消息 利用事件驱动的特性,为应

Redis数据类型

Redis数据类型 Redis 作为 K-V 类型的缓存中间件,其 value 一共有5中数据类型。 string, set, list, sorted-set(zset), hash. 数据类型查看方式 可以通过 type 命令查看对应value的类型,例如: type key, 输出结果即为上面的类型中的一种。 可以通过 object encoding 来查看value的编码方式。 Str

Redis概述

Redis基础 Redis 是基于内存运行的高性能K-V数据库 1. Redis为什么快 基于内存 单线程,减少上下文的切换,同事保证原子性(redis6+ 可开启多线程) 开启方式,非必要不开启 命令执行依旧由主线程负责 多线程只是负责 io 部分 IO多路复用(epoll, 非阻塞IO) 文件事件处理器(Reactor模式) graph LR subgraph so

.NET(C#) 内存堆和栈

​    参考文档:.Net(C#)内存堆和栈-CJavaPy 1、栈(Stack) 栈是一种线性数据结构,它以先进先出(LIFO)的方式管理数据。栈主要用于存储方法调用的信息,包括局部变量、方法参数和返回地址等。每个线程都有自己的栈。栈上的数据存储空间由编译器自动管理,因此它具有高速读写的特点。栈上的数据生命周期短暂,当一个方法结束时,它的栈中的数据就会被销毁。栈的操作通常更

Java学习日记 Day6

JavaSE: ------------IO流------------ ①File类:就是待读取或写入的文件需要把他包装成一个file类 ②IO流:形象地理解是文件内容的输入输出通过两根管子,我们把这两个管子包装成对象,这两根管子就是IO流。 ③字符流:Fileread和FileWrite ④字节流:一般都是读图片才使用 ⑤缓冲字节流(处理流的一种):输入输出的功能加强,可以理解为管子外套一层管子

认识智能合约&线上 IDE实现Solidity 合约

实验五:认识智能合约&线上 IDE 实现 Solidity 合约 实验概述 本实验参考自以太坊中的以太猫游戏和 Loom Network 团队的智能合约教学案例,进行 Solidity 智能合约入门与 remix 在线 IDE 使用练习,通过构建一个“宠物游戏”来学习智能合约的编写,在实验中穿插 Solidity 基础知识。 实验5-1:Solidity 基础 电子宠物很多人都知道,乃至养

Spring Boot 中使用Caffeine缓存的简单例子

Caffeine 缓存是 Java 的高性能缓存库。本文简单记录下 Caffeine 缓存的用法。 依赖配置 代码配置 我们需要初始化 Caffeine 对象以及 Caffeine 缓存管理器。 使用缓存 首先,我们创建一个 Service. 其次,我们创建一个 Controller. 然后就可以测试了。我们根据打印的日志来判断缓存是否生效了。 总结 当我们想从缓存中查询某条数据时,可以注

代码随想录算法训练营第 十 一 天| 20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求值

LeetCode 20. 有效的括号 题目链接:20. 有效的括号 思路:采用栈数据结构解题;遇到左括号,压右括号入栈  LeetCode 1047. 删除字符串中的所有相邻重复项 题目链接:1047. 删除字符串中的所有相邻重复项 注意:Java 中队列实现类 API 的使用   LeetCode 150. 逆波兰表达式求值 题目链接:150

<<  <  610  611  612  613  614  615  616  617  618  619  620  >  >>