java基础
我的程序才没有bug!
这个作者很懒,什么都没留下…
展开
-
内部类
内部类其实就是在一个类中进行其他类结构的嵌套优点:内部类与外部类可以互相访问彼此的私有域内部类可以实现Java的单继承局限内部类可以对同一包中的其他类隐藏起来,仅供外部类使用内部类与外部类的关系:对非静态内部类而言,内部类的创建需要依赖外部类的实例化对象,在没有外部类对象之前是无法创建内部类的内部类是一个相对独立的个体,与外部类不是is-a的关系内部类可以直接访问外部类的元素...原创 2019-12-20 17:32:24 · 155 阅读 · 0 评论 -
线程池
线程池优点:1. 降低资源消耗:通过反复利用已创建的线程降低线程创建与销毁带来的损耗2. 提高响应速度:当任务到达时,无需等待线程创建就可以立即执行3. 提高线程的可管理型:使用线程池可以统一进行线程分配,调度与监控线程池的继承关系:ExecutorService(普通调度池核心接口)submit(Callable\Runnable):FutureScheduledExecutor...原创 2019-12-20 09:02:54 · 155 阅读 · 0 评论 -
ReenrantLock源码剖析
重入锁的实现原理内建锁隐式的支持重入性,synchronized通过获取自增,释放自减的方式实现重入.重入锁的特性:线程获取锁时,如果已经获取锁的线程是当前线程直接获取.因为可以获取N次,所以只有当释放N次后才算真正释放成功.非公平锁nonfairTryAcquire():final boolean nonfairTryAcquire(int acquires) { //拿...原创 2019-12-18 18:38:21 · 173 阅读 · 0 评论 -
AQS独占锁源码剖析
LockJDK1.5之后增加Java.concurrent.locks提供了与内建锁完全不同的实现多线程共享机制,失去了内建锁隐式的加锁与解锁过程,增加了可中断的获取锁以及超时获取锁以及共享锁等内建锁不具备的特性.lock接口的API有以下几种:I . void lock(); / /获取锁II . void lockInterruptibly()throws InterruptedExc...原创 2019-12-17 21:40:05 · 137 阅读 · 0 评论 -
Synchronized原理及内建锁的优化
synchronized处理同步有两种模式:同步代码块:锁 类的实例对象 synchronized(this){ }锁类对象synchronized(类名.class){ }锁任何实例对象 String lock = " ";synchronized(lock){ }–全局锁同步方法:普通方法+synchronized,锁的是当前对象静态方法+synchronized,锁的是...原创 2019-12-13 21:25:06 · 122 阅读 · 0 评论 -
JVM内存划分
JVM,即Java虚拟机,是通过软件模拟的具有完整硬件功能,运行在完全隔离环境中的计算机系统.它通过软件模拟Java字节码指令集,JVM只保留了PC寄存器,而普遍的虚拟机有很多寄存器.Java内存划分Java内存区域一共划分为6块,如下图:其中,线程私有内存:1. 程序计数器程序计数器是比较小的内存空间,它是当前线程所执行的字节码的行号指示器.若当前线程执行的是Java方法,计数器记...原创 2019-12-07 21:23:20 · 111 阅读 · 0 评论 -
浅谈异常
异常继承图可以看出,所有的异常都继承自Throwable,Throwable的两个子类分为Error和Exception.Error:就是错误,无法捕捉,是程序无法处理的,如OutOfMemoryError.Exception:RuntimeException:运行时异常,发生在运行期,可以使用try catch来处理,如果不捕获,JVM会自动处理.比如:ClassCastExcepti...原创 2019-12-06 17:25:53 · 104 阅读 · 0 评论 -
十进制与二进制的相互转化
计算机储存数据是以二进制的方式,二进制数据是用0和1两个数码来表示的数。今天来讲讲十进制怎么转化为二进制.例如有一个十进制数字200,怎么转化成二进制呢? 128 < 200 < 256,所以把代表128的位 置为1.如下图:200 - 128 = 72. 又因为 64 < 72 < 128 ,所以把代表64的位 置为1.如下图:72-64 =...原创 2019-12-02 16:38:44 · 1753 阅读 · 0 评论 -
变量和运算符
数据类型:java中数据类型分为基本数据类型和引用数据类型两种,基本数据类型包含byte,boolean,short,char,int,float,long,double八种,引用数据类型有数组,类,接口等等原始类型:boolean char byte short int long float double封装类型:Boolean Cha...原创 2019-11-17 14:35:52 · 85 阅读 · 0 评论