- Asp.Net Core 3.1 如何设置 自定义json格式输出属性的字母大小写
奋进的小瓜牛
#ASP.NETc#
Asp.NetCore3.1WebApi如何设置自定义json格式输出属性的字母大小写1.在Startup类的ConfigureServices方法中加入代码如下(示例)://JSON全局配置services.AddControllers().AddNewtonsoftJson(options=>{//数据格式按原样输出--此选项开启默认属性输出//options.SerializerSettin
- 记录C++学习 8 构造函数、析构函数、继承
MYX_309
跟着Cherno学C++c++学习算法
构造函数它的作用是初始化该类,当创建了一个新对象实例时,构造函数确保你初始化了所有内存,做了所有你需要做的设置引出#includeclassEntity{public:floatX,Y;voidPrint(){std::coutclassEntity{public:floatX,Y;voidPrint(){std::coutclassEntity{public:floatX,Y;Entity(){
- ASP.NET Core 3.1系列(30)——Newtonsoft.Json实现JSON的序列化和反序列化
HerryDong
ASP.NETCoreC#ASP.NETCore
1、前言在早期版本的ASP.NETCore项目中,Newtonsoft.Json的使用率非常高。虽然微软当前主推System.Text.Json来处理JSON的序列化和反序列化,但Newtonsoft.Json在这方面做的也是相当不错,下面就来介绍一下它的用法。2、引入Newtonsoft.Json新建一个WebAPI项目,使用NuGet引入如下组件:Microsoft.AspNetCore.Mv
- ArkTs基础语法(四)
鸿蒙布道师
鸿蒙开发之路华为huawei鸿蒙鸿蒙系统harmonyos
类类声明引入一个新类型,并定义其字段、方法和构造函数。实现信息封装的基础。类是一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象在以下示例中,定义了Person类,该类具有字段name和surname、构造函数和方法fullName:classPerson{name:string=''surname:string=''constructor(
- 青少年编程与数学 02-010 C++程序设计基础 22课题、自定义类型
明月看潮生
编程与数学第02阶段青少年编程c++编程与数学开发语言
青少年编程与数学02-010C++程序设计基础22课题、自定义类型一、类(Class)定义类使用类二、结构体(Struct)定义结构体使用结构体三、枚举(Enum)定义枚举使用枚举四、联合体(Union)定义联合体使用联合体五、类模板(ClassTemplate)定义类模板使用类模板六、类型别名(TypeAlias)使用`typedef`定义类型别名使用`using`定义类型别名七、异构类型(Va
- 作业及参考
唐祖庭
javajavascript算法
作业及参考用单向链表实现一个线性表/***集合类:*从使用者角度:数据容器*数据结构:线性表*底层结构:链表*/publicclassMyLinkedList{privateNodehead;//MyLinkedList底层链表的头元素privateintsize;//用来保存这个集合类中存储了多少个元素/***添加方法*@paramstr:添加的内容*@return:添加是否成功*/public
- 移动端H5页面调试工具vConsole
青青子衿越
java前端javascript
//VConsole默认会挂载到`window.VConsole`上 varvConsole=newwindow.VConsole();
- JavaEE初阶-多线程3
炙热的大叔
JavaEE初阶java-eejava学习
文章目录一、线程安全问题-内存可见性二、等待通知2.1wait()方法2.2notify()方法一、线程安全问题-内存可见性importjava.util.Scanner;publicclassDemo27{privatestaticintcount=0;//下面这段代码会出现内存的可见性问题//将从内存中读取count值的操作称为load判断操作称为cmp//load和cmp的执行速度差了好几个
- Win11系统设置文件右键添加系统自带工具计算md5值
wh0am1·
linux服务器运维
bat脚本管理员身份运行该脚本@echooff::以管理员身份运行脚本检查netsession>nul2>&1if%errorLevel%neq0(echoneedroot!pauseexit/b1)::添加计算MD5到右键菜单regadd"HKEY_CLASSES_ROOT\*\shell\CalculateMD5"/ve/d"CalculateMD5"/fif%errorLevel%neq0(
- openssl下aes128算法ctr模式加解密运算实例
李洛克07
算法c++开发语言
aes128算法ctr接口intopenssl_aes128_encrypt_ctr(unsignedchar*key,unsignedchar*iv,unsignedchar*in_buf,intin_len,unsignedchar*out_buf,int*out_len){EVP_CIPHER_CTX*ctx=NULL;ctx=EVP_CIPHER_CTX_new();printf("%s%
- Linux C语言调用OpenSSL: 对称算法(AES高级加密标准)
鬼火中年
LinuxC语言调用OpenSSLlinuxc语言ssl密码学
LinuxC语言调用OpenSSL:对称加解密概述对称算法种类及特点:AES算法模式种类及特点:调用函数介绍EVP_CIPHER_CTX_newEVP_CIPHER_CTX_freeEVP_EncryptInit_exEVP_EncryptUpdateEVP_EncryptFinal_exEVP_DecryptInit_exEVP_DecryptUpdateEVP_DecryptFinal_ex示
- list的模拟实现
Stanf up
listc++
目录一、构造和扩容机制二、普通迭代器三、const迭代器四、tip有了前面vetcor的基础呢,我们在学习和使用list上就更加的方便快捷,浅显易懂了,所以相似的部分我就不做过多的言语阐述了,在使用方面呢,大家可以学习我之前看的c++网站,和vector和string的使用都是差不多的,重点要放在list的迭代器部分一、构造和扩容机制templateclasslist{typedeflist_no
- Python 绘制迷宫游戏,自带最优解路线
wh0am1·
python游戏pygame
1、需要安装pygame2、上下左右移动,空格实现物体所在位置到终点的路线,会有虚线绘制。importpygameimportrandomimportmath#迷宫单元格类classCell:def__init__(self,x,y):self.x=xself.y=yself.walls={'top':True,'right':True,'bottom':True,'left':True}self
- openssl下aes128算法CFB模式加解密运算实例
李洛克07
算法opensslofb
aes128算法CBC接口加密接口intopenssl_aes128_encrypt_cfb(unsignedchar*key,unsignedchar*iv,unsignedchar*in_buf,intin_len,unsignedchar*out_buf,int*out_len){EVP_CIPHER_CTX*ctx=NULL;ctx=EVP_CIPHER_CTX_new();printf(
- 分治算法+题目
好好学Java吖
算法leetcodejava
分治算法+题目分治算法是什么题目:合并K个升序链表总结分治算法是什么把问题分解后进行求解,相比于不分解直接求解,时间复杂度更低。符合这个特征的算法,我们才称之为「分治算法」。题目:合并K个升序链表题目分治算法:/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(){}*Lis
- odoo初始化数据库
山上春
数据库odoo
在Odoo中,初始化数据库的命令会因使用的环境和启动方式而有所不同,下面为你详细介绍几种常见的初始化数据库的方式。1.使用命令行工具初始化在命令行中,你可以使用Odoo的启动脚本并结合相关参数来初始化数据库。以下是基本的命令格式:odoo-bin-d--db_user--db_password--db_host--db_port--initall--without-demoall参数说明:-d:指
- LBM两相流模拟simulation,采用着色模型
xx155802862xx
matlab
LBM两相流模拟simulation,采用着色模型。资源文件列表LBM_D2Q9_RK_MRT+EE_MODEL/distinguishable_colors/distinguishable_colors.m,4950LBM_D2Q9_RK_MRT+EE_MODEL/main.m,2776LBM_D2Q9_RK_MRT+EE_MODEL/plotColorField.m,3777LBM_D2Q9_
- Java常见规范及易忘点
xx155802862xx
java开发语言
在Java编程中,遵循规范和避免常见易忘点是确保代码质量和可维护性的关键。本文将详细介绍Java编程的常见规范及易忘点,帮助开发者提升编码水平,减少错误。一、Java编码规范1.命名规范类名:使用大写字母开头的驼峰命名法(Pascal命名法),如MyClass、UserAccount。变量名和方法名:使用小写字母开头的驼峰命名法(Camel命名法),如myVariable、calculateTot
- python测试ollama的API接口是否可用
王铁柱子哟-
杂七杂八的学习笔记pythonllama
python测试ollama的API接口是否可用测试代码ollama_API_test.pyimportollamamodele_name="llama3"message="""Whyistheskyblue?"""response=ollama.chat(model=modele_name,messages=[{"role":"user","content":message}],stream=F
- react+react-amap使用高德地图组件
浪天林
reactreactreact-amap地图
首先安装npminstall--savereact-amapreact-amap包含地图,覆盖物,信息窗体3类组件地图组件Map组件,Map的父组件必须具有宽度和高度;MouseTool组件,需要在地图上启用鼠标工具插件时使用;启用该插件可以进行鼠标画标记点、线、多边形、矩形、圆、距离量测、面积量测、拉框放大、拉框缩小等功能。constructor(){this.mapPlugins=['Tool
- 《Operating System Concepts》阅读笔记:p177-p178
操作系统
《OperatingSystemConcepts》学习第18天,p177-p178总结,总计2页。一、技术总结1.implicitthreadAprogrammingmodelthattransfersthecreationandmanagementofthreadingfromapplicationdeveloperstocompilersandrun-timelibraries.2.threa
- 三.双指针/链表/数组
价值成长
算法蓝桥杯数据结构leetcode
面试题16.06.最小差classSolution:defsmallestDifference(self,a:List[int],b:List[int])->int:a.sort();b.sort()i=j=0res=float('inf')whilei
- java poi 填充单元格_java POI 实现excel表格下拉框选择一个值,另一个单元格自动填充内容...
凌云重上山
javapoi填充单元格
//因为是盲打过来的,我验证的数据并不是这个,但是为了符合题目还是写了这个,所以参数有可能在表格中位置会//有点不对,但是实验一下还是可以很容易看出来的。String[]p={"p1","p2"};String[]price={"10","20"};intrindex=0;Namename;HSSFWorkbookworkbook=newHSSFWorkbook();//excel文件对象HSSF
- 从入门到入土,java学习day6(面向对象和练习,今天练习偏复杂有些难度)
慕容魏
java学习开发语言
面向对象拿需要的东西解决对应的问题面向对象思维更符合符合人类思维习惯,因为举例来说,如果你要喝水你就会取用一个杯子来接水然后喝下去,你想某个人你就可以用手机联系她,所以这就是面向对象思维。设计对象并使用类和对象类:是对象共同特征的描述对象:是真实存在的具体东西定义类publicclass类名{成员变量;成员方法;构造器;代码块;内部类;}获得类的对象类名对象名=new类名();使用对象访问属性:对
- poi excel 下拉框 单元格合并
wking00000
笔记java
//下拉框//String[]selectList=newString[]{"刘德华","张学友","黎明","郭富城","金城武","梁朝伟"};ListselectList=CodeRepositoryUtil.getDictionary(jobj.getString("catalogCode"));//数据源sheet页不隐藏HSSFSheethidden=workbook.createSh
- 【工具类】右键新建里面没有word、excel、ppt
司徒剑南
工具类wordexcelpowerpoint
Office的Word、Excel和PPT是用户电脑中必备的office办公软件,但是有同学安装完毕后,在右键新建时,里面却没有word和excel以及ppt选项1、点击开始,找到运行功能键(快捷键win+R),输入regedit,点击确定;2、在左侧找到“HKEY_CLASSES_ROOT”选项,并展开;找到“.docx”找到之后,双击(默认)一项,将其改为Word.Document.12;如下
- Android开发谈:字节跳动Android面试凉凉经,实战解析_android 面试classloader线程安全
2501_90433130
android面试安全
B收到A结束的消息后B可能还没说完,没法立即回复结束标示,只能等说完后再告诉A:我说完了。POST和GET区别Get参数放在url中;Post参数放在requestBody中Get可能不安全,因为参数放在url中HTTPSHTTP是超文本传输协议,明文传输;HTTPS使用SSL协议对HTTP传输数据进行了加密HTTP默认80端口;HTTPS默认443端口优点:安全缺点:费时、SSL证书收费,加密能
- C++ Qt login an https server, no use connect
m0_68739984
c++qthttps
IfyouwanttoperformanHTTPSlogininC++withQt,withoutusingtheconnectmechanism(whichisusuallyusedforevent-drivensignal-slotcommunication),youcanhandlethenetworkrequestsynchronouslyorwithaseparatethreadtoav
- Unity程序开发:5.UI系统
风不归Alkaid
Unity游戏程序开发讲解unityui游戏引擎c#
5.UI系统Unity提供了一个强大的UI系统,用于创建和管理游戏中的用户界面。以下是UnityUI系统的详细介绍和示例代码,包括基本UI组件、UI布局以及处理UI事件。基本UI组件TextText组件用于显示文字。示例:创建Text组件usingUnityEngine;usingUnityEngine.UI;publicclassCreateText:MonoBehaviour{voidStar
- 会话超时 计算机术语,Servlet会话超时(Servlet Session timeout)
weixin_39582708
会话超时计算机术语
Servlet会话超时(ServletSessiontimeout)我正在写我的SPringMVC网络应用程序。我已将会话时间设置为10080分钟,等于1周。现在我想让用户在每次打开浏览器时都登录:sessionService.setcurrentUser(myuser);HttpSessionsession=request.getSession();Cookiecookie=newCookie(
- 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性能优化权威指南》