- Java如何实现平台无关性
qian_qh
面试八股文jvmjava
Java如何实现平台无关性引言“WriteOnce,RunAnywhere”(一次编写,到处运行)是Java最著名的口号之一,也是它能够风靡全球的重要原因。但Java究竟是如何实现这种跨平台能力的呢?本文将深入剖析Java平台无关性的实现原理,帮助开发者更好地理解Java虚拟机(JVM)的工作机制。一、平台无关性的实现基础1.Java虚拟机(JVM)的核心作用Java实现平台无关性的关键在于Jav
- Three.js-效果合成(EffectComposer)
HM-hhxx!
着色器Threejavascriptthree.jsThree.js3d着色器
目录1.效果合成器(EffectComposer)1.1构造函数EffectComposer(renderer:WebGLRenderer,renderTarget:WebGLRenderTarget)1.2属性.passes:Array.readBuffer:WebGLRenderTarget.renderer:WebGLRenderer.renderToScreen:Boolean.write
- 2021.01.13【R语言】丨去除行列名双引号
穆易青
生物信息心得R语言
在使用R语言在使用R进行数据处理时,我们经常可能会需要对每一行的首行(可能是姓名,geneID等)进行比对。在比对过程中有时会遇到一个小问题,就是明明处理前和处理后的geneID没有变化,但是生成的文件中,列名和行名都打上了双引号,导致比对出现问题,这是为什么?这里就要提到在R中write.table()的默认参数了。我们来举个例子这是R已经读取的基因表达水平的表格文件,这里geneID还没有双引
- js技巧篇:惰性函数
954L
javascript前端惰性函数
普通写法functioncopyText=(text)=>{if(navigator.clipboard){navigator.clipboard.writeText(text);}else{constinput=document.createElement('input');input.setAttribute("value",text);document.body.appendChild(in
- python获取图片经纬度信息_python提取照片坐标信息的实例代码
weixin_39628070
python获取图片经纬度信息
python提取照片坐标信息的代码如下所示:fromPILimportImagefromPIL.ExifTagsimportTAGSimportosoutput="Z://result.csv"out=open(output,'a')out.write('lat,lon\n')fpath="Z://iphonephoto"foriteminos.walk(fpath):ob=item[2]fori
- 高并发系统三大利器之缓存(原理到应用场景)
小飞飞的技术笔记
架构RedisSpring缓存redis数据库eureka
目录一、高并发系统三大利器二、缓存的使用场景2.1减轻DB压力2.2提高系统响应2.3session分离2.4分布式锁三、缓存的分类3.1客户端缓存3.2网络端缓存3.3服务端缓存四、缓存的优势和代价4.1优势4.2代价五、缓存的读写模式5.1CacheAsidePattern(旁路模式)高并发情况下出现的数据不一致(脏读)问题5.2Read/WriteThrough(读写穿透)5.3WriteB
- 【音视频】音视频FLV合成实战
浅慕Antonio
音视频音视频ffmpeg
FFmpeg合成流程示例本程序会⽣成⼀个合成的⾳频和视频流,并将它们编码和封装输出到输出⽂件,输出格式是根据⽂件扩展名⾃动猜测的。示例的流程图如下所示。ffmpeg的Mux主要分为三步操作:avformat_write_header:写⽂件头av_write_frame/av_interleaved_write_frame:写packetav_write_trailer:写⽂件尾avcodec_p
- ik分词器扩展
一切顺势而行
elasticsearch
//1.扩展IK原生词典类(关键改造点)publicclassHotDictextendsDictionary{privatestaticfinalCopyOnWriteArrayListHOT_WORDS=newCopyOnWriteArrayListnewWords=Files.readAllLines(Paths.get(filePath));HOT_WORDS.clear();HOT_WO
- 【笔记】C# 数据类型转换
哈桑indie
c#开发语言.net
文章目录前言类型转换的概念1,隐式转换2,显式转换3,程序类转换结语前言大家好啊,我是writer桑,本章是关于C#数据类型转换的一个总结,其中包含隐式、显示转换和程序类转换,方便自己学习查阅的同时分享出来,感谢支持。类型转换的概念C#作为一种静态类型的编程语言,变量在声明之后就无法再次声明。或者无法分配另一种类型的值,除非该类型可以进行隐式转换为变量的类型。比方说string类型无法隐式转换为i
- C# 的 fixed
visual-studio
fixed语句可防止垃圾回收器重新定位可移动变量,并声明指向该变量的指针。固定变量的地址在语句的持续时间内不会更改。只能在相应的fixed语句中使用声明的指针。声明的指针是只读的,无法修改:unsafe{byte[]bytes=[1,2,3];fixed(byte*ptr=bytes){Console.WriteLine($"数组的第一个元素的地址:{(long)ptr:X}。");Console
- C# 的异常捕捉和引发
visual-studio
使用throw和try语句来处理异常。使用throw语句引发异常。使用try语句捕获和处理在执行代码块期间可能发生的异常。不处理异常若不适用异常处理机制,代码运行过程中的任意异常(整数除零、文件找不到等)都会导致代码或应用程序中途退出,仅仅是提示某处发生异常。intZhs=5;for(intz=3;z>=0;z--){Console.WriteLine($"{Zhs}÷{z}={Zhs/z}");
- python学习 --文件IO和异常
EvanSun__
python学习服务器
本文目录文件IO基本操作操作文件的函数/方法01open02close03read04write文件读写案例——复制文件小文件复制大文件复制文件/目录的常用管理操作文件操作目录操作文本文件的编码格式(科普)ASCII编码和UNICODE编码`ASCII`编码`UTF-8`编码格式Python2.x中如何使用中文unicode字符串异常捕获异常文件IO基本操作在计算机中要操作文件的套路非常固定,一共
- 2025年Java技术栈全解析:从基础到实战,代码示例深度剖析
软件职业规划
java策略模式开发语言
一、Java基础(一)Java入门1.Java语言概述Java是一种跨平台、面向对象的编程语言,具有简单性、安全性、多线程等特点。它通过JVM(Java虚拟机)实现跨平台运行,一次编写,到处运行(WriteOnce,RunAnywhere)。2.环境配置安装Java开发工具包(JDK)和配置环境变量是Java开发的第一步。以下是环境配置的代码示例:#在Linux或MacOS中配置环境变量expor
- Spark-Sql编程(三)
煤烦恼
sparksql大数据
一、数据加载与保存通用方式:使用spark.read.load和df.write.save,通过format指定数据格式(如csv、jdbc、json等),option设置特定参数(jdbc格式下的url、user等),load和save指定路径。保存时可通过mode设置SaveMode,如ErrorIfExists(默认,文件存在则抛异常)、Append(追加)、Overwrite(覆盖)、Ig
- pl011设备驱动浅析
丸子家的银河龙
Linuxlinux数据库运维
文章目录设备驱动流程init关键函数注册pl011_driverpl011_probeamba_pl011_popspl011设备驱动实现pl011_probepl011_find_free_portpl011_setup_portpl011_register_portsetupargsofdev->devirqopsread/writepl011_startuppl011_hwinitpl011
- Xcode 15 file-write-create
wumu_Love
xcodemacoside
//Sandbox:rsync.samba(2026)deny(1)file-write-create/Users/linsen/Library/Developer/Xcode/DerivedData/radarMap-cklaymjhhbqeoxbulakxmwcculzc/Build/Products/Debug-iphonesimulator/radarMap.app/Frameworks/
- 【STM32】关于LWIP高频率快速发送大量数据(1MB以上)卡死问题解决 + 提高LWIP发送速率的办法
ℳ๓. Sweet
STM32stm32嵌入式硬件单片机
背景STM32型号:STM32F47VGTx初始LWIP版本:1.4.1PHY:ksz8051最近遇到了个问题,从sd卡读数据存储到一个1024大小的数组,每次读200个字节,while循环读取,每次读取完成后立即通过lwip的conn_write接口通过tcp方式发送出去。但是会出现发送速率只有9kb/s的情况,而且高频率快速发送大量数据(1MB以上)很容易死机,通过串口读取conn_write
- 会写TypeScript就能理解日语语法——Typed Japanese项目能做到(吗?)
typescript语言
近日,YifengWang和SatoshiTerasaki发布了名为TypedJapanese的开源项目。该项目旨在借助TypeScript的类型系统帮助程序员学习日语。会写TypeScript就能理解日语语法——自然语言的语法规则完全可以映射到TypeScript的类型系统之中。IfyoucanwriteTypeScript,youcanunderstandJapanese!https://gi
- STM32F1 SDIO + FATFS问题频繁写入出错问题解决
Z_123_W
STM32FATFSSTM32
本在STM32F1上移植了FATFS系统,然后又将项目移植到GD32F1上去。发现在使用文件系统频繁写入时接口报错;报错“SD_TX_UNDERRUN”或者“SD_RX_OVERRUN”,初期通过f_open、f_lseek、f_write、f_close之间加上10ms延时是可以用的,但是还是不够稳定。我每次写入数据量大概在2K,连续需要写入次数大概是上千次。解决方案就需要在FATFS系统的驱动
- 解决paddleocr报错之AttributeError: ‘ParallelEnv‘ object has no attribute ‘_device_id‘
西伯利亚猹
linux数据库pythonpaddlepaddle
首先我的报错是这样的:Traceback(mostrecentcalllast):File"/home/xaishu/桌面/dev_xiashu/cll_ocr/tools/train.py",line199,inconfig,device,logger,vdl_writer=program.preprocess(is_train=True)File"/home/xaishu/桌面/dev_xia
- 关闭Mac 双指左右滚动功能(浏览器前进、后退丢失页面)
Lucky小黄人
macos
关闭所有浏览器的前进后退功能系统偏好设置=>触控板=>更多手势=>在页面之间轻扫取消勾选即可。如下图所示:仅关闭Chrome的前进后退功能如果是Chrome浏览器,还可以使用下面这份方法在终端输入执行下面两条命令,然后重启Chrome,需要注意的是Chrome重启需要完全退出程序再打开,可按⌘+Q键退出,仅仅关闭窗口是不行的。defaultswritecom.google.ChromeAppleE
- 数据库守护神-WAL机制
理想奋斗中
数据库WAL机制数据恢复
什么是WAL机制?WAL(Write-AheadLogging,预写日志)是一种保证数据库操作原子性和持久性的核心机制。其核心原则可概括为:任何数据修改操作,必须在对应的日志记录持久化到磁盘之后,才能将实际数据写入磁盘。理论基石持久化顺序性:日志的写入必须早于数据修改的完成。操作可重放性:所有修改操作都能通过日志完整重建。故障可恢复性:系统崩溃后,通过日志可恢复到一致状态。为什么需要WAL机制?1
- c#通过ffmpeg实现视频转码
乐黍
c#ffmpeg
在做一个项目时,需要前端显示单机版上传的视频信息,对于摄像头抓取的视频,最开始是使用VideoFileWriter直接转换文件格式和定义视频流,但时候在后期的测试中发现,浏览器端无法显示该视频文件,只能显示h264编码的视频流。经过一系列调查之后选用了ffmpeg来实现该视频转码,如下是具体的实现步骤:1.下载ffmpeg文件链接2.具体转码代码如下://////测试/////////privat
- Java:历久弥新的编程语言王者
松前卡气加超级漂
java开发语言
引言自1995年SunMicrosystems发布Java以来,这门"一次编写,到处运行"的编程语言已经深刻改变了软件开发行业。近30年过去,尽管新兴语言层出不穷,Java依然稳居TIOBE编程语言排行榜前三名,在企业级开发、移动应用和大数据领域占据主导地位。本文将深入探讨Java的核心特性、技术生态以及未来发展方向。一、Java的核心竞争力1.跨平台能力Java最著名的特性是"WriteOnce
- [极客大挑战 2019]RCE ME writeup + 无字母数字命令执行
shu天
ctf#webphpctfweb命令执行
我以后再半夜开题目我就是【】知识点利用取反运算符绕过无字母数字正则表达式取反之后基本上都是不可见字符yu22x大佬的php脚本:
- 大数据面试问答-批处理性能优化
孟意昶
大数据性能优化hadoopspark
1.数据存储角度1.1存储优化列式存储格式:使用Parquet/ORC代替CSV/JSON,减少I/O并提升压缩率。df.write.parquet("hdfs://path/output.parquet")列式存储减少I/O的核心机制:列裁剪(ColumnPruning)原理:查询时只读取需要的列,跳过无关列。示例:若执行SELECTAVG(Age)FROMusers,只需读取Age列的数据块,
- Windows Kernel32.dll--内核库函数提供的API
施工中请绕行
其他问题
AddAtom向本地原子表添加一个字符串AllocConsole为当前进程分配一个新控制台AreFileApisANSI确定一个WIN32文件函数集是否在使用ANSI或OEM字符集代码页BackupRead向一缓冲区读进与给定文件相关联的数据BackupSeek在访问数据流中向前搜索BackupWrite将数据传送到指定的文件或目录中Beep在扬声器上发出简单的声音BeginUpdateResou
- TCP和Socket关系
爱看老照片
网络及IT网站TCPsocket
socket是TCP/IP协议的API形象的比喻:“tcp是电,socket是插头和插座。(Socket中文意思:插座)“TCP/IP和Socket的关系要写网络程序就必须用Socket,这是程序员都知道的。而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,write等几个基本的操作。是的,就跟常见的文件
- kernel32!GetQueuedCompletionStatus函数分析之返回值得有效性
sitelist
nt4源代码分析CompletionStatGetQueuedBaseSetLastNTSetLastNTError
第一部分://#defineSTATUS_SUCCESS0x0返回值为0}else{////Setthecompletionstatus,capturethecompletion//information,deallocatetheassociatedIRP,and//attempttowritethecompletioninformation.//Status=STATUS_SUCCESS;//
- API函数导航(四)
Augusdi
VC++程序设计apiwindowsmicrosoft磁盘存储dll
四、内核库函数(1)Kernel32.exe函数名称说明AddAtom向本地原子表添加一个字符串AllocConsole为当前进程分配一个新控制台AreFileApisANSI确定一个WIN32文件函数集是否在使用ANSI或OEM字符集代码页BackupRead向一缓冲区读进与给定文件相关联的数据BackupSeek在访问数据流中向前搜索BackupWrite将数据传送到指定的文件或目录中Beep
- 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
作者在进入大学前是一个不折不扣的计算机白痴,曾经被人笑话过不懂鼠标是什么,