数组 原理java 03

数组模拟单向队列的思路及代码

JAVA实现数组模拟单向队列的思路及代码 一、什么是队列? 队列是一种特殊的线性表 ,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。 进行插入操作的端称为队尾,进行删除操作的端称为队头。 队列中没有元素时,称为 ......
队列 数组 单向 思路 代码

数组模拟环形队列的思路及代码

JAVA实现数组模拟环形队列的思路及代码 前言 在对Java实现数组模拟队列零了解的情况下,建议先去阅读《JAVA实现数组模拟单向队列的思路及代码》一文,可以辅助理解本文核心思想。 一、环形数组队列 实现:让数组达到复用的效果,即:当我们从数组队列中取出了数据,那取出数据后后这个空间可以再次使用。 ......
环形 队列 数组 思路 代码

二维数组与稀疏数组之间的转换

JAVA实现二维数组与稀疏数组之间的转换 一、什么是稀疏数组? 稀疏数组(Sparse array) ,所谓稀疏数组就是数组中大部分的内容值都未被使用(或都为零),在数组中仅有少部分的空间使用。因此造成内存空间的浪费,为了节省内存空间,并且不影响数组中原有的内容值,我们可以采用一种压缩的方式来表示稀 ......
数组 之间

【Java 并发】【九】【AQS】【八】ReentrantReadWriteLock之ReadLock读锁原理

1 前言 上节我们看了下ReentrantReadWriteLock读写锁的写锁的申请和释放过程,这节我们就来看下读锁的。 2 线程读锁记录 回顾一下之前的例子,在读写并发操作的时候,读取数据的时候加读锁: public class ReentrantReadWriteLockTest { // 声 ......

剑指offer66(Java)-构建乘积数组(中等)

题目: 给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B[i] 的值是数组 A 中除了下标 i 以外的元素的积, 即 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。 示例: 输入: [1,2,3,4,5]输出: ......
乘积 数组 offer Java 66

【JAVA树根白话二】——继承

JAVA树根白话二 继承 Begin……[A B C] 继承——面向对象的三个基本特征之一(另外两个是封装、多态) 应用场景:当封装两个类后,第一个类中有一个非常复杂的成员函数,第二个类也需要同样的一个成员函数。如果第二个类重新编写成员函数,会增加开发时间,并且可能会因为一些疏忽,造成BUG。 因此 ......
树根 白话 JAVA

剑指offer03(Java)-数组中重复的数字(简单)

题目: 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 限 ......
数组 数字 offer Java 03

26. 删除有序数组中的重复项 & 80. 删除有序数组中的重复项 II

力扣题目链接(26) 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k  ......
数组 amp 26 80 II

js数组对象如何改变里面对象键名

方法二中,怎么就通过改变item,arr的值就直接改变了的呢? 在 JavaScript 中,对象是引用类型,当你将一个对象赋值给一个变量时,实际上是将该对象的引用赋值给了变量,而不是复制了该对象本身 let obj = {name:'jack',age:23} let obj_son = obj; ......
对象 数组

Java方法

Java方法 方法是什么 解决一类问题的步骤的有序组合 System.out.print() System是一个类 out是一个对象 print() 是一个方法 方法是一个语句块集合,它们在一起执行一个功能 设计原则:保持原子性,一个方法只完成一个功能 方法的定义及调用 Java只有值传递 方法的定 ......
方法 Java

Java内存模型

《Java虚拟机规范》中曾试图定义一种“Java内存模型”(Java Memory Model,JMM)来屏蔽各种硬件和操作系统的内存访问差异, 以实现让 Java 程序在各种平台下都能达到一致的内存访问效果。 Java内存模型的主要目的是定义程序中各种变量的访问规则,即关注在虚拟机中把变量值存储... ......
模型 内存 Java

Mysql索引原理

什么是索引 索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构, 为了优化数据库查询效率, 引入的数据结构,类似于书的目录 索引的分类 普通索引 -- 创建索引的基本语法 CREATE INDEX indexName ON table(column(length)); 主键索引 ......
索引 原理 Mysql

一维数组的应用举例

案例1 从键盘读入学生成绩,找出最高分,并输出学生成绩等级 成绩>=最高分-10 等级为’A’ 成绩>=最高分-20 等级为’B’ 成绩>=最高分-30 等级为’C’ 其余 等级为’D’ 提示:先读入学生人数,根据人数创建int数组,存放学生成绩。 public static void ScoreT ......
数组

ofd文档显示到安卓屏幕上的原理

OFD文档的显示原理可分为几个步骤: 1.解析:解析OFD文档和相关资源,如字体、图片等,生成对应的数据结构。 2.渲染:根据解析后的数据结构,进行渲染处理,把OFD文档中的各种元素按照其在页面中的位置、大小关系等进行排版,然后进行绘制。此时,需要根据设备的分辨率和屏幕尺寸等信息进行适配,以便在不同 ......
屏幕 原理 文档 ofd

内存溢出:报错java.lang.OutOfMemoryError: PermGen space

前言 前后台调试过程中某个查询操作导致了后台报错java.lang.OutOfMemoryError: PermGen space,百度了一下说是内存溢出,设置JVM参数就能解决,确实是如此。 引用别人的解释: OutOfMemoryError: PermGen space 非堆溢出(永久保存区域溢 ......
OutOfMemoryError 内存 PermGen space java

LeetCode习题——在排序数组中查找元素的第一个和最后一个位置(二分查找)

在排序数组中查找元素的第一个和最后一个位置 力扣链接:在排序数组中查找元素的第一个和最后一个位置 题目 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须 ......
数组 习题 LeetCode 元素 位置

Java性能权威指南(第2版)读后总结与感想

1. 基本信息 Java性能权威指南(第2版) Java Performance,Second Edition [美]斯科特·奥克斯(Scott Oaks) 人民邮电出版社,2022年4月出版 1.1. 读薄率 书籍总字数516千字,笔记总字数43820字。 读薄率43820÷516000≈8.49 ......
读后 感想 性能 权威 指南

C++ STL Unique 底层实现原理 - 代码

事实上在搜STL Unique的时候发现网上绝大部分都是错的,包括unique元素提到前面或者非unique元素提到后面。 Unique前后里面的元素是不一样的!!! Unique前后里面的元素是不一样的!!! Unique前后里面的元素是不一样的!!! 我们来看代码 #include <bits/ ......
底层 原理 代码 Unique STL

java学习日记20230410-集合框架体系

集合 数组的弊端: 长度开始时必须指定,而且一旦指定不能更改; 保存的必须为同一类型的元素; 使用数组进行增加元素的示意代码-比较麻烦; package com.study; import java.util.Arrays; /** * @author jay * @version 1.0 * @d ......
框架 20230410 体系 日记 java

java学习日记20230409-日期类

日期类 第一代日期类 public class Date01 { public static void main(String[] args) { //默认输出国外的方式,通常需要转化 Date date = new Date(); System.out.println(date); Date da ......
20230409 日期 日记 java

Java-Day-6(类与对象)

Java-Day-6 类与对象 Java 最大特点:面向对象 ( OOP ) 类是抽象的、概念的,代表一类事物,即是种数据类型 对象是具体的,实际的,代表一个具体事物,即是实例 类是对象的模板 ( class XX { ... } ) 对象是类的一个个体,对应一个实例 ( XX xx = new X ......
Java-Day 对象 Java Day

数组遍历方法: map、filter、forEach

区别 map 叫映射,可以重新赋值,拼接用+号,值+另外的值得新值 filter 叫筛选数组, 可以重新赋值,用><=号,比较筛选值 forEach 叫跟for循环一样, 不可以重新赋值 ......
数组 forEach 方法 filter map

【Java 并发】【九】【AQS】【八】ReentrantReadWriteLock之WriteLock写锁原理

1 前言 上节我们看了下ReentrantReadWriteLock读写锁的属性以及内部结构,我们回顾下:(1)ReentrantReadWriteLock内部有两把锁,读锁ReadLock、写锁WriteLock,基于AQS实现的读写锁并发工具Sync;其中无论读锁还是写锁都是基于Sync进行封装 ......

java练习---简单电影购票系统项目

介绍:购票系统项目,整个项目分商家和用户两块,比ATM系统稍微复杂,集合循环的嵌套运用更灵活。 商家功能:上架、下架、查询 用户功能:购票、退票、查询、浏览 一、Bean类 1、Fare 电影票类 1 /** 2 * 电影票Bean:电影名、类型、票价 3 * */ 4 public class F ......
项目 系统 电影 java

链表的回文判断—Java实现

对于这个题,主要是老是局限于方法内的变量,未想到借助外部变量辅助:具如下,不可用数除法,会溢出异常:即使是取最大的long也会溢出,常规方法不再赘述,具体以代码如下: 1 package ProblemSolve; 2 3 public class Solution5 { 4 private Lis ......
回文 Java

ReflectASM高性能反射Java库

1. 简介 在日常开发中,经常需要使用反射操作类中的属性或方法。ReflectASM是一个非常小的 Java 库,它提供高性能反射能力。 Github地址:https://github.com/EsotericSoftware/reflectasm 2. 官方性能报告 3. 用法 ==Reflect ......
高性能 ReflectASM Java

【Java 并发】【九】【AQS】【八】ReentrantReadWriteLock 读写锁怎么表示

1 前言 接下来我们来看看ReentrantReadWriteLock读写锁,也是基于之前讲解的AQS来实现的,建立在AQS体系之上的一个并发工具类,这个锁很重要,在很多开源的中间件中使用的非常广泛,很多场景使用它来减少并发操作中的锁冲突,提升并发能力。 2 ReentrantReadWriteLo ......
ReentrantReadWriteLock Java AQS

【面试专栏】Java7 - ForkJoin,将大任务拆分成小任务

1. 简介 Java7提供了可以将大任务拆分成小任务执行再合并结果的框架——Fork/Join。其中,将大任务拆分成足够执行的小任务并发执行的过程称为Fork,将这些小任务结果整合后形成最终的结果的过程称为Join。 Fork/Join框架的具体体现为ForkJoinTask抽象类,该类继承了Fut ......
任务 ForkJoin 专栏 Java7 Java

锁机制及CAS实现原理(C++)

一、锁机制 常用的锁机制有两种:悲观锁、乐观锁 (一)悲观锁 假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。 悲观锁的实现,往往依靠底层提供的锁机制。 悲观锁会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。 (二)乐观锁 假设不会发生并发冲突,每次不加锁而是假设没有冲突而去完成某项操 ......
原理 机制 CAS

1250. 检查「好数组」

题目链接:1250. 检查「好数组」 方法:最大公约数gcd 裴蜀定理简介 (1)若 $a,b$ 是整数,且 $gcd(a,b)=d$,那么对于任意的整数 $x,y$,$ax + by$ 都一定是 $d$ 的倍数,特别地,一定存在整数 $x,y$,使 $ax+by=d$ 成立。 (2)推论:$a,b ......
数组 1250