- Java—异常体系
且将&
Java基础java
文章目录异常和错误java异常的分类:非运行时异常运行时异常受检异常(非运行时异常)如何处理?1、trycatchfinally为什么要用trycatchfinally2、throwsThrow和Throws的区别JVM是如何处理异常的try-catch-finally中哪个部分可以省略————————————————————————————————异常和错误下面这就是异常(exception)错
- Java中的异常处理机制是什么?
奔赴架构师的小白
javapython开发语言
引言在软件开发中,异常处理是确保程序健壮性和用户友好性的关键组成部分。Java作为一种广泛使用的编程语言,提供了丰富且强大的异常处理机制,使得开发者能够有效地处理程序运行时可能出现的各种错误情况。本文将深入探讨Java中的异常处理机制,包括其基本概念、使用方法、最佳实践以及高级主题,帮助读者全面掌握Java异常处理的核心知识。什么是异常处理?异常处理是一种编程技术,用于检测和处理程序运行期间发生的
- Java 异常架构受检异常与非受检异常
Flying_Fish_Xuan
java架构开发语言
一、Java异常处理机制概述Java的异常处理机制是通过Throwable类及其子类实现的。Throwable是Java中所有异常和错误的超类,它有两个直接子类:Error:表示应用程序无法处理的严重错误,通常与JVM本身的状态相关,如内存溢出、栈溢出等。Error通常不应由应用程序捕获或处理。Exception:表示应用程序可以处理的异常情况,包括由程序错误或外部条件引发的问题。Exceptio
- Java异常处理(exception)
Java从零开始
java开发语言
1.trycatchfinally:捕获异常,后续代码能继续执行2.throw(方法内抛出异常)throws(方法外抛出异常)3.detail:传递异常信息
- Java中的异常处理方法
后端java
必不可少的一部分。良好的异常处理机制可以提高代码的可读性、可靠性,保证程序的稳定性。本文将深度剖析Java中的异常处理机制,并分享一些最佳实践方法,帮助您在实际项目中优雅地处理异常。一、Java异常处理简介Java异常可以分为三种类型:可检查异常(checkedexception)、运行时异常(runtimeexception)和错误(error)。以下是它们之间的关系和特点:可检查异常(chec
- Java容器异常分析与恢复实战指南
ivwdcwso
运维java开发语言容器
引言在云原生时代,Java应用的容器化部署已成为主流。然而,容器环境下的异常处理相比传统部署模式更为复杂,特别是在处理内存溢出(OOM)、资源限制和服务恢复等方面面临新的挑战。本文将结合实战经验,系统讲解Java容器异常的分析方法、恢复策略与最佳实践。一、容器化Java异常的分类与特点©ivwdcwso(ID:u012172506)1.1内存相关异常Java堆内存溢出java.lang.OutOf
- UnsatisfiedDependencyException
薄辉
javaspringmybatisservletspringboot
UnsatisfiedDependencyException是一种Java异常,通常表示在进行依赖注入时出现了问题。这种异常通常发生在Spring框架中,当Spring在创建Bean实例时,无法找到某个依赖项所对应的Bean时就会抛出此异常。依赖注入是一种设计模式,它允许一个类将其依赖项(即需要的其他对象)从外部注入进来,而不是自己创建或查找这些依赖项。这样可以让类更加灵活,并且可以更容易地测试它
- Java基础学习汇总
大鱼等于负
java-基础语法java
Java基础学习汇总java语言基础java函数和数组java面向对象java异常整理用,早就停更。。。写作不易,如果您觉得写的不错,欢迎给博主点赞、收藏、评论、收藏来一波~让博主更有动力吧!路漫漫其修远兮,吾必将上下求索~
- Java 异常处理
偏右右
Java进阶java开发语言
目录一、Java异常体系结构ErrorException受检查异常未受检查异常二、异常处理的方式1.try-catch块异常处理注意2.Throws异常处理使用场景注意三、异常产生的方式引言Java异常处理是Java语言用于处理程序在执行过程中出现的错误或者异常的机制。通过异常处理,程序可以更加健壮,能够在遇到问题时进行适当处理,而不是直接崩溃。Java异常处理主要依赖于try、catch、fin
- @SneakyThrows:是Java异常处理的"魔法外挂",还是隐藏的"定时炸弹"?
后端
引言:当Java的异常机制成为"甜蜜的负担"Java的检查型异常(CheckedException)设计本意是提升代码健壮性,但开发者常常陷入两难:要么用try-catch层层包裹代码导致"金字塔噩梦",要么在方法签名中不断throws污染接口。Lombok的@SneakyThrows注解横空出世,号称能"悄无声息"地抛出异常,它究竟是解放生产力的神器,还是破坏代码规范的"危险品"?一、@Snea
- Java异常
ufosuai555
java开发语言
什么是异常实际工作中,遇到的情况不可能是非常完美的,比如:你写某个模块时,用户输入不一定符合要求,重新打开某个文件,这个文件可能不存在或文件格式不对等等软件程序在运行过程中,非常可能遇到刚刚提到的这些情况,我们称之为异常,异常是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。Java异常的简单分类检查性异常:最具代表的检查性异常是用户错误或问题导致的异常,这是程序员无法预见的。例如要
- 每日 Java 面试题分享【第 16 天】
一只蜘猪
【2025最新版】Java基础面试题java开发语言面试
欢迎来到每日Java面试题分享栏目!订阅专栏,不错过每一天的练习今日分享3道面试题目!评论区复述一遍印象更深刻噢~目录问题一:Java运行时异常和编译时异常之间的区别是什么?问题二:什么是Java中的继承机制?问题三:什么是Java的封装特性?问题:Java运行时异常和编译时异常之间的区别是什么?面试官考察点异常分类理解:对Java异常体系(Throwable、Error、Exception、Ru
- Java核心与应用:Java异常处理全解析
星核日记
《Java核心与应用》javapython开发语言
Java核心与应用:Java异常处理全解析“程序的世界里,异常是不可避免的。但优秀的开发者,总能优雅地处理它们。”——凌云学习目标✅掌握Java异常分类体系与继承结构✅理解Checked/Unchecked异常的设计哲学✅熟练使用异常链进行根因分析✅掌握try-with-resources的底层原理✅设计符合规范的异常体系1.Java异常处理概述在Java开发中,异常处理是保证程序健壮性的重要手段
- 深入探索Java的异常世界:异常、异常链与断言的艺术
程序员-李旭亮
java开发语言
在Java编程的广袤领域中,异常处理是一项至关重要的技能。它不仅关乎程序的健壮性,也体现了程序员的编程哲学和错误处理的艺术。本文将带您深入探索Java的异常处理机制,特别关注异常、异常链以及断言这三个核心概念。一、理解Java异常在Java中,异常是一种特殊的对象,它代表程序运行过程中出现的错误或异常状况。当程序中出现无法预料的错误时,如文件找不到、网络连接中断等,Java就会抛出相应的异常对象。
- java.io.IOException: Broken pipe 异常分析
重楼七叶一枝花_1200
JavaExceptionjava开发语言
org.apache.catalina.connector.ClientAbortException:java.io.IOException:Brokenpipe是一个常见的Java异常,通常在使用Tomcat服务器处理HTTP请求时出现。这个异常表示客户端在服务器完成响应之前关闭了连接,导致服务器端试图写入数据到一个已经关闭的连接上。具体来说,“Brokenpipe”(断开的管道)意味着客户端与
- 【Java基础-41.5】深入解析Java异常链:构建清晰的错误追踪体系
AllenBright
#Java基础java开发语言
在Java编程中,异常处理是保证程序健壮性和可维护性的重要部分。然而,在实际开发中,异常往往不是孤立发生的,而是由一系列相关的异常引发的。为了更好地理解和处理这种复杂的异常场景,Java引入了异常链(ExceptionChaining)的概念。本文将深入探讨异常链的原理、使用方法以及在实际开发中的最佳实践。1.什么是异常链?异常链是指将一个异常与另一个异常关联起来,形成一个链条,从而保留异常的完整
- 深入探究 Java 异常处理
潜意识Java
Java知识javapython开发语言
目录一、异常是什么,为啥要处理它二、Java异常体系概述三、Java异常处理方式1.try-catch-finally块2.throws关键字3.throw关键字四、自定义异常五、异常处理的最佳实践六、总结在Java编程的旅程中,异常处理就像是一位默默守护的卫士,时刻保障着程序的稳健运行。当程序运行过程中出现错误或异常情况时,合理的异常处理机制能够避免程序崩溃,让程序以一种可控的方式继续执行或优雅
- Java异常 (throwable)
凡人多做梦
javac++语法基础java
异常主要是error和exception两种(throwable的两个子类)1、Error类及其子类,代表的是Error类及其子类,代表的是jvm本身的错误,错误不能被程序通过代码处理2、Exception类及其子类,一般都是程序写错了。可以被Java异常处理机制使用,是异常处理的核心。3、Exception的子类中runtimeException及其子类表示运行时异常,除此之外,其下别的子类都是
- java throwable
happyzwh
javajava
java异常throwable分为exception、errorerror错误程序无法处理的错误exception异常程序本身可以处理的异常exception分为运行时异常、非运行异常[运行时异常、error]为不可检查异常可不做处理编译器不做强制没有异常处理也能编译通过[非运行时常]为可检查异常必顺处理否则编译不通过
- Java异常机制01:初识异常
耳东er
#Java异常机制java
一、什么是异常什么是异常:程序执行过程中的不正常情况异常的作用:增强程序的健壮性java提供异常处理机制有什么用:——Java语言是很完善的语言,提供了异常的处理方式,程序在执行过程中出现了不正常情况,Java把该异常信息打印输出到控制台,供程序员参考。程序员看到异常信息之后,可以对程序进行修改,让程序更加健壮。异常指程序运行中出现的不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等异常
- Java 入门指南:初识 Java 异常(Exception)
ZachOn1y
Javajava开发语言后端java-ee个人开发团队开发
初识Java异常何为异常在Java中,异常是一个不需要的或意外的事件,它发生在程序执行期间,即在运行时,破坏了程序指令的正常流程。异常可以被程序捕获(catch)和处理(handle)。方法中发生异常时,它会创建一个对象,称为异常对象(ExceptionObject)。它包含有关异常的信息,例如异常的名称和描述以及异常发生时程序的状态。导致异常的原因无效用户输入设备故障网络连接丢失物理限制(磁盘内
- JAVA异常处理与断言
程序员爱学习
Java基础知识体系javapython开发语言
Java中的异常处理和断言是两种不同的错误检测和处理机制,用于提高程序的健壮性和可靠性。Java异常处理异常是程序执行期间发生的不正常事件,它打断了程序的正常流程。Java以对象的形式表示异常,所有异常对象都是派生自java.lang.Throwable类的实例。Throwable有两个主要的子类:Error和Exception。Error表示编译时和系统错误(如OutOfMemoryError)
- Java基础知识总结(下)
Yonagi833
Java面经and八股java开发语言职场和发展程序人生spring
本文部分内容节选自JavaGuide,地址:https://javaguide.cn/java/basis/java-basic-questions-03.html基础(上)→基础(中)→基础(下)异常Java异常类层次图概览Exception和Error有什么区别?在Java中,所有的异常都有一个共同的祖先java.lang包中的Throwable类.Throwable类有两个重要的子类:Exc
- 软通动力华为java机考题库_软通动力Java考试题库.doc
假行酥
软通动力华为java机考题库
软通动力Java考试题库.doc软通动力培训课程题库Java编号:ISS-TJ-TC版本:1.0作者:JavaSE基础康佳琪日期作者:JavaEE高级张建军日期:审批人:张林福日期:目录JavaSE基础部分Java基础Java面向对象Java异常Java集合框架J2EE中,下列不属于集合类的是()。(选择一项)CVectorStackEnumerationHashtable2)在J2EE中,下列元
- Java异常
我喜欢你呀!
java开发语言
解决精度问题BigDecimalBigDecimala=BigDecimal.valueOf(?)divide除法收集Stream流收集Stream流的含义:就是把Stream流操作后的结果数据转回到集合或者数组中去。(为什么?)Stream流,是一种方便操作集合/数组的一种手段集合/数组,才是最终的目的,因为你操作完的数据需要传到其他方法中使用,而其他方法中会用集合或者数组。具体方式查手册,下面
- Java基础学习
CopyLower
学习Javajava学习开发语言
一、JAVA异常分类及处理1、概念如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常处理器。.2、异常分类Throwable是Java语言中所有错误或异常的超类。下一层分为Error和ExceptionError1.E
- 金九银十准备季:Java异常+Java IO与NIO面试题
Java柱柱
写在前面:2020年面试必备的Java后端进阶面试题总结了一份复习指南在Github上,内容详细,图文并茂,有需要学习的朋友可以Star一下!GitHub地址:https://github.com/abel-max/Java-Study-Note/tree/master1、Java中异常分为哪两种?编译时异常运行时异常2、异常的处理机制有几种?异常捕捉:try…catch…finally,异常抛出
- Java常见异常类型总结——程序员必看系列
Chowley
QALogjava开发语言
前言大家好,我是chowley,春节假期马上结束了,我也开始着手准备春招了,这篇来总结一下常见的异常类型Java异常在Java编程中,异常是不可避免的一部分,程序员需要了解和处理各种类型的异常。本1.NullPointerException(空指针异常)当应用程序试图在要求使用对象的地方使用了null时,抛出该异常。例如,调用了一个null对象的方法或访问了null对象的属性。2.ArrayInd
- Java异常
王小冬
Java异常java异常分为两大类,Checked异常和Runtime异常,Checked异常都是在编译阶段可以被处理的异常。1.Checked异常和Runtime异常的区别和联系Checked异常都是可以被处理的异常,在程序中必须显式地处理Checked异常,如果没有处理,那么编译就会报错。而Runtime异常可以不被显式的处理;都是Exception的子类,继承了RuntimeExceptio
- Java异常的处理 try-catch-finally
Code-4
JAVAjava开发语言
目录什么是异常通过if-else处理异常用if-else堵漏洞的缺点try-catch例第一种处理第二种处理第三种处理第四种处理try-catch-finally例System.exit(0);//终止当前的虚拟机执行什么是异常Exception:在程序的运行过程中,发生了不正常的现象,阻止了程序的运行,我们称之为发生异常。importjava.util.Scanner;publicclassEx
- 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