- OKHttp3源码分析——学习笔记
Sincerity_
源码相关Okhttp源码解析读书笔记httpclientcache
文章目录1.HttpClient与HttpUrlConnection的区别2.OKHttp源码分析使用步骤:dispatcher任务调度器,(后面有详细说明)Request请求RealCallAsyncCall3.OKHttp架构分析1.异步请求线程池,Dispather2.连接池清理线程池-ConnectionPool3.缓存整理线程池DisLruCache4.Http2异步事务线程池,http
- PostgreSQL ERROR: out of shared memory处理方式
有想法的py工程师
PostgreSQLpostgresql数据库dba
系统允许的总锁数SELECT(SELECTsetting::intFROMpg_settingsWHEREname='max_locks_per_transaction')*(SELECTsetting::intFROMpg_settingsWHEREname='max_connections')+(SELECTsetting::intFROMpg_settingsWHEREname='max_p
- 篇二 OSI七层模型,TCP/IP四层模型,路由器与交换机原理
苏州向日葵
嵌入式网络开发tcp/ip网络协议网络
一前言本章节主要介绍OSI七层模型,TCP/IP四层模型划分,以及日常使用的路由器,交换机的一些基础知识二OSI七层OSI(OpenSystemsInterconnectionModel)即开放式系统互联模型,是国际标准化组织提出的,一个试图使各种计算机在世界范围内互联为网络的标准框架。层级描述应用层7这一层协议可以理解为面向用户操作行为,无关具体传输,eg:HTTP:浏览网页FTP:文件传输Te
- Java 与 MySQL 性能优化:MySQL连接池参数优化与性能提升
程序员岳彬
Java与MySQL性能优化mysql数据库性能优化服务器后端java
文章目录引言一、连接池的基本概念与作用二、关键连接参数详解2.1max_connections2.2wait_timeout2.3interactive_timeout2.4connect_timeout2.5thread_cache_size三、连接池参数不合理导致的性能问题3.1连接耗尽3.2响应变慢3.3连接失效3.4资源浪费四、连接池参数优化方法与策略4.1max_connections的
- mysql连接池
池化技术池化技术能够减少资源对象的创建次数,提高程序的响应性能,特别是在高并发情况下,这种提高更加明显。共同特征池化技术通常应用于以下对象,这些对象具有以下共同特征:对象创建时间长创建对象需要较长的时间。对象创建需要大量资源包括内存、CPU或网络资源。对象创建后可被重复使用通过复用的方式提高效率,避免重复创建。数据库连接池数据库连接池(ConnectionPooling)是一种优化数据库连接管理的
- 计算机的启动流程
Hx__
计算机系统硬件架构
关于计算机的启动流程在本科期间也有过了解,但是更多的时间是在学习关于计算机的上层应用,也就是在计算机启动之后的一些应用。该层面属于应用层,目前对计算机的启动进行一个大概的学习记录,并做描述。文章开始介绍一下整体的启动流程分为哪几个步骤。一、上电上电,也就是向电脑供给电源,也就是我们按下开机按钮的一刻。此时,最先供电的是电脑的主板,其中最核心的部件是CPU,并向CPU发送reset信号,当电源供给到
- LangChain核心架构深度解析
北辰alk
AIlangchain架构microsoft
文章目录一、分层架构概览二、核心架构组件详解1.模型I/O层(ModelI/O)2.数据连接层(DataConnection)3.链与代理层(Chains&Agents)链式工作流动态代理系统4.记忆系统(Memory)5.回调系统(Callbacks)三、运行时架构1.同步/异步执行流2.分布式执行模式四、扩展架构1.工具集成架构2.企业级扩展五、关键设计模式1.LCEL(LangChainEx
- 使用 duckdb::arrow 实现表格输出的 DuckDB CLI 代码
试图让DeepSeek编写输出列名、并支持各种数据类型的代码,总是不成功,在duckdb-rs主页看到它的示例代码支持arrow表格,把此示例提交给DeepSeek,并让他删除语法高亮代码,就能正常处理各种查询了。如下所示。usestd::{error::Error,io::{self,BufRead},time::Instant,};useduckdb::{params,Connection,a
- 打造自己的组件库(二)CSS工程化方案
行云&流水
Vue3组件库前端Vue3vue3组件库vue.js前端
1.css工程化方案1.1.目录结构设计src/assets/styles/├──index.scss#主入口文件├──variables.scss#全局CSS变量定义├──mixins.scss#SCSS混入├──reset.scss#样式重置└──theme/├──light.scss#亮色主题└──dark.scss#暗色主题1.2.CSS工程化特点1.2.1模块化导入@use'./them
- 蓝牙协议栈低功耗之安全管理协议层(SMP)
写代码的无赖的猴子
BLE低功耗蓝牙协议栈网络信息与通信物联网
逻辑链路控制和适配协议层L2CAPSMP层阶段一阶段二Legacyparing安全连接交换公匙鉴权阶段1鉴权阶段2阶段三LElegacypairing:LESecureConnections交叉密匙特性配对PDU类型Hello,我是无赖的猴子,一个蓝牙爱好者,分享蓝牙相关的知识,关注我,学习蓝牙:蓝牙文章链接直达:1.profile层(待更新)2.属性协议层(ATT)(待更新)3.安全管理协议层(
- docker启动报错
时时刻刻看着自己的心
docker容器运维
[root@96-8-0-231~]#systemctlstatusdocker●docker.service-DockerApplicationContainerEngineLoaded:loaded(/etc/systemd/system/docker.service;enabled;vendorpreset:disabled)Active:failed(Result:exit-code)si
- mac 安装docker,完美解决
Ai君臣
dockerdockermacos运维
1、下载安装最可靠brewinstall不建议用,如果用brewinstall正常,那就不用看后面的2、现象docker.errors.DockerException:ErrorwhilefetchingserverAPIversion:(‘Connectionaborted.‘,File原因:就是docker没安装好macos版本:macosCatalina10.15到这个网站DockerDes
- 第二十八:Fiddler抓包-抓取Android7.0以上的Https包(三)-夜神模拟器+Xposed+JustTrustMe
卢卡平头哥
Fiddlerfiddlerhttpsandroid
一.简介1.二次加密:有的APP,在涉及到关键数据通信时,会将正文二次加密后才通过HTTPS发送1.1.抓包抓到的是一堆二进制base642.自带HTTPClient:像支付宝那样的变态,自己带一个基于so的HTTPClient库2.1.对于关键数据,都不走URLConnection和OkHttp,而是走自己的HTTPClient库2.2.甚至一些
- 基于FPGA的数字密码锁
阿智605
fpga开发notepad++
基于FPGA的数字密码锁顶层文件modulelock(inputclk,//时钟inputrst_n,//复位input[3:0]number_in,//输入inputkey_open1,inputkey_lock1,//inputkey_reset1,outputbeep,//蜂鸣器outputlock_flag,//锁标志位output[3:0]dtube_cs_n,//7段数码管位选信号ou
- D触发器实现二分频
mengzijie@@
verilogverilog
moduletoplevel(clock,reset);inputclock;inputreset;regflop1;regflop2;always@(posedgeresetorposedgeclock)if(reset)beginflop1<=0;flop2<=1;endelsebeginflop1<=flop2;flop2<=flop1;endendmodule
- WebRTC(十三):信令服务器
却道天凉_好个秋
WebRTCwebrtc
作用WebRTC本身只处理媒体流的P2P传输、编解码与传输优化,但不包含信令协议。WebRTC的PeerConnection建立流程,需要两端完成连接协商和网络打洞信息的交换。这些内容包括:功能模块说明SDP协商中转offer/answer信息(媒体能力)ICE候选交换中转NAT穿透相关的候选地址用户身份验证确保用户合法(如token登录)房间管理支持多人房间、用户列表维护心跳检测检测用户连接状态
- BLE长连接和短连接详解
秋の水
BLE智能硬件
BLE(BluetoothLowEnergy)长连接是指:设备间建立连接后持续保持通信链路的状态,通过周期性交互(连接事件)维持链路活性,即使无数据传输也不立即断开。与短连接的核心区别在于连接维持机制、功耗、延迟及适用场景。一、BLE长连接的核心机制连接事件(ConnectionEvent)主从设备按固定时间间隔(连接间隔,7.5ms~4s)在指定信道交互数据包,每次交互包含主设备发送→从设备响应
- Windows系统FastGPT安装配置依赖项遇到的问题
耳双6
windows
遇到了两个问题,记录备忘一下安装Docker报错:此访问控制列表格式不规范,因此无法修改。1.使用管理员权限使用管理员权限打开cmd命令提示符窗口。2.修复文件目录权限icacls"C:\ProgramFiles\Docker"/reset/t/c/qicacls"C:\ProgramData\DockerDesktop"/reset/t/c/q然后再双击文件就能正常安装了参数解释:/reset:
- 31 Python 多进程-multiprocessing
忧桑的小兔子
Python27关注Python细节第三方包学习Python多进程multiprocessing并发
Python多进程编程-multiprocessing模块Python多进程编程-multiprocessing模块进程进程的概念进程的基本状态进程的通信方式多进程Python与并发编程multiprocessing模块ProcessQueueJoinableQueuePipeConnection进程池PoolAsyncResult共享数据与同步ValueArray同步托管对象ManagerBas
- 运维系列&Linux系列【仅供参考】:Ubuntu 16 永久修改ulimit中的max file open限制
坦笑&&life
运维运维linuxubuntu
Ubuntu16永久修改ulimit中的maxfileopen限制Ubuntu16永久修改ulimit中的maxfileopen限制摘要正文Ubuntu16永久修改ulimit中的maxfileopen限制摘要本文介绍如何在Ubuntu16系统中增加最大文件打开数限制,通过修改系统配置文件来实现对nginx等服务中worker_connections参数的有效提升。正文Ubuntu16–howto
- ipmitool java版本_IPMITool使用
梁豆子
ipmitooljava版本
内核模块加载ipmi_devintf和ipmi_si后,会生成/dev/ipmi0。ps:获取传感器信息请安装lm-sensors,然后运行sensors-detect。常见ipmitool$ipmitoolbmcresetcold#ResetBMC/DRACtodefault$ipmitool–Iopenbmcinfo#checkBMCinfo$ipmitoolsel#checkSELlog$i
- max open files mysql_MySQL性能优化之open_files_limit,table_open_cache和max_connections配置关系...
Moriarty K
maxopenfilesmysql
MySQL的变量open_files_limit,table_open_cache和max_connections是相互关联的。如果对有些变量进行了设置,有的变量没有设置,mysql会根据一定的计算公式进行计算得出其他的,当然有些时候会触发mysql的一些警告来。本文探讨的均基于Linux系统首先,mysql会基于max_connections和table_open_cache的值计算最低需要的文
- 如何解决Ubuntu服务器拉取github代码失败
徐方芳
github
使用gitclone拉取GitHub代码时出现以下错误:fatal:unabletoaccess'https://github.com/XXX':Failedtoconnecttogithub.comport443after133795ms:Connectiontimedout通过查找资料,找到解决办法,可以通过运行以下代码解决:gitconfig--global--unsethttp.proxy
- 数据库sql转Java实体类
大诚子
工作记录javasql实体类
//功能不是很完善,自动生成以后,没有转换成小驼峰格式,待完善......packagecom.bookingctrip.api.manual.utils;importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importjava.io.PrintWriter;importjava.sql.Connection;
- 安卓之service常用用法详解
安卓一直是半吊子水平,在写一个小东西时,发现自己对service的理解还不够,特总结如下:service的创建publicclassMinaServiceextendsService{privateConnectionThreadthread;@OverridepublicvoidonCreate(){super.onCreate();thread=newConnectionThread("min
- 安卓之Service详解(三)【安卓IPC之AIDL】
AB小站
AndroidbindService安卓服务IPC和AIDL
AndroidBoundService详解1.一般实现步骤讲解在客户端(Activity中)要完成:1.客户端通过BindService()方法来绑定一个服务对象(业务对象)如绑定成功会回调ServiceConnection接口方法onServiceConnected()2.OnServiceConnection()方法的其中一个参数是在Service中OnBind()返回的Binder的实例。3
- Kafka-python 核心 API 深度解析:BrokerConnection 与 ClusterMetadata 的全方位指南
佑瞻
python工程化kafkapython分布式
在Kafka应用开发中,我们时常会面临连接管理混乱、元数据获取不及时等问题,这些问题的根源往往在于对底层API的理解不够深入。今天我们将聚焦kafka-python客户端中两个核心类——BrokerConnection和ClusterMetadata,通过剖析其核心功能与应用场景,帮助大家建立系统化的Kafka连接与元数据管理知识体系。BrokerConnection:Kafka连接管理的中枢神经
- Linux 启动过程流程图--ARM版
进击的程序汪
linuxarm开发运维
以下是ARM版本Linux启动过程的超详细树状图,涵盖硬件上电到应用程序交互的全流程,并包含关键函数调用链及源码位置,适用于系统开发与调试场景:ARMLinux启动全流程(含函数调用链)ARMLinux启动流程(函数级调用链)│├───**1.硬件上电与BootROM阶段**│││├───硬件复位与初始化││├───CPU进入Reset异常向量(ARM异常向量表基址0x0或0xffff0000)│
- 数据库连接池的作用是什么?
破碎的天堂鸟
学习教程数据库oraclesql
数据库连接池(DatabaseConnectionPool)是一种核心的数据库资源管理技术,通过预先创建、复用和管理数据库连接,显著提升应用程序的性能、稳定性和资源利用率。其作用可归纳为以下核心维度:一、核心作用:提升系统性能与效率减少连接创建/销毁开销数据库连接的建立涉及TCP三次握手、身份验证、内存分配等操作,耗时约数十至数百毫秒。连接池在初始化时创建固定数量的连接(如minIdle),后续请
- Zookeeper异常ConnectionLossException: KeeperErrorCode = ConnectionLoss for / 问题解决大全
takmehand
Javajavazookeeper
zookeeper报ConnectionLossException:KeeperErrorCode=ConnectionLossfor异常我的开发环境是Windows开发zookeeper客户端程序,zookeeper集群安装在本地虚拟机上centos7经过自己踩坑和查找博客,发现报此异常有三种原因一是:zookeeper服务没有启动,这是最low的错误二是:centos防火墙未关闭,导致连接不上
- 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
作者在进入大学前是一个不折不扣的计算机白痴,曾经被人笑话过不懂鼠标是什么,