每日系列
dengdengdengdeng1
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊烦啊
展开
-
每日10题 2021-01-10
自定义线程池import java.util.ArrayDeque;import java.util.Deque;import java.util.HashSet;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;public class ThreadPoolTest { pu原创 2021-01-10 21:07:56 · 90 阅读 · 0 评论 -
每日10题 2021-01-05
公平锁ReentrantLock 默认是不公平的,公平锁按照顺序执行公平锁一般没有必要,会降低并发度import java.util.concurrent.locks.ReentrantLock;public class FairLock { public static void main(String[] args) throws InterruptedException { ReentrantLock lock = new ReentrantLock(true);原创 2021-01-05 23:56:15 · 125 阅读 · 0 评论 -
每日10题 2021-01-04
Park & Unpark// 暂停当前线程LockSupport.park();// 恢复某个线程的运行LockSupport.unpark(暂停线程对象)park & unpark 是以线程为单位来【阻塞】和【唤醒】线程,如LockSupport.unpark(t1),而 notify 只能随机唤醒一个等待线程,notifyAll是唤醒所有等待线程,就不那么【精确】park & unpark 可以先 unpark,而 wait & notify 不能先原创 2021-01-04 20:34:12 · 107 阅读 · 0 评论 -
每日10题 2021-01-07
happens-beforehappens-before 规定了对共享变量的写操作对其它线程的读操作可见,它是可见性与有序性的一套规则总结共享模型之无锁import java.util.ArrayList;import java.util.List;public class AccountWithdraw { public static void main(String[] args) { Account.demo(new AccountUnsafe(10000)原创 2021-01-07 19:15:47 · 140 阅读 · 0 评论 -
每日10题 2020-12-29
join 方法join():等待线程运行结束join(long n):等待线程运行结束,最多等待 n毫秒interrupt 方法打断 sleep,wait,join 的线程,这几个方法都会让线程进入阻塞状态,打断 sleep 的线程, 会清空打断状态守护线程默认情况下,Java 进程需要等待所有线程都运行结束,才会结束。有一种特殊的线程叫做守护线程,只要其它非守护线程运行结束了,即使守护线程的代码没有执行完,也会强制结束。class ThreadTest01 { public stat原创 2020-12-31 15:02:33 · 96 阅读 · 0 评论 -
每日10题 2020-12-28
进程与线程进程就是一个在内存中运行的应用程序。进程就是用来加载指令、管理内存、管理 IO 的,是资源分配的基本单位线程是系统能够进行运算调度的最小单位,一个进程包含多个线程二者对比进程基本上相互独立的,而线程存在于进程内,是进程的一个子集进程拥有共享的资源,如内存空间等,供其内部的线程共享进程间通信较为复杂同一台计算机的进程通信称为 IPC(Inter-process communication)不同计算机之间的进程通信,需要通过网络,并遵守共同的协议,例如 HTTP线程通信相对简单,因为原创 2020-12-29 00:23:04 · 121 阅读 · 0 评论 -
每日10题 2020-12-23
什么是集合集合框架:用于存储数据的容器。集合和数组的区别数组是固定长度的;集合可变长度的。数组可以存储基本数据类型,也可以存储引用数据类型;集合只能存储引用数据类型。数组存储的元素必须是同一个数据类型;集合存储的对象可以是不同数据类型。常用的集合类有哪些?Map接口和Collection接口是所有集合框架的父接口:Collection接口的子接口包括:Set接口和List接口Map接口的实现类主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap以及原创 2020-12-24 22:05:59 · 185 阅读 · 0 评论 -
每日10题 2020-12-22
Error 和 Exception 区别是什么?Error 类型的错误通常为虚拟机相关错误,如系统崩溃,内存不足,堆栈溢出等,编译器不会对这类错误进行检测,JAVA 应用程序也不应对这类错误进行捕获,一旦这类错误发生,通常应用程序会被终止,仅靠应用程序本身无法恢复;Exception 类的错误是可以在应用程序中进行捕获并处理的,通常遇到这种错误,应对其进行处理,使应用程序可以继续正常运行。运行时异常和一般异常(受检异常)区别是什么?运行时异常包括 RuntimeException 类及其子类,表示原创 2020-12-23 20:40:25 · 130 阅读 · 0 评论 -
每日10题 2020-12-21
String和StringBuffer、StringBuilder的区别是什么?操作字符串的类有:String、StringBuffer、StringBuilder。String底层为final修饰的byte [ ],所以是不可变的,无法扩容,每一次用+号进行字符串拼接的时候都会产生新的对象(堆中)StringBuffer底层是容量为16的byte[ ],但是没有final修饰,并且使用append追加,append追加的时候如果byte[]满了,会进行扩容StringBuffer 和 String原创 2020-12-23 00:25:48 · 117 阅读 · 0 评论 -
每日10题 2020-12-20
BIO,NIO,AIO 有什么区别?简答BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。NIO:Non IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。字符型常量和字符串常量的区别形式上: 字符常量是单引号引起的一个字符 字符原创 2020-12-22 22:17:42 · 90 阅读 · 0 评论 -
每日10题 2020-12-19
内部类的分类有哪些内部类可以分为四种:成员内部类、局部内部类、匿名内部类和静态内部类。静态内部类定义在类内部的静态类,就是静态内部类。public class Outer { private static int radius = 1; static class StaticInner { public void visit() { System.out.println("visit outer static variable:" + r原创 2020-12-20 23:13:44 · 102 阅读 · 1 评论 -
每日10题 2020-12-18
this关键字的用法this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。this的用法在java中大体可以分为3种:1.普通的直接引用,this相当于是指向当前对象本身。2.形参与成员名字重名,用this来区分:public Person(String name, int age) { this.name = name; this.age = age;}3.引用本类的构造函数class Person{ private String name;原创 2020-12-20 17:14:04 · 355 阅读 · 0 评论 -
每日10题 2020-12-17
JVM、JRE和JDK的关系JVMJava Virtual Machine是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此Java语言可以实现跨平台。JREJava Runtime Environment包括Java虚拟机和Java程序所需的核心类库等。核心类库主要是java.lang包:包含了运行Java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包如果想要运行一个开发好的Java程序,计算机中只需要安装JR原创 2020-12-17 20:23:04 · 331 阅读 · 0 评论