随笔分类 -  Java基础

上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
摘要:HashMap 概述 HashMap是Map接口的十分重要的实现类 底层实现是数组+链表+红黑树 特点:无序,无脚标,键不可重复,值可重复 实践 如果HashMap的key或value是自定义类,想要两个内容相同的实例定义为同一个实例,需要重写hashcode和equals方法,总结:包含hash的 阅读全文
posted @ 2022-05-16 21:21 Oh,mydream! 阅读(45) 评论(0) 推荐(0)
摘要:TreeSet 概述 TreeSet是一种有序,无脚标,不可重复的集合 底层是红黑树,是一种平衡二叉树 TreeSet对集合中元素如果是自定义类,实现排序有两种方法 1.自定义类继承Comparable接口 2.TreeSet构造方法参数中创建Comparator的匿名类,用于定制排序规则 注意:T 阅读全文
posted @ 2022-05-13 22:21 Oh,mydream! 阅读(78) 评论(0) 推荐(0)
摘要:Set接口 Set是一个无序,无下标,不可重复的集合 Set接口方法完全继承自Collection 实践: package com.qianfeng.collection; import java.util.HashSet; import java.util.Iterator; import jav 阅读全文
posted @ 2022-05-13 21:01 Oh,mydream! 阅读(28) 评论(0) 推荐(0)
摘要:HashSet Hashset底层是哈希表即数组+链表+红黑树 存储过程: 由hashcode计算数据存储的位置,如果该位置为null,将数据添加进去,否则计算equals若为true,则不添加,否则与链表下一个元素进行equals比较 实践 添加,删除,遍历,判断跟List接口很相近 差别在于如果 阅读全文
posted @ 2022-05-13 21:01 Oh,mydream! 阅读(33) 评论(0) 推荐(0)
摘要:泛型集合 集合也是泛型类 泛型集合的使用 优点: 获取类型时不用强转 实践: package com.qianfeng.collection; import java.util.ArrayList; import java.util.Iterator; /** * 功能描述 * * @since 2 阅读全文
posted @ 2022-05-12 21:04 Oh,mydream! 阅读(28) 评论(0) 推荐(0)
摘要:泛型 简介 泛型是JDK1.5中引入的新特性 ,本质是参数化类型,即把类型作为参数传递 常见形式有泛型类,泛型接口和泛型方法 语法 <T,...> T称为类型占位符,表示一种引用类型 好处 提高代码的重用性 防止类型异常转换,提高代码的安全性 实践 泛型类 语法:类名 注意:泛型变量不能实例化 pa 阅读全文
posted @ 2022-05-11 10:05 Oh,mydream! 阅读(14) 评论(0) 推荐(0)
摘要:LinkedList 特点 底层是链表,增删快,查询慢 实践 package com.qianfeng.collection; import java.util.Iterator; import java.util.LinkedList; import java.util.ListIterator; 阅读全文
posted @ 2022-05-07 17:49 Oh,mydream! 阅读(36) 评论(0) 推荐(0)
摘要:Vector 特点 Vector 是JDK1.0中实现的 线程安全,底层是数组结构,查询遍历快,增删慢 由于Vector出现的比较早,有许多方法是其特有的 实践 package com.qianfeng.collection; import java.util.Enumeration; import 阅读全文
posted @ 2022-05-07 14:29 Oh,mydream! 阅读(89) 评论(0) 推荐(0)
摘要:ArrayList 说明 ArrayList是List的一个实现类,底层是数组,查询快,增删慢,线程不安全 实践 class Student { String name; Integer age; public Student() { } public Student(String name, In 阅读全文
posted @ 2022-05-07 10:57 Oh,mydream! 阅读(53) 评论(0) 推荐(0)
摘要:List接口 特点:有序、有下标、可重复 方法 除了继承Collection接口的方法,List还有自己的方法 List的方法相比Collection添加了下标相关的方法,添加、删除、获取下标、获取数据、列表迭代器等 void add(int index, Object o) //在index位置插 阅读全文
posted @ 2022-05-06 19:13 Oh,mydream! 阅读(56) 评论(0) 推荐(0)
摘要:Collection接口 特点:代表一组任意类型的对象,无序、无下标、不能重复 方法 boolean add(Object obj) // 添加一个对象 boolean addAll(Collection c) // 将一个集合中的所有对象添加到此集合中 void clear() //清空此集合中所 阅读全文
posted @ 2022-05-06 15:24 Oh,mydream! 阅读(38) 评论(0) 推荐(0)
摘要:集合 ##一、概念 什么是集合? 集合是对象的容器,定义了对多个对象进行操作的常用方法。可以实现数组的功能 与数组的区别 1.数组长度固定, 集合长度不固定 2.数组可以存储基本类型和引用类型, 集合只能存储引用类型,存储基本类型需要装箱操作 集合位置 java.util.* 二、集合框架体系 体系 阅读全文
posted @ 2022-05-06 10:49 Oh,mydream! 阅读(18) 评论(0) 推荐(0)
摘要:死锁再探 之前学了死锁产生的条件,两个线程分别抱着一个对象的锁,还想同时去获取另一个对象的锁,便会引发死锁 死锁示例 package juc; import java.util.concurrent.TimeUnit; public class TestDeadLock { public stati 阅读全文
posted @ 2021-12-27 12:00 Oh,mydream! 阅读(27) 评论(0) 推荐(0)
摘要:自旋锁 首次接触到自旋锁是在AtomicInteger类,其中的GetAndIncrement()方法,是类似于num++的原子性操作。 源码分析:其中的do while就是一个自旋锁 public final int getAndIncrement() { return unsafe.getAnd 阅读全文
posted @ 2021-12-27 10:50 Oh,mydream! 阅读(87) 评论(0) 推荐(0)
摘要:可重入锁 可重入锁就是一个线程已经获得了一把锁,可以重复获取而不会导致死锁 synchronized 和Lock都是可重入锁 synchronized 可重入锁示例 package com.example.juc; public class TestReentrantLock { public st 阅读全文
posted @ 2021-12-23 17:14 Oh,mydream! 阅读(103) 评论(0) 推荐(0)
摘要:ABA问题 问题现象:两个线程都去获取一个值,第一个线程获取后将其改变,然后又改回来,第二个线程获取到之后以为是第一个值,继续执行下去 ABA问题示例 package com.example.juc; import java.util.concurrent.atomic.AtomicInteger; 阅读全文
posted @ 2021-12-23 15:34 Oh,mydream! 阅读(91) 评论(0) 推荐(0)
摘要:理解CAS CAS(compare and swap):比较并交换,是CPU并发操作的原语 JUC的atomic包下的类中的操作均为原子性操作,底层均使用的是CAS,是直接对内存的操作 示例代码 package com.example.juc; import java.util.concurrent 阅读全文
posted @ 2021-12-23 11:31 Oh,mydream! 阅读(37) 评论(0) 推荐(0)
摘要:单例模式详解 单例模式就是只能有一个实例的模式;最大的特点是构造器私有。建议看视频。 单例模式分为两种: 饿汉式:直接将类的实例初始化好,可能会存在资源浪费的情况; 懒汉式:用的时候再初始化实例,比较常用。 饿汉式 特点: 构造器私有 构建一个静态常量表示类的实例 构建一个静态getInstance 阅读全文
posted @ 2021-12-22 16:35 Oh,mydream! 阅读(89) 评论(0) 推荐(0)
摘要:理解JMM volatile 是java虚拟机提供轻量级的同步机制,是一个java关键字 1.保证可见性 2.不保证原子性 3.禁止指令重排 JMM java 内存模型,是一种约定,不是真实存在的。 关于JMM的一些约定 1.线程解锁前,必须把共享变量刷回主存 2.线程加锁前,必须读取主存的最新值到 阅读全文
posted @ 2021-12-21 11:45 Oh,mydream! 阅读(57) 评论(0) 推荐(0)
摘要:类加载器和双亲委派机制 类加载器 类加载器类型 1.虚拟机自带的加载器 2.启动类加载器(根加载器)BootStrapClassLoader 3.扩展类加载器 ExtClassLoader 4.应用程序加载器 AppClassLoader 双亲委派机制 1.类加载器接收到类加载的请求 2.将这个请求 阅读全文
posted @ 2021-12-14 15:35 Oh,mydream! 阅读(52) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 ··· 10 下一页