Java基础
文章平均质量分 56
记录一下
细雨生寒未有霜
这个作者很懒,什么都没留下…
展开
-
RandomAccess
接口作用实现该接口,就说明支持随机访问方式遍历例子public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); if (list instanceof RandomAccess) { //随机访问 for (int i = 0; i < list.size(); i++) {原创 2021-09-27 19:52:58 · 176 阅读 · 0 评论 -
堆排序-java-重要
思路构建最大堆1.1 从最后的父节点开始调整堆1.2 当i == 0时结束调整堆的思路是:2.1 比较当前的父节点 与 左右节点 谁大2.2 父节点大说明没得调整了2.3 左节点大就把父节点和左节点交换值,并递归调整,下一个父节点就从左节点那里开始2.4 右节点同理排序,从最后开始,与0交换,因为0是最大的位置,把最大放到最后,最后的位置就不用动了,heapSize - 1,然后调整堆,就得到排序好的数组。代码import java.util.Arrays;public cl原创 2021-08-01 11:04:26 · 93 阅读 · 0 评论 -
CopyOnWriteArrayList简单了解
常用方法/** The lock protecting all mutators */final transient ReentrantLock lock = new ReentrantLock(); /** The array, accessed only via getArray/setArray. */private transient volatile Object[] array; /** * Gets the array. Non-private so as原创 2021-07-13 11:26:00 · 83 阅读 · 0 评论 -
Java线程池(ThreadPoolExector)
创建线程池的方式1. Executors.newCachedThreadPool()public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS,原创 2021-07-12 21:47:51 · 159 阅读 · 0 评论 -
快速排序、归并排序、希尔排序(Java)
快排class QuikSort { public void sort(int[] array){ int len = array.length; if (len < 1) return; quikSort(array,0,len - 1); } private void quikSort(int[] array, int left, int right) { if (left >原创 2021-07-12 10:06:29 · 93 阅读 · 0 评论 -
线程二三事(Java)
文章目录线程和进程的区别线程通信方式进程通信方式Java线程 6 种状态sleep()、wait()、join()、yield()线程和进程的区别进程是资源分配的最小单位,线程是CPU调度的最小单位进程申请了资源,线程使用资源处理任务。进程是程序集,线程是程序集中的一部分。进程相当于火车,线程是车厢。线程通信方式wait()和notify()、notifyAll()join()volatileCountDownLatchCyclicBarrierThread.In原创 2021-07-08 20:55:55 · 58 阅读 · 0 评论 -
1115.交替打印FooBar
力扣评论区答案看了这个评论感觉很有用/BLOCKING Queuepublic class FooBar { private int n; private BlockingQueue<Integer> bar = new LinkedBlockingQueue<>(1); private BlockingQueue<Integer> foo = new LinkedBlockingQueue<>(1); public F转载 2021-07-05 16:18:48 · 76 阅读 · 0 评论 -
类加载过程、JVM类加载器(ClassLoader)和双亲委派机制
文章目录类加载过程JVM类加载器(ClassLoader)和双亲委派机制类加载过程类的加载过程一般分为三个比较大的阶段,分别是加载阶段、连接阶段、初始化阶段。加载阶段:主要负责查找并加载类的二进制数据文件,其实就是class文件在某个类完成加载阶段之后,虚拟机会将这些二进制字节流按照虚拟机所需的格式存储在方法区中,然后形成特定的数据结构,随之又在堆内存中实例化一个java.lang.Class类对象,在类加载的整个生命周期中,加载过程还没有结束,连接阶段是可以交叉工作的,比如连接阶段验证字原创 2021-07-05 11:07:27 · 94 阅读 · 0 评论 -
Java反射和多态的一些理解
前言最近看了几篇文章所以就总结一下自己的理解,个人理解有限,会有一些问题,仅记录一下。。。。文章1:反射和多态的实现原理详解以及区别文章2:java方法的虚分派和方法表文章3:编译时多态、运行时多态Java虚分派和方法表虚分派先看个例子:class A{ String msg = "A 的属性"; public void test(){ System.out.println("调用了 A 的方法"); }}class B extends A{原创 2021-07-04 15:59:42 · 413 阅读 · 0 评论 -
String 的intern()了解一下
String 的intern()了解一下public native String intern();说明:intern() 方法返回字符串对象的规范化表示形式。例子: public static void main(String[] args) { String s1 = "abc"; String intern = s1.intern(); System.out.println(intern); }返回值:abc...原创 2021-07-03 09:49:43 · 77 阅读 · 0 评论