变量变量是程序的基本组成部分。在 Java 程序设计中,每个声明的变量都必须分配一个类型。 Java声明变量如下:int a;
double b = 1.1;变量根据所处的位置而拥有不同的性质,我们通过一个表格来理解一下:成员变量局部变量静态变量定义位置在类中,方法外方法中或者方法的参数初始化值有默认初始化值无,先定义并赋值才能使用调用方式对象调用-存储位置堆中栈中生命周期与对象共存亡与方法共存
转载
2023-08-01 17:53:22
61阅读
1.相关概念 1.1 什么是常量用final修饰的成员变量表示常量,值一旦给定就无法改变!final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。 1.2 Class文件中的常量池在Class文件结构中,最头的4个字节用于存储魔数Magic Number,用于确定一个文件是否能被JVM接受,再接着4个字节用于存储版本号,前2个字节存储次版本号,后2个存
转载
2023-10-06 23:38:09
137阅读
在我们平常的编码中,通常会将一些对象保存起来,这主要考虑的是对象的创建成本。比如像线程资源、数据库连接资源或者 TCP 连接等,这类对象的初始化通常要花费比较长的时间,如果频繁地申请和销毁,就会耗费大量的系统资源,造成不必要的性能损失。并且这些对象都有一个显著的特征,就是通过轻量级的重置工作,可以循环、重复地使用。这个时候,我们就可以使用一个虚拟的池子,将这些资源保存起来,当使用的时候,我们就从池
转载
2023-09-22 06:47:35
102阅读
Java内存分配主要包括以下几个区域1. 寄存器:我们在程序中无法控制2. 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中3. 堆:存放用new产生的数据4. 静态域:存放在对象中用static定义的静态成员5. 常量池:存放常量6. 非RAM(随机存取存储器)存储:硬盘等永久存储空间Java内存分配中的栈在函数中定义的一些基本类型的变量数据和对象的引用变量都在函数的栈
转载
2023-11-06 19:26:23
22阅读
栈内存在函数中定义的基本数据类型的变量和对象的引用变量,都存储在栈内存中,当变量退出作用域后,栈中的数据会被自动释放供接下来的使用。堆内存堆内存中储存new关键字创建的对象和数组,在该区域中分配的内存由Java垃圾回收机制进行管理。当栈内存中的引用变量因为退出作用域而被释放之后,堆内存中相应的数据便会因为没有引用指向变得无法有效访问而变成数据垃圾,这个时候便会被垃圾回收机制所回收。String常量
转载
2024-02-21 00:03:55
32阅读
String pool说到String类,就不得不提字符串池(String pool )。在JAVA中,String类出现的频率很高,为了提升性能,JAVA为String类特地开辟的一块内存空间,这块空间就称为字符串池。创建String类的时候 如果是直接赋值,那么当前的String类型的值就会被添加到字符串池中。当创建第二个String类,在赋值的时候,JAVA会先在字符串池中寻找有没有已经存在
转载
2023-09-22 12:20:09
48阅读
基于 基础的数据访问–jdbc 。spring 中的数据访问。spring boot中的数据访问的思考数据访问思想数据访问的核心:数据源,连接池,JDBC的关系 数据源和数据核心都抽象的概念数据源和连接池是由容器提供的(例如:tomcat) ;连接池分配,管理,销毁连接(Connection),数据源保存你连接的数据库,创建连接(Connectioon )【使用了一种设计模式:工厂模式】 数据源和
转载
2023-11-02 11:52:02
34阅读
还记得我们在初始介绍线程池的时候提到了Executor框架的体系,到现在为止我们只有一个没有介绍,与ThreadPoolExecutor一样继承与AbstractExecutorService的ForkJoinPool.Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。我们通过表面的意思去理解Fo
转载
2023-07-27 22:14:27
245阅读
ForkJoinPool 线程池 文章目录ForkJoinPool 线程池ForkJoinPool是什么ForkJoinTask不带返回值的计算带返回值的计算与ThreadPoolExecutor原生线程池的区别工作窃取的实现原理 ForkJoinPool是AbstractExecutorService的子类,是ThreadPoolExecutor的兄弟。今天就来简要说下ForkJoinPool这
转载
2023-07-19 09:50:37
384阅读
线程池原理解析 1、线程池包含的内容 ThreadPoolExecutor】: worker:工作类,一个worker代表启动了一个线程,它启动后会循环执行workQueue里面的所有任务 workQueue:任务队列,用于存放待执行的任务 keepAliveTime:线程活动保存的时间,线程池的工作空闲后,保持线程存活的时间线程池原理:预先启动一些线程线程无限循环从任务队列中获取一
转载
2018-05-30 15:01:00
750阅读
Java常量池总结 一、基本概念介绍 什么是常量 用final修饰的变量即为常量(成员变量、局部变量、静态变量,只要被final给修饰过的)。 什么是常量池
先说静态常量池,来看看class文件中都包含了哪些内容。
&n
转载
2023-12-10 13:07:03
37阅读
概念常量池常量池的好处Class类文件中的常量池常量池运行时常量池包装类常量池对象池Java中装箱和拆箱赋值时方法调用时方法运算时参考 概念什么是常量? 对于这个问题,可能很多人都可以脱口而出 : 用final修饰的变量是常量 ,或者是在编译时期定义好的字符串。但是这种说法是不严谨的,因为准确来说 : 常量是用final修饰的成员变量!常量在类编译时期载入类的常量池中。即final修饰的成员
转载
2023-08-26 10:55:20
46阅读
线程的同步当我们使用多线程访问同一资源的时候,且这多个线程中对资源有的写的操作,就容器出现线程安全问题。要解决多线程并发访问一个资源的安全问题,java中提供了同步机制(synchronized)来解决。有三种方式实现同步机制:同步代码块格式:synchronized(同步锁) {
// 需要同步操作的代码。
}同步锁同步锁是一个对象,是一个抽象的概念,可以想象成在对象上标记了一个锁。
转载
2023-06-05 16:22:07
195阅读
开发过程中会不可避免要去申请内存,常见的操作如malloc/free、new/delete,这些操作的本质都是向OS申请内存,会经历从用户态进入内核态再回到用户态的过程,态切换成本比较昂贵。内存池的出现就是为了解决这个问题,将申请内存的操作在应用层消化掉。讲GC算法为什么要讲内存池呢?因为GC算法与内存密不可分。拿JVM举例,可以说JVM的内存结构是它所支持的GC算法决定的,也可以说因为这样的内存
转载
2023-07-20 18:15:48
71阅读
#数据库连接池:1、概念:就是一个容器(集合),存放数据连接的容器 当容器初始化好后,容器会被创建,容器中会申请一些连接对象,当用户来访问数据库是,从容器中获取连接对象,用户访问结束之后,会将连接对象放回到容器中。2、好处: *节约资源 *用户访问高效3、实现: 1、接口:DataSourse javax.sql包下 1、方法: *获取连接:getConnectio
转载
2023-06-21 15:00:29
54阅读
Java多线程之线程池结构 线程池框架图 Executor 这是线程池的最顶层接口,我们一般不会用它,就只有一个方法void execute(Runnable command)。 ExecutorService 第二层接口,继承了Executor,如果是用工具类Executors创建的线程池,就可以用这种类型来修
转载
2023-08-26 13:05:19
105阅读
一、线程池是什么?线程池就是可以创建固定线程数量、最大线程数、等待队列数、每一个线程的执行时间、线程的名称等参数的线程。大家可以理解成,线程池就是多个线程组成,但是跟线程又有区别。线程是单一且需要时就创建,执行完任务就销毁,而线程池就不会,需要就取一个创建好的线程,用完就放回去。 二、创建线程池有哪些方式?(使用Executors顶层容器静态类实现创建) 1、Executor
转载
2023-06-07 15:07:39
868阅读
常量池、线程池、连接池一、常量池1、什么是常量是一种值,这个值本身例如:八大基本数据类型 加字符串不可变的变量,被final修饰的例如 final int i=1;String str="hello";2、作用为了避免频繁的创建和销毁对象而影响系统性能,实现了对象的共享二、线程池ThreadPool作用:限制系统中执行线程的数量理解:在系统环境下,可以自动或手动设置线程数量,达到运行的最佳效果,少
转载
2023-10-27 01:12:52
42阅读
一、前言前面一篇介绍了在并发编程中遇到的一些问题或者挑战,接下来主要介绍Java并发机制的底层实现原理,本篇主要讲一下volatile的实现原理。我们都知道,Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令。在深入Java并发机制的底层实现原理之前,
转载
2023-11-29 15:13:31
29阅读
## 教你如何实现Java池
### 1. 流程图
```mermaid
erDiagram
DEVELOPER ||--o| BEGINNER : 教学
BEGINNER ||--o| JAVA POOL : 实现
```
### 2. 步骤
| 步骤 | 描述 |
| ---- | ---- |
| 1 | 创建一个Java池对象 |
| 2 | 向池中添加对象 |
|
原创
2024-05-14 08:02:19
4阅读