【java AST JCTree简要分析】教程文章相关的互联网学习教程文章

Java EE 网上书店之需求分析与概要设计【图】

第2章 需求分析 本章写作简要说明(在正式文档中请删除): l 介绍用户单位的具体情况,这些情况与所要设计的系统具有一定相关性。 l 介绍用户对设计对象的具体要求。 l 按用户的要求,抽象出领域逻辑(Domain Logic),设计软件系统的功能。 l 介绍设计的工具和平台 完善中... 2.1 用户需求 2.1.1 业务需求 2.1.2 特殊需求 2.2 可行性分析 2.2.1 技术可行性 介绍设计的工具软件和平台 2.2.2 经济可行性 2.3 系统功能 将...

Dagger2源码分析(二):Java无所不能的反射在Android中需要熟练的知识【图】

前言提起hook概念,相信大家都听说过,然后hook就是将反射和动态代理运用于Android平台源码之上的。可是,反射的应用场景缺非常广泛,注解的内容也同样需要使用反射去获取,所以反射是我们Android开发者必须要学习的知识。反射什么是反射?反射 (Reflection) 是 Java 的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性简而言之,通过反射,我们可以在运行时获得程序或程序集中每一个类型的成员...

Dagger2源码分析(一):Java注解在Android中必须学习的细节知识【图】

前言对于注解,相信大家都不陌生了,但是这种熟悉对于Android开发者来说,也就是仅仅是它认识你,你不认识它吧,因为,我们几乎都停留在用上了。像dagger2,像retrofit,像greenDao,他们都是满满的使用了注解,而我们只是停留在知其然缺不知其所以然的层面,那么我本次分享讲分成几批博客共享给大家一个体系的又不失针对Android平台需要的恰到好处的给大家整理真正需要掌握的知识体系。注解注解的定义Java 注解用于为 Java 代码提...

死磕 java集合之LinkedList源码分析【图】

问题 (1)LinkedList只是一个List吗? (2)LinkedList还有其它什么特性吗? (3)LinkedList为啥经常拿出来跟ArrayList比较? (4)我为什么把LinkedList放在最后一章来讲? 简介 LinkedList是一个以双向链表实现的List,它除了作为List使用,还可以作为队列或者栈来使用,它是怎么实现的呢?让我们一起来学习吧。 继承体系通过继承体系,我们可以看到LinkedList不仅实现了List接口,还实现了Queue和Deque接口,所以它既能作为Li...

Java学习篇之容器篇(进阶&源码分析)【图】

一、概括: 在java中,由于数组长度固定,在实际开发中用到的并不多;为了解决数组长度固定的缺陷,在JDK1,2开始,java中提供了集合框架(容器)来解决这一问题。简单来说,java集合框架实际上就是一种数据结构,用来存放数量不固定的元素。java类集框架中提供了两个最为核心的接口,Collection 和 Map Collection :和单链表类似,每一次操作的都是单个元素Map :每次操作的都是一对键值对(key = value)二、Collection集合 2....

Java8 ThreadLocal 源码分析【代码】【图】

可参考文章: Java8 IdentityhashMap 源码分析 IdentityhashMap 与 ThreadLocalMap 一样都是采用线性探测法解决哈希冲突,有兴趣的可以先了解下 IdentityhashMap 。 一、ThreadLocal 简介 在学习源码之前,有一个概念我们需要先明白:ThreadLocal 可以使多线程间数据读写隔离,因此 ThreadLocal 解决的是线程局部变量安全性问题,并不是多线程间共享变量安全性问题。 ThreadLocal 在使用时必须先初始化 value,否则会报空指针异常,...

Java线程池的使用及原理分析【代码】【图】

概述 线程池是管理一组同构工作线程的资源池。合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池...

死磕 java集合之DelayQueue源码分析【图】

问题 (1)DelayQueue是阻塞队列吗? (2)DelayQueue的实现方式? (3)DelayQueue主要用于什么场景? 简介 DelayQueue是java并发包下的延时阻塞队列,常用于实现定时任务。 继承体系从继承体系可以看到,DelayQueue实现了BlockingQueue,所以它是一个阻塞队列。 另外,DelayQueue还组合了一个叫做Delayed的接口,DelayQueue中存储的所有元素必须实现Delayed接口。 那么,Delayed是什么呢? public interface Delayed extends Com...

Java虚拟机三:OutOfMemoryError异常分析【代码】【图】

根据Java虚拟机规范,虚拟机内存中除过程序计数器之外的运行时数据区域都会发生OutOfMemoryError(OOM),本文将通过实际例子验证分析各个数据区域OOM的情况。为了更贴近生产,本次所有例子都是通过调用接口触发,并使用jvisualvm工具监控tomcat内存进行分析。 一、Java堆溢出Java堆主要用于存储对象和数组实例,只要不断创建对象或者数组,并且保证CG Roots(垃圾收集器对象)到对象之间有可达路径来避免垃圾回收机制清除这些对象...

java分析日记返回情绪值【代码】【图】

本来想用python+机器学习做情感分析,但是还没开始就放弃了(机器学习没学过啊,还那么难,为了这一个接口去花费大量的时间学习,实在不划算)所以放弃了造轮子。emmm,无意中发现了,百度AI开放平台。上面有很多可以免费使用的“轮子”。 嗯,就是这个情感倾向分析自己创建一个应用就可以了。这里我使用的是java的SDK。 SDK文档很详细,可以直接照着例子用。 来分析一下返回结果: {"text":"苹果是一家伟大的公司","items":[{"sen...

死磕 java集合之LinkedTransferQueue源码分析【图】

问题 (1)LinkedTransferQueue是什么东东? (2)LinkedTransferQueue是怎么实现阻塞队列的? (3)LinkedTransferQueue是怎么控制并发安全的? (4)LinkedTransferQueue与SynchronousQueue有什么异同? 简介 LinkedTransferQueue是LinkedBlockingQueue、SynchronousQueue(公平模式)、ConcurrentLinkedQueue三者的集合体,它综合了这三者的方法,并且提供了更加高效的实现方式。 继承体系LinkedTransferQueue实现了TransferQue...

数据结构与算法分析Java语言描述课后1.6

编写下列声明的历程: public void permute(String str); private void permute (char[] str, int low, int high); 第一个历程是驱动程序,调用第二个历程,第二个历程显式str字符串的所有排列。public class one1_6 {public void permute(String str) {char [] strArr = str.toCharArray();permute(strArr, 0, strArr.length);}private void permute(char [] str, int low, int high) {if(low == high) {String s = " ";for(...

Java容器类源码分析之Iterator与ListIterator迭代器(基于JDK8)【图】

一、基本概念 迭代器是一个对象,也是一种设计模式,Java有两个用来实实现迭代器的接口,分别是Iterator接口和继承自Iterator的ListIterator接口。实现迭代器接口的类的对象有遍历集合对象,选择集合中的元素和删除集合中元素的方法。而在使用它时不必知道该集合对象底层的结构。Java类库中实现Iterator接口的迭代器只能正向遍历集合中的元素,而实现ListIterator接口的迭代器不仅能够正向遍历,还能够反向遍历集合中的元素。...

死磕 java集合之ArrayBlockingQueue源码分析【代码】

问题 (1)ArrayBlockingQueue的实现方式? (2)ArrayBlockingQueue是否需要扩容? (3)ArrayBlockingQueue有什么缺点? 简介 ArrayBlockingQueue是java并发包下一个以数组实现的阻塞队列,它是线程安全的,至于是否需要扩容,请看下面的分析。 队列 队列,是一种线性表,它的特点是先进先出,又叫FIFO,就像我们平常排队一样,先到先得,即先进入队列的人先出队。 源码分析 主要属性 // 使用数组存储元素 final Object[] items;...

死磕 java集合之ArrayBlockingQueue源码分析

问题 (1)ArrayBlockingQueue的实现方式? (2)ArrayBlockingQueue是否需要扩容? (3)ArrayBlockingQueue有什么缺点? 简介 ArrayBlockingQueue是java并发包下一个以数组实现的阻塞队列,它是线程安全的,至于是否需要扩容,请看下面的分析。 队列 队列,是一种线性表,它的特点是先进先出,又叫FIFO,就像我们平常排队一样,先到先得,即先进入队列的人先出队。 源码分析 主要属性 // 使用数组存储元素 final Object[] items;...