自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

small_love的专栏

一陰一陽,無始無終,終者自終,始者自始。

  • 博客(161)
  • 资源 (9)
  • 问答 (1)
  • 收藏
  • 关注

原创 并发编程— wait 与 notify 为什么是 Object 的成员方法?

1、为什么必须和 synchronized 一起使用在 Java 里面, wait() 和 notify() 是 Object 的成员函数,是基础中的基础。为什么Java 要把 wait() 和 notiry() 放在如此基础的类里面,而不作为 Thread 类的成员函数,或者其他类的函数呢?在回答这个问题之前,我们先聊聊 为什么 wait() 和 notify() 必须和 synchronized 一起使用?看下面代码:public class SynchronizedDemo3 { p

2020-12-10 19:07:53 781 2

原创 Redis 阻塞原因

Redis是典型的单线程架构,所有的读写操作都是在一条主线程中完成的。当Redis用于高并发场景时,这条线程就变的极其重要。如果它出现阻塞,就会对应用带来致命的问题。当Redis出现阻塞时,可以从以下方面着手分析。

2022-12-15 14:59:21 958 1

原创 MySQL 中截取字符串的方法

MySQL 字符串截取功能

2022-12-15 10:06:55 6903

原创 BigDecimal 你使用对了吗

从事金融相关项目,对应该是再熟悉不过了,也有很多人因为不知道、不了解或使用不当导致资损事件发生。所以,如果你从事金融相关项目,或者你的项目中涉及到金额的计算,那么你一定要花时间看看这篇文章,全面学习一下一般情况下,对于不需要准确计算精度的数字,可以直接使用和处理,但是 和 会导致精度丢失。所以在需要精确计算结果的项目中,则必须使用类来操作。虽然, 比 和 能够保证精度问题,但是使用不当也会踩坑。在 中提供了多种创建方式,可以通过 直接创建,也可以通过 创建。这两种方式使用不当,也会导致精度问题

2022-12-07 15:30:19 684

原创 RestTemplate 使用详解

JDK 自带 HttpURLConnectionOKHttp以上 工具虽然常用,但对于RESTful操作相对不是太友好。所以,从Spring3.0开始支持的一个 HTTP 请求工具,提供了常见的REST请求方案的模板。只是提供了Http请求模板,其底层默认是使用作为真正的请求工具。它可以通过构造方法替换底层的执行引擎,常见的引擎又HttpClient、Netty、OkHttp。

2022-11-02 15:24:38 910

原创 聊聊微服务之什么是微服务及其好处

微服务就是一些协同工作的小而自治的服务。

2022-10-18 15:39:32 984 1

原创 @Transactional 事务加了 锁 为什么还有并发问题?

这个手动开启事务,需要每个方法都需要实现,这个也是比较繁琐,这种方式可以抽象出一个公共类,统一来实现事务的处理。方法一和方法二的效率都比较低,另一种方式可以把,可以把需要 把需要并发控制的业务,单独抽离出来,进行事务控制操作。由上图可以看出,当线程1 释放了锁,还未提交事务之前,线程2 已经获取锁并提前提交了事务,从而导致了并发的问题。不允许事务并发执行,而必须串行化执行,最安全,不可能出现更新、脏读、不可重复读、幻读,但是效率最低。注解的方法 添加 AOP切面来时先事务管理的。最大范围也就是方法级别的。

2022-10-11 15:44:10 3076

原创 @Transactional 注解失效情况及解决办法

既然事务管理是基于动态代理对象的代理逻辑实现的,那么如果在类内部调用类内部的事务方法,这个调用事务方法的过程并不是通过代理对象来调用的,而是直接通过this对象来调用方法,绕过的代理对象,肯定就是没有代理逻辑了。这种的话,可能我们比较常见,问题就出在代理逻辑中,我们先看看源码里卖弄动态代理逻辑是如何为我们管理事务的。事务方法内部捕捉了异常,没有抛出新的异常,导致事务操作不会进行回滚。注解的类,创建的切面,当在同一个类中调用是,切面失去了作用。的方法的事务处理操作,而在处理。此种情况跟情况一的原因类似,在。

2022-10-09 16:57:34 620

原创 Feign 详解

Feign是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求。Feign通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求,封装了http调用流程。2、为什么选择 Feign如果不使用rpc框架,那么调用服务需要走http的话,无论是使用 JDK 自带的 URLConnection,还是使用Http工具包 Apache 的httpclient, 亦或是 OkHttp, 都需要自行配置请求head、bo

2022-01-19 17:41:21 2326

原创 OkHttp 缓存实战

1、简介在实际业务中可能某些查询数据,不经常变化,为了节省流量、提高响应速度和增强用户体验等,把变化频率小的数据缓存到本地,以实现复用。OkHttp 的缓存功能使用起来也比较简单和灵活,接下来我们就来看看2、配置缓存配置缓存首先需要创建一个Cache 对象,并且指定缓存目录和缓存大小,然后,调用用 OkHttpClient.Builder() 的 cache() 方法来配置创建的缓存对象。如下所示: // 缓存大小 int cacheSize = 10 * 1024 * 1024;

2022-01-18 15:44:51 1065 5

原创 OKHttp使用详解

1、简介OkHttp 是一个默认高效的 HTTP 客户端:HTTP/2 支持允许对同一主机的所有请求共享一个套接字。连接池减少了请求延迟(如果 HTTP/2 不可用)。透明 GZIP 缩小了下载大小。响应缓存完全避免了网络重复请求。2、引入依赖<dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId>

2022-01-17 17:14:14 4385 1

原创 Apache HttpClient 详解

HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient。

2022-01-14 11:35:25 1875

原创 HttpURLConnection链接详解

简单来说,HttpURLConnection 是 Java 提供的发起 HTTP 请求的基础类库,提供了 HTTP 请求的基本功能,不过封装的比较少,在使用时很多内容都需要自己设置,也需要自己处理请求流和响应流。

2022-01-10 15:05:10 13184 2

原创 Java 基础 之 Valid 验证

一、@Valid 简介Bean Validation 内置的校验器校验器说明@Null被注解的元素必须为 null@NotNull被注解的元素必须不为 null@AssertTrue被注解的元素必须为 true@AssertFalse被注解的元素必须为 false@Min(value)被注解的元素必须是一个数字,其值必须大指定的最小值@Max被注解的元素必须是一个数字,其值必须小于指定的最大值@DecimalMin限制必须为一个不小于

2021-11-04 17:21:08 4562

原创 Docker 基础篇 之 安装

一、Docker安装查看 CentOS 内核版本Docker 要求 CentOS 系统的内核版本高于3.10, 执行如下命令查询 内核版本uname -r # 查看内核版本3.10.0-957.21.3.el7.x86_64 # 输出结果删除旧版本# 先卸载旧版本的 dockersudo yum remove docker \ docker-client \ docker-client-latest \

2021-10-29 16:59:34 123

原创 chkconfig: command not found

问题描述:在 ubuntu1~16.04.10 执行 chkconfig 命令报 chkconfig: command not found 说明此服务上没有安装 chkconfig。执行如下命令进行安装apt-get updateapt-get install chkconfig但是在安装时,安装失败出现如下问题:Reading package lists… DoneBuilding dependency treeReading state information… DonePackag

2021-06-07 14:41:26 8447

原创 jmap -heap [pid]运行报:Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException(不允许的操作)

一、运行环境操作系统:Ubuntu 5.4.0-6Java版本:JDK8二、执行命令 jmap -heap [pid号]三、报错信息报错: Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException:不允许的操作四、解决方法:命令行运行 echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope...

2021-04-27 18:05:26 1115

原创 mysqldump: Got error: 1044: Access denied for user XXXX when doing LOCK TABLES

一、问题分析在使用mysqldump 执行远程备份数据库的时候报如下错误:mysqldump: Got error: 1044: Access denied for user XXXX when doing LOCK TABLES很明显此问题,是由于用户没有权限。可以登录mysql服务查询用户的权限。SHOW GRANTS [FOR user]二、解决方式1、分配权限可以使用 GRANT 命令分配 LOCK TABLES 权限,如下所示:GRANT LOCK TABLES ON `db_

2021-04-27 17:18:36 800

原创 聊聊 Redis 高可用之持久化AOF和RDB分析

Redis 持久化概述Redis 是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将 Redis 中的数据以某种形式把内存中的数据保存到磁盘中;当 Redis 重启时,利用持久化文件实现数据恢复。除此之外,为了进行灾难备份,可以将持久化文件拷贝到一个远程位置。Redis 提供了两种不同的持久化方法来讲数据存储到硬盘上 :RDB:一种称为快照的方式,是 将某一时刻内存中的所有数据以快照的形式写入硬盘上。AOF:一种称为只追加文件的方式,它会是将每次执行的写命令以追加的

2021-04-10 17:41:49 202

原创 聊聊 Redis 为什么构建自己的简单动态字符串 SDS

我们知道,Redis 支持字符串、哈希、列表、集合和有序集合五种基本类型。那么我们如何把图片、音频、视频或者压缩文件等二进制数据保存到 Redis 中呢?之前在使用 Memcached 缓存这类数据时是把它们转换成 Base64 字符串后再进行保存的。在 Redis 中也可以使用同样的方式,但是,Redis 中的 字符串是支持直接存储二进制数据的,那么我们就聊聊他是如何实现的?简单动态字符串 ( SDS )Redis 是使用 C 语言编写的,但是,Redis 没有直接使用 C 语言自有的字符串类型,而是

2021-04-07 13:18:14 2213 5

原创 Redis 单线程为什么这么快

众所周知,Redis 在内存数据库领域内,可谓是独领风骚,应用非常广泛。这主要得益于其丰富的数据类型和极高的性能。我们可能也听说了,Redis 是单线程的,并且在面试中也会经常被问到 “为什么单线程的 Redis 性能这么快?”,这篇文章我们就聊聊此问题。首先,我们需要先领清楚一个事实,我们通常说的 Redis 是单线程,主要是指它的网络请求和执行命令的流程是单线处理的, 而整个 Redis Server 是多线程的 。比如持久化、lazyfree、集群数据同步等都是额外的线程处理的。所以,严格来说,

2021-03-24 15:35:31 209

原创 聊聊Redis键值存储结构以及Rehash机制

一、键值对的结构了解 Redis 朋友的都知道,Redis 是一种键值对 ( Key-Value Pair ) 数据库,在内存中键值对是以字典 ( Dict ) 的方式保存的,而字典的底层其实是通过 哈希表 来实现的。通过哈希表中的节点保存字典中的键值对。而这个哈希表的数据结构就是一个数组。也就是说当我们添加或修改数据时,只需要计算出键的哈希值,然后,跟数组的大小取模,就可以很快的定位到它所对应的哈希桶的位置。所以,哈希表的最大好处就是我们可用**O(1)**的时间复杂度来快速查找键值对。(如下图所示)

2021-03-19 17:22:46 1172

原创 Redis 安装

一、Redis 安装Redis 的安装方式非常简单,步骤如下所示:1、下载redis安装包在 Redis 官网上下载最稳定版本的源码,我们这里安装 5.0.12 版本shell > wget https://download.redis.io/releases/redis-5.0.12.tar.gz2、解压压缩包shell > tar -zxvf redis-5.0.12.tar.gz3、建立软连接shell > ln -s redis-5.0.12 redis说

2021-03-13 17:24:28 92

原创 Redis 初识

一、Redis 简介Redis 是一种基于键值对 (key-value) 的远程内存数据库,他不仅性能强劲,而且还具有复制特性以及未解决问题而生的独一无二的数据模型。与很多内存数据库不同的是,Redis 提供了5种不同类型的数据结构,格式各样的问题都可以很自然地映射到这些数据结构上。Redis 的数据结构致力于帮助用户解决问题,而不像其他数据库那样,要求用户扭曲问题来适应数据库。Redis 会将所有的数据库存放在内存中,所以他的读写性能非常惊人。不仅如此,它还可以将内存的数据利用RDB(快照)和 AO

2021-03-13 17:22:34 146 2

原创 配置MySQL开机自启动

个人博客地址一、概述在Linux环境下配置完多实例MySQL后,每次开机都要手动启动,现配置成开机自启动模式。在多实例情况下命令chkconfig不再起作用,所有就需要我们手动配置了。二、Linux启动小知识在配置MySQL 多实例启动时,首先让我们了解一下,Linux启动的知识点。正常情况下Linux的启动顺序如下:加载内核执行init程序/etc/rc.d/rc.sysinit 有init 执行的第一个脚本/etc/rc.d/rc $RUNLEVEL $RUNLEVEL为缺省.

2021-03-08 17:27:07 3993

原创 redis 编译报致命错误:jemalloc/jemalloc.h:没有那个文件或目录

一、问题在 centOS7环境下安装redis-5.0.4时在编译阶段遇到了致命错误:jemalloc/jemalloc.h:没有那个文件或目录。二、原因分析在Redis的README.md有如下一段话:AllocatorSelecting a non-default memory allocator when building Redis is done by settingthe MALLOC environment variable. Redis is compiled and link

2021-03-06 15:14:50 9494

原创 LInux 下配置MySQL多实例[mysqld_multi]

一、MySQL多实例介绍1.1.什么是MySQL多实例MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务:;1.2.MySQL多实例的特点有以下几点有效利用服务器资源,当单个服务器资源有剩余时,可以充分利用剩余的资源提供更多的服务。节约服务器资源资源互相抢占问题,当某个服务实例服务并发很高时或者开启慢查询时,会消耗更多的内存、CPU、磁盘IO资源,导致服务器上的其他实例提供服务的

2021-03-05 18:05:48 2011 1

原创 Linux 添加用户组和添加用户

一、用户组1、创建用户组命令格式groupadd 组名示例groupadd testgroup # 添加用户组 testgroup cat /etc/group | grep testgroup #查看用户组2、删除用户组命令格式groupdel 组名示例groupdel testgroup # 删除用户组3、查看用户组命令cat /etc/group 查看所有cat /etc/group | grep 组名 查看单个是否存在示例cat /etc/gro

2021-03-02 13:49:26 6382

原创 DebuggerException: Can‘t attach to the process: Operation not permitted

在 Ubuntu 系统上在执行 jmap 和 jinfo 时出现如下错误:Attaching to process ID 5586, please wait...Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process: ptrace(PTRACE_ATTACH, ..) failed for 5586: Operation not permittedsun.j

2021-02-25 17:32:56 1514

原创 解决Linux服务器执行出现 -bash: ./xxx.sh: /bin/sh^M: bad interpreter: No such file or directory

一、概述今天在 windows 环境下 通过 Idea 写 shell 脚本,上传到 linux 环境后执行数包如下错误: -bash: ./xxx.sh: /bin/sh^M: bad interpreter: No such file or directory二、问题原因此问题是由于在 windows 下编写的 shell 文件的结尾符 是 dos 命令下的,所以在 linux 下无法执行。可以通过如下步骤,查看。1、执行命令:vim xx.sh2、在打开的文件中最后可以看到,如下所

2021-01-22 17:32:28 2365

原创 HashMap 插入、扩容、查询、删除原理源码分析

一、前言上一章我们主要介绍了HashMap中的数据结构、hash 算法等知识点,除了这些,HashMap中还有 插入、删除、查找等基本的功能。在面试中可能还会经常问到 HashMap 的扩容是怎么实现的。接下来就通过源码分析一下这些的实现机制。二、HashMap 的插入操作。2.1、put操作源码分析 public V put(K key, V value) { return putVal(hash(key), key, value, false, true); }

2021-01-14 10:16:03 629

转载 为什么说 HashMap 不是线程安全的

前言:我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,但是其线程不安全主要体现在什么地方呢,本文将对该问题进行解密。1.jdk1.7中的HashMap在jdk1.8中对HashMap做了很多优化,这里先分析在jdk1.7中的问题,相信大家都知道在jdk1.7多线程环境下HashMap容易出现死循环,这里我们先用代码来模拟出现死循环的情况:public class HashMapTest { public static void main(String[] args)

2021-01-12 20:38:00 629

转载 为啥 HashMap 初始值是 2 的 n 次幂?

集合是Java开发日常开发中经常会使用到的,而作为一种典型的K-V结构的数据结构,HashMap对于Java开发者一定不陌生。在日常开发中,我们经常会像如下方式以下创建一个HashMap:Map<String, String> map = new HashMap<String, String>();但是,大家有没有想过,上面的代码中,我们并没有给HashMap指定容量,那么,这时候一个新创建的HashMap的默认容量是多少呢?为什么呢?本文就来分析下这个问题。

2021-01-12 17:39:15 416

原创 彻底搞懂 HashMap 底层原理

HashMap绝对是最常用,也是面试时最常问的集合之一,只有把所有的要点都要烂熟于心,再面大厂时才能胸有成竹,应对自如。接下来就带你慢慢揭开 HashMap 面纱。一、提出问题学习一个知识点,最好的方式就是带着问题学习,那么我们首先抛出几个面试中常见的问题,然后带着这些问题我们一点一点的剖析HashMap的原理。HashMap 的底层数据结构?HashMap 的存取原理?Java7 和 Java8的区别?为啥会线程不安全?有什么线程安全的类代替么?默认初始化大小是多少?为啥是这么多?为啥大

2021-01-12 16:39:15 256

原创 并发编程 — ThreadPoolExecutor 线程池实现原理

一、线程池的概念线程池(Thread Pool)是一种基于池化思想管理线程的工具。类似于我们连接数据库的连接池。线程池解决的核心问题就是资源管理问题。在并发环境下,系统不能够确定在任意时刻中,有多少任务需要执行,有多少资源需要投入。这种不确定性将带来以下若干问题:创建一个线程,却需要调用操作系统内核的 API,然后操作系统要为线程分配一系列的资源,创建成本很高 频繁申请/销毁资源和调度资源,将带来额外的消耗,可能会非常巨大。 对资源无限申请缺少抑制手段,易引发系统资源耗尽的风险。 系统无法合

2021-01-08 17:04:29 1807

原创 解决:timestamp 默认值 ‘0000-00-00 00:00:00’ 报错

一、问题描述在 mysql5.7 版本创建如下表结构时出现,timestamp 字段默认值错误:如下所示:CREATE TABLE `login_log` ( `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT , `uuid` VARCHAR(34) UNIQUE NOT NULL COMMENT '登录编号', `number` VARCHAR(20) NOT NULL COMMENT '登录账号

2021-01-07 17:15:18 5895

原创 SpringBoot - 数据库操作之 JdbcTemplate 多数据源配置

所谓多数据源,就是一个Java EE项目中采用了不同数据库实例中的多个库,或者同一个数据库实例中多个不同的库。比如实现数据库读写分离、分库分表、备份等操作。JdbcTemplate多数据源的配置是比较简单的,因为一个JdbcTemplate对应一个DataSource,开发者只需要手动提供多个DataSource,再手动配置JdbcTemplate即可。1、添加依赖具体依赖的添加请参考上一章的介绍。2、创建两个数据库3、在application.properties中配置多数据源..

2020-12-27 17:29:26 1187

原创 SpringBoot - 数据库操作之 JdbcTemplate 基本使用

一、什么是JdbcTemplateJdbcTemplate是Spring提供的一套JDBC模板框架,利用AOP技术来解决直接使用JDBC时大量重复代码的问题。 JdbcTemplate虽然没有MyBatis那么灵活,但是比直接使用JDBC要方便很多二、安装配置1、在 pom.xml 文件中添加如下依赖spring-boot-starter-jdbc:提供对JDBC数据库的支持 mysql-connector-java:MySQL数据库驱动 hikari:SpringBoot 自...

2020-12-27 16:35:42 1325

原创 SpringBoot - 获取 POST 请求参数详解

上一篇文章介绍了Controller如何接收通过GET方式传递过来的参数,这篇文章介绍一下何接收通过POST方式传递过来的参数。本篇文章为了方便 使用 Postman进行 POST 请求 的测试一、接收 Form 表单数据1、基本的接收方法(1)创建Controller接收form-data格式的POST数据,如下所示:@RestControllerpublic class BookController { @PostMapping("/add...

2020-12-27 15:39:59 38489 3

原创 SpringBoot - 获取Get请求参数详解

利用Spring Boot来制作Web应用,就必定会涉及到前端与后台之间互相传递参数。下面演示Controller如何接收以GET方式传递过来的参数。一、直接在请求路径中(1)、假设请求地址是如下这种RESTful风格,Springboot 这个参数值直接放在路径里面http://localhost:8080/hello/Springboot(2)、Controller 定义,如下:@RestControllerpublic class HelloCont...

2020-12-27 11:25:39 33578 4

Redis In Action

Redis in Action 深度解析了 Redis数据库的使用方法和内部组成结构

2015-07-21

各种帮助文档

包含所有的帮助文档,其中包括,XML+DOM手册,struts2帮手手册,spring开发指南,mysql开发手册,jQuery,memcached,javascript手册,CSS手册,DHTML开发手册等应有尽有

2011-10-09

oracle内部培训教程

oracle内部培训教程支持更大的数据库 1到10万G的数据 支持更多并发用户的访问 上万个并发用户 更好的性能 24 x 7 x 52的可用性 数据分区 增强并行操作 提高复制性能

2011-08-02

Memcached 中文文档 Memcached全面剖析

如今,越来越多的Web应用程序开始使用memcached这个高速的缓存服务器软件。然而, memcached的基础知识远远未能像其他Web技术那样普及,memcached在国内的大规模应用也鲜为 人知。而日本的mixi(http://mixi.jp)则在这方面走在了前面,不仅大规模使用memcached作为缓 存来加速Web应用,而且自行开发了Tokyo Cabinit、Tokyo Tyrant等一系列相关的软件。 最近,日本的技术评论社的网站上刊登了mixi的两名工程师长野雅广、前坂徹撰写的一篇连载 《memcachedを知り尽くす》。这篇连载语言简洁、通俗易懂,非常适合memcached入门的人阅读。 因此我将它翻译成中文,发表在我的技术blog(tech.idv2.com)上。然后将翻译结果合并后稍作加 工,形成了这篇PDF文档,以方便阅读

2011-07-25

Simple-Spring-Memcached

在JAVA中使用Memcached进行行缓存是比较复杂的。Simple-Spring-Memcachd(SSM)企图通过实现几个基础的使用项来简化Memcached的使用。 该项在java-memcached客户端的基础上使用java5的注解和Sping/AspectJ的AOP,使能够在Sping中管理bean缓存。使用Simple-Spring-Memcached只需要简单的配置和在要缓存的方法的返回值或参数上标注上相应的注解就可以。

2011-07-12

JSP中实现文件的上传和下载

在网上找到一个不错的文件的上传和下载的教材 感觉不错就整理和大家分享 其中包含了教材和自己整理的一个jspsmartUpload.jar

2009-04-18

CSS2中文手册.chm

本手册针对的是已有一定网页设计制作经验的读者。其目的是提供最新最全的样式表内容的快速索引及注释。所以对于样式表的基础知识,在此仅简单介绍,恕不赘述。 本手册的升级信息与版权声明请参阅关于本书页面。本手册中专用词汇请参阅中英文词汇对照表。 限于篇幅,对于一些过于繁杂的相关内容,如动态样式属性(Dynamic Properties),滤镜(Filters),行为(Behaviors)请参阅我的其它相关著作。 本书中涉及到的所有HTML对象(Object,Element),HTML特性(Attributes)和属性(Properties)请参阅我的相关著作。

2009-04-12

一个经典的javaScript教程

是一个非常好的JavaScript学习教程

2009-03-13

漂亮的后台登录界面blue_login_html.rar

绿色的后台登录界面 温馨提示: .PSD文件请使用Photoshop软件打开,为了压缩大小,图层均已隐藏,在用Photoshop打开以后,显示即可! .FLA文件推荐使用FLASH软件打开 .HTML,.HTM文件推荐使用IE6及更高版本打开 .RAR文件推荐使用WinRAR软件解压

2009-03-11

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

TA关注的人

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