声明: 主要代码参考自算法(第四版),这里将代码列出,是想和大家交流一些学习心得。1.前言先说个小疑问 我们知道集合想要实现迭代,就必须实现Iterable接口,然后重写iterator()方法,从而返回Iterator对象,最后再利用Iterator对象的hasNext()方法和next()方法实现迭代,那么为什么不直接实现Iterator接口呢? 原因是: 因为Iterator接口的核
该参数主要是控制新生代需要经历多少次GC晋升到老年代中的最大阈值。在JVM中用4个bit存储(放在对象头中),所以其最大值是15。如果该值=0则表示对象在Eden区gc后不经过Survivor区直接进入老年代。如果该值等于15,并非意味着,对象必须要经历15次YGC才会晋升到老年代中。例如,当survivor区空间不够时,便会提前进入到老年代中,但这个次数一定不
转载
2023-06-30 17:53:59
1811阅读
一、什么情况下会发生栈内存溢出【1】线程请求的栈深度大于虚拟机所允许的深度,将抛出 StackOverflowError 异常。递归的调用一个简单的方法,不断累积就会抛出 StackOverflowError 异常。 【2】如果虚拟机在动态扩展栈时无法申请到足够的内存空间,则抛出 OutOfMemoryError 异常。无限循环的创建线程,并对每个线程增加内存。则会抛出 OutOfMemoryEr
在有C++和C#基础之下开始学习Java,主要记录了一些和C++C#不同的或不知到的点栈对象必须初始化,否则会报错。(其他的则有默认值)byte占用8位,char占用16位接口默认为public,接口中的变量默认位public static final如果子类和基类在同一包中,则子类可以访问基类protected成员(也就是说:被声明为 protected 的变量、方法和构造器能被同一个包中的任何
java栈空间是一块线程私有的内存空间,java堆和程序数据密切相关,那么java栈就是和线程执行密切相关。线程最基本的执行行为就是函数的调用。每次函数调用其实是通过java栈传递数据的。数据结构中的栈的特性:先进后出,后进先出。FIFO.java内存中的栈跟数据结构中的特性相似也是FIFO.但是只支持进栈和出栈操作。java栈中保存的主要内容是栈帧。每一次函数调用都会有对应的栈帧被压进去java
转载
2023-09-27 06:30:00
56阅读
Java默认值问题基本数据类型的默认值:作为类成员的基本数据类型有默认值;boolean 默认值是false ; char 默认值是'\u0000'; 其他类型默认值都是0局部变量的基本类型可能是任意值。创建一个数字数组时,所有元素都初始化为0;boolean数组的元素会初始化为false;对象数组的元素则初始化为一个特殊值null,表示这些元素(还)未存放任何对象。
原创
2022-06-26 18:48:00
390阅读
Java语言中有8种基本数据类型,基本情况汇总如下:Java中8种基本数据类型总结序号数据类型存储需求大小/位封装类默认值可表示数据范围1byte(位)1字节8位Byte0-128~1272short(短整数)2字节16位Short0-32768~327673int(整数)4字节32位Integer0-2147483648~21474836474long(长整数)8字节64位Long0-92233
转载
2023-09-19 08:58:53
86阅读
java的内存需要划分成为5个部分:
1、栈(Stack ):存放的都是方法中的局部变量。方法的运行一定要在栈当中运行
局部变量:方法的参数,或者是方法{}内部的变量
作用域:一旦超出作用域,立刻从占内存当中消失
2、堆(Heap):凡是new出来的东西,都放在堆当中
堆内存当中的东西都有一个16进制的地址值
堆内存当
转载
2023-06-06 19:46:27
546阅读
栈和内存都是放数据的地方,但是两个存放的数据类型不一样。栈是为执行线程留出的内存空间,堆是为动态分配预留的内存空间,每一个线程都有一个栈,但是每一个应用程序只有一个堆堆内存:存放new创建的对象和数组,存储实例,如再函数里声明一个类的变量:A a,那么这个a时存储在栈内存中,注意:是在栈内存中,实例化后 a = new A(),实例后的对象是在存在堆内存中,栈内存中存储的a指向堆内存的地址指向,堆
转载
2023-07-23 10:35:48
43阅读
基本数据类型byte :默认初始化值为0int :默认初始化值为0short:默认初始化值为0long:默认初始化值为0lfloat::默认初始化值为0fdouble::默认初始化值为0dchar:'u0000'boolean:false Integer :默认初始化值为nullString :默认初始化值为null像Integer,String这样的所有引用类型默认初始化值都为null
转载
2023-05-31 17:02:57
543阅读
原标题:Java枚举用法详解概念enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下:enumColor{ RED, GREEN, BLUE }如果枚举不添加任何方法,枚举值默认为从0开始的有序数值。以 Color 枚举类型举例,它的枚举常量依次为RED:0,GREEN:1,BLUE:2枚举的好处:可以
转载
2023-07-05 23:25:31
262阅读
default出现的原因Java 8中对API最大的改变在于集合类,Java在持续演进,但是它一直保持着向后兼容。在Java 8中为Collection接口增加了stream方法,这意味着所有实现Collection接口的类都必须实现stream方法。这时候问题在于:核心自带的类能轻松在JDK实现,但是如果是我们平时自定义的集合类,我们是否需要一个一个的去修改代码?Java 8为了解决这个问题,在
转载
2023-06-14 19:44:39
144阅读
堆栈可以增长多少?您可以使用名为ss的VM选项来调整最大堆栈大小. VM选项通常使用-X {option}传递.因此,您可以使用java -Xss1M将堆栈大小的最大值设置为1M.每个线程至少有一个堆栈.一些Java虚拟机(JVM)将Java堆栈(Java方法调用)和本机堆栈(VM中的本机方法调用)放入一个堆栈中,并使用Managed to Native Frame(称为M2NFrame)执行堆栈
转载
2023-06-25 16:00:52
289阅读
java enum的用法详解Java Enum原理 public enum Size{ SMALL, MEDIUM, LARGE, EXTRA_LARGE };实际上,这个声明定义的类型是一个类,它刚好有四个实例,在此尽量不要构造新对象。因此,在比较两个枚举类型的值时,永远不需要调用equals方法,而直接使用"=="就可以了。(equals()方法也是直接使用==, 两者是
转载
2023-08-23 20:21:36
62阅读
Java中基本数据类型的默认值(初始值),数据类型默认值byte
0
short
0
int
0
long
0
float
0.0
double
0.0
String
null
boolean
false
public class bdtdValues {
public static void main(String[] args) {
Variable v = new Variable();
S
转载
2023-07-31 20:51:46
153阅读
枚举什么是枚举 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下:enum Color { RED, GREEN, BLUE } 如果枚举不添加任何方法,枚举值默认为从0开始的有序数值。以 Color 枚举类型举例,它的枚举常量依次为 RED:0,GREEN:1,BLUE:2。 枚举的好处:可以将常
转载
2023-06-03 21:59:55
232阅读
不管程序有没有显示的初始化,Java 虚拟机都会先自动给它初始化为默认值。1、整数类型(byte、short、int、long)的基本类型变量的默认值为0。2、单精度浮点型(float)的基本类型变量的默认值为0.0f。3、双精度浮点型(double)的基本类型变量的默认值为0.0d。4、字符型(char)的基本类型变量的默认为 “/u0000”。5、布尔性的基本类型变量的默认值为 f
转载
2023-05-25 11:16:23
461阅读
注解Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容.注解的一些特征Java1.5引入了注解,当前许多java框架中大量使用注解,如Hibernate、Jersey、Spring1.注解作为程序的元数据嵌入到程序当中 (注解需要定义) 2.注解可以被一些解析工具或者是编译工具进行解析 (注解需要看得懂,也就是要别工具识别) 3. 我们可以声明注解在编译过程或执行时产生作用。
转载
2023-08-29 10:57:37
115阅读
目录包装类包装类的产生JDK中的包装类——以下8种包装类的使用包装类与基本类型的不同点泛型引入泛型——编译阶段检查类型是否一致的手段。 若泛型类中存在多个类型参数,成员变量的类型不一定一致。 泛型方法泛型声明在接口中通配符 ?泛型上限泛型下限类型擦除包装类包装类:就是把8大基本类型封装到类之中。 包装类的产生a. Object类可以接收所有引用数据类型(数组,类,接口
转载
2023-08-22 21:02:36
115阅读
当我们尚未初始化实例变量时,编译器将使用默认值对其进行初始化。
对于布尔类型,默认值为false;对于浮点型和双精度类型,默认值为0.0;对于其余原始类型,默认值为0。
转载
2023-05-29 18:53:28
219阅读