自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (35)
  • 收藏
  • 关注

原创 k8s-项目部署案例

修改了ConfigMap,但是Pod依旧依然使用的是之前的ConfigMap,简单粗暴的解决方法,java-demo做个滚动升级。现在已经将数据库的配置修改到ConfigMap了,将ConfigMap中mysql的数据库连接地址改下。在编写的Deploymentyaml中使用ConfigMap,跟Containers同一层级。mysql启动好后,将SQL拷贝到mysql的容器中。将原来数据库的数据导入k8s中的mysql数据库。检查配置文件是否为修改后的ConfigMap内容。在k8s平台部署项目流程。

2024-02-08 18:11:05 1454

原创 kubernetes-Ingress最佳方式对外暴露应用

看到k8s-node2节点监听着80端口,这个跟service不一样,service是所有的后端pod都会监听80/443端口,这个是只有部署ingree-nginx的那台机器会监听80/443端口。hostNetwork: true - 当前的网络使用主机节点网络对外提供服务,如果在不做任何的配置下,刚才创建的。--key=blog.ctnrs.com-key.pem - 自签证书Key。--cert=blgo.ctnrs.com.pem - 自签证书。Ingress-Nginx高可用方案。

2024-02-08 09:46:40 469

原创 k8s-深入理解Service(为Pod提供负载均衡和发现)

可以看到你请求的ServiceName,本质请求的是CoreDNS,CoreDNS保存有从K8s获得的A记录,然后返回真实服务IP。在实际生产中,k8s的集群不会直接暴露在公网中,一般会在k8s集群前加一个负载均衡器,这个负载均衡器暴漏在公网。k8s默认使用iptables模式,如果要使用IPVS模式,需要单独启用IPVS模式,见下一小节。Iptables有性能衰减,k8s已将IPVS加入,IPVS性能非常稳定,建议使用IPVS。正常解析到了,在程序代理里,可以使用ServiceName替换以前写的IP。

2024-02-05 06:57:26 1229

原创 k8s-常用工作负载控制器(更高级管理Pod)

strategy.rollingUpdate.maxSurge: 25% - 我们之前不是正常副本数设置了3个,升级的时候,你可以发现启动了1个新的,这时变为4个pod了(既3+3*0.25=3.75,不够1个算1个=4),这个参数就是用来配置,滚动更新时,Pod的最大副本数量。strategy.rollingUpdate.maxUnavailable: 25% - 滚动更新过程中,最大不可用Pod副本数量,比如总共10个副本,一下5个副本不可用,直接导致提供并发服务不够用了。

2024-02-04 17:59:17 1216

原创 kubernetes-深入理解Pod对象:调度

3、Controller-Manager 通过 APIServer 提供的 watch 实时监听 Pod 事件,发现有新的 Pod 要创建,Pod 控制器开始接管并创建 Pod(此时Pod状态属于pending中,即pod创建中或pod创建完成,但未被调度),创建完成后将结果上报给 APIServer。如果同一节点上,有10个容器,在部署的时候,不做资源限制,当其中的一个或几个容器突然CPU或内存飙升,可能会占满服务器的资源,导致其他的容器不能再正常提供服务,所以有必要对Pod(容器)做出资源限制。

2024-02-03 22:36:59 811

原创 kubernetes-深入理解Pod对象:基本管理

先在容器web的/data目录下创建了一个index.html然后退出,再进入容器test的/data目录下,发现/data目录下的文件是一致的,证明他们是共享存储。同一Pod下,两个容器查看到相同的网络以及监听端口,容器"web"之所以没有对应的命令,是因为它是个nginx容器,如果有的话,如刚才所有应该保持一致。进入容器“test”通过wget命令去访问容器“web”的nginx页面,如果访问到了Nginx页面,说名两个容器直接网络是互通的。将pod.yaml改名pod-net-test.yaml。

2024-02-01 00:06:49 346

原创 kubernetes-资源编排(YAML)

把-o yaml 的yaml换成 json, 就可以导出JSON格式的文件,一般json主要用于传输对接yaml信息用的,正常主要用yaml执行kube操作。create可以创建各种资源以及支持各种创建格式(json、yaml以及命令行),而apply主要是通过yaml创建资源以及更新。注意:这种先通过create再导出yaml的方式,还要看kubectl是否支持你当前需要创建的资源,不支持也是不行的。name:web #资源的名字,在同一个namespace中必须唯一。

2024-01-30 11:30:07 888

原创 kubernetes-kubectl命令行管理工具

localhost:8080 - 这是一个kube-apiserver的非安全端口,还有一个对外端口是6443,kubectl默认先连接8080(二进制默认开始8080,kubeadmin默认关闭8080),如果配置有kubeconfig(.kube/config)就直接走这个配置连接安全端口(所谓安全端口,就是有权限验证的端口)。这个命令能查看的资源,可以通过kubectl api-resources命令列出来的资源,都可以通过get查看。一、kubectl与kubeconfig的关系。

2024-01-29 21:31:57 434

原创 kubernetes-快速部署一套k8s集群

下载完后还需要修改里面定义Pod网络(CALICO_IPV4POOL_CIDR),与前面kubeadm init的 --pod-network-cidr指定的一样。--image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址。--pod-network-cidr Pod网络,与下面部署的CNI网络组件yaml中保持一致。--service-cidr 集群内部虚拟网络,Pod统一访问入口。初始化完成后,最后会输出一个join命令,先记住,下面用。

2024-01-29 14:57:05 1098

原创 JVM-字节码应用

classReader.accept方法的第一个参数是classVisitor,即上面定义的classVisitor, 第二个ClassReader.SKIP_DEBUG,操作的时候,哪些信息不看,这里是跳过debug信息,一般来说设置忽略debug信息就可以了。用CoreAPI解析和TreeAPI都能做字节码解析,区别,TreeAPI必须读取完整字节码信息,才能做解析。八、反射之二反射管理类信息案例实战。九、反射之三反射修改类信息案例实战。十、反射之四通过反射调用类方法实战。

2024-01-26 17:13:49 1061

原创 JVM-透彻理解字节码以及指令

每个线程在执行的时候,先看能不能抢到锁,不能抢到锁等到,抢到锁,执行monitorenter指令,代码执行完后,再执行monitorexit指令退出,其他线程继续抢锁,抢到后继续执行这2个指令,如此往复。调用动态方法(如lamdba、动态语音编译的字节码),会有至少两步,第一步,先将语法糖还原成invokedynamic指令,第二步再根据具体方法类型,调用具体指令。0000 0031 - Java版本号,这里的31是16进制大版本号,转换后十进制49,前面4个字节 是小版本,后面是大版本。

2024-01-18 18:49:58 1153 1

原创 JVM-JVM支持高并发底层原理精讲

当线程即使处于阻塞的时候,线程不再收到信号,线程也是可以收到一个异常,可以这个异常理解为一个信号,就像闹钟一样就会响,强制这个线程做出一定的响应,而这个异常就是这个子线程的那种,当调用线程终止方法,就会触发这个异常。当t1线程的x=b,从a=1代码的下面,移动到a=1代码的上面,且t2线程的y=a,从b=1代码的下面移动到b=1代码的上面,就会计算出x==0&&y==0,这种问题就是。这里为什么没有停止呢,这是因为当阻塞的时候,父线程只能给子线程发停止的信号,要不要停止子线程说了算。

2024-01-12 17:00:55 1061

原创 JVM-Arthas高效的监控工具

一、arthas介绍3.选择监控哪个进程4.进入具体进程二、arthas的基础命令与基本操作1.查询包含Java的系统属性:命令:sysprop |grep java1.查询不含Java的系统属性:命令:sysprop | grep -v java3.打印历史命令命令:history4.查看当前工作目录命令:pwd三、如何使用arthas监控线上服务的内存状态1.dashboard - 当前系统的实时数据面板命令:dashboard -i 100 100毫秒刷新一次。

2024-01-11 10:39:43 1993 1

原创 JVM-JVM基本工具与必会调试方式

命令:jmap -dump:live,format=b,file=test.hprof 45094。FGCT 从应用程序启动到采样时的 Full GC 的消耗时间(秒)YGC 从应用程序启动到采样时 Young GC 的次数。FGC 从应用程序启动到采样时 Full GC 的次数。如果启动的是jar,则会将jar的完整类名信息展示出来。GCT 从应用程序启动到采样时 GC 的总时间。如果启动的时候带有参数,还会将启动时的参数打印出来。四、堆分析的基本功-jmap和jhat工具。

2024-01-08 16:47:54 381

原创 JVM-透彻掌握ParNew垃圾回收器的原理与使用screenflow

【代码】JVM-透彻掌握ParNew垃圾回收器的原理与使用screenflow。

2024-01-08 11:29:59 368

原创 JVM-透彻掌握Parallel垃圾回收器的使用方法

在这种模式下,年轻代的⼤ ⼩、Eden和Survivor的⽐例、晋升⽼年代的对象年龄等参数会被⾃动调整,已达到在堆⼤⼩、吞吐量和停顿时间之 间的平衡点。在⼿动调优⽐较困难的场合,可以直接使⽤这种⾃适应的⽅式,仅指定虚拟机的最⼤堆、⽬标的吞吐量 (GCTimeRatio)和停顿时间(MaxGCPauseMills),让虚拟机⾃⼰完成调优⼯作。不管执⾏多少次,也不管每次执⾏多少时间,但是要在⼀定的时间范围⾥ ,尽可能让线程执⾏⽤户程序 ⾼吞吐量则可以⾼效率地利⽤CPU时间,尽快完成程序的运算任务。

2024-01-08 11:29:34 863

原创 亿级流量系统如何优化老年代ParNew_CMS?

情况1:比如,老年代此时可用空间80M < 历次YGC后升级老年代的平均对象大小100M,这样就会触发FullGC;情况2:移入老年代的对象大于,此时老年代的剩余空间,触发FullGC;情况3:被占用的老年代空间超过阈值,触发FullGC。

2024-01-05 09:27:30 310

原创 G1为什么更适合亿级流量系统以及YGC优化策略screenflow

之前讲过,在G1里新生代的占比是5%-60%,如果堆空间是8G,此时新生代占的空间就是400MB~4.7GB,如果一次回收完,就会非常耗时,可以通过设置回收最大停顿时间,减少服务的停顿,一次回收一部分,比如1.2G。1.ParNew执行回收的时候,STW会比较长,CMS存在碎片化的问题,当物理机的内存变大,这套组合存在的问题会更大,加大物理内存,反而让垃圾回收更慢。如果是视频、大数据、批处理等对象比较大的场景,我们可以将最大停顿时间调大一些,让垃圾回收频率降低,单次垃圾回收效果会更好。

2024-01-05 09:26:44 376

原创 JVM-【场景实战】熟悉Serial垃圾回收器的使用

这个收集器是⼀个单线程的收集器,但它的 “单线程” 的意义并不仅仅说明它只会使⽤⼀个 CPU 或⼀条收集线 程去完成垃圾收集⼯作,更重要的是在它进⾏垃圾收集时,必须暂停其他所有的⼯作线程,直到它收集结束 (Stop The World)Serial回收器的优势与设置参数优势:简单⽽⾼效(与其他收集器的单线程⽐),对于限定单个 CPU 的环境来说, Serial 收集器由于没有线程交互的开销,专⼼做垃圾收集⾃然可以获得最⾼的单线程收集效率。② 作为⽼年代 CMS 收集器的后备垃圾收集⽅案,

2024-01-04 09:30:21 399

原创 JVM-透彻理解GC日志的内容

⽼年代的总⼤⼩是10240K,未使⽤。这是因为 在新⽣代⾥的from和to是轮流使⽤的,⼀次只有⼀个发挥作⽤,相当于浪费了⼀个1M的空间,因此只有空间只有 8M的Eden区+1个1M的S区,⼀共是9M。] 这⾥表示的含义是在执⾏垃圾回收之前,年轻代被占⽤的空间 是8105K,完成垃圾回收之后占⽤的空间是378K,完成之后新⽣代的总空间⼤⼩是9216K,耗时0.0015472 secs。表示垃圾回收之前堆空间被占⽤的空间是8105K,回收之后被占⽤的是 378K,堆的总空间为19456K。

2024-01-04 09:29:37 1280

原创 JVM-【原理精讲】解密新生代垃圾回收器的工作原理

JVM-解密新生代垃圾回收器的工作原理

2024-01-03 09:20:53 324

原创 JVM-【原理精讲】图解垃圾清除算法的原理

JVM-垃圾清除算法的原理

2024-01-03 09:20:11 317

原创 JVM-【原理精讲】图解垃圾标记算法的原理

2024-01-02 17:53:06 299

原创 JVM-从收拾房间看垃圾回收基本思想

JVM-垃圾回收器介绍

2024-01-02 17:43:52 322

原创 JVM-七步带你掌握JVM内存结构

这是JDK1.6的内存结构,JDK1.8以后方法区已经挪出来了,不属于JVM内存。一、从房屋户型图理解JVM的内存划分原理与基本结构介绍。二、第一步:掌握程序计数器的功能与工作过程。

2024-01-02 17:24:28 1337

转载 用了6年的 SpringBoot 项目部署方案,稳得一批!

都是由mvn中profiles的properties中提供,是可变的参数,脚本代码本身不需要人工去修改,只需要变的是mvn的参数即可;该节点中的节点是可作为参数传递给其他配置文件,如我这里的package-name节点值就可以在另外的assembly.xml或者shell脚本文件中通过${package-name}其实shell脚本中包含有解压命令,但是我在打包时放在了zip中,所以只能通过手动解压了,当然可以调整;把配置文件和jar包等压缩成什么文件格式,这里可以有:zip,tar等。

2023-12-29 17:18:59 21

原创 亿级流量场景下如何优化混合回收

当大对象超过region一半,就会将其放到大对象region里边去,占用老年代空间,当有大量短周期大对象进入老年代,也会提高混合回收的频率,进而影响到FullGC的频率。我们完全可以通过最大停顿时间的调整,来控制每次垃圾回收的region数量以及回收垃圾大小。关于G1的优化,最重要的两点1.调整最大停顿时间、2.调整region大小。2.优化G1垃圾回收关键的一点,设置合理的最大停顿时间。1.是已分配内存占总内存的超过45%阈值;

2023-12-28 09:57:43 332

原创 亿级系统设置年轻代(ParNew+CMS)

秒杀场景,ParNew+CMS优化设置

2023-12-27 22:25:36 327

原创 JVM基础原理篇-带你深入拆解G1垃圾回收原理

动态调整新生代区域region的数量 - 在G1里,在执行YGC的时候,新生代的数量是可以动态变化的,一般什么都不设置的情况下,Eden区占比例在5%~60%之间(调整的原因,是根据每次执行垃圾回收后,根据当前的情况判断增加region数量,每增加一个region数量,Eden区就会增加一个,如果没有必要,Eden数量太多,导致回收时间太长,这时JVM就会减少Eden区数量)。1.混合回收前面为什么会有一次YGC呢,前面讲了混合回收的触发条件是,在YGC后,已分配的内存占总内存的45%,触发混合回收;

2023-12-27 22:16:13 926

原创 总结两套JVM模版配置

XX:+CMSScavengeBeforeRemark - 在重新标记阶段,会STW,导致服务中断,这个时候,在执行重新标记前,先执行一次YGC,因为重新标记主要管的是新创建的对象(新生代),先执行一次YGC,新生代中的垃圾对象都会被提前清除掉,这样再扫描对象,对象就会少很多,从而降低STW停顿时间。-XX:PermSize=256M - 设置永久代初始内存大小,永久代大小的设置,跟你是什么应用(比如秒杀系统)没有多大关系,因为永久代是装载类文件的,一般设置256/512M就可以;

2023-12-21 11:55:25 949

原创 JVM征服面试篇-亿及流量系统设计(学习笔记)

一、如何拆解亿级流量系统-百万级结算系统如何设置JVM。4.第四步:确定单笔订单耗时,寻找性能瓶颈。2.第一步:确定业务背景和核心流程。5.第五步:确定单笔支付需要的空间。3.第二步:确认系统的压力在哪里。6.第六步:回答面试官的问题。3.第三步:确定QPS。

2023-12-20 18:00:31 332

原创 JVM基础原理篇-透彻理解类加载子系统(学习笔记)

收到一个新的类,最底层的系统类加载器并不直接加载,而是向上委托给扩展类加载器,而扩展类加载器拿到新类后,也不执行加载,继续向上委托给引导类加载器,引导类加载器会执行加载,假如能够加载成功,结束退出,如不能加载,向下返回个null,扩展类加载器检测到上层加载器不能加载,它会执行加载,假如加载成功,结束退出,如不能加载,继续向下返回个null,系统类加载器检测到上层加载器不能加载,系统类加载器会执行加载。扩展类加载器加载的类文件,相对JVM而言,不是特别重要,但是又比我们写的代码重要。

2023-12-20 17:54:24 432

原创 垃圾收集器及内存分配

‐XX:+PrintGC 输出GC日志 ‐XX:+PrintGCDetails 输出GC的详细日志 ‐XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式) ‐XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013‐05‐04T21:53:59.234+0800) ‐XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息 ‐Xloggc:F://test//gc.log 日志文件的输出路径。(这里是指,并行能力较强的机器)

2023-12-15 14:18:36 958

转载 SpringBoot+内置Tomcat配置,参数调优,最大并发量,最大连接数

SpringBoot开发最大的好处是简化配置,内置了Tomcat, 在SpringBoot2.0.x版本中内置Tomcat版本是8.5.x,SpringBoot内置Tomcat的默认设置中,Tomcat的等待队列长度默认是100,Tomcat的最小工作线程数默认分配10,Tomcat的最大线程数是200,最大连接数是10000,至于最大并发量和最大连接数,常常理解成最大并发量就是最大连接数,实际上是有些牵强的,最大连接数并不一定就是最大并发量。,这2条请求任务恰恰是最容易忽略的,如此最终处理了14条请求,

2023-12-15 10:00:00 1786

原创 JVM垃圾回收算法

上面这张图代表的是程序运行期间所有对象的状态,它们的标志位全部是0(也就是未标记,以下默认0就是未标记,1为已标记),假设这会儿有效内存空间耗尽了,JVM将会停止应用程序的运行并开启GC线程,然后开始进行标记工作,按照根搜索算法,标记完以后,所有从root对象可达的对象就被标记为了存活的对象,此时已经完成了第一阶段标记。和标记清除算法一样,也是从根节点开始,对对象的引用进行标记,在清理阶段,并不是简单的清理未标记的对象,而是将存活的对象压缩到内存的一端,然后清理边界以外的垃圾,从而解决了碎片化的问题。

2023-12-14 16:12:17 1069

原创 jvm调优参数常用命令总结

(2)查询内存中对象数量及大小(包括活跃以及非活跃对象)(4)查看进程的GC信息 间隔1秒1次,打印5次。(4) 将内存使用情况dump到文件中。(3)查询内存中对象数量及大小(活跃对象)5.设置jvm的堆内存初始大小和最大大小。通过jstat命令进行查看堆内存使用情况。12.当发生内存溢出时,自动dump文件。查看Java进程xxx的指定JVM参数。查看Java进程xxx的JVM参数。(2) 通过浏览器访问。(1)查看class加载数统计。1.查看Java命令参数。(2)其他见学习笔记。

2023-12-14 14:46:44 362

原创 Docker常用命令总结

docker pull centos 等价于 docker pull docker.io/library/centos。将容器ID为7f6c10d7a83c mycentos:1.0的容器创建镜像mycentos:1.0。docker push centos6.5 不带仓库地址一般默认hub.docker.com。容器启动并link容器(tomcat02连接到tomcat01)docker logs -f -t --tail 行数 容器名。启动容器并添加数据卷(默认读写)启动容器并添加数据卷(只读)

2023-12-14 14:24:04 446

原创 JVM调优:参数(学习笔记)

JVM调优:参数(学习笔记)

2023-12-14 14:18:25 999

原创 大白话MySQL优化(学习笔记):调优思维(6)

where条件是idc>3(范围检索),数据取出后,name的顺序肯定是不是排好序的,需要重新排序,所以走的是Using temporary,类似之前学order by的时候,取出name后,需要重排序一样。B-tree索引,由于data特别大的时候,会导致子存储的键值会减少,B-tree的高度会越来越高,查找的深度会加大,读取的IO次数会越来越多。同样的道理,where条件改为idc=3,这个时候,取出数据name,是拍好序的,就不需要重新排序了,所以走的是索引。

2023-12-07 10:11:38 843

原创 大白话MySQL优化(学习笔记):慢查询优化概述(5)

在没索引的情况下,mysql会通过使用Using join buffer(hash join)来,优化查询,减少循环次数,原来可能循环1000次,优化后可能减少到10次,这个取决于mysql的join_buffer_size大小的设置,默认256kb。如果sort_buffer可以存放所有满足条件的(id,col2)对(注意:这里是根据排序字段col2进行排序的,意味着id是乱序的,后面排好序后,id是可能乱序的,可以优化将id排好序,id排序的内存大小受””,默认大小也为256kb),则进行排序;

2023-12-05 18:11:07 936

CentOS7 nginx离线安装gcc/pcre-devel/openssl-devel/zlib-devel以及其他包

autogen-5.18-5.el7.x86_64.rpm cpp-4.8.5-36.el7.x86_64.rpm gcc-4.8.5-36.el7.x86_64.rpm glibc-devel-2.17-260.el7.x86_64 openssl-1.0.2k-16.el7.x86_64 openssl-devel-1.0.2k-16.el7.x86_64 openssl-libs-1.0.2k-16.el7.x86_64 pcre-devel-8.32-17.el7.x86_64 zlib-1.2.7-18.el7.x86_64.rpm zlib-devel-1.2.7-18.el7.x86_64 ntp-4.2.6p5-28.el7.centos.x86_64.rpm ntpdate-4.2.6p5-28.el7.centos.x86_64.rpm ... 下载后,上传到centos中,执行如下命令:rpm -Uvh ./*.rpm --nodeps --force

2022-08-12

绿联 FL2000显卡驱动 - FL2000-2.1.34054.0(Windows系统)

绿联usb3.0 转hdmi 驱动

2022-07-20

myeclipse2015注册码以及破解方法,亲测可用

myeclipse2015注册码以及破解方法,亲测可用,仅供学习参考之用

2015-10-23

mybatis-generator-core-1.3.2.jar包及自动生成样例以及使用方法

mybatis-generator-core-1.3.2.jar包及自动生成样例以及使用方法,使用请参考使用文档

2015-10-23

eclipse代码格式化模板和注释javaDoc模板

eclipse代码格式化模板和注释javaDoc模板,内含代码格式化模板以及javaDoc注释模板

2015-10-23

freemarker语法(带例子)

freemarker语法(带例子) 每个语法和参数都有详细讲解(带实例)

2012-11-23

SSH_struts1.3_hibnerate3.2_spring2.5框架整合开发

SSH_struts1.3_hibnerate3.2_spring2.5框架整合开发(含事务)

2012-10-30

onunload事件判断浏览器是刷新还是关闭窗口

运用onunload事件判断浏览器是刷新还是关闭窗口 兼容firefox5及其他浏览器

2012-10-27

FirefoxF5刷新事件

FirefoxF5刷新事件 此次上传代码完美解决FirefoxF5刷新事件获得不到event

2012-10-27

mybatis中文版教程.pdf

mybatis中文版教程.pdf mybitis ibatis java

2012-10-27

MyBatis_3_整合Spring3、SpringMVC

MyBatis_3_整合Spring3、SpringMVC.docx

2012-10-27

SQLyogEE-v7.14H

Mysql客户端 SQLyogEE-v7.14H 无查询中文乱码问题,绝对实用

2012-10-27

struts2+hibernate3.3+spring2.5整合

struts2+hibernate3 3+spring2 5整合 绝对可用 使用eclipse整合

2012-03-27

junit-4.10.jar java

junit-4.10.jar..java..不解释

2012-03-27

cglib-2.2.2.jar

cglib-2.2.2.jar。。不解释

2012-03-27

PS经典教程——Photoshop经典实例教程3000例.doc

PS经典教程——Photoshop经典实例教程3000例.doc

2012-02-28

Java数据结构和算法(第二版)[文字版][中文].pdf

Java数据结构和算法(第二版)[文字版][中文].pdf

2012-02-28

java时间格式大全

java时间格式大全 ....对于java时间比较迷糊的,可以拿来看看

2012-02-28

Java面试宝典2011版[文字版][中文].pdf

Java面试宝典2011版[文字版][中文].pdf

2012-02-28

疯狂Ajax讲义00006_2.pdf

疯狂Ajax讲义 关于jquery prototype javascript...共分六部分,因上传限制,请耐心下载

2012-02-28

疯狂Ajax讲义00006_1.pdf

疯狂Ajax讲义 关于jquery prototype javascript...共分六部分,因上传限制,请耐心下载

2012-02-28

疯狂Ajax讲义00005.pdf

疯狂Ajax讲义 关于jquery prototype javascript...共分六部分,因上传限制,请耐心下载

2012-02-28

疯狂Ajax讲义00004.pdf

疯狂Ajax讲义 关于jquery prototype javascript...共六部分,因上传限制,请分别耐心下载

2012-02-28

疯狂Ajax讲义00003.pdf

疯狂Ajax讲义 关于jquery prototype javascript..因上传大小限制,共分六部分,请耐心下载

2012-02-28

疯狂Ajax讲义00002.pdf

疯狂Ajax讲义 关于 jquery Prototype javaScript。。因上传大小限制,共分六部分上传,请耐心下载

2012-02-28

疯狂Ajax讲义

疯狂Ajax讲义 关于jquery Prototype javaScript..共分六部分。请耐心下载

2012-02-28

rowid与rownumber

rowid与rownumber的介绍 rowid rownumber

2010-10-17

Java算法大全(收集)

Java 算法大全 Java 算法大全 Java 算法大全

2010-10-17

在Linux环境下安装软件步骤

在Linux环境下安装软件步骤 在Linux环境下安装软件步骤

2010-10-17

JQuery实战视频教程SRC&PPT

JQuery 实战视频 教程 SRC PPT

2010-10-17

J2EE笔试面试题集

J2EE笔试面试题集 java 常见面试题

2010-10-17

java之SSH常见面试题

SSH常见面试题 收集了常见的面试题 java

2010-10-17

UML&OOAD企业高端培训

UML&OOAD企业高端培训 有兴趣的可以收集起来 以后肯定有用

2010-10-17

Struts2+spring2+hibernate3实例源码-java源码

Struts2+spring2+hibernate3实例源码-java源码

2010-10-17

空空如也

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

TA关注的人

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