算法 源码 编码java

算法学习笔记(33): 矩阵乘法与线段树标记

矩阵乘法与线段树标记 让我们回归本质,将一切线性操作归为矩阵。 目录矩阵乘法与线段树标记线段树区间加线段树历史版本和线段树历史版本最大/最小值线段树区间取 \(\min\) 与历史版本最大NOIP2022 比赛优化标记常数关于向量构造的一些小技巧作者有话说 线段树的懒标记是非常普遍且巧妙的,但是对于 ......
线段 乘法 矩阵 算法 标记

Java反序列化漏洞原理研究

一、Java类加载机制 0x1:Java程序如何运行 一个Java程序的运行整个过程分为编译时和运行时。 首先原始的java程序源码先由java编译器javac来编译成字节码,即.class文件,然后有ClassLoader类加载器加载类的常量、方法等到内存,字节码校验器对变量初始化、方法调用、堆栈 ......
序列 漏洞 原理 Java

c++ STL源码解读

红黑树 map,key不能添加相同的key,如果添加不会报错,但是添加不进去 #include <iostream> #include <map> #include <set> using namespace std; int main(int argc, char const *argv[]) { ......
源码 STL

JAVA技术栈的有福啦!这款IDEA插件,写完代码即可调试

国产API调试工具 Apipost 推出IDEA插件,写完代码就可以调试接口并一键生成接口文档!而且还可以根据已有的方法帮助您快速生成 url 和 params。Apipost Helper = API 调试工具 + API 管理工具 + API 搜索工具。 在商店中搜索或直接点击下方链接即可下载: ......
插件 代码 技术 JAVA IDEA

HashMap源码详解

HashMap简介 HashMap是Java语言中的一种集合类,它实现了Map接口,用于存储Key-Value对。它基于哈希表数据结构,通过计算Key的哈希值来快速定位Value的位置,从而实现高效的插入、删除和查找操作。下面我们对照着JAVA1.8中的HashMap源码来分析一下它的内部实现逻辑 ......
源码 HashMap

java基础学习:path,java_home环境变量配置

1.path变量: 装jdk后会自动配置java和javac的path路径 2.JAVA_HOME环境变量: ......
java 变量 java_home 环境 基础

Archlinux下 JetBrains系列产品(IDEA、Android Studio) MC 等 java程序 无法输入中文解决方案

解决方法: 检查你的locale配置,终端执行locale -a看一下输出结果是否包含zh_CN.UTF8 如果没有请修改/etc/locale/gen文件,搜索zh_CN.UTF-8,然后取消这一行的注释,或者追加zh_CN.UTF-8 UTF-8到文件底部 使用sudo locale-gen重新 ......

JAVA内存分配

1.类(包含该类的方法)的字节码文件进入方法区处于候命状态 2.虚拟机调用了该类的方法后,方法进入栈内存,并执行方法 3.当运行方法过程中出现了“new”,就会在堆内存中开辟对应空间,并把该空间的地址返回给arr变量记录,因此就可以通过arr找到对应的堆内存空间 注意: ......
内存 JAVA

java笔记_15_动态生成Excel文件

// 创建表头数据 // 内层List按纵向创建,外层List按横向添加,横向重复的名称会自动合并表格。 List<List<String>> list = new ArrayList<>(); List<String> childList1 = new ArrayList<>(); childLi ......
文件 笔记 动态 Excel java

java基础学习:jdk组成及跨平台原理

jdk组成: jre:java的运行环境 2.java跨平台,工作原理(指的是一次编译处处可用): ......
原理 基础 java jdk

Java 利用JUC CountDownLatch 线程池Executors 实现多线程操作

Java 利用JUC CountDownLatch 线程池Executors 实现多线程操作 业务场景:某个业务操作非常耗时,但又必须等这个操作结束后才能进行后续操作 import org.springframework.util.CollectionUtils; import java.util. ......
线程 CountDownLatch Executors Java JUC

rasterization算法(栅格化)

光栅化,英文:Rasterization,是指把顶点数据转换为片元的过程。 光栅化具有将图转化为一个个栅格组成的图象的作用,特点是每个元素对应帧缓冲区中的一像素。 光栅化其实是一种将几何图元变为二维图像的过程。该过程包含了两部分的工作。第一部分工作:决定窗口坐标中的哪些整型栅格区域被基本图元占用;第 ......
栅格 rasterization 算法

java poi合并单元格后居中显示

Apache POI 是一个用于处理 Microsoft Office 文件的强大 Java 库。如果你想在使用 POI 时将单元格合并并且使内容居中显示,你可以使用 CellStyle 对象并设置对齐方式。以下是一个简单的示例: import org.apache.poi.ss.usermodel ......
单元 java poi

图的数据结构及基础算法

图(Graph)这个数据结构在平时开发中遇到的比较少,但我认为它是十分重要的,因为从真实的世界中来看,很多东西都可以抽象为图的表示,比如人际关系,地理位置,天马行空的东西都可以抽象为图,所以它比链表等基础数据结构高级一点点,也比较复杂,属于非线性结构。数学中有一个图论的分支也是与其有关。了解图在程序 ......
数据结构 算法 结构 基础 数据

Spring/SpringBoot中的声明式事务和编程式事务源码、区别、优缺点、适用场景、实战

一、前言 在现代软件开发中,事务处理是必不可少的一部分。当多个操作需要作为一个整体来执行时,事务可以确保数据的完整性和一致性,并避免出现异常和错误情况。在SpringBoot框架中,我们可以使用声明式事务和编程式事务来管理事务处理。其中事务的坑也是不少,比较常见的就是事务失效,大家可以看看!后面小编 ......
事务 优缺点 程式 SpringBoot 实战

JAVA基础

打开CMD的方式 1.开始+系统+命令指示符 2.win+r (输入cmd)打开控制台 3.在任意的文件夹下面按住(shift)+鼠标右键点击,在此处打开命令窗口 4.资源管理器的地址栏前面加上cmd路径 5.管理员方式运行(开始-windows系统-命令提示符-鼠标右键更多-管理员方式运行 常用d ......
基础 JAVA

【算法】十一月阳光下的阴影面积

十一月的阳光透过窗户,照射在一位笑起来甜美、青春洋溢的女子的办公桌上。小悦,一个总是以高马尾造型亮相的软件工程师,展现出她的干练与活力。那乌黑亮丽的长发轻盈飘动,仿佛在诉说着她的独特魅力。她的眉眼如画,那双明亮的眼睛里闪烁着对知识的渴望和对技术挑战的热情。 这一天,她收到了一封来自医院的邮件,邮件中 ......
算法 阴影 面积 阳光

读程序员的制胜技笔记02_算法与数据结构

1. 认知偏见 1.1. 程序员也是人,他们和其他人在软件开发实践中有着同样的认知偏见 1.2. 只有你的同事真正关心你是如何做事的——其他人都只想要一个好的、有效的产品 1.3. 高估了不使用的类型 1.4. 不关心正确数据结构的好处 1.5. 认为算法只对库作者重要 2. 理论 2.1. 理论可 ......
数据结构 程序员 算法 结构 笔记

复杂度和简单排序算法

认识时间复杂度 常数时间的操作 一个操作如果和样本的数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。 例如 int num = arr[i];中不管arr数组中有多少数据,每次赋值都是根据索引一次查询,都是固定时间内完成,是常数操作 而假如有链表list int num = list.g ......
复杂度 算法

Java语言基础知识全总结

一.Java的优点 1. 跨平台性。一次编译,到处运行。Java编译器会将Java代码编译成能在JVM上直接运行的字节码文件,C++会将源代码编译成可执行的二进制代码文件,所以C++执行速度快 2. 纯面向对象。Java 所有的代码都必须在类中书写。C++兼具面向对象和面向过程的特点? 3. Jav ......
全总 基础知识 语言 基础 知识

Java 注解

从JDK 5 开始,Java 增加了对元数据(MetaData)的支持,也就是Annotation(注解),注解可以理解为代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理 注解能被用来为程序元素(类、方法、成员变量)设置元数据。如果希望注解在运行时起到一定的作用,只有通过 ......
注解 Java

操作系统实验——进程管理的算法实现

前言 笔者在大学下属的事业单位上班,最近去帮着带下操作系统的实验课,这里随手水点参考代码,欢迎各位领导老师莅临指正 实验目标 编写一个简单的进程调度器 实验内容 进程控制块(PCB)的定义与管理 进程调度算法的实现 进程创建、销毁和切换 给定一批进程对比3-4种调度算法的时间(自选算法) 实验参考答 ......
算法 进程 系统

Java八股面试整理(2)

11.int和integer有什么区别,两者在做==运算时会得到什么结果? int是基本数据类型,Integer是int的包装类。 二者在做==运算时,Integer会自动拆箱为int类型,然后再进行比较。如果两个int值相等则返回true,否则就返回false。 12.说一说你对面向对象的理解 面 ......
八股 Java

Java 基础篇day05

面向对象编程 世间万物皆对象,在Java的观念中,把一切都看作对象,但是你操纵的确是一个对象引用。在Java中一旦创建了一个引用,就希望它能与一个新的对象继续关联,通常使用new操作符来实现这一目的。new的意思是,给我一个新对象,如果你不想相亲,自己new一个对象就好了,祝你下辈子幸福 对象本质上 ......
基础 Java day 05

Java网络编程实现一(服务器)对多(客户端)

使用多线程+网络编程实现一个服务器对多个客户端 在该程序中用到的知识点 java的BIO ServerSocket和Socket 网络编程 多线程的知识(个人认为重要) 实现的思路 服务器端(使用多个线程) 在客户端需要有一个集合来存储已经连接上的客户端, 如果客户端断开连接则需要从集合中删除 创建 ......

java

我们先剖析一个完整的Java程序,它的基本结构是什么: /** * 可以用来自动创建文档的注释 */ public class Hello { public static void main(String[] args) { // 向屏幕输出文本: System.out.println("Hello ......
java

java 网络编程之传输文件

需要建两个类,分别作为服务器(接收文件)和客户端(发送文件) 1.服务器类: 1 package 菜鸟教程.网络编程.网络编程之传输文件; 2 3 import java.io.*; 4 import java.net.InetAddress; 5 import java.net.ServerSoc ......
网络编程 文件 网络 java

Java比赛常用API总结

1.栈和队列 1.1 栈的常用方法 //1.栈顶插入元素 push(element) //2.返回栈顶元素并弹出栈顶元素 pop() //3.返回栈顶元素但不弹出 peek() //4.清空栈 clear() //5.返回栈中元素个数 size() //6.判断栈是否为空 isEmpty() //7 ......
常用 Java API

java网络编程与多线程

一、Java 网络编程 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。 java.net 包中 J2SE 的 API 包含有类和接口,它们提供低层次的通信细节。你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节。 java.net 包中提供了两种常见的网络 ......
网络编程 线程 网络 java

Java_消息队列

消息系统 MQ 全称Message Queue(消息队列) 消息队列有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ等,而部分数据库如Redis、MySQL以及phxsql也可实现消息队列的功能 系统管理者MessageManager 包括Apache的 ......
队列 消息 Java