- DolphinScheduler环境搭建、服务启动等常见问题及解决方案
数据库
ApacheDolphinScheduler作为一款分布式易扩展的工作流调度系统,广泛应用于大数据任务编排。然而,在实际使用中,用户可能会遇到环境搭建、服务启动、工作流执行等问题。本文结合社区文档与用户实践经验,整理以下高频问题及详细解决方案,帮助用户快速定位并解决问题。一、安装与部署问题环境依赖配置错误问题:部署时因缺少JDK、Maven或数据库配置导致失败。解决方案:安装JDK1.8+并配置J
- Maven 与 Spring Boot 项目的集成
drebander
Mavenmavenspringbootjava
在Java开发中,Maven和SpringBoot是最常见的工具和框架。Maven用于构建和管理项目的依赖,而SpringBoot提供了简化的Spring应用开发方式。将Maven和SpringBoot集成,可以帮助我们更高效地构建和部署SpringBoot应用。本文将介绍如何将Maven与SpringBoot集成,并通过Maven构建和管理SpringBoot项目。1.什么是SpringBoot
- Maven 构建分发包与依赖管理
drebander
Mavenmavenjava
Maven是Java开发中广泛使用的构建和依赖管理工具,它不仅能帮助开发者高效地构建项目,还提供了强大的依赖管理和版本控制功能。通过Maven,你可以轻松地构建并发布JAR、WAR等分发包,并管理不同版本的依赖。本文将讲解如何使用Maven构建并发布JAR/WAR包,以及如何管理不同的发布版本,包括如何配置发布仓库、版本号管理和依赖范围。1.Maven构建分发包(JAR/WAR)1.1JAR包构建
- Maven 中的 Artifact 与 GroupId:定义与使用
drebander
Mavenmavenjava
1.什么是Maven的Artifact和GroupId?在Maven中,Artifact和GroupId是构建和管理项目依赖的核心概念,它们用来唯一标识一个Maven项目或库。理解这两个概念对于管理Maven项目的依赖关系、构建过程和版本控制至关重要。Artifact和GroupId结合构成了Maven依赖的唯一标识符,通常被称为坐标(Coordinate)。2.GroupId:组织标识符2.1G
- Maven 私服配置
zoobuzas
linuxmaven
Maven私服配置上传将项目发布到私服,修改settings.xml文件,配置连接私服的用户和密码。此用户名和密码用于私服校验,因为私服需要知道上传的账号和密码是否和私服中的账号和密码一致。releases连接发布版本项目仓库snapshots连接测试版本项目仓库releasesadminadmin123snapshotsadminadmin123thirdpartyadminadmin123第二
- MAVEN私服配置
可儿·四系桜
javamavenjava
声明:本用例访问的私服地址及密码为:访问私服:http://192.168.150.101:8081访问密码:admin/admin请按实际私服地址密码替换即可,该私服地址仅用于文档案例,实际不可访问。1.下载maven请根据实际情况按需下载即可。maven官网下载JDK对应的Maven版本:JDK版本Maven版本支持情况JDK1.3Maven2.0.11及以下JDK1.4Maven2.0.11
- 【Maven私服配置】
to方圆圆
mavenjava数据库
Maven私服配置对于一些中央的pom,应该配置对应的mirror镜像访问alimavenaliyunmavenhttp://maven.aliyun.com/nexus/content/groups/public/central在上述中mirrorOf表示只有central的maven才会走这个镜像去访问下载;其他的会走profitnexusnexusNexushttp:私服地址/nexus/c
- Spring Boot 开发入门
圣心
springboot
文章来源:开发您的第一个SpringBoot应用程序(DevelopingYourFirstSpringBootApplication)_SpringBoot3.4.0中文文档(官方文档中文翻译)|Spring教程——CADN开发者文档中心本节介绍如何开发一个小型的“HelloWorld!”Web应用程序,其中重点介绍了SpringBoot的一些关键功能。您可以选择Maven或Gradle作为构建
- 使用 Shiro 和 JPA 结合 MySQL 实现一个简易权限管理系统
Java猿_
mysql数据库
1.项目设置首先,确保你的项目已经配置好Maven或Gradle依赖管理工具,并添加以下依赖:Maven依赖org.apache.shiroshiro-core1.9.0org.apache.shiroshiro-web1.9.0org.springframework.bootspring-boot-starter-data-jpamysqlmysql-connector-java8.0.26or
- SpringBoot约定大于配置
骆驼整理说
分布式微服务框架开源框架及中间件javaspringboot
约定大于配置就是开箱即用中那些自动配置的细节,具体点就是配置文件(.yml)应该放在哪个目录下、命名规范等都可以被称为约定。maven目录结构的约定Spring官方文档,文档中描述的目录结构:Configlocationsaresearchedinreverseorder.Bydefault,theconfiguredlocationsareclasspath:/,classpath:/confi
- Springboot习惯大于配置原理
枫林晚丶
javawebjavaspringspringboot源码优化大于配置
Springboot简介SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是springboot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,springboot整合了所有的框架。准备工作引入s
- SpringSecurity+JWT实现认证及授权详细步骤
小孙的Blog
springbootjavaspring后端
表单认证流程想要实现SpringSecurity的认证授权,首先需要理解大致流程。准备工作导入maven依赖org.springframework.bootspring-boot-starter-securityio.jsonwebtokenjjwt0.9.0创建数据库表表数据如下:创建生成jwtToken的工具类importio.jsonwebtoken.Claims;importio.json
- spring security6+springboot3+jwt实现权限控制
O0o88
springjavamybatis
maven配置myabits-plus,redis,lombok,hutoolorg.springframework.bootspring-boot-starter-parent3.0.517org.springframework.bootspring-boot-starterorg.springframework.bootspring-boot-starter-testtestorg.sprin
- JAVA调用Deepseek的api,完成基本对话
菜菜-plus
java开发语言Deepseek
获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Java的HTTP客户端库(如ApacheHttpClient或OkHttp)来发送HTTP请求。如果使用Maven,可以在pom.xml中添加依赖:、org.apache.httpcomponentshttpclient4.5.13com.squareup.okhttp3okhttp4.9.3创建H
- Maven使用SpringBoot部署https服务启动时加载KeyStore报错:Invalid keystore format(Maven官方解决办法)
跳小闹成长记-跳爸
技术分享invalidkeystorejksmavenresource
一、前言最近在本地部署https服务的时候遇到一个问题。在创建好keystore签名文件之后,完成了一切配置工作。接着在启动的过程中却报错:Invalidkeystoreformat。经过再三确认KeyStore签名文件格式本身并没有问题。接下来就和大家分享下该问题的根源,以及如何解决该问题。二、根因分析1、基本原因遇到疑难杂症Google就比较好的习惯(不要问我为什么不用某度),经过一番搜索之后
- 1.如何配置开发环境(JDK、Maven、IDEA)搭建SpringBoot项目
yjx012
javamavenintellij-ideaspringboot
搭建SpringBoot项目的开发环境主要包括安装和配置JDK、Maven和IDEA(IntelliJIDEA)。以下是详细的步骤和注意事项。1.安装JDK1.1下载JDKDownloadIntelliJIDEA–TheLeadingJavaandKotlinIDE1.2安装JDK下载后,按照安装向导完成安装。安装过程中请记住安装路径,通常为C:\ProgramFiles\Java\jdk-11或
- MyBatis-Plus介绍及基本使用
墨鸦_Cormorant
#Java持久层mybatismybatis-plusmybatisPlus
文章目录概述介绍MyBatis-Plus常用配置分页插件配置类注解配置快速入门maven依赖编写配置文件编写启动类编写MybatisPlus配置类代码生成器:MybatisPlusGeneratormaven依赖代码生成器核心类概述介绍MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。主页:传送门引入MyBati
- android studio 使用maven-publish 插件上传aar到远程maven仓库
-优势在我
androidstudiomavenandroid
上传插件编写1、在工程目录下添加upload.gradle文件applyplugin:'maven-publish'defRELEASE_REPOSITORY_URL='http://xxx.xx.com/artifactory/repository/release/'defSNAPSHOT_REPOSITORY_URL='http://xxx.xx.com/artifactory/reposit
- Hutool-------值得推荐的java工具库
丶Apache
Java
网址:https://www.hutool.cn/docs/#/安装Maven在项目的pom.xml的dependencies中加入以下内容:cn.hutoolhutool-all5.3.7Gradlecompile'cn.hutool:hutool-all:5.3.7'包含组件一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时
- 启动Springboot项目maven命令
It_BeeCoder
SpringBoot
1mvncleancompile,将项目重新编译2mvninstall,打包3mvnspring-boot:run,启动项目4mvnpackage,打成war包
- Java Swing-2.环境搭建及窗口背景
crime_lamb
javaswingjava开发语言
环境搭建及设置窗口背景环境搭建jdk:1.8Maven:3.2.5开发一个小型的桌面程序,可直接创建一个基础的Maven项目,我的场景中不使用Spring所以并没有使用Springboot框架下面是我的pom.xml4.0.0org.exampleSwing-Test1.0-SNAPSHOTArchetype-Swing-Testhttp://maven.apache.orgcom.formdev
- org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde Maven下载不下来
百夜﹍悠ゼ
mavenjarjava
找了很多文章都提供以下两种方式1)设置maven镜像仓库aliyunmaven*阿里云spring插件仓库https://maven.aliyun.com/repository/spring-pluginnexus-aliyun*Nexusaliyunhttp://maven.aliyun.com/nexus/content/groups/public2)pom文件增加springhttps://
- Selenium WebDriver自动化测试(扩展篇)--Jenkins持续集成
职说测试
seleniumjenkinsci/cdUI自动化测试web自动化测试
文章目录一、引言二、Jenkins简介三、安装部署Jenkins安装部署四、集成Git与Maven安装必要的插件配置Git配置Maven五、创建Job创建自由风格的项目配置源码管理配置构建触发器配置构建环境配置构建步骤配置Post-buildActions六、触发构建示例:GitHubWebhook触发构建七、封装通用方法示例:使用Groovy脚本创建Job八、总结参考文献一、引言持续集成(Con
- Java整合GPT-3.5和GPT-4,让PPT制作变得更加轻松智能化
GPTCoder
ChatGPTjava人工智能gpt-3自然语言处理chatgpt
在当今的商业环境中,PPT演示文稿已成为一种重要的沟通工具。然而,创建高质量的PPT往往耗时且繁琐。基于这个痛点,本文将介绍如何使用Java整合GPT-3.5/4,根据PPT模板自动生成完整的PPT。我们将使用ApachePOI库操作来PPT文件,同时调用GPT-3.5/4API生成内容。首先,我们需要导入ApachePOI库。在Maven项目中,将以下依赖添加到pom.xml文件中:org.ap
- JDK 官方迁移指南中文版(基于 JDK 8 → JDK 11 → JDK 17)
金州小铁匠
java开发语言
JDK官方迁移指南中文版(基于JDK8→JDK11→JDK17)一、迁移前的准备工作环境评估与兼容性检查操作系统支持:确保当前系统支持目标JDK版本。例如,JDK17要求Windows10/11、macOSBigSur或更高版本,以及主流Linux发行版。第三方依赖审查:检查项目中使用的框架(如SpringBoot)、工具(如Maven/Gradle)和库(如Netty、Lombok)是否兼容目标
- Spring Boot + MyBatis + MySQL 实现读写分离
2301_79099287
程序员springbootmybatismysql
spring-boot-starter-testtestorg.springframework.bootspring-boot-maven-plugin3.2.数据源配置application.ymlspring:datasource:master:jdbc-url:jdbc:mysql://192.168.102.31:3306/testusername:rootpassword:123456d
- JDK8 升级至 JDK17 打包问题分析
Resean0223
实际项目问题汇总日常问题解决javamavenjdk
一、概述近日为了满足客户需求将项目的jdk版本由原先的1.8升级至17,整个过程比较顺利,但是在maven打包时出现了报错。报错信息为:(程序包sun.security.util已在模块java.base中声明,但该模块未将它导出到未命名模块)二、问题分析引起该问的原因是因为从jdk9开始使用module模块化引用的结构,包时存在的,只是我们在打包时没有将该模块引入并声明。关于module模块化的
- 后端Long类型19位返回前端丢失精度问题
19940719
JAVA
后端Long类型19位返回前端丢失精度问题问题原因:由于Long类型最大19位而JavaScript最大接收数字为16位,固存在精度丢失问题解决方案1.导入Maven依赖com.fasterxml.jackson.corejackson
- Maven 引入外部依赖
lsx202406
开发语言
Maven引入外部依赖引言Maven是一个强大的项目管理和构建自动化工具,广泛应用于Java项目的开发中。在Maven的项目中,引入外部依赖是构建项目不可或缺的一环。本文将详细介绍如何在Maven中引入外部依赖,包括依赖的类型、配置方式以及常见问题解决。一、依赖的类型在Maven中,依赖可以分为以下几类:Compile依赖:编译依赖,用于项目的编译过程。这类依赖通常包含了项目的编译时需要用到的类库
- 【Maven】多module项目优雅的实现pom依赖管理
fixAllenSun
mavenjava前端
【Maven】多module项目优雅的实现pom依赖管理【一】方案设计原则【二】项目结构示例【三】实现思路【1】可能的问题点:【2】解决方案的思路:【3】需要注意的地方:【4】可能的错误:【四】实现案例【1】父POM设计(parent-project/pom.xml)【2】子模块示例(common-core/pom.xml)【3】模块间依赖(service-module/pom.xml)【五】总结
- 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
作者在进入大学前是一个不折不扣的计算机白痴,曾经被人笑话过不懂鼠标是什么,