MyEclipse设置JDK和JRE具体的应用版本其实很简单,分为三种状况: 1、设置默认使用的JDK和JRE环境。...点中了,右边的窗口点ADD按钮,记住选择添加安装了Java目录下的JDK目录,而不是JRE目录。 天价后,在列表中选择你要使用的那个jdk版本即可。...然后Compiler项下,选择编译的jdk级别就可以了。 2、针对项目的环境设置。...Enable project specific settings,去掉Use compliance from execution environment ......前面的那个选择框,就可以自己选择使用的jdk...选择你要使用的应用服务器名称,点进去会看到JDK的菜单,选中后就可以在右边窗口的下拉选择框中选择自己需要使用的jdk版本了。
在编程过程中,有可能需要用到看源码的情况,那么怎么进行添加源码呢,这里做下记录 首先,先下载javaEE源码(可在网上自由下载) 1.在HttpServlet上右键-->Open Declaration...2.在未附加源码前,得到如图,然后点击Attach Source ? 3.得到如图,选择External location选项 ? 4.按如下图标识,添加源码 ? 5.添加成功后,效果如下 ?
以前读过一些 JDK 常用的源码。当时的做法是在 IDE 打开源码文件,同时打开官方文档和谷歌翻译,一边读一边翻译,那时觉得还颇有收获。但是,由于基础薄弱,为了加快速度,有很多不理解的地方跳过了。
AbstractMap是Map接口的抽象实现类,通过抽象方法keySet()实现了get(key),remove(key),containsKey(key),c...
正文:言归正传,今天完成了如何Tomcat如何导入到Myeclipse中,以下是自己的操作步骤。 ...Tomcat源码使用),下载链接: http://archive.apache.org/dist/ant/binaries/ Myeclipse版本:8.6 二:获取Tomcat源码 1.将下载好的...2.2使用Ant编译Tomcat源码 进入源码所在目录: ? 执行“ant download”命令,下载tomcat依赖的项目 ? ...三、Myeclipse中导入Tomcat源码 1.新建Java Project,如TSTest 2.右键项目->Import->File System 选中tomcat源码所在文件位置,勾选其中的...注意,org.eclipse.jdt.core_3.5.2.v_981_R35x.jar可以在Myeclipse安装的目录....
常用方法 await阻塞当前线程源码 public void await() throws InterruptedException { sync.acquireSharedInterruptibly...这个区别,就是 await(long timeout, TimeUnit unit) 多了一个超时判断步骤,所在源码如下: public final boolean tryAcquireSharedNanos...取消申请 countDown:倒计时源码 public void countDown() { sync.releaseShared(1); } public...return false; } 代码分析: 【1】回调CountDownLatch#Sync的tryReleaseShared方法,返回倒计时是否等于0的判断 【2】如果倒计时到0了,则进行释放倒计时 源码分析
概述 前文「JDK源码分析-PriorityQueue」分析了优先队列 PriorityQueue,它既不是阻塞队列,而且线程不安全。...juejin.im/post/5cc258796fb9a03228616e6e https://blog.csdn.net/codejas/article/details/89190774 相关阅读: JDK...源码分析-PriorityQueue JDK源码分析-ReentrantLock Stay hungry, stay foolish.
概述 ThreadPoolExecutor 是 JDK 中线程池的实现类,它的继承结构如下: ?...maximumPoolSize: 最大池大小,线程池中能同时存在的最大线程数,大于等于 corePoolSize; workQueue: 工作/任务队列,是一个阻塞队列,可参考前文「JDK...源码分析-BlockingQueue」的分析。...runWorker(this); } // 其他一些 AQS 相关的方法不再一一列举} 可以看到 Worker 类继承自 AQS,它的实现与 ReentrantLock 有一些类似,可对比前文「JDK...源码分析-ReentrantLock」分析。
super E>): 从该集合中移除满足指定条件的元素,其中 Predicate 是 JDK 1.8 引入的函数式操作,即传入的参数是一个方法; 12. retainAll(Collection<?...16. spliterator(): 可分割迭代器,用于并行遍历集合中的元素(iterator() 方法是顺序遍历); 17. stream() & parallelStream(): JDK 1.8...super T>) 方法,该方法也是 JDK 1.8 引入的,提供遍历集合元素的函数式操作。 PS: JDK 版本如下: ? 阅读源码时,个人以为应该先读接口类,而非具体的实现类。原因有二: 1....实现类的代码一般较多,如果初读源码就钻到实现类,可能容易被搞蒙。 Stay hungry, stay foolish
修改默认浏览器 打开软件后,点击window选择Preferences 2 选择Preferences后会弹出一个窗口 3 选择General 4 ...
相关阅读: JDK源码分析-HashMap(1) Stay hungry, stay foolish.
具体可参考前文对 AQS 共享模式的分析「JDK源码分析-AbstractQueuedSynchronizer(3)」。...相关阅读: JDK源码分析-AbstractQueuedSynchronizer(3) Stay hungry, stay foolish.
概述 前文「JDK源码分析-HashMap(1)」分析了 HashMap 主要方法的实现原理(其他问题以后分析),本文分析下 LinkedHashMap。
CyclicBarrier 是并发包中的一个工具类,它的典型应用场景为:几个线程执行完任务后,执行另一个线程(回调函数,可选),然后继续下一轮,如此往复。
结点类 Node 查看 LinkedList 的源码可发现它内部有个嵌套类 Node,代码如下: private static class Node { E item; // 存储的数据...相关阅读: JDK源码-Queue, Deque Stay hungry, stay foolish.
; } 其中,acquireSharedInterruptibly、tryAcquireSharedNanos 和 releaseShared 都是 AQS 中「共享模式」的方法,具体代码可参考前文「JDK...源码分析-AbstractQueuedSynchronizer(3)」的分析。...相关阅读: JDK源码分析-AbstractQueuedSynchronizer(3) Stay hungry, stay foolish.
简介 这篇文章主要讲述jdk本身的源码该如何阅读,关于各种框架的源码阅读我们后面再一起探讨。 笔者认为阅读源码主要包括下面几个步骤。 设定目标 凡事皆有目的,阅读源码也是一样。...从小的方面来说,阅读某一段源码的目的就是要搞清楚它的原理,就是死磕,就是那种探索真相的固执。 目的是抽象的,目标是具体的,我们阅读源码之前一定要给自己设定一个目标。...比如,笔者学习ConcurrentHashMap这个类时,上网一查很多都是基于jdk7的,那这时候就可以提出一个问题,jdk8与jdk7中ConcurrentHashMap这个类的实现方式有何不同?...jdk8对jdk7作了哪些优化? (3)不断发现问题 在源码阅读的过程中,可能看着看着就遇到个问题,这是非常常见的,这种问题也应该保留下来研究研究。...jdk源码还是比较好阅读的,如果后面看spring的源码,做不到忽略不必要的细节,真的是会迷失的,先埋个伏笔哈~~ 举个例子,之前阅读过ArrayList的序列化相关的代码中的readObject()方法
说明 对于JDK源码分析的文章,仅仅记录我认为重要的地方。源码的细节实在太多,不可能面面俱到地写清每个逻辑。...所以我的JDK源码分析,着重在JDK的体系架构层面,具体源码可以参考:http://www.cnblogs.com/skywang12345/category/455711.html。...(jdk.java:383) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ......Frank Yellin * @see java.lang.Error * @jls 11.2 Compile-Time Checking of Exceptions * @since JDK1.0...*/ public class Exception extends Throwable { Error 源码分析 Error 最重要的意义,在于 JVM 对它的约定。
概述 在 JDK 1.5 以前,锁的实现只能用 synchronized 关键字;1.5 开始提供了 ReentrantLock,它是 API 层面的锁。...非公平锁的 lock 操作为:先尝试以 CAS 方式修改 state 的值,若修改成功,则表示成功获取到锁,将 owner 设为当前线程;否则就执行 AQS 中的 acquire 方法,具体可参考前文「JDK...源码分析-AbstractQueuedSynchronizer(2)」,这里不再赘述。...JDK 1.6 以后,synchronized 与 ReentrantLock 性能基本持平,JVM 未来的性能优化也会更偏向于原生的 synchronized。...相关阅读: JDK源码分析-Lock&Condition JDK源码分析-AbstractQueuedSynchronizer(2) Stay hungry, stay foolish.
关于List接口的类结构和AbstractList的讲解,可以看看上一篇文章jdk源码追踪-ArrayList。
领取专属 10元无门槛券
手把手带您无忧上云