Wesley13 Wesley13
2年前
java集合框架
ArrayList简介ArrayList是list接口的可变数组的实现。与一般数组不同的是,它的容量可以动态增长。ArrayList继承了AbstractList抽象类,实现了List,RandomAccess,Cloneable,java.io.Serializable接口,根据实现的接口看,它支持随机访问,支持克隆,支持序列化
九路 九路
2年前
一行一行源码分析清楚AbstractQueuedSynchronizer
在分析Java并发包java.util.concurrent源码的时候,少不了需要了解AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是Java并发包的基础工具类,是实现ReentrantLock、CountDownLatch、Semaphore、FutureTask等类的基础。Google一下A
Wesley13 Wesley13
2年前
java 面试知识点笔记(十二)多线程与并发
问:synchronized和ReentrantLock的区别?ReentrantLock(可重入锁)位于java.util.concurrent.locks包(著名的juc包是由Douglea大神写的AQS抽象类框架衍生出来的应用)和CountDownLatch、FutureTask、Semaphore一样基于AQS实现
Wesley13 Wesley13
2年前
java 07 接口
1.interface    接口2.接口中的成员修饰符固定  publicstaticfianl  //成员变量  只通过类访问   publicabstract    //成员函数   3.接口里所有的方法都是抽象的,抽象类中,可以没有抽象方法。  类与类继承,类与接口是实现的关系。降低耦合(高
Stella981 Stella981
2年前
AQS实现原理分析——ReentrantLock
在Java并发包java.util.concurrent中可以看到,不少源码是基于AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是Java并发包的基础工具类,是实现ReentrantLock、CountDownLatch、Semaphore、FutureTask等类的基础。 AQS的主要使用方式是继承,子类通
Wesley13 Wesley13
2年前
java面向对象,final,super ,抽象类,重写,代码块,static,this,构造方法,堆栈
在jvm内存中主要分布有以下三个区域:栈:存放基础数据和自定义对象的引用堆:主要存储创建的对象,即new出来的对象方法区:加载存放class文件(字节码文件)什么是封装?封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。封装的优点:隐藏代码的实现细节,提高安全性。private
Easter79 Easter79
2年前
Spring中的设计模式
spring在容器中使用了观察者模式:一、spring事件:ApplicationEvent,该抽象类继承了EventObject类,jdk建议所有的事件都应该继承自EventObject。二、spring事件监听器:ApplicationLisener,该接口继承了EventListener接口,jdk建议所有的事件监听器都应该继承Ev
Wesley13 Wesley13
2年前
Java 面试常见问题整理
!(http://uploadimages.jianshu.io/upload_images/5499281f9ab73180899374e.png?imageMogr2/autoorient/strip%7CimageView2/2/w/1240)问题:1.重写和重载的区别2.接口和抽象类的区别,各有什么特点
Wesley13 Wesley13
2年前
GuozhongCrawler系列教程 (5) TransactionRequest详解
     为了实现和维护并发抓取的属性信息提供线程安全的事务请求。TransactionRequest是一个抽象类自己不能设置Processor,却需要实现TransactionCallBack接口。TransactionRequest是个复合的BasicRequest。他可以将多个PageRequest、BinaryRequest甚至Transacti
Wesley13 Wesley13
2年前
Java Calender 类详解
一、  如何创建Calendar对象Calendar是一个抽象类,无法通过直接实例化得到对象.因此, Calendar 提供了一个方法getInstance,来获得一个Calendar对象,得到的Calendar 由当前时间初始化.1CalendarcalCalendar.getInstance()