- Python3 | 练气期,入门初识与起步!
全栈工程师修炼指南
企业IT运维实践python
[知识是人生的灯塔,只有不断学习,才能照亮前行的道路]0x00前言简述描述:作为一名网络安全转运维的工程师,每天一睁眼就要马不停蹄的学习各类计算机技术、编程和网络安全知识等,在工作中接触过很多编程语言,比如:C、Java、Python、PHP、Shell、PowerShell等,但都仅仅停留在看得懂一些,会简单使用一些的阶段,却没有去深入的了解过这些语言。正好这才趁着进行机器学习的机会,将Pyth
- 问:final关键字在JAVA中有哪些用法?
FIN技术铺
掌柜‘面筋’java开发语言
final关键字的问题在面试中很常见,深入理解其背后的机制确实能提升对Java语言特性的掌握程度。下面,代码示例来说明final的用法。1.被final修饰的类不可以被继承finalclassFinalClass{//类内容}//错误示例:尝试继承FinalClass//classSubClassextendsFinalClass{//}2.被final修饰的方法不可以被重写classParent
- 小包子的Scalers Talk第四轮新概念朗读持续力训练Day42 20181203
美少女和雷雷哥
练习材料:Lesson57CanIhelpyou,madam原文:Awomaninjeansstoodatthewindowofanexpensiveshop.Thoughshehesitatedforamoment,shefinallywentinandaskedtoseeadressthatwasinthewindow.Theassistantwhoservedherdidnotlikethe
- 导出文件:使用Hutool导出数据为Excel文件
D1561691
程序员excelwindows
@AuthorHeartsuit@Date2021-08-09*/@RestController@RequestMapping(“employee”)publicclassEmployeeController{privatefinalEmployeeServiceemployeeService;publicEmployeeController(EmployeeServiceemployeeServ
- Recommended order of a field's mutiple modifiers
MJN
propertiesjava
Fielddeclarationscanalsobeprecededbymodifiersthatcontrolcertainpropertiesofthefield:annotationsaccessmodifiersstaticfinaltransientvolatileAfieldcannotbebothfinalandvolatile.Whenmultiplemodifiersareapp
- Recommended order of a method's mutiple modifiers
MJN
classjava
Themethodmodifiersconsistofthefollowing:annotationsaccessmodifiersabstractstaticfinal:Afinalmethodcannotbeoverriddeninasubclass.synchronized:Asynchronizedmethodhasadditionalsemanticsrelatedtothecontro
- 分布式锁 RedisSon
北执南念
中间件分布式redis
文章目录1.什么是分布式锁2.分布式锁应该具备哪些条件3.分布式锁主流的实现方案4.未添加分布式锁存在的问题4.1测试未添加分布式锁的代码通过jmeter发送请求4.2添加线程同步锁集群部署配置nginx修改jmeter端口号4.3使用redis的setnx命令实现分布式锁解决办法4.4使用try、finally优化4.5添加分布式锁的过期时间4.6解决分布式锁命令的原子性问题4.7把线程ID做为
- 创建SQLiteOpenHelper 类来创建和管理SQLite数据库
我就说好玩
数据库sqlite数据库开发
SQLite是Android中用于存储数据的轻量级数据库。它是一个自包含的、无服务器的、零配置的SQL数据库引擎,广泛用于移动应用程序。创建数据库你可以通过扩展SQLiteOpenHelper类来创建和管理数据库。publicclassMyDatabaseHelperextendsSQLiteOpenHelper{privatestaticfinalStringDATABASE_NAME="myd
- HashMap源码解析
dlwlrma ⥳
兴趣类哈希算法散列表算法
目录一:put方法流程二:get方法三:扩容机制一:put方法流程publicVput(Kkey,Vvalue){returnputVal(hash(key),key,value,false,true);}finalVputVal(inthash,Kkey,Vvalue,booleanonlyIfAbsent,booleanevict){Node[]tab;Nodep;intn,i;//判断数组是
- 代码随想录算法训练营Final Day|| 感想总结篇+个人介绍和规划
傲世尊
算法
也算是一期不落完完整整地追完了训练营的内容。虽然图论章节有点懈怠了,感觉每天都是理解后抄代码。。。前面所有章节都是每天做到能独立从头写到尾才算打卡(虽然最前面几道难题很可能又忘了)。这确确实实是很辛苦的两个月。因为目前还在毕业实习,每天朝九晚五的上班,还要准备实习报告,修改简历,准备秋招,期间还有几个学校的小项目要做。在加入训练营之前,我还是个每天下班就开始摸鱼躺平的“懒人”,直到内心的焦虑战胜了
- kingbase读取blob,下载文件注意事项
空~自由
大数据kingbaseblob
1,问题定位由于人大金仓存储的blob是16进制,且前后前后还包含了0字节。导致我们原先下载文件的方法有异常。2,解决方案在业务输出的时候,判断是否是人大金仓数据库,如果是人大金仓数据库,就进行转换,如果不是人大金仓就走原先的流程。DbUtils.java转换方法提取到公共包@ComponentpublicclassDbUtils{privatestaticfinalLoggerLOGGER=Lo
- C++避坑小知识
creative_mind
c++开发语言经验分享
引子:本文仅仅用作检查小错误,可以是一篇专辑一,C++11中已经去除了auto声明自动类型变量的功能,只可以用来进行变量类型推导二,对于STL提供的所有容器,均可以使用for依次访问器元素三,final修饰类时,表示该类不能被继承,修饰派生类的虚函数时,表示该虚函数不能被子类继承,另外,继承的虚函数地址没有改变,重写的虚函数地址改变,四,多态是指允许不同类的对象对同一消息做出响应的能力,即同一个接
- 安装pnpm
qq_42463588
pnpm
安装pnpm(Performantnpm),即高性能的npm包管理工具,可以通过多种方式进行。以下是详细的安装步骤:一、通过npm全局安装打开命令行工具:在你的计算机上打开命令行工具,例如Windows的CMD、PowerShell或Linux/macOS的Terminal。执行安装命令:输入以下命令以全局方式安装pnpm。npminstallpnpm-g这里的-g参数表示全局安装,这样pnpm就
- raw.githubusercontent.com未能解析” 解决方案
蜜獾互联网
技术文摘(佚名)httpp2pudpsslhttps网络安全websocket
1.操作场景通过windows11powershell下载依赖包2.报错信息如下irm:未能解析此远程名称:'raw.githubusercontent.com'所在位置行:1字符:27+&([scriptblock]::Create((irm"https://win11debloat.raphi.re/")))+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+Categ
- 聊聊rocketmq的PullConsumerImpl
go4it
序本文主要研究一下rocketmq的PullConsumerImplPullConsumerImplio/openmessaging/rocketmq/consumer/PullConsumerImpl.javapublicclassPullConsumerImplimplementsPullConsumer{privatefinalDefaultMQPullConsumerrocketmqPul
- PowerShell脚本编写:自动化Windows开发工作流程
vvvae1234
windows
在现代软件开发中,自动化已经成为提高效率和降低人为错误的重要手段之一。Windows开发者尤其依赖于自动化脚本来简化日常工作流程。PowerShell作为Windows的强大命令行工具和脚本语言,为开发者提供了丰富的功能和灵活性,使得多种开发和管理任务的自动化成为可能。本文将探讨PowerShell的基本概念、如何利用PowerShell自动化Windows开发工作流程,以及实际操作案例,帮助开发
- Flutter 仿iOS桌面悬浮球效果
wahkim
Flutter开发iosfluttercocoa
Flutter仿iOS桌面悬浮球效果效果图可拖动的基础按钮自定义一个可动画展开关闭的路由使用->创建OverlayEntrydemo效果图RPReplay_Final1724998086可拖动的基础按钮classDraggableFloatingActionButtonextendsStatefulWidget{finalWidgetchild;finalSizechildSize;finalOf
- Promise的Finally方法
DTcode7
HTML网站开发#前端基础入门三大核心之JSHTMLJavaScript
Promise的Finally方法基本概念与作用什么是`finally`方法?为什么使用`finally`方法?示例一:基础用法示例二:错误处理示例三:清理资源示例四:与`async/await`结合使用示例五:模拟Canvas操作使用技巧与最佳实践在前端开发中,我们经常遇到异步操作的需求。JavaScript提供了多种处理异步的方式,如回调函数、Promise和async/await等。其中,P
- Python with语句常见错误AttributeError: __enter__
coco_1998_2
#Python
连接MySQL过程中,withcon:cur=con.cursor()cur.executemany(final_str,symbols)出现如下错误:关乎with语句的用法中上下文管理器。上下文管理器必须同时提供__enter__()和__exit__()方法的定义,缺少任何一个都会导致AttributeError;with语句会先检查是否提供了__exit__()方法,然后检查是否定义了__e
- OSG Viewer输入按键无响应
yann_qu
OpenSceneGraphOSGosgEarth
OSGViewer输入按键无响应1问题描述操作系统:Windows1022H2输入法:微软拼音输入法现象:在PowerShell执行osgviewer.exeglider.osg后,能正常显示图像,但输入s(显示帧率)或f(切换全屏或窗口)等按键后无响应。2解决方案右键点击任务栏右下角输入法图标,点击设置-常规,在兼容性一栏中启用使用以前版本的微软拼音输入法。
- Java 进阶篇之try-catch-finally语句与自定义异常
code2cat
Java进阶java开发语言ideintellij-idea
引言在前面的文章中,我们介绍了创建、使用和导入包(Java进阶篇之异常处理的概念和种类),在Java编程中,异常处理是确保程序健壮性和稳定性的重要机制。通过异常处理,程序可以应对运行时错误,避免崩溃并提供友好的错误信息。本篇文章将详细介绍Java中的try-catch-finally语句及其使用方式,并深入探讨如何创建和使用自定义异常。通过本文,你将掌握异常处理的基本原则与高级技巧,写出更加健壮的
- Spring单例模式
努力不停努力
JavaSpringspringjava设计模式iocbean
Spring单例模式的核心使用注册表实现。如下:/**Cacheofsingletonobjects:beanname-->beaninstance*//**已经在缓存里的单例对象实例,使用ConcurrentHashMap存储。*/privatefinalMapsingletonObjects=newConcurrentHashMapObjectFactory*//**已经在缓存里的单例对象工厂
- PowerShell脚本在自动化
hai40587
自动化运维
在Windows开发环境中,PowerShell脚本编写是自动化工作流程的强大工具。PowerShell不仅提供了丰富的命令集来管理Windows系统,还支持脚本编写,允许开发者创建复杂的自动化任务来简化日常开发流程。以下将详细探讨如何使用PowerShell脚本自动化Windows开发工作流程,涵盖环境设置、依赖管理、代码编译、测试执行、部署以及持续集成/持续部署(CI/CD)等方面。一、环境设
- 使用redis发布订阅实现websocket分布式消息推送服务
weixin_43833540
rediswebsocket分布式
WebSocketConfig@ConfigurationpublicclassWebSocketConfig{privatestaticfinalLoggerlogger=LoggerFactory.getLogger(WebSocketConfig.class);@BeanpublicServerEndpointExporterserverEndpointExporter(){returnne
- Windows 设置环境变量
kylinholmes
windowspowershell环境变量
环境变量是什么环境变量是一种在系统里的变量,可以理解成一种属性,就放在那,有需要的程序就会去读,类似写代码里的全局变量通常用作,程序运行时的一些参数环境变量分为用户,系统。举个经典的栗子,Java安装的时候,需要自己手动配置环境变量,非常头大但其实Windows可以通过命令行一句话设置。假设我们需要设置JAVA_HOME这个环境变量PowerShell中的Env在powershell里有3个环境变
- Android12 添加设置控制导航栏显示和状态栏下拉
framework-coder
Android12系统修改与定制panelbarnavigationbar
添加key值位置:frameworks/base/core/java/android/provider/Settings.java/***Controlnavigationbarenabled*/@Readable@SuppressLint("NoSettingsProvider")publicstaticfinalStringNAVIGATIONBAR_ENABLED="navigationba
- JAVA程序驼峰状_java中驼峰与下横线格式字符串互转算法
陈星汉
JAVA程序驼峰状
publicstaticfinalcharUNDERLINE='_';/***驼峰格式字符串转换为下划线格式字符串**@paramparam*@return*/publicstaticStringcamelToUnderline(Stringparam){if(param==null||"".equals(param.trim())){return"";}intlen=param.length()
- vscode的终端PowerShell为什么运行不了 ,解决!
奇纳尼
vscodenode
1:右击vscode图标,找到属性,找到兼容性一栏,勾选上以管理员身份运行此程序就可以了。重新在vscode的终端运行node-v命令就可可以了
- try catch finally 里面有return的执行顺序详细讲解
搬砖技术员
javajava-ee
trycatchfinally里面有return的执行顺序实例测试第一种情况try里面有return,catch和finally里面吗没有returnpublicstaticinttryTest(inti){try{System.out.println("try里面的语句执行了!");returni;}catch(Exceptione){e.printStackTrace();}finally{S
- JS中【try…catch】讲解
OEC小胖胖
JavaScriptjavascript前端开发语言
try...catch语句是JavaScript中用于处理异常(错误)的一种机制。它允许你在代码中捕获并处理运行时错误,从而避免程序因未处理的错误而中断。try...catch语句的基本语法如下:try{//可能会抛出错误的代码}catch(error){//当错误发生时要执行的代码}finally{//无论是否发生错误,都会执行的代码(可选)}详细解释try块:try块中的代码是你认为可能会抛出
- Java 并发包之线程池和原子计数
lijingyao8206
Java计数ThreadPool并发包java线程池
对于大数据量关联的业务处理逻辑,比较直接的想法就是用JDK提供的并发包去解决多线程情况下的业务数据处理。线程池可以提供很好的管理线程的方式,并且可以提高线程利用率,并发包中的原子计数在多线程的情况下可以让我们避免去写一些同步代码。
这里就先把jdk并发包中的线程池处理器ThreadPoolExecutor 以原子计数类AomicInteger 和倒数计时锁C
- java编程思想 抽象类和接口
百合不是茶
java抽象类接口
接口c++对接口和内部类只有简介的支持,但在java中有队这些类的直接支持
1 ,抽象类 : 如果一个类包含一个或多个抽象方法,该类必须限定为抽象类(否者编译器报错)
抽象方法 : 在方法中仅有声明而没有方法体
package com.wj.Interface;
- [房地产与大数据]房地产数据挖掘系统
comsci
数据挖掘
随着一个关键核心技术的突破,我们已经是独立自主的开发某些先进模块,但是要完全实现,还需要一定的时间...
所以,除了代码工作以外,我们还需要关心一下非技术领域的事件..比如说房地产
&nb
- 数组队列总结
沐刃青蛟
数组队列
数组队列是一种大小可以改变,类型没有定死的类似数组的工具。不过与数组相比,它更具有灵活性。因为它不但不用担心越界问题,而且因为泛型(类似c++中模板的东西)的存在而支持各种类型。
以下是数组队列的功能实现代码:
import List.Student;
public class
- Oracle存储过程无法编译的解决方法
IT独行者
oracle存储过程
今天同事修改Oracle存储过程又导致2个过程无法被编译,流程规范上的东西,Dave 这里不多说,看看怎么解决问题。
1. 查看无效对象
XEZF@xezf(qs-xezf-db1)> select object_name,object_type,status from all_objects where status='IN
- 重装系统之后oracle恢复
文强chu
oracle
前几天正在使用电脑,没有暂停oracle的各种服务。
突然win8.1系统奔溃,无法修复,开机时系统 提示正在搜集错误信息,然后再开机,再提示的无限循环中。
无耐我拿出系统u盘 准备重装系统,没想到竟然无法从u盘引导成功。
晚上到外面早了一家修电脑店,让人家给装了个系统,并且那哥们在我没反应过来的时候,
直接把我的c盘给格式化了 并且清理了注册表,再装系统。
然后的结果就是我的oracl
- python学习二( 一些基础语法)
小桔子
pthon基础语法
紧接着把!昨天没看继续看django 官方教程,学了下python的基本语法 与c类语言还是有些小差别:
1.ptyhon的源文件以UTF-8编码格式
2.
/ 除 结果浮点型
// 除 结果整形
% 除 取余数
* 乘
** 乘方 eg 5**2 结果是5的2次方25
_&
- svn 常用命令
aichenglong
SVN版本回退
1 svn回退版本
1)在window中选择log,根据想要回退的内容,选择revert this version或revert chanages from this version
两者的区别:
revert this version:表示回退到当前版本(该版本后的版本全部作废)
revert chanages from this versio
- 某小公司面试归来
alafqq
面试
先填单子,还要写笔试题,我以时间为急,拒绝了它。。时间宝贵。
老拿这些对付毕业生的东东来吓唬我。。
面试官很刁难,问了几个问题,记录下;
1,包的范围。。。public,private,protect. --悲剧了
2,hashcode方法和equals方法的区别。谁覆盖谁.结果,他说我说反了。
3,最恶心的一道题,抽象类继承抽象类吗?(察,一般它都是被继承的啊)
4,stru
- 动态数组的存储速度比较 集合框架
百合不是茶
集合框架
集合框架:
自定义数据结构(增删改查等)
package 数组;
/**
* 创建动态数组
* @author 百合
*
*/
public class ArrayDemo{
//定义一个数组来存放数据
String[] src = new String[0];
/**
* 增加元素加入容器
* @param s要加入容器
- 用JS实现一个JS对象,对象里有两个属性一个方法
bijian1013
js对象
<html>
<head>
</head>
<body>
用js代码实现一个js对象,对象里有两个属性,一个方法
</body>
<script>
var obj={a:'1234567',b:'bbbbbbbbbb',c:function(x){
- 探索JUnit4扩展:使用Rule
bijian1013
java单元测试JUnitRule
在上一篇文章中,讨论了使用Runner扩展JUnit4的方式,即直接修改Test Runner的实现(BlockJUnit4ClassRunner)。但这种方法显然不便于灵活地添加或删除扩展功能。下面将使用JUnit4.7才开始引入的扩展方式——Rule来实现相同的扩展功能。
1. Rule
&n
- [Gson一]非泛型POJO对象的反序列化
bit1129
POJO
当要将JSON数据串反序列化自身为非泛型的POJO时,使用Gson.fromJson(String, Class)方法。自身为非泛型的POJO的包括两种:
1. POJO对象不包含任何泛型的字段
2. POJO对象包含泛型字段,例如泛型集合或者泛型类
Data类 a.不是泛型类, b.Data中的集合List和Map都是泛型的 c.Data中不包含其它的POJO
 
- 【Kakfa五】Kafka Producer和Consumer基本使用
bit1129
kafka
0.Kafka服务器的配置
一个Broker,
一个Topic
Topic中只有一个Partition() 1. Producer:
package kafka.examples.producers;
import kafka.producer.KeyedMessage;
import kafka.javaapi.producer.Producer;
impor
- lsyncd实时同步搭建指南——取代rsync+inotify
ronin47
1. 几大实时同步工具比较 1.1 inotify + rsync
最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是 inotify + rsync,但随着文件数量的增大到100W+,目录下的文件列表就达20M,在网络状况不佳或者限速的情况下,变更的文件可能10来个才几M,却因此要发送的文件列表就达20M,严重减低的带宽的使用效率以及同步效率;更为要紧的是,加入inotify
- java-9. 判断整数序列是不是二元查找树的后序遍历结果
bylijinnan
java
public class IsBinTreePostTraverse{
static boolean isBSTPostOrder(int[] a){
if(a==null){
return false;
}
/*1.只有一个结点时,肯定是查找树
*2.只有两个结点时,肯定是查找树。例如{5,6}对应的BST是 6 {6,5}对应的BST是
- MySQL的sum函数返回的类型
bylijinnan
javaspringsqlmysqljdbc
今天项目切换数据库时,出错
访问数据库的代码大概是这样:
String sql = "select sum(number) as sumNumberOfOneDay from tableName";
List<Map> rows = getJdbcTemplate().queryForList(sql);
for (Map row : rows
- java设计模式之单例模式
chicony
java设计模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述单例模式的:
作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 单例模式的结构
单例模式的特点:
单例类只能有一个实例。
单例类必须自己创建自己的唯一实例。
单例类必须给所有其他对象提供这一实例。
饿汉式单例类
publ
- javascript取当月最后一天
ctrain
JavaScript
<!--javascript取当月最后一天-->
<script language=javascript>
var current = new Date();
var year = current.getYear();
var month = current.getMonth();
showMonthLastDay(year, mont
- linux tune2fs命令详解
daizj
linuxtune2fs查看系统文件块信息
一.简介:
tune2fs是调整和查看ext2/ext3文件系统的文件系统参数,Windows下面如果出现意外断电死机情况,下次开机一般都会出现系统自检。Linux系统下面也有文件系统自检,而且是可以通过tune2fs命令,自行定义自检周期及方式。
二.用法:
Usage: tune2fs [-c max_mounts_count] [-e errors_behavior] [-g grou
- 做有中国特色的程序员
dcj3sjt126com
程序员
从出版业说起 网络作品排到靠前的,都不会太难看,一般人不爱看某部作品也是因为不喜欢这个类型,而此人也不会全不喜欢这些网络作品。究其原因,是因为网络作品都是让人先白看的,看的好了才出了头。而纸质作品就不一定了,排行榜靠前的,有好作品,也有垃圾。 许多大牛都是写了博客,后来出了书。这些书也都不次,可能有人让为不好,是因为技术书不像小说,小说在读故事,技术书是在学知识或温习知识,有
- Android:TextView属性大全
dcj3sjt126com
textview
android:autoLink 设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all) android:autoText 如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输
- tomcat虚拟目录安装及其配置
eksliang
tomcat配置说明tomca部署web应用tomcat虚拟目录安装
转载请出自出处:http://eksliang.iteye.com/blog/2097184
1.-------------------------------------------tomcat 目录结构
config:存放tomcat的配置文件
temp :存放tomcat跑起来后存放临时文件用的
work : 当第一次访问应用中的jsp
- 浅谈:APP有哪些常被黑客利用的安全漏洞
gg163
APP
首先,说到APP的安全漏洞,身为程序猿的大家应该不陌生;如果抛开安卓自身开源的问题的话,其主要产生的原因就是开发过程中疏忽或者代码不严谨引起的。但这些责任也不能怪在程序猿头上,有时会因为BOSS时间催得紧等很多可观原因。由国内移动应用安全检测团队爱内测(ineice.com)的CTO给我们浅谈关于Android 系统的开源设计以及生态环境。
1. 应用反编译漏洞:APK 包非常容易被反编译成可读
- C#根据网址生成静态页面
hvt
Web.netC#asp.nethovertree
HoverTree开源项目中HoverTreeWeb.HVTPanel的Index.aspx文件是后台管理的首页。包含生成留言板首页,以及显示用户名,退出等功能。根据网址生成页面的方法:
bool CreateHtmlFile(string url, string path)
{
//http://keleyi.com/a/bjae/3d10wfax.htm
stri
- SVG 教程 (一)
天梯梦
svg
SVG 简介
SVG 是使用 XML 来描述二维图形和绘图程序的语言。 学习之前应具备的基础知识:
继续学习之前,你应该对以下内容有基本的了解:
HTML
XML 基础
如果希望首先学习这些内容,请在本站的首页选择相应的教程。 什么是SVG?
SVG 指可伸缩矢量图形 (Scalable Vector Graphics)
SVG 用来定义用于网络的基于矢量
- 一个简单的java栈
luyulong
java数据结构栈
public class MyStack {
private long[] arr;
private int top;
public MyStack() {
arr = new long[10];
top = -1;
}
public MyStack(int maxsize) {
arr = new long[maxsize];
top
- 基础数据结构和算法八:Binary search
sunwinner
AlgorithmBinary search
Binary search needs an ordered array so that it can use array indexing to dramatically reduce the number of compares required for each search, using the classic and venerable binary search algori
- 12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!
刘星宇
c面试
12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!
1.gets()函数
问:请找出下面代码里的问题:
#include<stdio.h>
int main(void)
{
char buff[10];
memset(buff,0,sizeof(buff));
- ITeye 7月技术图书有奖试读获奖名单公布
ITeye管理员
活动ITeye试读
ITeye携手人民邮电出版社图灵教育共同举办的7月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
7月试读活动回顾:
http://webmaster.iteye.com/blog/2092746
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《Java性能优化权威指南》