自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

只作为个人备忘录

仅仅作为备忘录,如有不妥的地方,请海涵

  • 博客(44)
  • 资源 (23)
  • 收藏
  • 关注

原创 redis设计与实现读书笔记-主从复制

主从复制:在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave)。如果从服务器创建的套接字能成功连接(connect)到主服务器,那么从服务器将为这个套接字关联一个专门用于处理复制工作的文件事件处理器,这个处理器将负责执行后续的复制工作,比如接收RDB文件,以及接收主服务器传播来的写命令,诸如此类。PSYNC

2020-06-29 10:57:00 155

原创 redis设计与实现读书笔记-事件

事件Redis服务器是一个事件驱动程序,❑文件事件(file event):Redis服务器通过套接字与客户端(或者其他Redis服务器)进行连接,而文件事件就是服务器对套接字操作的抽象。服务器与客户端(或者其他服务器)的通信会产生相应的文件事件,而服务器则通过监听并处理这些事件来完成一系列网络通信操作。❑时间事件(time event):Redis服务器中的一些操作(比如serverCron函数)需要在给定的时间点执行,而时间事件就是服务器对这类定时操作的抽象。文件事件Redis基于R

2020-06-29 10:45:18 194

原创 redis设计与实现读书笔记-持久化

RDB持久化RDB持久化功能所生成的RDB文件是一个经过压缩的二进制文件,通过该文件可以还原生成RDB文件时的数据库状态,RDB文件的创建与载入有两个Redis命令可以用于生成RDB文件,一个是SAVE,另一个是BGSAVE。SAVE命令会阻塞Redis服务器进程,直到RDB文件创建完毕为止,在服务器进程阻塞期间,服务器不能处理任何命令请求,BGSAVE命令会派生出一个子进程,然后由子进程负责创建RDB文件,服务器进程(父进程)继续处理命令请求RDB文件的载入工作是在服务器启动时自动执行的,

2020-06-29 10:26:25 154

原创 redis设计与实现读书笔记-数据库

前言键空间和用户所见的数据库是直接对应的:❑键空间的键也就是数据库的键,每个键都是一个字符串对象。❑键空间的值也就是数据库的值,每个值可以是字符串对象、列表对象、哈希表对象、集合对象和有序集合对象中的任意一种Redis对象。设置键的生存时间或过期时间通过EXPIRE命令或者PEXPIRE命令,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间(Time To Live,TTL),在经过指定的秒数或者毫秒数之后,服务器就会自动删除生存时间为0的键:❑EXPIRE<key.

2020-06-28 16:57:04 222

原创 redis设计与实现读书笔记-对象

Redis用到的所有主要数据结构,比如简单动态字符串(SDS)、双端链表、字典、压缩列表、整数集合等等,Redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这个系统包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五种类型的对象,每种对象都用到了至少一种我们前面所介绍的数据结构。Redis的对象系统还实现了基于引用计数技术的内存回收机制,当程序不再使用某个对象的时候,这个对象所占用的内存就会被自动释放;另外,Redis还通过引用计数技术实现了对象共享

2020-06-28 16:40:27 175

原创 redis设计与实现读书笔记-数据结构

数据结构:SDS与C字符串的区别:C语言使用长度为N+1的字符数组来表示长度为N的字符串,并且字符数组的最后一个元素总是空字符'\0'。C字符串并不记录自身的长度信息,所以为了获取一个C字符串的长度,程序必须遍历整个字符串,和C字符串不同,因为SDS在len属性中记录了SDS本身的长度,所以获取一个SDS长度的复杂度仅为O(1)。与C字符串不同,SDS的空间分配策略完全杜绝了发生缓冲区溢出的可能性:当SDS API需要对SDS进行修改时,API会先检查SDS的空间是否满足修改所需的要求,如.

2020-06-28 15:46:47 155

原创 一致性哈希算法的理解

概念一致性哈希算法及其在分布式系统中的应用http://blog.codinglabs.org/articles/consistent-hashing.html简单总结:普通分布式缓存痛点:服务器宕机或扩容,数据重新hash计算影响大。虚拟环:一致性hash算法是来做服务器的负载均衡,而服务器的IP地址是32位,所以是2^32-1次方的数值空间。服务器寻址:h = Hash(ip或主机名) % N, N为服务器的台数,并且服务器按照0 – (N-1)编号数据定位服务器:采用..

2020-06-27 20:03:00 193

原创 springgateway限流-令牌桶算法

限流配置参见:https://blog.csdn.net/forezp/article/details/85081162https://cloud.spring.io/spring-cloud-gateway/2.2.x/reference/html/#the-requestratelimiter-gatewayfilter-factoryhttp://www.ityouknow.com/springcloud/2019/01/26/spring-cloud-gateway-limit.ht

2020-06-26 21:19:07 1320

原创 SpringGateway转发过程

为什么写?就想看看springgateway的限流咋做的?但是看着看着就想知道转发过程,然后就写了,总之:转发是通过重组请求头header、uri等信息建立netty客户端连接的访问过程。Lettuce相较于Jedis有哪些优缺点?Lettuce 和 Jedis 的定位都是Redis的client,所以他们当然可以直接连接redis server。Jedis在实现上是直接连接的redis server,如果在多线程环境下是非线程安全的,这个时候只有使用连接池,为每个Jedis实例增加物理连接

2020-06-26 19:24:41 3681

原创 一个SpringBoot里边函数式编程的例子

为什么写因为看到了SpringBoot一个关于函数式编程的完美例子,以前很少用到,但是写的真是太美了,就像美女一样,真养眼。先看下lambda常用的函数接口接下来看看她长什么样子public final class PropertyMapper { private static final Predicate<?> ALWAYS = (t) -> true; private static final PropertyMapper INSTANCE = new

2020-06-26 12:41:50 1195

原创 Druid的数据库连接获取过程以及是否可热切换域名

为什么写?我就想看看,到底和普通建立当有啥区别,另外是否可以热切换域名普通的Mysql创建连接的过程:public class Conn { Connection con; public Connection getConnection() { try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("数据库驱动加载成功");

2020-06-25 19:29:13 1135

原创 关于@EnableFeignClients的认识

今天起了大早,偶尔发现,项目忘记加入注解@EnableFeignClients,导致启动失败,于是想知道它做了啥呢?为什么项目没有加载相关bean?原来@EnableFeignClients是通过@Import把FeignClientsRegistrar注入到IOC容器中,当项目启动执行invokeBeanFactoryPostProcessors--》invokeBeanDefinitionRegistryPostProcessors—》ConfigurationClassPostProc

2020-06-24 10:37:37 5439

原创 回顾篇-SpringBoot-Tomcat

为什么写?今天看了Spring实战第五版,里边有句话如下:传统的基于Servlet的Web框架,如Spring MVC,在本质上都是阻塞和多线程的,每个连接都会使用一个线程。在请求处理的时候,会在线程池中拉取一个工作者(worker)线程来对请求进行处理。(读到这里没啥疑问,但是接下来说的我有点疑惑)同时,请求线程是阻塞的,直到工作者线程提示它已经完成为止。我就在想SpringBoot默认内置的Tomcat应该是Nio,请求线程不应该是阻塞的,应该是同步非阻塞的,于是变回顾下请求过程。To

2020-06-23 11:37:22 335

原创 使用常见的反应式操作

import lombok.Data;import org.junit.Test;import reactor.core.publisher.Flux;import reactor.core.publisher.Mono;import reactor.core.scheduler.Schedulers;import reactor.test.StepVerifier;import reactor.util.function.Tuple2;import java.time.Duratio...

2020-06-22 18:15:20 1140

原创 回顾篇-mysql索引-读书笔记

事务日志事务日志可以帮助提高事务的效率。使用事务日志,存储引擎在修改表的数据时只需要修改其内存拷贝,再把该修改行为记录到持久在硬盘上的事务日志中,而不用每次都将修改的数据本身持久到磁盘。事务日志采用的是追加的方式,因此写日志的操作是磁盘上一小块区域内的顺序I/O,而不像随机I/O需要在磁盘的多个地方移动磁头,所以采用事务日志的方式相对来说要快得多。事务日志持久以后,内存中被修改的数据在后台可以慢慢地刷回到磁盘。目前大多数存储引擎都是这样实现的,我们通常称之为预写式日志(Write-Ahead Lo...

2020-06-20 19:45:07 223

原创 回顾篇-mysql索引

磁盘基本概念磁盘由大小相同且同轴的圆形盘片组成,磁盘的一侧有磁头支架,磁头支架固定了一组磁头,每个磁头负责存取一个磁盘的内容。磁盘块/簇(虚拟出来的)。 块是操作系统中最小的逻辑存储单位。操作系统与磁盘打交道的最小单位是磁盘块。通俗的来讲,在Windows下如NTFS等文件系统中叫做簇;在Linux下如Ext4等文件系统中叫做块(block)。每个簇或者块可以包括2、4、8、16、32、64…2的n次方个扇区。为什么存在磁盘块?读取方便:由于扇区的数量比较小,数目众多在寻址时比较困难,所以操作

2020-06-19 17:17:15 201

原创 关于Springboot Transactional cglib代理生成过程

一:候选代理器candidateAdvisors的准备当创建bean实例准备实例化initializeBean的时候,会进行后置处理器的调用,其中AbstractAdvisorAutoProxyCreator是特定bean构建AOP代理的通用自动代理创建器。而代理处理器是通过DefaultListableBeanFactory调用doGetBeanNamesForType方法主要判断了Advisor.class.isAssignableFrom(Target.class)获取的。二:candidat

2020-06-17 18:15:27 1211

原创 通过反编译后的字节码理解cglib代理

代码例子:实验过程final类不可被代理报错:Cannot subclass final class class javaDemo.proxyDemo.CGlibTestClass,final没有被代理。package javaDemo.proxyDemo;import org.springframework.cglib.proxy.Enhancer;import org.springframework.cglib.proxy.MethodInterceptor;import java.io

2020-06-17 11:59:27 666

原创 通过反编译后的字节码理解jdk代理

一:使用例子public class ProxyDemo implements InvocationHandler { static ProxyDemo proxyDemo = new ProxyDemo(); public ProxyDemo() { } private Object sub; public ProxyDemo(Object obj) { sub = obj; } @Override publ

2020-06-17 11:24:01 216

转载 世界上最快的排序算法——Timsort

转:世界上最快的排序算法——Timsort前言经过60多年的发展,科学家和工程师们发明了很多排序算法,有基本的插入算法,也有相对高效的归并排序算法等,他们各有各的特点,比如归并排序性能稳定、堆排序空间消耗小等等。但是这些算法也有自己的局限性比如快速排序最坏情况和冒泡算法一样,归并排序需要消耗的空间最多,插入排序平均情况的时间复杂度太高。在实际工程应用中,我们希望得到一款综合性能最好的排序算法,能够兼具最坏和最好时间复杂度(空间复杂度的优化可以靠后毕竟内存的价格是越来越便宜),于是基于归并和插入排

2020-06-16 21:33:31 13094 1

原创 Collections.sort实现算法的简单理解——Timsort

个人理解:以生序作为例子对于长度小于32数组直接进行二分插入排序 /** * 简化的二分插入排序例子 数组a[1...n]中,把后一个pivot和前面排序好的(范围:left < right)进行比较交换 */ @Test public void binarySort() { Object[] a = {49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 1}; i

2020-06-16 21:26:57 412

原创 Netty4简单认知

Channel简介在Netty中,Channel相当于一个Socket的抽象,它为用户提供了关于Socket状态(是连接还是断开)及对Socket的读、写等操作。每当Netty建立了一个连接,都创建一个与其对应的Channel实例。下图表示常用Channel:NioSocketChannel的创建 Bootstrap是Netty提供的一个便利的工厂类,可以通过它来完成客户端或服务端的Netty初始化。先来看一个例子,从客户端和服务端分别分析Netty的程序是如何启动的。首先,从客..

2020-06-15 16:08:54 197

转载 回顾篇-队列

Collection的接口实现回顾:Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构Queue的实现 双向链表LinkedList: 实现了LinkedList接口  内置的不阻塞队列:PriorityQueue是非线程安全的,优先队列PriorityQueue本质上就是一个最小堆,维护了Object[]有序数组,Queue 中的元素根据它们的天然排序(通过其 java.util.Comparable 实现)或者根据传递给构造函数的 java.util...

2020-06-14 22:40:27 199

原创 探究Spring Cloud Ribbon默认负载均衡策略实现的过程

1: 简介Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。那么哪些路由配置会走负载均衡器呢?答案是配置具有lb://服务名,这样的配置会走,因为LoadBalancerClientFilter会进行判断url的前缀是否含有lbif (url == null|| (!"lb".equals(url.getScheme()) && !"lb".equals(schemePrefix))) { return

2020-06-11 21:34:39 2028

原创 关于DirectByteBuffer直接堆外内存释放的理解

基本概念:JVM可以使用的内存分外2种:堆内存和堆外内存,堆内存完全由JVM负责分配和释放,如果程序没有缺陷代码导致内存泄露,那么就不会遇到java.lang.OutOfMemoryError这个错误。使用堆外内存,就是为了能直接分配和释放内存,提高效率。我的理解:Unsafe.allocateMemory分配堆外内存,Unsafe.freeMemory释放堆外内存,分配内存通过ByteBuffer.allocateDirect创建DirectByteBuffer对象并分配内存,同时记录相关分

2020-06-11 18:56:02 1206

原创 回顾-ByteBuffer简单用法

Buffer flip()方法

2020-06-11 15:29:56 435

原创 对于同步和非同步,阻塞和非阻塞,BIO,NIO的概念的回顾

同步和异步同步和异步其实是指CPU时间片的利用,主要看请求发起方对消息结果的获取是主动发起的,还是被动通知的,如下图所示。如果是请求方主动发起的,一直在等待应答结果(同步阻塞),或者可以先去处理其他事情,但要不断轮询查看发起的请求是否有应答结果(同步非阻塞),因为不管如何都要发起方主动获取消息结果,所以形式上还是同步操作。如果是由服务方通知的,也就是请求方发出请求后,要么一直等待通知(异步阻塞),要么先去干自己的事(异步非阻塞)。当事情处理完成后,服务方会主动通知请求方,它的请求已经完成,这就是异步。异

2020-06-11 15:16:52 410

原创 Spring监听器的处理过程

监听容器是如何初始化的?当程序执行到AbstractAutowireCapableBeanFactory(BeanPostProcessor的实现类,保证后续bean可能被包装)initializeBean()方法时,轮询执行postProcessAfterInitialization ,该BeanPostProcessor是在容器执行registerBeanPostProcessors时候内置加载到bean工厂的beanFactory.addBeanPostProcessor(new Appli

2020-06-10 21:18:42 485

原创 Spring Boot自动配置

原理是什么?原理就是通过loadFactoryNames读取实现配置好的spring.factories,实例化其中的类,对于不同的实现有不同的处理逻辑,比如SpringBoot启动是需要的ApplicationContextInitializer的初始化处理,是调用相关类的initialize方法。又比如Nacos的spring.factories文件的内容仅仅是实例化过程。文件配置以及是如何读取的?启动过程读取spring.factories文件,改文件存储格式如下:# Initia.

2020-06-10 17:26:12 417

原创 利用Nacos服务获取配置逻辑的特点,实现动态配置kafak认证

我要做什么?实现Nacos动态配置kafka认证信息,使每个微服务读取同一个kafka配置,并生成文件注入到环境变量中。为什么要这么做?首先我们看下Kafka-java接入demo,如图:1.prod_client_jaas.conf文件KafkaClient{ org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka_1" password="密码"; };

2020-06-10 14:09:20 3379

原创 反应式编程reactor简单的概念

关于Reactor的介绍Reactor是Spring中的一个子项目是一个基于java的响应式编程框架关于反应式编程的思想反应式编程框架主要采用了观察者模式,为了方便下面理解Mono和Flux,也可以理解为Publisher(发布者也可以理解为被观察者)主动推送数据给Subscriber(订阅者也可以叫观察者),如果Publisher发布消息太快,超过了Subscriber的处理速度,如何处理。这时就出现了Backpressure(背压-----指在异步场景中,被观察者发送事件速度远快于观察者的处

2020-06-10 10:23:27 529

原创 Synchronized和Lock的简单理解

1:AQS是什么AQS是构建锁和同步器的框架,ReentrantLock ,Semaphore,CountDownLatch,ReentrantReadWriteLock,SynchronousQueue,FutrueTask都是基于AQS(AbstractQueuedSynchronizer)构建的。2:AQS基本方法都有哪些?基本操作包括获取和释放操作,获取操作是一种依赖状态的操作,并且通常会阻塞。AQS负责同步器类中的状态管理,所以Lock锁是一种基于同步器状态控制的锁机制。对于Loc

2020-06-08 23:32:36 388

原创 通过springboot autoconfig分析bean实例化过程的案例

分析案例前提所参考的例子,Spring Boot中的自定义start pom,SpringBoot学习笔记(3) Spring Boot 运行原理,自动配置,然后我又看了下nacos的源码,发现原来也都是这做的截图如下:当然最终的目的我是想知道@Bean helloService实例化过程/** * @desc 自定义自动配置加载类: * 1、编写属性配置类,读取application.properties文件初始化属性 * 2、编写service类。 * 3、编写自定义自动加.

2020-06-07 19:28:19 675 1

原创 啾啾

夜下村头,轧水堂前流,咕咕三两点,浮萍叶下游,作别沾衣雨,又见柳叶州,好似房前春燕,喋喋不休,啾啾,啾啾!

2020-06-06 12:32:41 159

原创 五年

生活是不断的遇见,人生却是不断的离别,遇见是多么的不易,离别却是一张火车票轻易挥别的远去,这就是缘分,一种妙不可言的空洞,一种去留无意的填充,像极了西江月的世事一场大梦,人生几度秋凉。佛说的缘分或许是世事物语最原味的告白,模糊的犹如幽若的氤氲屏障,却也尖锐刺骨的洞悉着一切无常之事,告一段风尘仆仆,还一声五蕴皆空。 来到这,也五年了,五年了,也就是五年了,然后呢,也只是五年了。 ...

2020-06-06 12:31:56 111

原创 花花草

我有满园花花草,一处芬芳,处处芳香。两色青山多满月,忘我一处青山应无眠。

2020-06-06 12:31:22 305

原创 春日

春河日语风中雪,山花烂漫无旧人, 朝看青川山岳早,屋棚夜下早还家, 粉黛陶冠春暖意,笑含茹妆玉着衫 望风巍然而却下,不知天外九重天。 潇潇暮雨冬来去,莺鸟桃花又一春, 文人墨客山茶草,酸草含嚼苦味深 羽墨掸空不见色,横刀断水水无痕。 ...

2020-06-06 12:30:53 180

原创 大雨

大雨生彷徨,以为天人兮溯鎏妆 轰鸣兮悠远,望长水东来去也,长生共兴。

2020-06-06 12:30:12 117

原创 小径

尽入夏,绕竹篱,已是桃花稀落。笑到西川,此去随所遇,不羡青山不拜仙。园中花草,草木香幽,清风独得朝暮暖,蕲水携来四季春,云岩宫阙,尽是人间!峰峦断却处,本是一脉之水,两侧命不相同,一水之门,几多思量,几多判却,一方玲珑剔透,嬉水无痕,一方藻荇交横,供人垂钓。环洲远望,木柏古色寂寥,百余年已,忆往昔,三百年前物华天美,尽湮灭,楼台烟雨中,付之一炬,惘论富丽堂皇。停驻处,清幽之地,善男信女,供给千钟粟米,佛堂殿后,束之高阁,巍然阔哉!湖心亭处,飞来横去,大鸟食鱼饵,啄流而起,浮落囫吞池鱼肉糜,塘中是若盘

2020-06-06 12:29:39 158

原创 杂十一

金钱的平等:只有金钱会向穷人开放,而权利则近乎不会生活的干扰:生活中,总是被不断的输入信息,也有主动的获取些信息,这些形形色色的信息素有着不同的定义,其中的一种叫做别人的看法,这些信息素往往左右着思维的判断,影响着自我内心的情愫的起伏,而理性的看待和有选择的接收分析才是良好处理这些信息素的必修法则。说话的作用:语言,是权利的手杖,沉默是金,却在某种程度上译化为不存在或者干脆说成被动阶级,也就是说,在说话的圈子里让别人听到并慢慢的演进为听从的过程,是权利支配沉默的开始,并不是说沉默是不好的,至少沉默.

2020-06-06 12:28:55 165

restful zip请求直接解析和下载

restful zip请求直接解析和下载restful zip请求直接解析和下载restful zip请求直接解析和下载restful zip请求直接解析和下载restful zip请求直接解析和下载restful zip请求直接解析和下载restful zip请求直接解析和下载restful zip请求直接解析和下载

2018-08-11

华为日志说明

华为日志说明华为日志说明华为日志说明华为日志说明华为日志说明华为日志说明华为日志说明华为日志说明华为日志说明华为日志说明华为日志说明华为日志说明华为日志说明华为日志说明华为日志说明华为日志说明

2018-07-13

syslog工具(win10可以用)

syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)syslog工具(win10可以用)

2018-07-13

华为交换机手册配置(包括syslog日志)

华为交换机日志说明华为交换机日志说明华为交换机日志说明华为交换机日志说明华为交换机日志说明华为交换机日志说明华为交换机日志说明华为交换机日志说明华为交换机日志说明华为交换机日志说明

2018-07-13

webgoatwebgoatwebgoat

webgoatwebgoatwebgoatwebgoatwebgoatwebgoatwebgoatwebgoatwebgoatwebgoatwebgoatwebgoatwebgoatwebgoatwebgoatwebgoatwebgoatwebgoatwebgoat

2017-09-22

iBase4J配置部署说明+代码

iBase4J配置部署说明+代码 iBase4J配置部署说明+代码 iBase4J配置部署说明+代码 iBase4J配置部署说明+代码 iBase4J配置部署说明+代码 iBase4J配置部署说明+代码 iBase4J配置部署说明+代码

2017-09-13

listener-tnsname

listener-tnsnamelistener-tnsnamelistener-tnsnamelistener-tnsnamelistener-tnsnamelistener-tnsnamelistener-tnsnamelistener-tnsname

2017-09-09

PLSQL Developer11中文绿色

PLSQL Developer11中文绿色PLSQL Developer11中文绿色PLSQL Developer11中文绿色PLSQL Developer11中文绿色PLSQL Developer11中文绿色

2017-09-09

bootstrap demo 大全

bootstrap demo 大全。。非常多的例子。。立马上手 bootstrap demo 大全。。非常多的例子。。立马上手 bootstrap demo 大全。。非常多的例子。。立马上手

2017-09-03

bootstrap树 bootstrap-treeview完整例子

bootstrap树 bootstrap-treeview完整例子bootstrap树 bootstrap-treeview完整例子bootstrap树 bootstrap-treeview完整例子bootstrap树 bootstrap-treeview完整例子bootstrap树 bootstrap-treeview完整例子

2017-09-03

Jboss源码解析

Jboss源码解析

2017-08-30

深入理解Java虚拟机——JVM高级特性与最佳实践(第2版).pdf,完整

深入理解Java虚拟机——JVM高级特性与最佳实践(第2版).pdf,完整,带书签, 完整版

2017-08-27

深入java虚拟机源码

深入java虚拟机源码

2017-08-22

servlet反射注解例子

利于学习注解和反射知识

2016-10-13

上传下载java

上传下载java

2016-10-11

发送邮件的代码

发送邮件的代码

2016-10-11

cronolog-1.6.2.tar

cronolog-1.6.2.tar

2016-08-03

wsdl说明书查看方法

wsdl开发文档,的查看方式,支持开源,反对积分!

2016-01-15

dwr简单例子

dwr简单例子 ,自己根据文档写的例子,有一点要注意:就是页面不能写在web-info下,只能写在webcontext下,因为找不到;支持开源,反对积分!

2016-01-15

webservice和socket简单例子

webservice和socket简单例子,支持开源,反对积分!

2016-01-15

安卓eclipse配置

安卓eclipse配置.

2016-01-06

oracle习题

这是一个很好地 练习题,帮助我们更好的了解oral

2015-10-23

oracle课件

ORACLE的上课文档,很好很实用,希望能帮助更多的我们!

2015-10-23

空空如也

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

TA关注的人

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