![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 83
下一秒,待续
下一秒
展开
-
日志系统学习与应用治理实践
标准——log4j最开始出现的是log4j,也是应用最广泛的日志系统,它的出现使Java日志系统的标准基本确定了。它提出的一些基本理念,一直沿用至今:Appender: 实际的输出是通过Appender(输出源)。有许多可用的Appender,比如FileAppender、ConsoleAppender、SocketAppender、SyslogAppender、NTEventLogAppender,甚至SMTPAppender。多个Appender可以被关联到任何Logger上,所以可以到多个原创 2022-03-20 11:54:45 · 697 阅读 · 1 评论 -
Java锁之CountDownLatch、Atomic源码解析
1.CountDownLatch1.1整体架构一个线程或多个线程等待所有线程运行完毕,在继续执行 sync 是一个同步器,是 CountDownLatch 的内部类实现private static final class Sync extends AbstractQueuedSynchronizer {...}1.2await方法 public void await...原创 2019-11-23 23:29:12 · 238 阅读 · 0 评论 -
Java锁之ReentrantLock源码解析
目录1.ReentrantLock1.1整体结构1.2ReentrantLock 构造器1.3释放锁的源码分析1.4公平锁源码分析——FairSync类1.5非公平锁源码解析——NonfairSync类1.6加锁和尝试加锁——ReentrantLock类1.ReentrantLock1.1整体结构可重入锁针对同一个线程可以对同一个对象重复获取锁;支持公平和非...原创 2019-11-23 20:35:50 · 203 阅读 · 0 评论 -
Java锁之AbstractQueuedSynchronizer源码解析
目录1.AbstractQueuedSynchronizer1.1整体架构1.2同步器的状态1.3同步队列——获取排他锁源码解析1.4同步队列——获取共享锁源码解析1.5同步队列——释放排他锁源码解析1.6同步队列——释放共享锁源码解析1.7条件队列——入队等待源码解析1.8条件队列——signal源码解析1.9条件队列——signalAll源码解析1....原创 2019-11-23 16:35:26 · 198 阅读 · 0 评论 -
Java线程池之ThreadPoolExecutor线程池源码解析
目录0、引言0.1任务队列: LinkedBlockingQueue 没有设置固定容量大小0.2最大线程数量是: Integer.MAX_VALUE0.3拒绝策略:不能自定义1、ThreadPoolExecutor1.1基本架构1.2提交方法源码解析1.3线程的管理解析0、引言为甚麽线程池不允许使用Executors去创建,而是通过ThreadPoolEx...原创 2019-11-23 11:22:44 · 145 阅读 · 0 评论 -
Java线程之Thread、Future、FutureTask源码解析
目录1.Thread1.1start方法源码解析1.2初始化源码分析2.Future2.1基本架构3.FutureTask3.1整体架构3.2初始化源码解析3.3get源码解析1.Thread1.1start方法源码解析// 创建一个新的线程public synchronized void start() { // 如果没有初始化,抛异常...原创 2019-11-20 23:16:41 · 1001 阅读 · 0 评论 -
Java队列之ArrayBlockingQueue源码解析
目录1.ArrayBlockingQueue1.1整体架构1.2初始化源码解析1.3新增数据源码解析1.4拿数据源码解析1.5删除数据1.ArrayBlockingQueue1.1整体架构有界的阻塞队列,容量一旦创建,就无法进行修改 队列满时,往队列中 put 数据会被阻塞,队列空时,往队列中拿数据也会被阻塞。// 队列存放在 object 的数组里面/...原创 2019-11-20 15:12:37 · 125 阅读 · 0 评论 -
Java队列之DelayQueue源码解析
目录1.DelayQueue1.1整体结构1.2放数据1.3拿数据1.DelayQueue1.1整体结构延迟执行,并且可以设置延迟多久之后执行 队列中元素将在过期时被执行,越靠近队头,越早过期 底层使用了优先级队列来实现,复用组合了PriorityQueue(策略者模式),让先过期的元素先执行//队列的元素必须为Delayed本身或者子类public clas...原创 2019-11-20 11:34:20 · 212 阅读 · 0 评论 -
Java队列之SynchronousQueue源码解析
目录1.SynchronousQueue1.1整体架构1.2非公平的堆栈1.2.1堆栈结构1.3公平的队列1.3.1队列结构1.SynchronousQueue1.1整体架构本身没有容量的大小,当put的数据被take消费/take等待put操作放入数据,完成后才可以返回 一种是先入先出的结构,一种是先入后出的结构 // 堆栈和队列共同的接口 ...原创 2019-11-20 09:24:15 · 250 阅读 · 0 评论 -
Java队列之LinkedBlockingQueue源码解析
目录1.LinkedBlockingQueue1.1整体架构1.2初始化源码解析1.3阻塞新增源码解析1.4阻塞删除源码分析1.5查看元素源码分析1.LinkedBlockingQueue1.1整体架构主要实现了BlockingQueue和Queue接口 Queue接口包含了:遇到队列满或空的时候,抛异常,如 add、remove、element;遇到队...原创 2019-11-20 00:26:53 · 150 阅读 · 0 评论 -
Java并发集合之ConcurrentHashMap源码解析
目录1.ConcurrentHashMap1.1整体框架1.2put方法源码解析1.3数组初始化时的源码解析1.4扩容的源码分析1.5get方法源码解析1.ConcurrentHashMap1.1整体框架HashTable是对实例方法进行加锁,会锁住整个实例对象, 1.7中ConcurrentHashMap使用了分段锁,对每个段进行加锁,降低了锁的粒度 1....原创 2019-11-19 21:09:39 · 211 阅读 · 0 评论 -
Java并发集合之CopyOnWriteArrayList源码解析
目录1.CopyOnWriteArrayList1.1整体架构1.2新增方法源码分析1.3删除方法的源码分析1.4迭代方法分析1.CopyOnWriteArrayList1.1整体架构通过锁+数组拷贝+volatile关键字保证了线程安全 每次操作都会拷贝一份数组,然后在新数组上进行操作,操作成功后在赋值回去//一旦数组被改变就可以知道private tra...原创 2019-11-19 17:47:13 · 195 阅读 · 0 评论 -
Java集合之HashSet和TreeSet源码解析
目录1.HashSet1.1HashSet整体架构1.2初始化源码解析1.3增加源码解析2.TreeSet2.1TreeSet整体架构2.2增加源码解析2.3迭代器方法1.HashSet1.1HashSet整体架构底层实现基于HashMap,使用了组合的方式把HashMap当成一个实例变量来实现// 把 HashMap 组合进来,key 是 Hash...原创 2019-11-19 00:42:08 · 163 阅读 · 0 评论 -
Java集合之LinkedHashMap和TreeMap源码解析
目录1.TreeMap1.1TreeMap整体架构1.2新增节点的源码解析2.LinkedHashMap2.1整体结构2.1按照插入顺序访问2.2访问最少删除原则(LRU)1.TreeMap1.1TreeMap整体架构底层数据结构使用了红黑树来进行实现,是一个有序且基本平衡的二叉排序树,可以维护节点的大小//比较器,如果外部有传进来 Comparator...原创 2019-11-18 18:51:14 · 268 阅读 · 0 评论 -
Java集合之HashMap源码解析
目录1.HashMap1.1整体架构1.2新增源码解析1.HashMap1.1整体架构底层使用了数组+链表+红黑树的数据结构,当链表长度大于等于8会转换为红黑树,当链表长度小于等于6红黑树会转化为链表 JDK1.7没有引进红黑树,单纯的使用链表解决冲突,在1.8版本中引进了红黑树并且实现了转换和退化操作 由于引进了红黑树所以,key的对象,必须正确的实现了Compare...原创 2019-11-18 15:14:20 · 106 阅读 · 0 评论 -
Java集合之LinkedList源码解析
目录1.LinkedList1.1整体架构1.2追加源码分析1.3节点删除1.4节点查询2.迭代器ListIterator2.1整体架构2.2三个方法源码解析1.LinkedList1.1整体架构底层使用了双向链表来进行实现,有一个头节点,尾节点和一个元素个数size 这里的头节点和尾节点不是哨兵的概念,只是单纯的指针指向概念!!!public c...原创 2019-11-18 01:45:32 · 179 阅读 · 0 评论 -
Java集合之ArrayList源码解析
目录1.ArrayList1.1整体结构1.2初始化源码解析1.3新增和扩容源码解析1.4删除源码分析2.迭代器2.1总体结构2.2三个方法源码解析1.ArrayList1.1整体结构初始化大小,默认是10;第一次add的时候扩容的值 size表示当前数组大小 modCount表示当前版本号1.2初始化源码解析private static f...原创 2019-11-17 15:37:19 · 230 阅读 · 0 评论 -
Java(面向对象--抽象类,接口,多态,代理--反射)
目录一:抽象类二 .接口三:接口和抽象类的异同四:多态五:代理一:抽象类* 概念:* 什么叫抽象类: 只要一个类 是abstract修饰的那么这个类就是抽象类* 和 这个类中有没有抽象方法,没有必然的联系* * 什么叫抽象方法:* ...原创 2019-07-19 23:21:09 · 523 阅读 · 0 评论 -
Java(多线程)
一.多线程的使用方式继承方式:* 1.定义子类 继承 Thread* 2.在子类中重写run方法(就是执行任务的方法,在run方法中写任务代码即可)* 3.创建子类对象(就是创建一个线程对象)* 4.开启这个线程实现接口方式:* 1.定义实现类 实现Runnable接口* 2.实现类要重写run方法(就是写任务代码的方法)* 3.创...原创 2019-07-23 01:51:38 · 87 阅读 · 0 评论 -
Java(cookie和sesion)
目录一.cookie二.session一.cookie介绍:浏览器访问服务器,服务器产生键值对的形式(cookie), 通过响应(响应头 set-cookie)返回给浏览器,cookie保存在浏览器上, 下次访问的服务器时候,根据一定的规则携带不同的cookie, 通过请求(请求头 cookie)携带,服务器就可以拿到这些cookie,来识别用户。ps:cookie是...原创 2019-07-29 23:48:23 · 157 阅读 · 0 评论 -
Java(XML,正则,Dom解析)
目录一.XML的语法二.Dom解析一.XML的语法XML:是一个可扩展的标记语言。a.文档声明,固定格式 :<?xml version="1.0" encoding="UTF-8"?>b.元素:* i.元素名是区分大小写的* ii.元素名最好用数字+字母+"-",其他的分号,逗号,冒号最好别用* ...原创 2019-07-24 22:01:56 · 267 阅读 · 0 评论 -
Java(常用API,包装类,注解)
目录一.Date类:日期类二.DateFormat:日期格式化类,他是一个抽象类三.Calendar:日历类四.System:系统类五.Math:数学类六.基类数据类型包装类七.注解的介绍一.Date类:日期类构造方法:* public Date();//代表当前系统时间的Date对象* public Date(long...原创 2019-07-20 15:07:01 · 419 阅读 · 0 评论 -
Java(Object类,复制,异常)
x目录一.Object类二.异常三.断言一.Object类boolean equals(Object obj);* a.Object类中equals方法,比较 是两个对象地址 ,就是 ==号的作用* b.子类为了改变比较规则,可以重写equals方法* 比如:Java提供的String 重写了equals,变...原创 2019-07-20 12:01:10 · 117 阅读 · 0 评论 -
Java(面向对象--static,final,权限修饰符,代码块,内部类)
目录一.static二.final四.权限修饰符五:静态代码块六:匿名内部类一.static什么时候用static来修饰成员* 当这个成员不属于某一个对象,而是属于所有对象,或者属于这个类,那么需要用static来修饰它被static修饰的成员,有什么特点?* i.在编译的时候确定所属类* ...原创 2019-07-20 01:29:33 · 212 阅读 · 0 评论 -
Java(Socket网络编程)
一.TCP与UDP传输协议UDP:用户数据报协议* 特点:面向无连接,数据不安全* 优点:效率高* 比如:发短信,供屏软件,QQ视频*TCP:传输控制协议* 特点:面向有连接,数据是安全可靠* 比如:打电话,上网* TCP协议建立连接 有三个步...原创 2019-07-24 00:27:29 · 308 阅读 · 0 评论 -
Java(servlet)
目录一.Servlet的简介二.Servlet的结构三.Servlet与web.xml的关系四.servletContext(上下文)五.servlet的response(响应)六.通过response响应处理文件下载(服务器发送文件到浏览器)七.servlet的request请求八.request的请求转发和request域对象一.Servlet的简介概...原创 2019-07-29 01:15:22 · 140 阅读 · 0 评论 -
Java(面向对象--继承,封装)
目录一:this的作用以及本质二:匿名对象(了解概念)三:继承四:this和super五:方法的重写六:封装一:this的作用以及本质* 作用:区分局部变量和成员变量的同名的情况。ps:无类变量和实例变量的区别,只归为一个成员变量。* 本质:this代表一个实例对象,具体是哪一个对象,那么由方法的调用者决定。二:匿名对象(了解概念)...原创 2019-07-19 22:19:36 · 87 阅读 · 0 评论 -
Java(mysql数据库)
一.DDL,DML,DQL概念DDL:数据库定义语言,操作数据库中对象,数据库,表,列 ***创建数据库 create database 数据库名;# 以默认的编码创建数据库 create database 数据库名 charset 编码名; create database 数据库名 character set 编码名; ***...原创 2019-07-25 00:04:08 · 1207 阅读 · 0 评论 -
Java(jsp,el表达式,MVC模式)
目录一.jsp的介绍二.jsp的特有内容三.el表达式四.MVC模式一.jsp的介绍简介:在html代码中嵌套java代码 html+java+jsp组成内容过程:首先加载tomcat中的web.xml文件,通过反射机制找到JspServlet来进行处理, 服务器会将.jsp文件转换为java文件,在把java文件转换为class文件, 通过执行clas...原创 2019-07-30 16:03:17 · 259 阅读 · 0 评论 -
Java(集合-迭代器、增强for、泛型)
目录一.集合框架:二.增强for循环三.泛型一.集合框架:根接口:Collection * 子接口:List,Set......* 实现类:* List--> ArrayList(动态扩容的数组,线程不安全),LinkedList(链表),Vector(动态扩容的数组,线程...原创 2019-07-21 00:39:47 · 119 阅读 · 0 评论 -
Java(转换流,序列化流,打印流,commons-io工具包)
目录一.转换流二.序列化流与反序列化流三.打印流四.commons-IO工具包一.转换流OutputStreamWriter类* 是字符流通向字节流的桥梁:将字符串按照指定的编码表转成字节,在使用字节流将这些字节写出去。*public static void writeCN() throws Exception {* //创建与文件关联的...原创 2019-07-23 00:37:38 · 323 阅读 · 0 评论 -
Java(原生JDBC,连接池,DBUtils工具类)
目录一.JDBC二.原生JDBC开发的步骤三.定义原生JDBCUtils.java工具类四.DBCP连接池五.C3P0连接池六.DBUtils编写语句一.JDBC介绍:java语言操作各种数据库的技术* JDBC由一堆接口和类组成* 类:DriverManger,用于注册驱动* 接口:* ...原创 2019-07-27 11:57:18 · 1867 阅读 · 0 评论 -
Java(ajax)
目录一.ajax的介绍二.jquery中的ajax使用三.json的介绍一.ajax的介绍概念:"Asynchronous Javascript And XML"(异步JavaScript和XML), 即使用Javascript语言与服务器进行异步交互,传输的数据为XML(本质为字符串)。作用:通过在后台与服务器进行少量数据交换, AJAX 可以使网页实现异步更...原创 2019-07-31 00:30:33 · 258 阅读 · 0 评论 -
Java(IO-字节流/字符流,缓冲流,NIO介绍)
目录一.IO流的分类二.字节流/字符流三.缓冲流四.NIO一.IO流的分类IO流:* 根据流的流向分类:* Input:输入流* Output:输出流* 根据流操作的数据来分类* 字符流: 操作字符* 只能操作普通文本文件,* ...原创 2019-07-22 00:55:11 · 796 阅读 · 0 评论 -
Java(File类,Arrays工具类)
目录一.File类二.工具类一.File类构造:* public File(String path);* public File(String parent,String child);ps:两个字符串路径的拼接。* public File(File parent,String child);ps:本质也是两个字符串路径的...原创 2019-07-22 00:05:10 · 681 阅读 · 0 评论 -
Java(Listener)
一.listener的介绍概念:监听器其实就是一个实现特定接口的普通java程序 用于监听另一个对象事件的发生,当事件发生后,监听器的方法立即被执行。ps:例如实现接口ServletContextListener,ServletRequestListener,HttpSessionListener作用:监听javaweb的三个对象,ServletContext,Servlet...原创 2019-07-30 21:02:51 · 534 阅读 · 0 评论 -
Java(集合-Map、Properties、可变参数)
目录一.Map集合二.Properties类(属性映射)三.可变参数四.Collections中的静态方法:一.Map集合Map集合的特点* 1.Map集合 和 Collection集合 没有继承关系,所以不能直接用迭代器* 2.Collection集合 每一个元素都是单独存在* Map集合的每一个元素都是成对存在的* 3.Colle...原创 2019-07-21 23:07:14 · 790 阅读 · 0 评论 -
Java(Filter)
目录一.filter的介绍二.filter的配置一.filter的介绍介绍:在servlet或者jsp页面之前运行,对请求和响应进行过滤处理。应用场景:自动登录(通过设置cookie的存活时间,filter过滤来进行处理) 统一编码 过滤一些特殊符号或者敏感词生命周期:filter是一个单实例多线程的 在项目启动的时候,服务器创建filter的对象,调用in...原创 2019-07-30 18:05:03 · 374 阅读 · 0 评论 -
Java(集合-Collection集合体系)
目录一.List接口二.Set接口三.Set接口,判断元素是否重复的原理:四.contains方法,判断是否包含某一个元素一.List接口List接口的特点* a.有下标* b.有序的(有序不是自然顺序,不是123,abc,有序指的是存和取的顺序一致)* c.可重复实现类:ArrayList,LinkedLi...原创 2019-07-21 02:01:17 · 1821 阅读 · 0 评论 -
Java面试总结
1.为甚麽java是与平台无关的语言?java虚拟机(jvm)可以执行java的字节码文件(Unicode码),只要一经编译并且平台有jvm(运行环境),就可以运行。底层的工作都会交给jvm来进行!2.JDK 和JRE 的区别是什么?jre是java程序的运行环境,它包括jvm和一些类库。jdk是java程序的开发环境,它既包含开发工具也包含jre(运行环境)。3.方法的静态绑...原创 2019-03-05 18:40:22 · 141 阅读 · 0 评论