Java学习
文章平均质量分 86
YUNWEISAN
这个作者很懒,什么都没留下…
展开
-
stream流
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。元素流在管道中经过中间操作(intermediate operation)转载 2021-10-10 23:32:06 · 139 阅读 · 0 评论 -
如何保证集合是线程安全的? ConcurrentHashMap如何实现高效地线程安全?(转)
了解Java 语言提供了并发包(java.util.concurrent),为高度并发需求提供了更加全面的工具支持。Java 提供了不同层面的线程安全支持。在传统集合框架内部,除了 Hashtable 等同步容器,还提供了所谓的同步包装器(Synchronized Wrapper),我们可以调用 Collections 工具类提供的包装方法,来获取一个同步的包装容器(如 Collections.synchronizedMap),但是它们都是利用非常粗粒度的同步方式,在高并发情况下,性能比较低下。原创 2021-10-10 22:52:26 · 246 阅读 · 0 评论 -
对比Hashtable、HashMap、TreeMap有什么不同(转)
了解Hashtable、HashMap、TreeMap 都是最常见的一些 Map 实现,是以键值对的形式存储和操作数据的容器类型。Hashtable 是早期 Java 类库提供的一个哈希表实现,本身是同步的,不支持 null 键和值,由于同步导致的性能开销,所以已经很少被推荐使用。HashMap 是应用更加广泛的哈希表实现,行为上大致上与 HashTable 一致,主要区别在于 HashMap 不是同步的,支持 null 键和值等。通常情况下,HashMap 进行 put 或者 get 操作,可原创 2021-10-10 15:37:04 · 287 阅读 · 0 评论 -
对比Vector、ArrayList、LinkedList有何区别(转)
了解这三者都是实现集合框架中的 List,也就是所谓的有序集合,因此具体功能也比较近似,比如都提供按照位置进行定位、添加或者删除的操作,都提供迭代器以遍历其内容等。但因为具体的设计区别,在行为、性能、线程安全等方面,表现又有很大不同。Vector 是 Java 早期提供的线程安全的动态数组,如果不需要线程安全,并不建议选择,毕竟同步是有额外开销的。Vector 内部是使用对象数组来保存数据,可以根据需要自动的增加容量,当数组已满时,会创建新的数组,并拷贝原有数组数据。ArrayList 是应用更原创 2021-10-10 14:27:44 · 107 阅读 · 0 评论 -
List增删元素后size大小发生变化带来的影响、Stream流操作、Lambda表达式
目录List增删元素后size大小发生变化带来的影响List的几种遍历方式报异常原因增强for循环原理异常原理建议删除操作性能对比Stream流操作Lambda表达式语法Lambda 表达式实例List增删元素后size大小发生变化带来的影响List的几种遍历方式一般型for循环遍历for(int i = 0;i < list.size(); i ++){ System.out.println(list.get(i));原创 2021-10-09 00:27:26 · 944 阅读 · 0 评论 -
对象的内存结构
java对象在内存中的结构(HotSpot虚拟机) - duanxz - 博客园目录java对象在内存中的结构(HotSpot虚拟机) - duanxz - 博客园一、对象的内存布局1.1、对象头1.1.1、Mark Word(标记字段)1.2、实例数据(Instance Data)1.3、对齐填充(Padding)二、对象的创建过程三、对象的访问定位四、示例一、对象的内存布局HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header转载 2021-09-27 23:25:21 · 529 阅读 · 0 评论 -
String、StringBuffer、StringBuilder有什么区别
StringString 是 Java 语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑。它是典型的 Immutable 类(不可变类),被声明成为 final class,所有属性也都是 final 的。也由于它的不可变性,类似拼接、裁剪字符串等动作,都会产生新的 String 对象。由于字符串操作的普遍性,所以相关操作的效率往往对应用性能有明显影响。StringBufferStringBuffer 是为解决上面提到拼接产生太多中间对象的问题而提供的一个类,我们可以用 appe..原创 2021-09-26 01:30:49 · 87 阅读 · 0 评论 -
int和Integer有什么区别(转)
了解int 是我们常说的整形数字,是 Java 的 8 个原始数据类型(Primitive Types,boolean、byte 、short、char、int、float、double、long)之一。Java 语言虽然号称一切都是对象,但原始数据类型是例外。Integer 是 int 对应的包装类,它有一个 int 类型的字段存储数据,并且提供了基本操作,比如数学运算、int 和字符串之间转换等。在 Java 5 中,引入了自动装箱和自动拆箱功能(boxing/unboxing),Java 可以原创 2021-09-27 23:03:42 · 204 阅读 · 0 评论 -
Eclipse日常踩坑记录——导入文件时遇到的几个问题
今天在学习过程中,导入了一个教学视频中已经写好的文件,其中遇到了几个问题。一、jsp文件文件出错原因:Tomcat没有进入所以出现大量报错,需要引入Tomcat(百度来的,具体也不是太懂)解决步骤:项目右击—>build path —> configure build path — >libraries — > add libraries —> Ser...原创 2018-10-24 18:38:06 · 705 阅读 · 0 评论