Java基础
smarthunya
这个作者很懒,什么都没留下…
展开
-
线程池的参数以及分类
线程池的参数 我们阅读线程池的源码可知,线程池有四种构造方法,共有7个参数供我们学习。 corePoolSize:最大核心线程数:当创建的线程数小于该数时,该线程为核心线程,反之为非核心线程。 核心线程:即使核心线程处于闲置状态,系统仍不必将它销毁。 maximumPoolSize:最大线程数:当线程总数等于最大线程数的时候,如果再创建线程则会抛出异常。 keepAliveTime:非核心线程超...原创 2020-04-14 17:13:17 · 204 阅读 · 0 评论 -
抽象类和接口的区别
相同 抽象类和接口都不能实例化 抽象类的子类或者接口的实现类必须全部重写了它们的方法后才可以被实例化。 不同 抽象类强调的是和主类的关系,接口强调的是方法的实现。 抽象类中可以有非抽象方法,接口中必须全部为抽象方法。 抽象类的方法和变量的修饰可以为任意,接口中的变量必须为常量,方法为公开抽象方法。 一个接口可以被多个类实现,而一个抽象类只能由一个类继承。 抽象类用Abstract修饰,而接口用i...原创 2020-04-14 16:54:12 · 137 阅读 · 0 评论 -
集合的各个对象的底层数据结构
集合类Collection下分为三大类:List,Set,Map; List ArrayList:Object数组 Vector:Object数组 LinkedList:双向链表(在jdk1.6之前使用的是循环链表) Set HashSet(无序,唯一):基于HashMap实现,底层使用HashMap存储数据。 LinkedHashSet:LinkedHashSet继承于HashSet,内部...原创 2020-02-24 20:57:03 · 268 阅读 · 0 评论 -
synchronized关键字的使用和底层原理
什么是synchronized关键字? synchronized关键字是解决多个线程之间访问资源的同步性,可保证所修饰的代码块在任意时刻只有一个线程执行。 在Java早期版本,synchronized属于重量级锁,效率低下,因为监视器锁是依赖操作系统完成的,如果要挂起或唤醒一个线程,就需要操作系统的帮忙;而操作系统切换线程需要从用户态切换为内核态,需要较长时间。在Java6之后,Java官方对sy...原创 2020-02-17 16:54:32 · 485 阅读 · 0 评论 -
Java基础类面试总结(二)
获取键盘输入的常用方法 Scanner input = new Scanner(System.in); String s = input.nextLine(); input.close();原创 2020-02-16 11:57:27 · 92 阅读 · 0 评论 -
Java基础类面试总结(一)
String是由final关键字修饰了,String对象不可变,而StringBuffer,StringBuilder继承于AbstractStringBuilder类,也使用char[ ] value字符数组保存字符串,但是没有final修饰,所以这两个对象是可变的。 String对象不可变,也就是常量,因此String对象线程安全;StringBuffer对方法加了同步锁,所以StringB...原创 2020-02-14 12:01:40 · 93 阅读 · 0 评论