java
文章平均质量分 71
OldZhangYH
日拱一卒
展开
-
JDK、JRE和JVM的关系与区别
其实他们三个的区别从他们的英文全称就可以看出来。JDK:Java Development Kit Java开发工具包JRE:Java Runtime Environment Java运行环境JVM:Java Virtual Machine Java虚拟机很明显的可以看出,JDK是面向开发人员的。JRE只是一个运行环境,JVM是Java虚拟机。他们三者是一个包含的关系,JDK最大向下包含JRE,JRE又向下包含JVM。JVM:就是java虚拟机,负责将class文件解释成机器码来运行JRE:包含原创 2022-06-08 17:37:07 · 257 阅读 · 0 评论 -
Java HashMap和哈希
哈希在各种语言的底层数据的顺序存储一般都是使用数组这个数据结构。而数据是可以根据索引直接获取数据的int a[0]。当数组过大的时候,我们想在这个数组中查找某给值所在的位置就需要遍历一遍数组花费较多的时间O(n),而哈希就可以解决这个问题。哈希可以把一个对象(万物皆对象)转化为一个固定的哈希值我们已这个哈希值来作为数组的索引,这样当我们想查找某个元素所在的位置时,就可以直接通过索引获取,而不用遍历数组了。常用的哈希算法直接定址法:直接以关键字k或者k加上某个常数(k+c)作为哈希地址。数字分析法:原创 2022-04-24 21:01:04 · 581 阅读 · 0 评论 -
Java 浅拷贝和深拷贝
浅拷贝和深拷贝代码地址浅拷贝:直接复制了对象A地址给另一个对象B。修改B,A也会跟着改变。深拷贝:复制了对象A的值给另一个对象B,这两个对象没有任何关系指向不同的地址。修改其中一个并不会对另一个造成影响。浅拷贝直接赋值ShallowCopy.java文件中的assign方法。重写clone()注意这个类得实现Cloneable接口clone 算是半深半浅吧。通过重写clone方法来实现拷贝可以做到对对象中基本数据类型(int,char,boolean等)及其包装类型(String、Inte原创 2022-04-20 15:17:17 · 547 阅读 · 0 评论 -
java集合(Collection)底层细节
CollectionListArrayListSetList和Set的区别所有的Java集合都继承了Collection接口,而Collection接口又集成了Iterable(迭代器)接口。也就是说所有的Java集合类(ArrayList、HashMap等)都可以使用iterator进行遍历,且都实现了Collection接口中规定的方法。ListArrayListArrayList的底层实现是一个Object数组。由于是Object数组所以,int等基本类型不能往里面放得先转成Integer原创 2022-03-02 16:09:33 · 547 阅读 · 0 评论 -
java stream
java streamJava 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。stream将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。元素流在管道中经过中间操作(intermediate operation)的处理,最后由最终操作(terminal operation)得到前面处理的结果。+--------------------+ +------+ +------+ +---+原创 2021-10-20 14:08:29 · 71 阅读 · 0 评论 -
String、StringBuffer和StringBuilder
String、StringBuffer和StringBuilderStringjava中字符串String有两种创建方式。一种储存在公共池中,一种储存在堆上。String str="储存在公共池中的创建方式";String str2=new String("储存在堆上的创建方式");String是静态的,一旦创建就不可变。当改变str的值时,jvm会在内存中创建一个新的String存储str+str2的值,并将其赋值给str。因此变量str只是指向了一个新的对象,效率极低String str=原创 2021-10-14 14:22:57 · 61 阅读 · 0 评论