首页
AI Coding
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
talex
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
19
文章 19
沸点 0
赞
19
返回
|
搜索文章
赞
文章( 19 )
沸点( 0 )
为什么System.out.println(a++) 输出的结果没有自增
呵,这不是简单的不能再简单问题吗。很快啊,我嗖的一下告诉了她答案 System.out.println(a++) 输出结果10,是因为计算机的执行顺序的原因。在这一条语句中,计算机先执行输出语句,此时a的值为10,当输出语句完毕的时候,它才执行自增操作 a的赋值报错,是因为右边…
彻底搞定线程池(2)-基于模型实现线程池
在上一篇文章 彻底搞定线程池(1)-线程池模型的构建 中,我把线程池的主要的功能和流程给梳理了一下,并且在最后使用代码实现了一个简单的线程池。不过距离一个完整的线程池还需要多做一些东西。 本篇的代码会在上一版代码的基础上进行修改。地址为 github地址,其中steap1为上一…
彻底搞定线程池(1)-线程池模型的构建
做后端的应该都知道线程池,即使你没亲自使用过,那也一定听过或者了解过。有时候也会去深入理解,结果往往是当时觉得自己理解了,过一段时间就忘了。因为在日常的开发中,我们都不需要用到线程池,很多都是使用的工具和框架写好,我们直接调接口就完事了。 很多东西没有亲自实践和深入的思考过的,…
JAVA虚拟机系列-内存数据区域
程序计数器是一块比较小的内存区域,主要的作用是记录当前线程执行的字节码指令位置。线程在执行字节码指令时,根据这个来定位当前执行的字节码指令位置,而且还可以通过它来计算下一个字节码指令。 例如以下某个方法的字节码,程序计数器的作用是保存本线程当前执行的指令位置,因此程序计数器是线…
Tomcat 7.0.42 源代码运行环境搭建
1. 容器启动,从server到listener、jndi、service到connetor、engine到host到context到wrapper一系列对象的组装,包括Digester的使用、JMX注册、JDK5中的新的线程池启动方式等。 2. 一个socket连接如何转化成…
Tomcat 7 启动分析(一)启动脚本
在上一篇文章《源代码运行环境搭建》里是通过直接运行 BootStarp 的 main 函数来启动的,只是加了一个 catalina.home 的系统属性。而正常情况下启动 Tomcat 是通过运行脚本的方式,这个就涉及到建立工程时拷贝过来的 script 目录下的一堆脚本文件了…
Tomcat 7 启动分析(二)Bootstrap 类中的 main 方法
之前分析了 Tomcat 的启动脚本,如果从 startup.bat 开始启动 Tomcat 的话会发现最后会调用 org.apache.catalina.startup.Bootstrap 里的 main 方法,并且传过来的最后一个命令行参数是 start,接下来的启动代码分…
Tomcat 7 启动分析(三)Digester 的使用
前一篇文章里最后看到 Bootstrap 的 main 方法最后会调用 org.apache.catalina.startup.Catalina 对象的 load 和 start 两个方法,那么就来看看这两个方法里面到底做了些什么。 做的事情就两个,一是创建一个 Digeste…
Tomcat 7 启动分析(四)各组件 init、start 方法调用
在正常启动 Tomcat 7 的情况下,上篇文章分析到了执行 org.apache.catalina.core.StandardServer 的 init 和 start 方法这儿,那么就来看看这两个方法里面到底干了些什么。 先将干扰程序阅读视线的 setStateIntern…
Tomcat 7 启动分析(五)Lifecycle 机制和实现原理
在上篇文章分析 Tomcat 7 的各组件的 init、start 方法时经常会看到有一个 setStateInternal 方法的调用,在查看 LifecycleBase 类及其它各组件的源码时会在多处看到这个方法的调用,这篇文章就来说说这方法,以及与这个方法相关的 Tomc…
下一页
个人成就
文章被点赞
29
文章被阅读
8,921
掘力值
288
关注了
13
关注者
8
收藏集
0
关注标签
18
加入于
2019-10-15