- C#WinFrom读取Excel文件到DataTable
djk8888
winform大数据
usingSystem.Data.OleDb;privatevoidbtnUpload_Click(objectsender,EventArgse){DataTabledt=ReadExcelToTable();this.dataGridView1.DataSource=dt;//数据都有了,就可以for循环写到数据库里去了,不再赘述...}//读取EXCEL文件内容publicstaticDat
- Objective-C语言的安全开发
萧澄华
包罗万象golang开发语言后端
Objective-C语言的安全开发引言在当今的信息技术时代,软件的安全性已成为开发者必须重视的重点。随着移动互联网的蓬勃发展,iOS作为重要的移动操作系统,受到越来越多开发者的关注。而Objective-C作为iOS应用开发的主要语言之一,其安全性问题也应引起重视。本文将探讨在Objective-C语言中进行安全开发的最佳实践,帮助开发者在应用编程过程中减少安全隐患,提高应用的安全性。一、了解O
- 【论文笔记】:DuBox: No-Prior Box Objection Detection via Residual Dual Scale Detectors
Activewaste
#Anchor-free#特征层面#小目标检测DuBoxanchor-free
&Title:DuBox:No-PriorBoxObjectionDetectionviaResidualDualScaleDetectorsGithubaddrNone&Summary介绍了一种新的一阶段检测方法Dubox,它可以在没有先验框的情况下检测物体。设计的双尺度残差单元具有多尺度特性,使双尺度检测器不再独立运行。高层检测器学习低层检测器的残差。Dubox增强了启发式引导的能力,进一步使
- C#性能优化之利用Lazy<T>实现集合元素延迟加载示例
我曾经是个程序员
高阶高效代码c#开发语言
见过不少人、经过不少事、也吃过不少苦,感悟世事无常、人心多变,靠着回忆将往事串珠成链,聊聊感情、谈谈发展,我慢慢写、你一点一点看......延迟加载是指对象的创建被推迟,直到第一次被使用时才进行实例化。这对于大型或资源密集型对象的性能优化非常有用,因为它可以避免不必要的初始化和资源消耗。class ExpensiveObject{ public ExpensiveObject() {
- TimedCache定期缓存
皆为定数
缓存
TimedCache此缓存没有容量限制,对象只有在过期后才会被移除,发现2种等价用法。建议使用第一种,比较常见,第一种封装了第二种的实现.用法一(推荐):publicstaticfinalTimedCache>timeCache=newTimedCacheplateNo=timeCache.get("plateNo");System.out.println(plateNo);if(Objects.
- Spring Boot & MyBatis Plus 版本兼容问题(记录)
michael.csdn
springbootmybatisplus后端
SpringBoot&MyBatisPlus版本兼容问题(Invalidvaluetypeforattribute'factoryBeanObjectType':java.lang.String)问题描述问题排查1.检查`@MapperScan`的路径2.项目中没有配置`FactoryBean`3.检查`Spring`和`MyBatisPlus`版本兼容性解决方法问题描述当使用spring-boo
- webrtc 源码阅读 make_ref_counted模板函数用法
wu_qz
webrtc笔记
目录1.模板参数解析1.1typenameT1.2typename...Args1.3typenamestd::enable_if::value,T>::type*=nullptr2.scoped_refptr3.newRefCountedObject(std::forward(args)...);4.综合说明5.在webrtc中的用法5.1peerConnectionFactory对象的构建过程
- elementui table 第一列内容相同 自动合并单元格 el-table第一列内容相同自动合并
weixin_51565477
elementvue
template(:span-method=“objectSpanMethod”){{scope.row.index+1}}data数据结构return{tableData:[{index:0,subjects:'一次性就废',price:'1,200.00元'},{index:1,subjects:'医疗备用金',price:'1,200.00元'},{index:2,subjects:'试住费
- vue和reacts数据响应式的差异
每天吃饭的羊
react+ts新手vue.jsjavascript前端
Vue的数据响应式:原理:Vue使用Object.defineProperty或Proxy(在Vue3中)来实现数据的响应式。当创建Vue实例时,会对data对象中的属性进行遍历,将其转换为响应式属性。对于Object.defineProperty,它会为每个属性定义getter和setter函数,getter会收集依赖(如模板中的表达式、计算属性或watch监听器),而setter会触发更新,通
- 《CPython Internals》阅读笔记:p285-p328
codists
读书笔记python
《CPythonInternals》学习第15天,p285-p328总结,总计44页。一、技术总结1.shallowcomparisonp285,InObjectsobject.c,thebaseimplementationoftheobjecttypeiswritteninpureCcode.Therearesomeconcreteimplementationsofbasiclogic,like
- JAVA中的ObjectOutputStream类
程序研
javaI/Ojava后端I/O开发语言
ObjectOutputStream是Java中用于序列化对象的一种输出流,它可以将Java对象的状态信息转换为字节流,以便于存储或通过网络传输。序列化是将对象转换为字节流的过程,而反序列化则是将字节流恢复为对象的过程。本文将详细介绍ObjectOutputStream的原理、使用方法以及相关代码例子。一、ObjectOutputStream简介概述ObjectOutputStream是Java.
- #HarmonyOS篇:装饰器&LocalStorage&AppStorage
程序员xiaolibao
HarmonyOS篇harmonyos
@State装饰器:组件内状态父子Prop父子单向同步Link父子双向同步深层次响应ObservedObjectLink装饰器Observed装饰器使用场景:嵌套对象和数组中进行双向数据同步跨层ProvideProvideConsume跨层组件传递使用建议@State+@Prop组合方案:@Prop装饰器支持接收Object、class、string、number、boolean、enum类型,以
- python--对象存储服务器
赵钱孙李的赵
python学习记录者python服务器开发语言
目录对象存储服务器定义概念普及对象(Object)桶(Bucket)终端节点(Endpoint)访问域名知名的对象存储服务器提供商微软云Azure:MicrosoftAzureBlobStorage华为云OBS:阿里云OSS:腾讯云COSMinIO:AmazonS3(SimpleStorageService)GoogleCloudStorageIBMCloudObjectStorage具体代码使用
- C#调用方法时的二义性解决方法
ttod_qzstudio
C#Unity
如图中出现的错误:里面有三个名字为SetCurrentSelectableObject的方法,其中两个的参数都是引用对象,一个是SelectableObject类型,一个是string类型,这样导致引用出现了二义性,解决的办法就是对null进行强制转换,向下面这样写:SetCurrentSelectableObject((SelectableObject)null);
- 人工智能学习(一)之python入门
power-辰南
大模型算法实战工程python数据库前端
一、引言在当今的软件开发领域,面向对象编程(Object-OrientedProgramming,OOP)已经成为一种主流的编程范式。Python作为一门功能强大且简洁易读的编程语言,对面向对象编程提供了非常完善的支持。无论是开发大型项目、构建数据科学应用,还是进行自动化脚本编写,理解和掌握Python面向对象编程都能让你更高效地完成任务。本文将带你快速入门Python面向对象编程,通过清晰的概念
- python md5加密_Python MD5加密实例详解
weixin_39870238
pythonmd5加密
详解PythonMD5加密Python3下MD5加密#由于MD5模块在python3中被移除#在python3中使用hashlib模块进行md5操作importhashlib#待加密信息str='thisisamd5test.'#创建md5对象hl=hashlib.md5()#Tips#此处必须声明encode#若写法为hl.update(str)报错为:Unicode-objectsmustbe
- Lombok 在 IntelliJ IDEA 中的使用步骤
阿乾之铭
intellij-ideajavaide
Lombok是一个非常流行的Java库,它通过注解简化Java类的开发,特别是在处理POJO(PlainOldJavaObjects)类时,如生成getter、setter、toString等常用方法。Lombok在减少样板代码(boilerplatecode)方面非常有用。在IntelliJIDEA中使用Lombok插件,可以极大简化开发过程。1.安装Lombok插件要在IntelliJIDEA
- clang和gcc对比
三雷科技
深入C++编程入门开发语言c++cclangllvmgcc
clang和gcc对比一、基本概述二、背景与历史三、架构与模块化四、错误提示与静态分析五、性能与编译速度六、兼容性与多平台支持七、调试支持Clang和GCC都是广泛使用的C、C++编译器,它们各自具有独特的优势和特点,适用于不同的使用场景。以下是对两者的详细对比:一、基本概述ClangGCC定义一个C/C++、Objective-C/Objective-C++编程语言的编译器前端,采用底层虚拟机(
- GCC支持Objective C的故事?Objective-C?GCC只能编译C语言吗?Objective-C 1.0和2.0有什么区别?
程序员小迷
编程语言小话ios编译器c语言ios开发语言objective-cgccmsvcclang
GCC支持ObjectiveC的故事Objective-C主要由Stepstone公司的BradCox和TomLove在1980年左右发明。乔布斯离开苹果公司后成立了NeXTSTEP公司,买下了Objective-C语言的授权。GCC对Objective-C语言的支持是在1992年加入的,具体是在GCC1.3版本中首次引入的。GCC的后续版本继续改进了对Objective-C的支持,包括对Obje
- 【在 PyTorch 中使用 tqdm 显示训练进度条,并解决常见错误TypeError: ‘module‘ object is not callable】
weixin_48705841
人工智能
在PyTorch中使用tqdm显示训练进度条,并解决常见错误TypeError:'module'objectisnotcallable在进行深度学习模型训练时,尤其是在处理大规模数据时,实时了解训练过程中的进展是非常重要的。为了实现这一点,我们可以使用tqdm库,它可以非常方便地为你提供进度条显示。1.什么是tqdm?TQDM是一个快速、可扩展的Python进度条库。它可以用来显示迭代的进度,帮助
- AttributeError: ‘NoneType‘ object has no attribute ‘xxx‘
Mad Soycat
常见BUG详见数据仓库大数据运维centoslinux
AttributeError:‘NoneType‘objecthasnoattribute‘xxx‘错误分析:AttributeError:'NoneType'objecthasnoattribute'xxx'AttributeError:'NoneType'objecthasnoattribute'xxx'错误通常出现在Python中,表示你尝试访问一个NoneType对象的属性或方法,但Non
- 深入面向对象 - 2
kdayjj966
python开发语言
隐藏数据引入classCat(object):def__init__(self,new_name,new_age):self.name=new_nameself.age=new_agedefprint_info(self):print("我叫%s,今年%s了"%(self.name,self.age))#创建猫对象cat=Cat("波斯猫",4)#调用方法cat.print_info()#尝试修改
- 详解Python迭代器:轻松搞懂工作原理、用法和最佳实践
kdayjj966
python开发语言
迭代器引入如果开发中有以下需求,如何解决?classStuSystem(object):"""学生管理系统"""def__init__(self):self.stus=[]defadd(self):"""添加一个新的学生:return:"""name=input("请输入新学生的姓名:")tel=input("请输入新学生的手机号:")address=input("请输入新学生的住址:")new_
- PyQt5页面跳转闪退问题解决
丹123
开发语言pythonqt5
逻辑描述:点击窗体login中的查询按钮,会出现sele窗体问题描述:点击查询之后,sele窗体闪退,刚出现就退出问题分析:直接在sele窗体中写main函数单独调用,是可以显示的,说明还是在调用过程中出现问题解决办法:在login中实例sele对象时,需要加self出现问题前的代码如下:注意defselect_act中的调用login.pyclassUi_mainWindow(object):d
- error: libcublasLt.so.11: cannot open shared object file: No such file or directory/缺少libcublas.so查找
鼾声鼾语
linuxubuntu服务器pythoncan通讯方法
1,问题:gstnvtracker:Loadinglow-levellibat/opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.sogstnvtracker:Failedtoopenlow-levellibat/opt/nvidia/deepstream/deepstream/lib/libnvds_nvmulti
- swift withCheckedContinuation相关使用
书弋江山
swift开发语言ios
```css```cssclasstest112:NSObject{enumMErr:Error{caseserverError(String)}/*withCheckedContinuation是Swift并发模型中的一个重要工具,它允许你将异步操作转换为一个暂停的函数,直到你手动恢复它。它在将传统的回调式异步代码转换为async/await风格时非常有用确保调用continuation.res
- 为什么使用 char[] 而不是 String 作为密码存储的类型?
肉三
Javajava开发语言
在Swing中,密码字段有一个getPassword()(returnschar[])方法,而不是通常的getText()(returnsString)方法。同样,我遇到了一个建议不要使用它String来处理密码。为什么String说密码会有安全隐患呢?感觉用起来很不方便char[]。将密码收集并存储在类型的对象中似乎合乎逻辑java.lang.String。但是,这里有一个警告:Object类型
- 使用 MySQL 从 JSON 字符串提取数据
m0_74825678
面试学习路线阿里巴巴mysqljsonoracle
使用MySQL从JSON字符串提取数据在现代数据库管理中,JSON格式因其灵活性而广泛使用。然而,当数据存储在JSON中时,我们经常需要将其转换为更易于处理的格式。本篇文章将通过一个具体的SQL查询示例,展示如何从存储在MySQL中的JSON字符串提取数据并重新格式化。1.背景知识JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器
- R语言的面向对象编程
2501_90183952
包罗万象golang开发语言后端
R语言的面向对象编程在现代编程中,面向对象编程(Object-OrientedProgramming,OOP)是一种重要的编程范式,它通过将数据和操作数据的函数结合在一起,来提高代码的重用性和可维护性。在R语言中,面向对象编程并不是一开始就被引入的,但随着其发展,R逐渐支持了多种面向对象编程的系统,例如S3、S4以及R6等。本文将深入探讨R语言的面向对象编程,介绍其基本概念、特点以及在实际应用中的
- 成功解决error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No su
哎呦,帅小伙哦
安装
安装了python2.7,第一次执行时报错:errorwhileloadingsharedlibraries:libpython2.7.so.1.0:cannotopensharedobjectfile:Nosuchfileordirectory解决方法如下:1.编辑vi/etc/ld.so.conf如果是非root权限帐号登录,使用sudovi/etc/ld.so.conf添加上python2.
- JVM StackMapTable 属性的作用及理解
lijingyao8206
jvm字节码Class文件StackMapTable
在Java 6版本之后JVM引入了栈图(Stack Map Table)概念。为了提高验证过程的效率,在字节码规范中添加了Stack Map Table属性,以下简称栈图,其方法的code属性中存储了局部变量和操作数的类型验证以及字节码的偏移量。也就是一个method需要且仅对应一个Stack Map Table。在Java 7版
- 回调函数调用方法
百合不是茶
java
最近在看大神写的代码时,.发现其中使用了很多的回调 ,以前只是在学习的时候经常用到 ,现在写个笔记 记录一下
代码很简单:
MainDemo :调用方法 得到方法的返回结果
- [时间机器]制造时间机器需要一些材料
comsci
制造
根据我的计算和推测,要完全实现制造一台时间机器,需要某些我们这个世界不存在的物质
和材料...
甚至可以这样说,这种材料和物质,我们在反应堆中也无法获得......
 
- 开口埋怨不如闭口做事
邓集海
邓集海 做人 做事 工作
“开口埋怨,不如闭口做事。”不是名人名言,而是一个普通父亲对儿子的训导。但是,因为这句训导,这位普通父亲却造就了一个名人儿子。这位普通父亲造就的名人儿子,叫张明正。 张明正出身贫寒,读书时成绩差,常挨老师批评。高中毕业,张明正连普通大学的分数线都没上。高考成绩出来后,平时开口怨这怨那的张明正,不从自身找原因,而是不停地埋怨自己家庭条件不好、埋怨父母没有给他创造良好的学习环境。
- jQuery插件开发全解析,类级别与对象级别开发
IT独行者
jquery开发插件 函数
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给
jQuery添加新的全局函数,相当于给
jQuery类本身添加方法。
jQuery的全局函数就是属于
jQuery命名空间的函数,另一种是对象级别的插件开发,即给
jQuery对象添加方法。下面就两种函数的开发做详细的说明。
1
、类级别的插件开发 类级别的插件开发最直接的理解就是给jQuer
- Rome解析Rss
413277409
Rome解析Rss
import java.net.URL;
import java.util.List;
import org.junit.Test;
import com.sun.syndication.feed.synd.SyndCategory;
import com.sun.syndication.feed.synd.S
- RSA加密解密
无量
加密解密rsa
RSA加密解密代码
代码有待整理
package com.tongbanjie.commons.util;
import java.security.Key;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerat
- linux 软件安装遇到的问题
aichenglong
linux遇到的问题ftp
1 ftp配置中遇到的问题
500 OOPS: cannot change directory
出现该问题的原因:是SELinux安装机制的问题.只要disable SELinux就可以了
修改方法:1 修改/etc/selinux/config 中SELINUX=disabled
2 source /etc
- 面试心得
alafqq
面试
最近面试了好几家公司。记录下;
支付宝,面试我的人胖胖的,看着人挺好的;博彦外包的职位,面试失败;
阿里金融,面试官人也挺和善,只不过我让他吐血了。。。
由于印象比较深,记录下;
1,自我介绍
2,说下八种基本类型;(算上string。楼主才答了3种,哈哈,string其实不是基本类型,是引用类型)
3,什么是包装类,包装类的优点;
4,平时看过什么书?NND,什么书都没看过。。照样
- java的多态性探讨
百合不是茶
java
java的多态性是指main方法在调用属性的时候类可以对这一属性做出反应的情况
//package 1;
class A{
public void test(){
System.out.println("A");
}
}
class D extends A{
public void test(){
S
- 网络编程基础篇之JavaScript-学习笔记
bijian1013
JavaScript
1.documentWrite
<html>
<head>
<script language="JavaScript">
document.write("这是电脑网络学校");
document.close();
</script>
</h
- 探索JUnit4扩展:深入Rule
bijian1013
JUnitRule单元测试
本文将进一步探究Rule的应用,展示如何使用Rule来替代@BeforeClass,@AfterClass,@Before和@After的功能。
在上一篇中提到,可以使用Rule替代现有的大部分Runner扩展,而且也不提倡对Runner中的withBefores(),withAfte
- [CSS]CSS浮动十五条规则
bit1129
css
这些浮动规则,主要是参考CSS权威指南关于浮动规则的总结,然后添加一些简单的例子以验证和理解这些规则。
1. 所有的页面元素都可以浮动 2. 一个元素浮动后,会成为块级元素,比如<span>,a, strong等都会变成块级元素 3.一个元素左浮动,会向最近的块级父元素的左上角移动,直到浮动元素的左外边界碰到块级父元素的左内边界;如果这个块级父元素已经有浮动元素停靠了
- 【Kafka六】Kafka Producer和Consumer多Broker、多Partition场景
bit1129
partition
0.Kafka服务器配置
3个broker
1个topic,6个partition,副本因子是2
2个consumer,每个consumer三个线程并发读取
1. Producer
package kafka.examples.multibrokers.producers;
import java.util.Properties;
import java.util.
- zabbix_agentd.conf配置文件详解
ronin47
zabbix 配置文件
Aliaskey的别名,例如 Alias=ttlsa.userid:vfs.file.regexp[/etc/passwd,^ttlsa:.:([0-9]+),,,,\1], 或者ttlsa的用户ID。你可以使用key:vfs.file.regexp[/etc/passwd,^ttlsa:.: ([0-9]+),,,,\1],也可以使用ttlsa.userid。备注: 别名不能重复,但是可以有多个
- java--19.用矩阵求Fibonacci数列的第N项
bylijinnan
fibonacci
参考了网上的思路,写了个Java版的:
public class Fibonacci {
final static int[] A={1,1,1,0};
public static void main(String[] args) {
int n=7;
for(int i=0;i<=n;i++){
int f=fibonac
- Netty源码学习-LengthFieldBasedFrameDecoder
bylijinnan
javanetty
先看看LengthFieldBasedFrameDecoder的官方API
http://docs.jboss.org/netty/3.1/api/org/jboss/netty/handler/codec/frame/LengthFieldBasedFrameDecoder.html
API举例说明了LengthFieldBasedFrameDecoder的解析机制,如下:
实
- AES加密解密
chicony
加密解密
AES加解密算法,使用Base64做转码以及辅助加密:
package com.wintv.common;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.BASE64Decod
- 文件编码格式转换
ctrain
编码格式
package com.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
- mysql 在linux客户端插入数据中文乱码
daizj
mysql中文乱码
1、查看系统客户端,数据库,连接层的编码
查看方法: http://daizj.iteye.com/blog/2174993
进入mysql,通过如下命令查看数据库编码方式: mysql> show variables like 'character_set_%'; +--------------------------+------
- 好代码是廉价的代码
dcj3sjt126com
程序员读书
长久以来我一直主张:好代码是廉价的代码。
当我跟做开发的同事说出这话时,他们的第一反应是一种惊愕,然后是将近一个星期的嘲笑,把它当作一个笑话来讲。 当他们走近看我的表情、知道我是认真的时,才收敛一点。
当最初的惊愕消退后,他们会用一些这样的话来反驳: “好代码不廉价,好代码是采用经过数十年计算机科学研究和积累得出的最佳实践设计模式和方法论建立起来的精心制作的程序代码。”
我只
- Android网络请求库——android-async-http
dcj3sjt126com
android
在iOS开发中有大名鼎鼎的ASIHttpRequest库,用来处理网络请求操作,今天要介绍的是一个在Android上同样强大的网络请求库android-async-http,目前非常火的应用Instagram和Pinterest的Android版就是用的这个网络请求库。这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通
- ORACLE 复习笔记之SQL语句的优化
eksliang
SQL优化Oracle sql语句优化SQL语句的优化
转载请出自出处:http://eksliang.iteye.com/blog/2097999
SQL语句的优化总结如下
sql语句的优化可以按照如下六个步骤进行:
合理使用索引
避免或者简化排序
消除对大表的扫描
避免复杂的通配符匹配
调整子查询的性能
EXISTS和IN运算符
下面我就按照上面这六个步骤分别进行总结:
- 浅析:Android 嵌套滑动机制(NestedScrolling)
gg163
android移动开发滑动机制嵌套
谷歌在发布安卓 Lollipop版本之后,为了更好的用户体验,Google为Android的滑动机制提供了NestedScrolling特性
NestedScrolling的特性可以体现在哪里呢?<!--[if !supportLineBreakNewLine]--><!--[endif]-->
比如你使用了Toolbar,下面一个ScrollView,向上滚
- 使用hovertree菜单作为后台导航
hvt
JavaScriptjquery.nethovertreeasp.net
hovertree是一个jquery菜单插件,官方网址:http://keleyi.com/jq/hovertree/ ,可以登录该网址体验效果。
0.1.3版本:http://keleyi.com/jq/hovertree/demo/demo.0.1.3.htm
hovertree插件包含文件:
http://keleyi.com/jq/hovertree/css
- SVG 教程 (二)矩形
天梯梦
svg
SVG <rect> SVG Shapes
SVG有一些预定义的形状元素,可被开发者使用和操作:
矩形 <rect>
圆形 <circle>
椭圆 <ellipse>
线 <line>
折线 <polyline>
多边形 <polygon>
路径 <path>
- 一个简单的队列
luyulong
java数据结构队列
public class MyQueue {
private long[] arr;
private int front;
private int end;
// 有效数据的大小
private int elements;
public MyQueue() {
arr = new long[10];
elements = 0;
front
- 基础数据结构和算法九:Binary Search Tree
sunwinner
Algorithm
A binary search tree (BST) is a binary tree where each node has a Comparable key (and an associated value) and satisfies the restriction that the key in any node is larger than the keys in all
- 项目出现的一些问题和体会
Steven-Walker
DAOWebservlet
第一篇博客不知道要写点什么,就先来点近阶段的感悟吧。
这几天学了servlet和数据库等知识,就参照老方的视频写了一个简单的增删改查的,完成了最简单的一些功能,使用了三层架构。
dao层完成的是对数据库具体的功能实现,service层调用了dao层的实现方法,具体对servlet提供支持。
&
- 高手问答:Java老A带你全面提升Java单兵作战能力!
ITeye管理员
java
本期特邀《Java特种兵》作者:谢宇,CSDN论坛ID: xieyuooo 针对JAVA问题给予大家解答,欢迎网友积极提问,与专家一起讨论!
作者简介:
淘宝网资深Java工程师,CSDN超人气博主,人称“胖哥”。
CSDN博客地址:
http://blog.csdn.net/xieyuooo
作者在进入大学前是一个不折不扣的计算机白痴,曾经被人笑话过不懂鼠标是什么,