- Java学习day002 Java程序设计环境(下载安装JDK、使用命令行工具、使用集成开发环境、运行图形化应用程序)
Z zehao
Java基础学习java后端
使用的教材是java核心技术卷1,我将跟着这本书的章节同时配合视频资源来进行学习基础java知识。day002Java程序设计环境(下载安装JDK、使用命令行工具、使用集成开发环境、运行图形化应用程序)第一部分安装java开发工具包下载JDK要想下载Java开发工具包,可以访问Oracle网站:www.oracle.com/technetwork/java/javase/downloads,在得到
- JAVA 安装教程
连云港大帅哥
java基础javajdk安装配置环境变量
下载官网地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,选择1.8版本jdk进行下载安装JDK直接运行exe可执行程序,默认安装即可;备注:路径可以自己定义,不建议路径包含中文名、特殊符号、空格。配置环境变量1)新建变量名:JAVA_HOME,变量值:D:\Java8(JDK安装路径);2)打开PATH,添
- javase容器--集合框架
jameslogo
javajava
集合是非常重要的类型,和数组一样都是存数据的容器,但不同的是:它不固定大小可动态扩展存取灵活存放类型多样等集合框架有collection和map两大接口,Collection是传统集合接口,存储单个对象,Map是映射接口,存储键值对。集合类继承关系为Collection├List(有序集合,允许相同元素和null)│├LinkedList(非同步,允许相同元素和null,遍历效率低插入和删除效率高
- java常见单词汇总3(非常使用哦)
糟糕透了的都精彩极了
学习javajava常用英文单词
JSP中常用英文URL:UniversalResourceLocation:统一资源定位符IE:InternetExplorer因特网浏览器JSP:javaserverpage.java服务器页面Model:模型View:视图C:controller:控制器Tomcat:一种jsp的web服务器WebModule:web模块Servlet:小服务程序Request:请求Response:响应Ini
- 从零基础开始实现一个Spring Boot + Vue 项目的详细步骤指南
软件职业规划
springspringbootvue.js后端
一、准备工作1.开发环境搭建安装JDK(JavaDevelopmentKit):前往Oracle官网(https://www.oracle.com/java/technologies/javase-jdk11-downloads.html,以JDK11为例)下载适合你操作系统的JDK安装包,按照安装向导完成安装。安装完成后,配置系统环境变量,确保在命令行中能通过java-version命令查看到正
- Java SE与Java EE的区别
Tech Synapse
javajava-ee前端
一、javase与javaee的区别在于领域不同和作用不同:1.领域不同:javase为平台标准版,可供任何领域使用。javaee为平台企业版,主要供应企业的使用。2.作用不同:javase提供了开发与运行Java软件的编译器等开发工具、软件库及Java虚拟机。它也是Java2平台、企业版本和Java网页服务的基础。编写一次、随处运行”的特性、方便存取数据库的JDBCAPI、CORBA技术以及能够
- ZXing库 -- 生成二维码
蓝田~
python开发语言
引言二维码(QRCode)因其高密度的数据存储能力和易于扫描的特性,在现代社会中得到了广泛应用。ZXing是一个开源的二维码生成与读取库,它支持多种编程语言,包括Java。本指南将详细介绍如何在Java项目中使用ZXing库来生成带有透明背景的二维码。准备ZXing库com.google.zxingcore3.4.1com.google.zxingjavase3.4.1生成二维码编写代码packa
- 在Mac上进行ARM架构的Android应用开发
KwmGroovy
macosarm开发架构
如果你想在Mac上进行ARM架构的Android应用开发,你需要配置适当的开发环境和工具。本文将指导你完成以下步骤:安装Java开发工具包(JDK)在Mac上进行Android开发,首先需要安装Java开发工具包(JDK)。你可以通过以下步骤安装JDK:访问Oracle官方网站(https://www.oracle.com/java/technologies/javase-jdk11-downlo
- JDK10、JDK11、JDK12、JDK13、JDK 14、JDK15、JDK16、JDK17、JDK18、JDK19、JDK20、JDK21、JDK22、JDK23、JDK24对应JSR
xiaoyustudiowww
java
JDK10、JDK11、JDK12、JDK13、JDK14、JDK15、JDK16、JDK17、JDK18、JDK19、JDK20、JDK21、JDK22、JDK23、JDK24对应JSR:JDK对应JSR:JSR383Java™SE10(18.3)Description:TheJSRfortheJavaSE10(18.3)PlatformStatus:FinalLatestStage:Final
- 详解Java之lambda
新绿MEHO
JAVAJavaJAVA
目录lambda引入语法函数式接口lambda表达式的使用语法精简:代码示例:变量捕获局部变量捕获成员变量捕获lambda在集合中的使用lambda的优缺点lambda引入Lambda表达式是JavaSE8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)
- 后端开发基础——JavaWeb(根基,了解原理)浓缩
Wanna715
后端开发基础javatomcatservlet后端
总述学习Tomcat、JSON、Servlet、Filter、Session、Cookie、Ajax异步请求、RESTful接口规范、JSP(很老的技术,了解)Servlet系统架构C/S架构(Client/Server(客户端/服务器))B/S架构(Browser/Server,浏览器/服务器)javaJavaSE:Java标准版JavaEE:企业版(WEB方向,WEB系统)13种规范,其中Se
- Java 学习路线全解析:从基础到实战,全面掌握 Java 编程
ZIM学编程
知识分享java学习开发语言
在当今数字化时代,Java作为一种广泛应用且极具影响力的编程语言,为众多开发者开启了通往技术世界的大门。无论是大型企业级应用开发,还是互联网后端服务构建,Java都展现出了强大的适应性和稳定性。以下是一条系统全面的Java学习路线,帮助你逐步攀登Java编程的高峰。一、JavaSE基础(20天)JavaSE是整个Java编程的基石,扎实掌握这部分内容至关重要。通过学习诸如变量、数据类型、控制语句、
- Java SE高频面试题
_fengling
java面试题java
JavaSE面试题编程题:写一个Singleton(单例模式)示例要点几种常见的形式如下代码的运行结果运行步骤小结类初始化和实例初始化等1.类初始化过程2.实例初始化过程3.方法的重写此代码的执行结果方法的参数传递机制考点图解结果递归与迭代成员变量和局部变量考点局部变量与成员变量的区别当局部变量与xx变量重名时,如何区分结果编程题:写一个Singleton(单例模式)示例Singleton:在Ja
- JavaSE基础(4)——面向对象编程部分
UV Youth
JavaSE基础java开发语言
目录1.面向对象与面向过程2.类与对象的关系3.面向对象思想开发步骤4.类的定义5.创建对象6.属性7.方法的定义及调用8.形参与实参9.方法重载10.构造器11.this关键字12.匿名块13.包管理14.继承15.方法的重写(Override)16.super关键字17.多态18.面向对象类型转换20.封装——高内聚低耦合21.修饰符22.设计模式23.单例模式1.面向对象与面向过程面向对象:
- Spark 源码分析(一) SparkRpc中序列化与反序列化Serializer的抽象类解读 (正在更新中~)别人能写出来的,你也能行!多学习别人的思路,形成自己的思路,高薪工作奔你而来!
小白的大数据历程
Spark源码解析开发语言spark大数据分布式scala
后一篇链接在这接上一章请先看解读序列化抽象类第一部分(这是一个链接)目录接上一章请先看解读序列化抽象类第一部分2.Java序列化实现类JavaSerializer(1)JavaSerializationStream类代码实际例子1:序列化(2)JavaDeserializationStream代码实际例子2:反序列化Spark源码下类图在学习过程中,抓住主要问题,请思考问题为什么Kryo序列化更加
- Spark 源码分析(一) SparkRpc中序列化与反序列化Serializer的抽象类解读 (java序列化部分完结,正在更新RpcEnv部分~)
小白的大数据历程
Spark源码解析sparkjavapython
目录(3)JavaSerializerInstance定义了一个Java序列化实例(1)构造方法参数(2)方法1:serializeStream(3)方法2:deserializeStreamdefaultClassLoader(4)方法3:deserializeStreamloader(5)方法4:serialize(6)方法5:deserializeloader(7)方法6:deseriali
- JavaWeb原生框架开发JSP+Servlet+JDBC案例
秦老师Q
JavaWeb基础javaservlet开发语言
目录概要功能技术名词解释技术细节1.项目列表2.网页3.Servlet小结概要JavaWeb开发案例,使用JSP、Servlet、JDBC原生框架技术,实现用户模块的功能开发,主要用于学习。功能1.注册2.登录3.用户模块3.1查询用户信息3.2删除用户信息3.3修改用户信息技术名词解释JSP:全称JavaServerPages,是由Sun公司主导创建的一种动态网页技术标准,JSP中可以编写Jav
- 利用代理模式实现日志功能
郭亚航
java框架代理日志输出
场景实现一个类,该类实现了数学四则运算,实现日志功能,每次调用对应的运算时,输出相应的日志基本功能接口packagecom.javase.thread;publicinterfaceArithmetic{publicintadd(inti,intj);publicintsub(inti,intj);publicintmul(inti,intj);publicintdiv(inti,intj);}接
- Java语言基础 关键字与保留字
鹿人甲丁
javajava
关键字(keyword)的定义和特点定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)特点:关键字中所有字母都为小写官方地址:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html用于定义数据类型的关键字classinterfaceenumbyteshortintlongfloatdoublec
- Java选择结构(switch)
不说晚安i
java
switch多选择结构>多选择结构还有一个实现方法就是switchcase语句>switchcase语句判断一个变量与一系列值中某个值是否相等每个值称为一个分支>switch语句中的变量类型可以是:byte,short,int,char从JavaSE7开始switch支持字符串String类型了同时case标签必须为字符串常量或者字面量代码展示:packagebase.struct;importj
- 【JavaSE】封装、继承与多态
泡芙冰淇淋ya
JavaSEjava开发语言
1、封装1.1简介在Javase中,封装(Encapsulation)是面向对象编程(OOP)的一个重要概念。封装的主要目的是隐藏对象的内部状态和信息,只提供必要的公共方法来访问和操作这些状态和信息。通过封装可以控制对对象内部数据的访问级别,并保护数据不被随意修改,从而提高代码的安全性和可维护性。1.2特点信息隐藏:对象的内部状态(即属性或数据成员)被隐藏起来,外部世界只能通过对象提供的方法来访问
- JavaSE:4、流程控制
_Power_Y
JavaSEjava算法开发语言
1、代码块与作用域变量的使用范围,仅限于其定义时所处的代码块,也就是他的作用域。目前所说的变量均为局部变量publicclassMain{publicstaticvoidmain(String[]argv){inta=10;{intb=10;System.out.println(a);System.out.println(b);}System.out.println(a);//System.out
- java中的ide、sdk是什么,javaee\javase\javame区别
极客Thomas
idejavaeclipse
ide:integrateddevelopmentenvironment集成开发环境简单的来说就是提供编译代码等一系列功能的开发环境比如:eclipsesdk:servicedevelopmentpack服务开发包简单来说就是一些封装的功能代码,做成了一个包,给我们可以直接调用比如jdk1.8jdkjavase(JavaPlatform,StandardEdition)标准版本,在电脑上运行jav
- JavaSE项目--图书管理系统代码
码来码去(未来可期)
Java学习java
结构代码展示Book类代码packagecom.xszx.beans;//实体类publicclassBook{privateintid;privateStringname;privateintbsum;publicBook(){}publicBook(intid,Stringname,intbsum){this.id=id;this.name=name;this.bsum=bsum;}publi
- JavaSE之static关键字
麦芒疯狂生长!
JavaSEjava开发语言
不积跬步无以至千里,不积小流无已成江海一、认识static我们在学习一个关键字时,首先要关注这个关键字有什么用?我们为什么要学习它?这里给大家先介绍一下static都会出现在我们日常项目的哪些位置。static主要会出现在工具类和测试类当中,这里讲一下什么是JavaBean类、工具类和测试类。1、JavaBean类:用来描述一类事物的类,比如Student类、Teacher类、Dog类、Cat类等
- 大二上学期详细学习计划
学会沉淀。
学习
本学习完成目标:项目:书籍:《mysql必知必会》《java核心技术卷》(暂时)加强JavaSE的学习,掌握Java核心Mysql+sql(把牛客上的那50道sql语句题写完)git+maven完成springboot项目(跟着黑马敲)对于每天的Java学习进行记录算法:刷题(多去刷cf上的题,每周15道)针对最近比赛薄弱的地方加强练习(图论,字符串,动态规划,搜索)cf先上1400,牛客和atc
- JavaSE:数据类型与变量
牛牪犇犇
javajava开发语言
目录1.字面常量2.数据类型3.变量3.1变量概念3.2语法格式3.3整型变量3.3.1整型变量3.3.2长整型变量3.3.3短整形变量3.3.4字节型变量3.4浮点型变量3.4.1单精度浮点型3.4.2双精度浮点类型3.5字符型变量3.6布尔型变量3.7类型转换3.7.1自动类型转换(隐式)3.7.2强制类型转换(显式)3.8类型提升3.8字符串类型1.字面常量System.Out.printl
- JavaSE第一课基本数据类型
走自己的路做自己
JavaSEJavaSE之基本的数据类型
**基本数据类型**数据类型的分类1.数值2.非数值变量的声明与使用1.声明2.赋值3.声明时直接赋值变量命名的规则1.首字母2.其余部分运算符赋值运算符算术运算符自动类型转换强制类型转换关系运算符数据类型的分类1.数值整型:`byte,short,int,long`浮点型:`float,double`2.非数值布尔类型:`boolean字符:`char`字符串:`String`布尔类型的值只能为
- JavaSE:1、程序代码基本结构
_Power_Y
JavaSEjava开发语言
1、固定模式publicclassMain{publicstaticvoidmain(String[]args){System.out.println("HelloWorld!");}}System.out.println是换行输出System.out.printf可以按照C语言方式输出System.out.print是正常输出2、注释行注释publicclassMain{publicstatic
- JavaSE:3、运算符
_Power_Y
JavaSEjava开发语言
1、赋值运算符从右往左运算,左边是可赋值的目标,返回计算结果publicclassMain{publicstaticvoidmain(String[]argv){inta=10;intb=a=100;System.out.println(a);//输出100System.out.println(b);//输出100}}2、算术运算符+-*/%(1)加法支持字符串拼接,变量常量相加,隐式类型转换。类
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http