自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

luoyoub的博客

路漫漫其修远兮,吾将上下而求索

  • 博客(81)
  • 资源 (64)
  • 收藏
  • 关注

原创 JAVA同步工具类——Semaphore信号量

信号量计数信号量(Counting Semaphore)用来控制同时访问某个特定资源的操作数量,或者同时执行某个指定操作的数量;Semaphore管理着一组虚拟许可(permit),许可的初始数量可通过构造函数来指定;在执行操作时先获取许可(只要还有剩余的许可),使用完成后释放许可;如果没有许可那么acquire将阻塞直到有许可(或者被中断或操作超时);release方法将返回一个许可给信号量...

2018-09-29 22:20:00 352

原创 JAVA同步工具类——CountDownLatch

闭锁在学习CountDownLatch之前,让我们先了解一下闭锁的概念。闭锁是一种同步工具类,可以延迟线程的进度直到其到达终止状态;闭锁的作用相当于一扇门,在闭锁到达结束状态之前,这扇门一直是关闭的,并且没有任何线程能通过,当到达结束状态时,这扇门会打开并允许所有线程通过;当闭锁到达结束状态后,将不会再改变状态,因此这扇门将永远保持打开状态;闭锁可以用来确保某些活动直到其它活动都完成后才继续...

2018-09-29 20:46:28 375

原创 java集合之CopyOnWriteArrayList

CopyOnWriteArrayListCopyOnWriteArrayList是juc中提供的并发安全的ArrayList,我们拆分一下类名"Copy"“On”“Write”“ArrayList”,从字面意思我们推断出,这个是以在Write时进行Copy数组元素的ArrayList;它主要具有一下特性:它是线程安全的;允许元素为null;支持随机访问、浅拷贝,可序列化;迭代器使用快...

2018-09-29 17:03:29 367

原创 Java中集合类遍历性能

集合元素在内存如何存放数据元素在内存中,主要有2种存储方式:1、顺序存储,Random Access(或直接存储,Direct Access):这种方式,相邻的数据元素存放于相邻的内存地址中,整块内存地址是连续的。可以根据元素的位置直接计算出内存地址,直接进行读取。读取一个特定位置元素的平均时间复杂度为O(1)。这种数据结构插入和删除时比较麻烦,查询比较方便。正常来说,只有基于数组实现的集合...

2018-09-29 15:44:17 818

原创 Java语法糖之foreach

JAVA集合foreachfor-each其实只是java提供的语法糖。语法糖是编程语言提供的一些便于程序员书写代码的语法,是编译器提供给程序员的糖衣,编译时会对这些语法特殊处理。语法糖虽然不会带来实质性的改进,但是在提高代码可读性,提高语法严谨性,减少编码错误机会上确实做出了很大贡献;Java要求集合必须实现Iterable接口,才能使用for-each语法糖遍历该集合的实例;先看个简单的...

2018-09-29 11:20:49 846

原创 设计模式之迭代器模式

迭代器模式定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节迭代器模式的结构抽象迭代器(Iterator)角色:此抽象角色定义出遍历元素所需的接口;迭代器实现:实现迭代器接口中定义的方法,完成集合的迭代,并保持迭代过程中的游标位置;抽象容器:一般是一个接口,提供一个iterator()方法,例如java中的Collection接口,List接口,Set接口等,均都...

2018-09-29 00:06:03 157

原创 JAVA类初始化顺序总结

类的初始化 {#articleHeader1}初始化顺序首先来看下,当一个类从main入口方法,对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序:public class ClassLoadTest {private static User user = new User();static {System.err.println("static code block...

2018-09-27 23:16:24 17823 2

原创 JAVA对象实例化方式总结--及Unsafe黑科技

JAVA对象实例化的方法本贴主要对JAVA实例化方式做个简单的总结,尤其是Unsafe的方式,可能很多人都没了解过,这个是sun工程师留的一个后门,可以称为“黑科技”New对象实例// 直接new对象实例Productor productor = new Productor();注意:任何类都有构造方法,但是new指令只能创建非抽象类的对象;构造方法不能是静态的,因为静态方法不能使用t...

2018-09-27 17:47:27 950

原创 JAVA8 TreeMap学习笔记

TreeMapTreeMap集合是基于红黑树(Red-Black tree)的 NavigableMap实现。该集合最重要的特点就是可排序,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。这句话是什么意思呢?就是说TreeMap可以对添加进来的元素进行排序,可以按照默认的排序方式,也可以自己指定排序方式【知识点】Tree...

2018-09-24 10:34:43 1346

原创 JAVA8 TreeSet学习笔记

TreeSetTreeSet是基于TreeMap的NavigableSet实现。使用元素的自然顺序对元素进行排序,或者根据创建set时提供的Comparator进行排序,具体取决于使用的构造方法。这句话什么意思呢?就是说,跟HashSet底层是一个HashMap来维护类似,TreeSet的底层实现就是一个TreeMap,自然也就具备了对元素排序的功能【知识点】TreeSet基于TreeMa...

2018-09-24 00:28:25 580

原创 JAVA8 HashSet学习笔记

HashSetSet集合的最主要特性就是没有重复元素,HashSet是Set的一个字类,其内部基于HashMap实现,因此HashSet的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成// 底层使用HashMap来保存HashSet的元素private transient HashMap<E,Object> map;// 由于Se...

2018-09-24 00:27:27 548

原创 JAVA——TreeSet学习笔记

TreeSetTreeSet是基于TreeMap的NavigableSet实现。使用元素的自然顺序对元素进行排序,或者根据创建set时提供的Comparator进行排序,具体取决于使用的构造方法。这句话什么意思呢?就是说,跟HashSet底层是一个HashMap来维护类似,TreeSet的底层实现就是一个TreeMap,自然也就具备了对元素排序的功能【知识点】TreeSet基于TreeMa...

2018-09-24 00:20:45 234

原创 常见的缓存失效策略

常见的缓存失效策略常见的几种缓存失效策略,总结一下:FIFO ,first in first out ,最先进入缓存的数据在缓存空间不够情况下(超出最大元素限制时)会被首先清理出去LFU , Less Frequently Used ,一直以来最少被使用的元素会被被清理掉。这就要求缓存的元素有一个hit 属性,在缓存空间不够得情况下,hit 值最小的将会被清出缓存。LRU ,Least ...

2018-09-19 13:30:03 3172

原创 JVM--Native Method Stack(本地方法栈)

Native Method Stack(本地方法栈)定义:本地方法栈为虚拟机使用到的Native方法服务,虚拟机规范未对本地方法栈中方法使用的语义、使用方式与数据结构进行强制规定,因此具体的虚拟机可以自由实现特性线程私有后进先出(LIFO)栈作用是支撑Native方法的调用、执行和退出可能出现OutOfMemoryError异常和StackOverflowError异常注...

2018-09-07 23:21:10 1118

原创 JVM -- 程序计数器(Program Counter Register)

程序计数器(Program Counter Register)定义:程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码行号指示器,也可称之为PC寄存器;字节码解释器工作时通过改变程序计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成特性在任何确定的时刻,一个处理器(对于多核处理器是一个内核)都只会执行一条...

2018-09-07 23:19:02 1343

原创 JAVA8 Stack学习笔记

栈-Stack定义:栈的元素是按后进先出(LIFO)的方法进行处理的,最后入栈的元素最先出栈;栈是一种线性集合,其添加和删除都在一端进行;Stack类继承了Vector类public class Stack<E> extends Vector<E> {public Stack() {}public E push(E item) {}public sync...

2018-09-03 16:43:13 646

原创 Socket三次握手四次挥手

Socket 起源于 Unix,而Unix基本哲学之一就是一切皆文件,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。Socket就是该模式的一个实现,网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符通信模型: s erver的生命周期大致如下:创建socket。绑定(bind)地址端口监听网络...

2018-09-03 15:05:00 5623

原创 CAP理论&ZK&Eureka

如果我们期待实现一套严格满足ACID(Atomicity原子性、Consistency一致性、Isolation隔离性、Durability持久性)的分布式事务,很可能的情况就是系统的可用性和严格一致性出现冲突。在可用性和一致性之间永远无法存在一个两全其美的方案。CAP理论2000年7月,加州大学伯克利分校Eric Brewer教授提出了著名的CAP猜想。2年后,来自麻省理工学院的Se...

2018-09-01 17:57:43 943

转载 【转】Jedis常见异常汇总

【转载】Jedis常见异常汇总,总结的相当详细!! 详见:https://yq.aliyun.com/articles/236384?spm=a2c4e.11153940.blogcont236383.20.d17a1c96Lm3AHM#cc8

2018-08-28 21:52:49 1625

原创 JVM相关知识总结

本文主要是关于JVM相关知识的总结,大纲: Summary * 前言 * 概述 * JVM运行时数据区 * 程序计数器 * JAVA虚拟机栈 * 栈帧 * 局部变量表 * 操作数栈 * 本地方法栈 * 堆-Heap * 方法区(Method Area) * 运行...

2018-08-22 22:37:44 247

原创 记Jedis客户端并发问题

先来看问题,在对分布式锁进行压测时抛出异常:java.lang.ClassCastException: java.lang.Long cannot be cast to [B at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:239) at redis.clients.jedis.Jedis...

2018-08-18 23:32:28 1241

原创 springcloud分布式限流问题

最近项目上需要在zuul网关进行限流,查阅了一些限流方案,比较好的方案是使用redis进行分布式限流,主要考虑到redis性能好,且redis本身是单线程操作,解决了并发问题。目前在github上开源的Spring Cloud Zuul RateLimit 就刚好满足了这些需求:https://github.com/marcosbarbero/spring-cloud-zuul-ratelimit...

2018-08-18 22:16:45 2159

原创 JAVA线程及线程池异常处理

JAVA线程异常处理在run方法上增加异常处理new Thread(() -> {try {System.err.println(3 / 2);System.err.println(3 / 0);} catch (Exception e) {System.err.println("Catch exception===>" + e.getMessage());}...

2018-08-10 23:45:51 2329

原创 分享一款“暗黑系列”Idea主题插件Material Theme

偶然发现一款“暗黑系列”idea主题插件,感觉非常不错,分享一下~ github:https://github.com/equinusocio/material-theme安装plugins -> browse repositories -> search “material-theme” 安装完重启idea设置切换主题Editor -> Color Sc...

2018-06-29 18:19:18 79156 22

原创 缓存穿透与缓存雪崩

缓存穿透缓存穿透:缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透解决方案: 1. 最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被 这个bitmap拦截掉,从而避免了对底层存储系统的查询压力; 2. 如果一个查询返...

2018-06-14 16:29:50 369

原创 Redis淘汰策略

失效策略上,Redis支持多大6种的数据淘汰策略: 1. volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰; 2. volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰; 3. volatile-random:从已设置过期时间的数据集(server.db...

2018-06-14 16:26:52 1774

原创 Spring自定义Bean创建与销毁方式的总结

1.注解方式在 bean 初始化时会经历几个阶段,首先可以使用注解 @PostConstruct, @PreDestroy 来在 bean 的创建和销毁阶段进行调用:@Componentpublic class AnnotationBean { private final static Logger LOGGER = LoggerFactory.getLogger(Annot...

2018-06-14 16:25:47 2073

原创 JVM内存溢出和内存泄露

定义内存溢出out of memory:指程序运行过程中无法申请到足够的内存而导致的一种错误;内存泄露memory leak:指程序中动态分配内存给一些临时对象,但是对象不会被GC所回收始终占用内存;即被分配的对象可达但已无用内存溢出:堆内存溢出(outOfMemoryError:java heap space)方法区内存溢出(outOfMemoryError:permg...

2018-06-13 16:40:00 681

原创 synchronized和Lock的区别

Lock以及它的一个实现类ReentrantLock是jdk5新增加的, Lock也可以用于实现多线程的同步区别synchronized既可以加在方法上,也可以加载特定代码块上,而lock需要显示地指定起始位置和终止位置;synchronized是托管给JVM执行(底层使用mutex lock实现),lock的锁定是通过代码实现的,它有比synchronized更精确的线程语义;sy...

2018-06-10 15:15:02 1454

原创 一致性hash算法学习

概述在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求,起到负载均衡的作用。但是普通的余数hash(hash(比如用户id)%服务器机器数)算法伸缩性很差,当新增或者下线服务器机器时候,用户id与服务器的映射关系会大量失效。一致性hash则利用hash环对其进行了改进一致性哈希算法特性一致性哈希算法在199...

2018-06-09 23:56:36 215

原创 关于Thread.sleep的几个问题

Thread.sleepsleep就是正在执行的线程主动让出CPU,CPU去执行其他线程,在sleep指定的时间过后,CPU才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep方法并不会释放锁,即使当前线程使用sleep方法让出了CPU,但其他被同步锁挡住了的线程也无法得到执行几个问题Thread.sleep(1000),1000ms后是否立即执行?不一定,在未...

2018-06-09 19:49:09 13012 2

原创 JUC五种常见同步工具类总结

JUC常用工具类SemaphoreCountDownLatchCyclicBarrierExchangerPhaser使用场景这五种同步辅助类适用于的同步场景:Semaphore 信号量是一类经典的同步工具。信号量通常用来限制线程可以同时访问的(物理或逻辑)资源数量。CountDownLatch 一种非常简单、但很常用的同步辅助类。其作用是在完成一组正在其他线程中执...

2018-06-09 19:46:10 5834

原创 Future模式核心思想

Future模式核心思想Future模式的核心在于:去除了主函数的等待时间,并使得原本需要等待的时间段可以用于处理其他业务逻辑(根据《Java程序性能优化》)Future模式有点类似于商品订单。在网上购物时,提交订单后,在收货的这段时间里无需一直在家里等候,可以先干别的事情。类推到程序设计中时,当提交请求时,期望得到答复时,如果这个答复可能很慢。传统的时一直等待到这个答复收到时再去做别的事...

2018-06-09 19:41:39 450

原创 java notify和notifyAll的区别

notify和notifyAll的最主要的区别notify只是唤醒一个正在wait当前对象锁的线程,而notifyAll唤醒所有。值得注意的是:notify是本地方法,具体唤醒哪一个线程由虚拟机控制;如果有多个线程等待,则线程规划器任意挑选出其中一个wait()状态的线程来发出通知调用notify和notifyAll方法后,当前线程并不会立即放弃锁的持有权,而必须要等待当前同步代码块执行...

2018-06-09 19:39:04 422

原创 Synchronzied底层实现

synchronized的底层是使用操作系统的mutex lock实现;Mutex Lock监视器锁(Monitor)本质是依赖于底层操作系统的Mutex Lock(互斥锁)来实现的。每个对象都对应于一个可称为” 互斥锁” 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象; 互斥锁:用于保护临界区,确保同一时间只有一个线程访问数据。对共享资源的访问,先对互斥量进行加锁,如...

2018-06-09 17:03:27 379

原创 Synchronzied锁对象之包装类

synchronized锁对象为包装类型(修饰变量)synchronized锁对象为包装类型时,需要考虑包装类型的缓存,如Integer默认缓存-127~128之间的数值,所以下例中锁a和锁b实际锁的是同一个对象;另外其它包装类也需要注意类似问题(如Byte/Short);public static Integer valueOf(int i) {if (i >= IntegerC...

2018-06-09 16:57:56 899

原创 Java类的初始化

平常在写代码的过程中,一般不会注意到类的初始化过程,如果类中有代码块,静态域时,初始化的顺序是怎么样的? 先上代码:public class Application { public static void main(String[] args) { Student stu = new Student(); }}class Person { ...

2018-06-08 18:56:17 303

转载 【转载】Jar包冲突问题及解决方案

作者:sherlockyb 链接:https://www.jianshu.com/p/100439269148 关于JAR包冲突问题,几乎是码农经常会遇到的问题,博客看到这篇文章,总结的非常棒,以下是转载的原文概述Jar包冲突是老生常谈的问题,几乎每一个Java程序猿都不可避免地遇到过,并且也都能想到通常的原因一般是同一个Jar包由于maven传递依赖等原因被引进了多个不同的版...

2018-06-08 13:02:34 2692

原创 聊一聊SpringCloud版本号管理

版本命名Spring Cloud是一个拥有诸多子项目的大型综合项目,原则上其子项目也都维护着自己的发布版本号。那么每一个Spring Cloud的版本都会包含不同的子项目版本,为了要管理每个版本的子项目清单,避免版本名与子项目的发布号混淆,所以没有采用版本号的方式,而是通过命名的方式。 这些版本名字采用了伦敦地铁站的名字,根据字母表的顺序来对应版本时间顺序,比如:最早的Release版本:A...

2018-06-07 23:34:14 1859

原创 springboot admin监控告警

概述Spring Boot Actuator提供了对单个Spring Boot的监控,信息包含:应用状态、内存、线程、堆栈等等,比较全面的监控了Spring Boot应用的整个生命周期;如果Spring Boot应用集群非常大,每个应用都需要调用不同的接口来查看监控信息,国外一个大神开源了一个平台Spring Boot Admin可以用来监控springboot应用集群; 如果结合注册中心可...

2018-06-07 18:41:01 11268 2

struts-2.3.15

struts-2.3.15官方JAR包

2013-07-11

commons-logging-1.1.3

commons-logging-1.1.3官方JAR包~~~

2013-07-11

commons-io-2.2

commons-io-2.2官方JAR包~~~

2013-07-11

struts-2.3.14.3

Apache Struts最新版本2.3.14.3,修复了另一个重要的安全漏洞。最新版本,供亲们下载~~

2013-06-07

jquery zTree

JQuery zTree插件 下面是 v3.5.13 的修改记录: * 【增加】beforeRename & onRename 增加 isCancel 参数,可以监控用户 ESC 取消编辑的事件 * 【修改】初始化时 radioType="all", 父节点未展开 且 子节点有被勾选,点击其他 radio 时,不会取消勾选该子节点的bug * 【修改】多棵树拖拽时,拖拽无效后会导致目标书已选择的节点清空的 bug。 * 【修改】多棵树拖拽时,会触发 addHoverDom 的bug。 * 【修改】多棵树拖拽时,由于 beforeDrog 或 prev / inner / next 返回 false 后未触发原始节点的 addHoverDom 的bug * 【修改】异步加载时,对于未加载子节点的父节点使用 expandNode 方法时, sonSign 设置为 true后,导致异步加载的节点无法正常显示的bug * 【修改】一次性加载全部数据,如果父节点 A 未展开,但下一级的父节点 A1 设置了 open=true 的时候,使用 expandAll 方法导致 A1 的下一级父节点出现重复的 bug * 【修改】增加对 iframe 的支持,可以只在主页面加载 zTree 的 js,在 iframe 内创建树 [https://github.com/zTree/zTree_v3/issues/7 Issue Info] * 【修改】引入 exhide 扩展包 导致页面上同时加载多棵树时,根节点 的 连接线图标出现异常 的 bug [http://tieba.baidu.com/p/2277416574] * 【修改】excheck & exedit 扩展包中事件代理获取节点 tId 的方法,保证适当修改 DOM 结构也能得到 tId zTree 在线操作演示:http://www.ztree.me/v3/demo.php#_101

2013-06-05

subversion1.7

subversion1.7,供亲们下载~~~

2013-06-05

struts-2.3.14.2

struts-2.3.14.2官方JAR包,修复安全漏洞:通过强制在URL中包含参数可触发一个安全漏洞,使得链接标记允许执行远程命令、访问/控制会话以及发起XSS攻击等

2013-05-28

spring-framework-4.0.0.M1

spring-framework-4.0.0.M1官方JAR包,共享给大家下载~

2013-05-22

Struts2.3帮助文档

Struts2.3帮助文档,供大家下载

2013-05-20

apache-tomcat-7.0.40-windows-x64

apache-tomcat-7.0.40-windows-x64,windows 64bit系统,免安装版~

2013-05-13

apache-tomcat-7.0.40-windows-x86

apache-tomcat-7.0.40 windows 32bit免安装版~

2013-05-13

apache-tomcat-7.0.40官方安装包

apache-tomcat-7.0.40官方安装包,适用于windows 32/64bit,安装版~

2013-05-13

dom4j-1.6.1

dom4j官方JAR包,供亲们下载~~~

2013-05-10

commons-pool-1.6

commons-pool-1.6官方JAR包,供亲们下载~~~

2013-05-10

commons-lang-2.6

commons-lang-2.6官方JAR包,供亲们下载~~~

2013-05-10

commons-lang3-3.1

commons-lang3-3.1官方JAR包,供亲们下载~~~

2013-05-10

commons-io-2.4

commons-io-2.4官方JAR包,供亲们下载~~~

2013-05-10

commons-fileupload-1.3

commons-fileupload-1.3官方JAR包,供亲们下载~~~

2013-05-10

commons-dbcp-1.4

commons-dbcp-1.4官方JAR包,供亲们下载~~~

2013-05-10

commons-collections-3.2.1

commons-collections-3.2.1官方JAR包,供亲们下载~~~

2013-05-10

commons-codec-1.8官方JAR包程序文件

commons-codec-1.8官方JAR包,供亲们下载~~~

2013-05-10

log4j jar包

log4j1.2.17 jar包,供大家下载

2013-05-09

commons logging

apache commons logging1.1.2官方JAR包,供亲们下载~~

2013-05-09

Tomcat7.0.39官方安装包

Tomcat7.0.39官方安装包,适用于windows32bit/64bit操作系统~

2013-05-09

Tomcat6.0.37免安装版(64位)

Tomcat6.0.37免安装版(64位系统),供亲们下载~

2013-05-09

Tomcat6.0.37官方安装包(免安装版)

Tomcat6.0.37官方安装包(免安装版),32位系统

2013-05-09

Tomcat6.0.37

Tomcat6.0.37安装版,供亲们下载~

2013-05-09

POI3.9官方JAR包下载

POI3.9官方JAR包,支持Excel2003和Excel2007

2013-04-21

POI操作Execl相关JAR包

POI操作Execl相关JAR包,3.7版本,支持Execl2003和Excel2007

2013-04-21

spring-framework-3.2.1.RELEASE官方JAR包

spring-framework-3.2.1.RELEASE官方JAR包

2013-04-17

spring-framework-3.2.0.RC2官方JAR包

spring-framework-3.2.0.RC2官方JAR包

2013-04-17

spring-framework-3.1.3官方JAR包

spring-framework-3.1.3官方JAR包

2013-04-17

spring-framework-3.1.2官方JAR包

spring-framework-3.1.2官方JAR包,供大家下载~

2013-04-17

spring-3.2.0.RC1官方JAR包

spring-3.2.0.RC1官方JAR包

2013-04-17

maven-3.0.5官方JAR包

maven-3.0.5官方JAR包,供大家下载~~~

2013-04-16

maven-2.2.1

apache-maven-2.2.1官方JAR包,供大家下载~~~

2013-04-16

apache-tomcat-8安装版

apache-tomcat-8官方安装版

2013-08-07

apache-tomcat-7.0.42-windows-x86(32位免安装包)

apache-tomcat-7.0.42-windows-x86(32位免安装包)

2013-07-10

apache-tomcat-7.0.42-windows-x64免安装包

apache-tomcat-7.0.42-windows-x64免安装包

2013-07-10

apache-tomcat-7.0.42官方安装版

apache-tomcat-7.0.42官方安装版~~~

2013-07-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除