自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿呆的专栏

每天进步一点点

  • 博客(216)
  • 资源 (26)
  • 收藏
  • 关注

原创 博客笔记心得

1、用得再熟练的技术,半年不用,再用时感觉像是从来没用过,需要重新学习一遍,所以,随手记录笔记,很有必要!2、记录笔记时,最好注明环境信息,如:jdk级别、操作系统信息、浏览器用的哪一个等;3、每一次遇到的异常,都是财富,解决掉并且记录下来,以后就不会在同一个地方摔倒两次!4、强烈建议CSDN在文章编辑页面禁用“BackSpace”回退键,不止一次在编辑文章时,按了一个这个按键,然后就...

2015-05-27 11:41:28 908 3

原创 SpringBoot升级至2.7.x版本后,双斜杠路径报错404问题的解决

SpringBoot升级至2.7.x版本后,双斜杠路径报错404问题的解决

2022-07-20 18:02:55 2759 1

原创 从java字节码层理解i++和++i

程序目的从java字节码层理解,为何i = i++后,结果是+1之前的数值。而i=++i后,结果是+1之后的值。关键指令iload_<n>:从局部变量表获取值,并压入操作数栈。istore_<n>:出栈,然后存储到局部变量表。i++示例源码public class TestIPulsPlus { public static void main(String[] args) { int i = 8; i = i++;// i = ++i; Sy

2021-09-22 15:30:58 681 1

原创 DCL的单例模式,有了synchronized关键字,为何还需要加volatile关键字?

问题DCL(双重检验锁)式单例模式,加了sychronized关键字后,为何还需要加volatile关键字?关键点指令重排单例源码/** * Created by lerry on 2017/9/21. * @author lerry */public class SingletonDCL { private volatile static SingletonDCL singleton; private static int counter = 0; private Single

2021-09-19 10:19:28 638

原创 Java自定义类加载器

如何自定义类加载器,加载自定义路径的.class文件,然后执行定义的方法?源码package com.hua.jvm.classloader;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.lang.reflect.Method;/** * <pre> * 程序目的:测

2021-09-18 17:46:14 317

原创 由mysql超时调整引发的线上故障

问题描述在线上访问医疗机构列表,随机出现访问失败。分析查看了sql执行计划,并不是慢查询导致。查看报错日志,摘录如下:org.springframework.dao.DataAccessResourceFailureException: could not extract ResultSet; nested exception is org.hibernate.exception.JDBCConnectionException: could not extract ResultSetCause

2021-03-18 17:13:49 303

原创 使用信号量(Semaphore)实现生产者与消费者模型

什么是生产者与消费者模型?生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,生产者往存储空间中添加产品,消费者从存储空间中取走产品,当存储空间为空时,消费者阻塞,当存储空间满时,生产者阻塞。打个比方好比去肯德基吃汉堡,货架上有做好的汉堡。消费者花钱来消费汉堡,而肯德基的厨师则不停地做汉堡放在货架上。当货架满了,却没有消费者再来买汉堡时,厨师就不做了,生产者阻塞。当餐点来了,消费者买的太快,厨师做不过来了,货架一直空着。则消费者排队等着,消费者阻塞。

2020-08-21 16:37:12 1899

原创 LongAdder和AtomicLong哪个性能更好,为什么?

概述AtomicLong是作者Doug Lea在jdk1.5版本发布于java.util.concurrent.atomic并发包下的类。而LongAdder是道格·利(Doug Lea的中文名)在java8中发布的类。有了AtomicLong为何还需要LongAdder?在这里,就不得不分析一下AtomicLong的缺点了。先来看一下AtomicLong.incrementAndGet()方法的源码/** * Atomically increments by one the current

2020-08-12 09:56:46 2541

原创 手把手教你使用ThreadLocal

什么是ThreadLocal?首先我们来看javadoc:This class provides thread-local variables. These variables differ from their normal counterparts in that each thread that accesses one (via its get or set method) has its own, independently initialized copy of the variable.

2020-07-22 08:05:57 652

原创 synchronized如何保证线程同步?

什么是synchronized?synchronized是Java提供的一个并发控制的关键字。可以用来修饰方法和代码块。被synchronized修饰的代码块及方法,在同一时间,只能被单个线程访问。synchronized有什么作用?使用该关键字修饰的方法,在同一时刻最多只有一个线程可以进入。如果第一个线程获取锁进入了synchronized修饰的区域,在其释放锁之前,需要进入该实例中synchronized修饰的方法或者代码块的其他线程就需要等待,直到第一个线程释放锁之后,其他线程中才会有一个线

2020-07-16 08:21:07 1121

原创 Java并发与多线程-详解线程池

Java并发与多线程-详解线程池什么是线程池?在此,我们参考一下百科的定义:线程池(英语:thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池的作用?了解线程池作用之前,我们先来看一下,CPU的上下文切换,有多费时间:拿一台主频2.6G的电脑来说,每秒可以执行 2.6*10^9个指令,每个指令只需要 0.38ns,为了方便理解,我

2020-07-05 19:34:17 339

原创 我手写了AQS实现、画了3张流程图,就是为了让你彻底搞明白AQS原理

什么是AQS字面上来看,AQS是jdk1.5加入的java.util.concurrent.locks.AbstractQueuedSynchronizer类,类名翻译成中文就是抽象的队列同步器。由大名鼎鼎的Doug Lea李大爷来操刀设计并开发实现。它提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架,ReentrantLock、Semaphore、CountDownLatch、CyclicBarrier等并发类均是基于AQS来实现的,具体用法是通过继承AQS实现其模板方法,然后将子类作为

2020-07-02 11:24:27 1307

原创 详解Java线程状态及状态转换

为何要了解Java线程状态线程是 JVM 执行任务的最小单元,理解线程的状态转换是理解后续多线程问题的基础。Java线程状态转换图图:线程间的相互转换Java线程有哪些状态?在 JVM 运行中,线程一共有 NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED 六种状态,这些状态对应 Thread.State 枚举类中的状态。Thread.State枚举源码:为方便阅读,在此去掉了文档注释public enum State {

2020-06-26 21:34:14 985 2

原创 使用jstack命令,排查线程死锁问题

概述使用jstack命令,排查线程死锁问题。jstack是什么?jstack是java虚拟机自带的一种堆栈跟踪工具。jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息jstack有什么作用jstack主要用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿的时候通过jst

2020-06-21 18:34:56 7051 1

原创 实战-通过gc日志观察Java内存分配与回收策略

程序目的通过gc日志,详细观察java内存分配与回收策略概要说明为方便观察垃圾回收,指定Java堆大小,并指定年轻代大小,这样当Eden区内存不够时,会触发Minor GC通过-XX:+PrintGCDetails打印GC详细信息,用于观察Java内存分配过程根据日志输出结果,解释内存分配过程源码/** * <pre> * 程序目的:通过gc日志,详细观察java内存分配与回收策略 * 具体参数说明: * -verbose:gc 在发生内存回收时在输出设备显示信息

2020-06-14 17:23:07 480

原创 Java类加载器有几种?什么是双亲委派模型?

什么是类加载器类加载器就是加载磁盘中的字节码文件(.class)的到内存中的类;类加载器本身也是一个类,其实质是把类文件从硬盘读取到内存中虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。——《深入理解Java虚拟机》类加载器可以说是Java语言的一项创新,也是Java语言流行的重要原因之一,它最初是为了满足Java Applet的需求

2020-06-09 11:04:35 1401

原创 volatile关键字不能保证原子性的示例

源码/** * <pre> * 程序目的:测试volatile修饰的成员变量,是否具有原子性 * 主要流程: * 1. 创建容量为10的Thread对象的数组 * 2. 每个Thread执行1_000次 +1 的操作 * 3. 主线程等待子线程运行结束 * 4. 观察结果,看最后counter变量的值,是否为 10_0000 * * 结论:volatile不能保证原子性。 可以通过添加synchronized关键字的方式、来保证原子性 * </pre>

2020-06-07 19:46:13 573

原创 JMM内存模型-多线程读写测试

概述从JMM层面理解多线程对共享变量修改时的可见性问题。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dMAUrvRI-1590808076812)(evernotecid://A0276EB5-0616-4074-A4BE-0A1331D6E773/appyinxiangcom/1711267/ENResource/p5158)]源码package com.hua.jvm;/** * <pre> * 测试两个线程,对同一个局部变量进行修改,是否可

2020-05-30 11:09:02 248

原创 教程:使用Charles抓取https的数据包

需求描述在开发过程中,线上APP的http请求,多是https的。这给我们线上调试工作造成了不小的困扰。看到的都是类似下图的乱码:接下来,我教大家如何使用Charles,抓取明文的https数据包。亲测有效。保证手机和电脑处于同一个网络在Charles端进行SSL Proxying 设置Proxy -> SSL Proxying Settings -> SSL Proxy...

2020-03-27 13:24:48 4461

原创 JdbcTemplate使用?占位符,查询带in条件的sql

概述使用JdbcTemplate,采用占位符写法,防sql注入攻击,带有in条件的处理拼接方法 /** * <pre> * 获取 PreparedStatement 需要的in sql 子句 * 如: * 空集合:('') * [1, 2, 3] (?,?,?) * </pre> * @param params * @return ...

2019-09-06 15:39:04 8315 3

原创 JdbcTemplate防止sql注入攻击的源码解析

概述使用spring中org.springframework.jdbc.core.JdbcTemplate进行sql上查询时,如果采用拼接sql的方式,是会发生sql注入攻击的。会发生sql注入的查询query(String sql, RowMapper<T> rowMapper)源码解析 @Override public <T> List<T> q...

2019-09-04 20:12:59 9604

原创 SpringBoot基于自定义注解简洁方便地实现Redis分布式锁

需求描述控制某个service的方法,当有线程调用了该方法后,其他线程不可再调用该方法基于自定义注解实现,使用时只需要在被调用的方法上添加注解标记即可redis的锁键(lockKey)通过自定义注解的属性传递进去客户端如果在当前时间不可执行该方法,可以得到及时的反馈转载请备注出处:SpringBoot基于自定义注解简洁方便地实现Redis分布式锁技能点使用spring-inte...

2019-07-31 17:35:41 2051

原创 Spring中RedisTemplate的使用

需求描述一个查询List的需求,如果redis有,就直接从redis中获取List返回。如果没有,则先查询,再保存入redis中。使用RedisTemplate实现。实现步骤添加maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId&gt...

2019-07-16 17:36:25 640

原创 SpringBoot中java8的java.time.LocalDateTime类JsonFormat说明

问题概述在SpringBoot中,需要对java8的java.time.LocalDateTime类进行个性化的JsonFormat。处理前,默认处理的日期-时间效果 "create_time": { "year": 2019, "month": "JUNE", "month_value": 6, ...

2019-06-27 18:08:18 10727 2

原创 Spring Boot 在日志中显示sql语句

在使用Spring Boot进行开发时,有时我们为了调试方便,需要输出sql语句,尝试了以下两种办法:show-sqlspring: jpa: show-sql: true不管用logginglogging: level: org: hibernate: SQL: DEBUG管用打印效果如下:也可以实现指定包的日志级别,如:...

2019-03-04 15:32:02 1955

原创 Spring Boot 2.0+使用Redis做缓存,@Cacheable注解的unless参数详解

需求概述在Spring boot 中,用Redis作为缓存,在指定方法上使用@Cacheable注解,并且只缓存特定返回值结论@Cacheable中,unless参数的作用是:符合EL表达式条件的,不缓存。高效一些,我先把结论写在前面。感兴趣的朋友可以继续阅读具体的论证过程。部分代码实现具体方法import org.springframework.cache.annotation.C...

2019-02-01 18:52:21 23614 2

原创 Spring Boot 统一设置Json数据返回风格(Java驼峰命名转下划线)

编写重写了WebMvcConfigurerAdapter的配置类@Configuration@EnableWebMvcpublic class WebMvcConfig extends WebMvcConfigurerAdapter { /** * 统一输出风格 * See {@link com.fasterxml.jackson.databind.PropertyNamingS...

2018-12-12 17:34:43 13669 2

原创 Java Set接口contains(Object o)方法与对象hashCode()方法的关系梳理

概述接下来我们要讨论如下问题:1、Set接口的contains方法,判断是否包含的依据是什么?2、对象hashCode和equals方法之间的关系1、Set接口的contains方法,判断是否包含的依据是什么?我查看了一下接口文档,里面是这样描述的:该方法重写了Collection接口的contains方法Returns true if this set contains the ...

2018-10-09 10:20:13 1375

原创 微信公众号开发 获取openid时报错40163:code been used问题的解决

概述通过微信官方提供的接口https://api.weixin.qq.com/sns/oauth2/access_token接口,获取openid,结果获取不到。报错代码WechatUserInfo(accessToken=null, expiresIn=null, refreshToken=null, openid=null, scope=null, errcode=401...

2018-08-21 17:35:47 43993 1

原创 微信公众号开发 获取openid时报错40029 invalid code 问题的解决

概述通过微信官方提供的接口https://api.weixin.qq.com/sns/oauth2/access_token接口,获取openid,结果获取不到。报错代码WechatUserInfo(accessToken=null, expiresIn=null, refreshToken=null, openid=null, scope=null, errcode=40...

2018-08-21 17:30:11 47362 3

原创 SpringBoot+Druid报错Failed to determine a suitable driver class的解决

问题描述项目中使用了自定义的Spring Listener配置,从网络获取配置KV,在SpringBoot启动过程中加载,然后再加载Druid环境。程序启动时报错:***************************APPLICATION FAILED TO START***************************Description:Failed to auto-...

2018-08-13 18:23:58 11569 3

原创 修改Maven的模块名

如果有一个现有的多模块Maven项目,想要修改其中的一个模块名,可这样进行:step 1修改子模块的project&amp;gt;artifactId为新名称step 2修改父pom的project&amp;gt;modules&amp;gt;module名称step3注意:是在文件夹中直接修改该模块对应的文件夹名称。 在IDE里面修改,可能会有不吻合。IntelliJ中重新...

2018-07-23 17:20:44 6911

原创 Spring Boot 选择外部Tomcat运行,打war包的修改流程

有时候,使用Spring Boot发布程序时,我们不想使用内嵌的tomcat运行,还想用传统的war包到tomcat发布的方式,可以按照如下步骤进行:step1 修改pom的packaging为war&amp;lt;packaging&amp;gt;war&amp;lt;/packaging&amp;gt;step2 增加下面依赖覆盖内嵌的Tomcat依赖&amp;lt;dependency&amp;gt; &amp;l

2018-07-23 16:40:21 831

原创 Druid监控页面配置reset-enable的说明

最近使用到Druid数据库连接池,就研究了一番。 发现reset-enable 设置后: 监控页面的“重置按钮”并没有消失。 点击后也有反馈: 后来,做了以下尝试:设置为false修改yml文件中spring.datasource.druid.stat-view-servlet.reset-enable=false打开监控页面,发现:“重置”按钮有点击“重置”...

2018-07-19 15:56:40 5970

原创 ArrayList中remove方法的注意事项

少罗嗦,先看代码public class ListRemove { public static void main(String[] args) { System.out.println(&amp;quot;测试remove包装类型和非包装类型&amp;quot;); ArrayList&amp;amp;lt;Integer&amp;amp;gt; myList = new ArrayList&amp;amp;lt;Inte

2018-06-10 18:09:33 8804 2

原创 Charles把测试包APP链接重定向到本地环境

需求描述让测试环境的APP包、访问本地的项目,方便调试bug步骤1、启动本地项目,明确访问路径 2、配置手机端代理到PC 3、打开Charles 4、打开APP 5、打开Charles–&amp;amp;gt;Tools–&amp;amp;gt;Map remote… 6、新建一个映射 7、注意:map from 中的Path处,需要在项目名末尾加上“/*”,来转发此路径下的所有的reques...

2018-06-08 16:12:41 4885

原创 Win8.1在关机界面卡住无反应问题的解决

概述电脑:HP Envy6 系统:Win8.1 问题:关机时,卡在关机界面转圈、无反应,屏幕一直亮着解决长按电源键强制关机,然后再开机,按Esc键,进入Bios设置 恢复默认配置,进入系统。 再按下Win+X,选择关机,可以正常关机...

2018-05-11 17:04:07 3236

原创 redis报错Could not get a resource from the pool问题的解决

概述上线了一个新项目,结果报错:redis.clients.jedis.exceptions.JedisException: Could not get a resource from the pool at redis.clients.util.Pool.getResource(Pool.java:51) at redis.clients.jedis.JedisPo

2018-05-08 10:32:58 10227

原创 Mysql使用Double类型报错Out of range value的解决

# mysql版本:5.6.24select version();# 创建一个带double类型字段的表CREATE TABLE double_test ( id VARCHAR(32) PRIMARY KEY, score DOUBLE(5, 2))# 录入一个3位整数部分、2位小数部分,一共5个数字的数INSERT INTO double_test VALUE (re...

2018-04-25 10:48:55 8449 1

原创 IntelliJ IDEA使用Maven构建成功却报错代码错误的解决办法

概述现象描述: Java项目使用Maven构建正常,但是启动项目时总报错:包不存在。解决原先以为是依赖的问题。但是又仔细想了想,把这个原因否决了,因为如果依赖有问题,那么Maven构建也应该报错才对。 后来想到可能是IDE的问题。 退出IntelliJ重新导入项目,问题解决。 记得import时,选择项目根目录的pom.xml文件。 按照提示一步一步配置,最后选择覆盖原有项目: 环境

2018-03-27 22:29:07 12234

Go2Shell-for mac 10.15Catalina.zip

## How to use - Copy the corresponding app to the Application directory。 - Hold down the Command key and drag it to the toolbar. - Click the icon, a iTerm2 window pop up with current directory.

2021-11-25

Charles4.1破解、注册码、最新版破解

1. 下载Charles4.1(4.1.1也可以用) 截至(2017.04.26)为最新版本 2. 安装后,不要打开 3. 找到安装路径下的lib文件夹,如:D:\Program Files (x86)\Charles4.1.1\lib 4. 用破解文件替换**charles.jar**文件 5. 打开Charles,正常情况下应该为已破解状态 6. 亲测可行,环境为:Windows8.1 64-bit 破解包里面还有32位版本和Mac版本

2017-04-26

abc's sum 源码、jar文件和exe可执行文件

abc's sum 源码、jar文件和exe可执行文件

2014-02-25

一个简洁的类似Excel表格冻结的例子

一个简洁的类似Excel表格冻结的例子 可以实现表头冻结效果 使用CSS实现,是一个网页,直接打开就可以看到效果。如果要引用到其他项目,查看源代码做相应的修改即可

2013-12-05

Jquery悬浮提示

Jquery悬浮提示 非常简洁、使用的悬浮提示。可用于给客户一些控件说明提示和帮助说明

2013-11-26

Jquery 的一款日期选择控件

Jquery 的一款日期选择控件 非常简洁 和12306网站的非常相似

2013-11-26

Google GSON包

google-gson-2.2.4 Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。

2013-11-26

Ibatis入门级教程

ibatis 入门级教程,里面包含了Ibatis的增删改查操作,采用的数据库是Oracle,表使用的是emp表,同时包含了Ibatis的主键生成策略,里面注释写得比较详细,非常适合Ibatis入门学习

2012-09-25

小米2发布会讲稿-1280完整版

小米2发布会讲稿-1280完整版 米粉们,行动起来吧,Android4.1米柚系统,“碉堡了”!

2012-09-22

plsql8.04中文版,Oracle可视化开发工具

plsql8.04中文版,Oracle可视化开发工具 plsql8.04 PL/SQL Oracle 开发工具

2012-09-22

myeclipse8.5_KeyGen注册机

myeclipse8.5 注册机 破解 myeclipse8.5_KeyGen注册机 有需要的朋友可以下载

2012-09-22

IBatis2.3.4帮助文档(官方)

IBatis2.3.4官方帮助文档 检索非常方便 官方下载,绝对专业

2012-09-22

easychm(最好用的chm制作工具)

使用Easy CHM制作CHM文件非常简单, 通常您只需要下面的两个步骤: 步骤 1: 告诉Easy CHM您的网页、图片等源文件集中存放在哪个目录下 - Easy CHM 会自动生成CHM的目录及索引. 步骤 2: 现在可以生成CHM文件了. 您这时可以编辑自动生成的目录及索引项,也可以直接生成CHM. 点击程序主界面工具栏上的"编译"按钮, 在弹出的"编译工程为CHM"对话框里按下"生成CHM" - 程序会使用默认的"CHM设置"生成CHM文件. 工具自带有帮助文档,写的特别清楚,不懂的地方可以看一下

2012-09-22

JQuery1.8.2最新版+JQuery1.8帮助文档

JQuery1.8.2最新版+JQuery1.8帮助文档(截至2012.09.22最新) 是官方的JQuery库,加上了1.8的帮助文档,有需要的朋友可以下载使用

2012-09-22

Ext3.4+Spket安装教程+Spket.jar文件

教程和实际安装过程可能会有一些小的偏差,但是绝不影像正常的流程。 其中运行spket.jar之后,选择MyEclipse的安装路径时,需要是myeclipse.exe文件所在的那个文件夹下 最后安装完成之后,打开js文件的时候,一定要选择一下Open With ---》spket javascript editor ,这个时候,只能提示才回发生作用。 还有一点,就是ext.jsb2文件,在ext-3.4.0.zip压缩包中有。 Ext文件夹是需要往项目中添加的必须的文件,已经整理好了,是最简洁的。 ext-3.4.0.zip和spket文件都是从官网上下载的,下载日期是:2012.09.12 还是比较新的,大家可以放心使用。

2012-09-13

quartz.jar

Java Quartz的Jar包,最新版的,从官网 下载的,现在分享给大家

2012-08-24

java api 1.7 英文

非常全面、专业的Java 1.7官方帮助文档

2012-06-18

几种Ext后台模板和网站后台模板

自己搜集的几个不错的后台模板 有非常绚丽的使用Ext做的,也有使用Css+JS做的 有清爽简单的,有漂亮大方的,也有绚丽酷帅的,大家可以根据自己的需要下载参观学习

2012-04-16

JQuery1.7_中文+Java1.7英文API

JQuery1.7的中文帮助文档和Java1.7的英文API 需要的朋友可以过来下载

2012-04-09

如何用U盘装系统?

里面含有所需工具的下载地址 U盘装系统,简单快捷 是一个PPT,里面讲解的比较详细 想学习的朋友可以看一下

2012-03-19

eclipse3.7汉化包

Eclipse3.7的汉化包 其中如果在Eclipse的快捷方式里面设置一下子参数的话(在属性里面的目标文件里) -nl en 注意加在引号的外边,可以实现中英文互换

2012-02-03

Struts2文件上传示例

自己使用struts2写的一个文件上传示例代码,可以实现对文件的大小控制、格式控制等,里面注释写得比较详细,给大家分享一下子

2012-01-06

JS计时器-秒表

一个自己写的JS计时器,供大家看看,请高手给点评一下,供小弟学习,谢谢!

2011-12-24

ZTE-U880驱动、说明说

中兴U880 的原装说明书、驱动、PC套件

2011-12-05

动物练习.NET面向对象继承多态

面向对象,动物练习 综合练习,抽象方法,继承,多态,多种动物的叫声。但是这是面向对象的

2011-04-12

空空如也

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

TA关注的人

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