【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】

时间:2021-09-21 20:55:26

之前已经实现了数据的采集,现在已经有了基本的数据,下一步就需要使用这些数据实现统计图的绘制了。这里使用Jfreechart实现这些统计图的绘制。首先看一下Jfreechart的基本用法,只有知道了它的基本用法才有可能实现对更为复杂的统计图的绘制。

这里主要使用了它的三种绘制方式,绘制饼图、折线图和柱状图

源代码地址:https://github.com/kdyzm/day74_jfreechartDemo

一、准备工作

  首先去官网下载相关jar包:http://www.jfree.org/jfreechart/download.html

  实际下载地址:http://sourceforge.net/projects/jfreechart/files/

  这里我使用了1.0.14版本的。

  解压jar包之后在lib目录下找到以下三个jar包添加到classpath:

 【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】

  然后就能进行下一步了。

二、饼状图的生成

  1.定义统计图的标题

String title="各大公司Java EE AS 市场占有率调查";

  2.创建数据源,JFreechart使用DefaultPieDataset对象封装所有需要统计的数据。

 DefaultPieDataset dpd=new DefaultPieDataset();
dpd.setValue("IBM", 25);
dpd.setValue("Oracle", 25);
dpd.setValue("JBoss", 25);
dpd.setValue("用友", 25);

  3.使用最简单的绘图方式创建JFreechart对象

JFreeChart chart=ChartFactory.createPieChart(title, dpd, true, false, false);

  很明显参数1是标题,参数2是数据源,参数三是legend(图例),即是否显示图例,所谓图例就是对统计图中的不同部分加以说明的部分。

  4.最后保存到文件

ChartUtilities.saveChartAsJPEG(new File("D://a.jpg"), chart, 800, 500);

  使用ChartUtilities保存到文件,800是宽度,500是长度。

  5.到D盘下查看生成的结果(a.jpg):

  【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】

  我们发现中文的部分全部变成乱码了。统计图中有三处乱码,这三处乱码应当分别给予解决,但是解决方法是一模一样的,那就是设置中文字体,在jfreechart中所有乱码都是没有设置好字引起的。

  6.解决中文乱码

  JFreechart中的统计图可以大致分为两部分,一部分是绘图区(plot),另一部分是非绘图区(有点废话),绘图区很明显就是图中的圆形盘子,而非绘图区就包括了title、legend等部分。

    (1)解决绘图区乱码问题,首先获取绘图区对象,然后设置标签为中文字体即可。

PiePlot plot = (PiePlot)chart.getPlot();
plot.setLabelFont(new Font("宋体",Font.BOLD,15));

    (2)非绘图区中文乱码问题

      解决title中文乱码:

chart.getTitle().setFont(new Font("宋体", Font.BOLD, 30));

      解决legend中文乱码

chart.getLegend().setItemFont(new Font("微软雅黑", Font.PLAIN, 15));

    注意设置字体一定要在ChartUtilities.saveChartAsJPEG方法之前,否则肯定是没有效果的。

    解决完成中文乱码问题之后效果:

   【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】

   虽然问题是解决了,但是要注意,一旦使用中文字体之后生成统计图的速度就会降低很多,这大概和程序需要获取系统字体有关系吧。

  7.设置3D效果,设置3D效果非常简单只需要讲之前的createPieChart方法替换成为createPieChart3D方法即可。

    【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】

    当然这个效果比较难看,是因为没有设置透明度的问题,设置透明度

plot.setForegroundAlpha(0.7F);

    【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】

    这样就显得有立体效果了。

  8.定制绘图区标签,绘图区标签只是显示了公司的名称,但是并没有将各个公司所占的份额和百分比显示出来,我们大多数还想知道总数是多少等等,这就需要我们定制标签了。

plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}/{1}/{2}/{3}"));

  通过向StandardPieSectionLabelGenerator类的构造方法传入一个字符串,我们可以定制标签的内容,这里设置的{}参数只有四种:

    {0},标签名称

    {1},实际的数量

    {2},占的百分比

    {3},总的数量

    如果超出了这个范围,则直接不给解析如果加上了{4},则直接打印{4}

  【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】

  9.其余效果

    (1)设置图表区和绘图区背景,这个使用的不多

 //设置图表区背景
chart.setBackgroundImage(ImageIO.read(new File("C:/Users/kdyzm/Pictures/IA.full.1795695.jpg")));
//设置绘图区背景
plot.setBackgroundImage(ImageIO.read(new File("C:/Users/kdyzm/Pictures/IA.full.1787513.jpg")));

    (2)设置分裂效果

plot.setExplodePercent("IBM", 0.3D);
plot.setExplodePercent("Oracle", 0.1D);

  10.完整代码

 package com.kdyzm.test.pie;

 import java.awt.Font;
import java.io.File; import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset; /**
* 测试饼状图的生成
* @author kdyzm
*
* 需要注意的一点就是为了解决中文乱码问题,一定要在将流写入文件之前设置字体。
*
*/
public class TestPie {
public static void main(String[] args) throws Exception {
String title="各大公司Java EE AS 市场占有率调查";
DefaultPieDataset dpd=new DefaultPieDataset();
dpd.setValue("IBM", 25);
dpd.setValue("Oracle", 25);
dpd.setValue("JBoss", 25);
dpd.setValue("用友", 25); //使用最简单的绘图方式
JFreeChart chart=ChartFactory.createPieChart3D(title, dpd, true, false, false);
//解决标题中文乱码问题
chart.getTitle().setFont(new Font("宋体", Font.BOLD, 30));
//解决底部bar中中文乱码问题
chart.getLegend().setItemFont(new Font("微软雅黑", Font.PLAIN, 15));
PiePlot plot = (PiePlot)chart.getPlot();
// plot.setExplodePercent("IBM", 0.3D);
// plot.setExplodePercent("Oracle", 0.1D);
plot.setLabelFont(new Font("宋体",Font.BOLD,15));
plot.setForegroundAlpha(0.3F);
plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}/{1}/{2}/{3}"));
//绘图区
/**
* 这里设置的{}参数只有四种
* {0},标签名称
* {1},实际的数量
* {2},占的百分比
* {3},总的数量
* 如果超出了这个范围,则直接不给解析如果加上了{4},则直接打印{4}
*/
// //设置图表区背景
// chart.setBackgroundImage(ImageIO.read(new File("C:/Users/kdyzm/Pictures/IA.full.1795695.jpg")));
// //设置绘图区背景
// plot.setBackgroundImage(ImageIO.read(new File("C:/Users/kdyzm/Pictures/IA.full.1787513.jpg"))); //设置分裂效果
ChartUtilities.saveChartAsJPEG(new File("D://a.jpg"), chart, 800, 500);
//解决每个扇形区域中中文乱码问题
System.out.println("打印完成!");
}
}

三、柱状统计图的实现

  有了之前的饼状图的实现,再学习柱状统计图的实现就简单了很多,虽然有很多地方不一样,但是解决思路却是有很多相似之处。

package com.kdyzm.test.bar;

import java.awt.Font;
import java.io.File; import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset; /**
* 测试柱状图的生成
* @author kdyzm
*
*/
public class BarTest {
public static void main(String[] args) throws Exception {
//提供数据集合
DefaultCategoryDataset dataset=new DefaultCategoryDataset();
dataset.addValue(100,"IBM", "第一季度");
dataset.addValue(103,"Oracle", "第一季度");
dataset.addValue(1000,"JBoss", "第一季度");
dataset.addValue(208,"用友", "第一季度"); dataset.addValue(2477,"IBM", "第二季度");
dataset.addValue(2343,"Oracle", "第二季度");
dataset.addValue(987,"JBoss", "第二季度");
dataset.addValue(3473,"用友", "第二季度"); dataset.addValue(1890,"IBM", "第三季度");
dataset.addValue(2980,"Oracle", "第三季度");
dataset.addValue(3889,"JBoss", "第三季度");
dataset.addValue(2890,"用友", "第三季度"); dataset.addValue(2347,"IBM", "第四季度");
dataset.addValue(1340,"Oracle", "第四季度");
dataset.addValue(2340,"JBoss", "第四季度");
dataset.addValue(3000,"用友", "第四季度"); //生成图表的进程
String title="一年之中各大公司Java EE AS销售统计";
JFreeChart chart=ChartFactory.createBarChart3D(title, "季度", "销量(万台)", dataset, PlotOrientation.VERTICAL, true, false, false); //集中解决中文乱码问题
chart.getTitle().setFont(new Font("微软雅黑", Font.BOLD, 30));
//设置底部bar中的字体样式
chart.getLegend().setItemFont(new Font("微软雅黑", Font.ITALIC, 20)); CategoryPlot categoryPlot=chart.getCategoryPlot();
//设置横坐标字体的样式
categoryPlot.getDomainAxis().setLabelFont(new Font("微软雅黑", Font.PLAIN, 15));
//设置横坐标小字体标题的样式
categoryPlot.getDomainAxis().setTickLabelFont(new Font("微软雅黑",Font.PLAIN,14)); //设置纵坐标标题的字体样式
categoryPlot.getRangeAxis().setLabelFont(new Font("微软雅黑",Font.PLAIN,15));
//设置前景色透明度
categoryPlot.setForegroundAlpha(0.7F); ChartUtilities.saveChartAsJPEG(new File("d:/bar.jpg"), chart, 800, 500);
System.out.println("图表生成完毕");
}
}

  效果图:

【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】

  代码说明:

    和饼状统计图相比生成柱状统计图有几处不一样的地方

    1.创建JFreechart对象对象使用的方法不一样了

JFreeChart chart=ChartFactory.createBarChart3D(title, "季度", "销量(万台)", dataset, PlotOrientation.VERTICAL, true, false, false);

    这里季度是横坐标上的说明,销量(万台)是纵坐标上的说明,PlotOrientation.VERTICAL指定了绘图区的方向为垂直方向。

    2.数据源的数据结果不相同,使用DefaultCategoryDataset类进行的数据封装。添加数据的方式变成了

dataset.addValue(100,"IBM", "第一季度");

    第一个参数是数量,第二个参数是名称,第三个参数是“组号”,虽然API上给出的是“columnKey”,但是完全不明所以,从效果上来看确实是“组号”

    3.解决中文乱码的地方需要改变。

    非绘图区的title和legend解决乱码的方式不变,需要改变的是绘图区的乱码解决方式。在JFreechart中横坐标的名称叫做domain,做坐标的名称叫做range,通过CategoryPlot(其实也是Plot)获取横纵坐标对象从而设置字体是解决中文乱码的方式。

CategoryPlot categoryPlot=chart.getCategoryPlot();
//设置横坐标字体的样式
categoryPlot.getDomainAxis().setLabelFont(new Font("微软雅黑", Font.PLAIN, 15));
//设置横坐标小字体标题的样式
categoryPlot.getDomainAxis().setTickLabelFont(new Font("微软雅黑",Font.PLAIN,14)); //设置纵坐标标题的字体样式
categoryPlot.getRangeAxis().setLabelFont(new Font("微软雅黑",Font.PLAIN,15));

    所谓小标题的字体样式指的就是"第一季度"、"第二季度"这样的"组标题"。

四、折线统计图的实现

  折线统计图的实现和柱状统计图的实现几乎完全相同,只需要将创建柱状统计图的方法改变成为创建折线统计图的方法即可。

package com.kdyzm.test.bar;

import java.awt.Font;
import java.io.File; import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset; /**
* 测试柱状图的生成
* @author kdyzm
*
*/
public class BarTest {
public static void main(String[] args) throws Exception {
//提供数据集合
DefaultCategoryDataset dataset=new DefaultCategoryDataset();
dataset.addValue(100,"IBM", "第一季度");
dataset.addValue(103,"Oracle", "第一季度");
dataset.addValue(1000,"JBoss", "第一季度");
dataset.addValue(208,"用友", "第一季度"); dataset.addValue(2477,"IBM", "第二季度");
dataset.addValue(2343,"Oracle", "第二季度");
dataset.addValue(987,"JBoss", "第二季度");
dataset.addValue(3473,"用友", "第二季度"); dataset.addValue(1890,"IBM", "第三季度");
dataset.addValue(2980,"Oracle", "第三季度");
dataset.addValue(3889,"JBoss", "第三季度");
dataset.addValue(2890,"用友", "第三季度"); dataset.addValue(2347,"IBM", "第四季度");
dataset.addValue(1340,"Oracle", "第四季度");
dataset.addValue(2340,"JBoss", "第四季度");
dataset.addValue(3000,"用友", "第四季度"); //生成图表的进程
String title="一年之中各大公司Java EE AS销售统计";
JFreeChart chart=ChartFactory.createLineChart(title, "季度", "销量(万台)", dataset, PlotOrientation.VERTICAL, true, false, false); //集中解决中文乱码问题
chart.getTitle().setFont(new Font("微软雅黑", Font.BOLD, 30));
//设置底部bar中的字体样式
chart.getLegend().setItemFont(new Font("微软雅黑", Font.ITALIC, 20)); CategoryPlot categoryPlot=chart.getCategoryPlot();
//设置横坐标字体的样式
categoryPlot.getDomainAxis().setLabelFont(new Font("微软雅黑", Font.PLAIN, 15));
//设置横坐标小字体标题的样式
categoryPlot.getDomainAxis().setTickLabelFont(new Font("微软雅黑",Font.PLAIN,14)); //设置纵坐标标题的字体样式
categoryPlot.getRangeAxis().setLabelFont(new Font("微软雅黑",Font.PLAIN,15)); ChartUtilities.saveChartAsJPEG(new File("d:/bar.jpg"), chart, 800, 500);
System.out.println("图表生成完毕");
}
}

效果图如下:

  【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】

    线条不够明显,解决方法就是加粗线条。

 LineAndShapeRenderer renderer=(LineAndShapeRenderer) categoryPlot.getRenderer();
renderer.setSeriesStroke(0, new BasicStroke(3F));
renderer.setSeriesStroke(1, new BasicStroke(3F));
renderer.setSeriesStroke(2, new BasicStroke(3F));
renderer.setSeriesStroke(3, new BasicStroke(3F));

    加粗线条之后的效果图:

   【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】

    试试3D效果:设置3D效果之后设置线条粗细就无效了。

JFreeChart chart=ChartFactory.createLineChart3D(title, "季度", "销量(万台)", dataset, PlotOrientation.VERTICAL, true, false, false);

    【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】

    这是设置了前景色透明度为0.8的效果。

categoryPlot.setForegroundAlpha(0.8F);

    实现的完整代码:

 package com.kdyzm.test.appline;

 import java.awt.BasicStroke;
import java.awt.Font;
import java.io.File; import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
/**
* 折线图的生成方式和柱状图的生成方式几乎没有区别,但是最好设置一下线条的粗细,否则很难看
* @author kdyzm
*
*/
public class AppLine {
public static void main(String[] args) throws Exception {
//提供数据集合
DefaultCategoryDataset dataset=new DefaultCategoryDataset();
dataset.addValue(100,"IBM", "第一季度");
dataset.addValue(103,"Oracle", "第一季度");
dataset.addValue(1000,"JBoss", "第一季度");
dataset.addValue(208,"用友", "第一季度"); dataset.addValue(2477,"IBM", "第二季度");
dataset.addValue(2343,"Oracle", "第二季度");
dataset.addValue(987,"JBoss", "第二季度");
dataset.addValue(3473,"用友", "第二季度"); dataset.addValue(1890,"IBM", "第三季度");
dataset.addValue(2980,"Oracle", "第三季度");
dataset.addValue(3889,"JBoss", "第三季度");
dataset.addValue(2890,"用友", "第三季度"); dataset.addValue(2347,"IBM", "第四季度");
dataset.addValue(1340,"Oracle", "第四季度");
dataset.addValue(2340,"JBoss", "第四季度");
dataset.addValue(3000,"用友", "第四季度"); //生成图表的进程
String title="一年之中各大公司Java EE AS销售统计";
JFreeChart chart=ChartFactory.createLineChart3D(title, "季度", "销量(万台)", dataset, PlotOrientation.VERTICAL, true, false, false); //集中解决中文乱码问题
chart.getTitle().setFont(new Font("微软雅黑", Font.BOLD, 30));
//设置底部bar中的字体样式
chart.getLegend().setItemFont(new Font("微软雅黑", Font.ITALIC, 14));
CategoryPlot categoryPlot=chart.getCategoryPlot();
//设置横坐标字体的样式
categoryPlot.getDomainAxis().setLabelFont(new Font("微软雅黑", Font.PLAIN, 15));
//设置横坐标小字体标题的样式
categoryPlot.getDomainAxis().setTickLabelFont(new Font("微软雅黑",Font.PLAIN,14)); //设置纵坐标标题的字体样式
categoryPlot.getRangeAxis().setLabelFont(new Font("微软雅黑",Font.PLAIN,15));
//设置前景色透明度
categoryPlot.setForegroundAlpha(0.8F); //设置折线粗细
/*LineAndShapeRenderer renderer=(LineAndShapeRenderer) categoryPlot.getRenderer();
renderer.setSeriesStroke(0, new BasicStroke(3F));
renderer.setSeriesStroke(1, new BasicStroke(3F));
renderer.setSeriesStroke(2, new BasicStroke(3F));
renderer.setSeriesStroke(3, new BasicStroke(3F));*/ ChartUtilities.saveChartAsJPEG(new File("d:/appLine.jpg"), chart, 800, 500);
System.out.println("折线图表生成完毕");
}
}

【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】的更多相关文章

  1. 【Java EE 学习 74 下】【数据采集系统第六天】【使用Jfreechart的统计图实现】【将JFreechart整合到项目中】

    之前说了JFreechart的基本使用方法,包括生成饼图.柱状统计图和折线统计图的方法.现在需要将其整合到数据采集系统中根据调查结果生成三种不同的统计图. 一.统计模型的分析和设计 实现统计图显示的流 ...

  2. 【Java EE 学习 80 上】【WebService】

    一.WebService概述 什么是WebService,顾名思义,就是基于Web的服务,它使用Http方式接收和响应外部系统的某种请求,从而实现远程调用.WebService实际上就是依据某些标准, ...

  3. 【Java EE 学习 35 上】【strus2】【类型转换器】【struts2和Servlet API解耦】【国际化问题】【资源文件乱码问题已经解决】

    一.类型转换器 1.在动作类action中,声明和表单中name属性的值同名的属性,提供get和set方法,struts2就可以通过反射机制,从页面中获取对应的内容 package com.kdyzm ...

  4. 【Java EE 学习 25 上】【网上图书商城项目实战】

    一.概述 1.使用的jdk版本:1.6 2.java EE版本:1.6 3.指导老师:传智播客 王建 二.小项目已经实现的功能 普通用户: 1.登陆 2.注册 3.购物 4.浏览 管理员用户(全部管理 ...

  5. 【Java EE 学习 78 上】【数据采集系统第十天】【Service使用Spring缓存模块】

    一.需求分析 调查问卷中或许每一个单击动作都会引发大量的数据库访问,特别是在参与调查的过程中,只是单击“上一页”或者“下一页”的按钮就会引发大量的查询,必须对这种问题进行优化才行.使用缓存策略进行查询 ...

  6. 【Java EE 学习 77 上】【数据采集系统第九天】【通过AOP实现日志管理】【通过Spring石英调度动态生成日志表】【日志分表和查询】

    一.需求分析 日志数据在很多行业中都是非常敏感的数据,它们不能删除只能保存和查看,这样日志表就会越来越大,我们不可能永远让它无限制的增长下去,必须采取一种手段将数据分散开来.假设现在整个数据库需要保存 ...

  7. 【Java EE 学习 76 上】【数据采集系统第八天】【角色授权】【用户授权】【权限的粗粒度控制】【权限的细粒度控制】

    一.角色管理 单击导航栏上的"角色管理"超链接,跳转到角色管理界面,在该界面上显示所有角色,并提供角色的增加和删除.修改超链接. 1.增加新角色(角色授权) 流程:单击增加新角色超 ...

  8. 【Java EE 学习 72 上】【数据采集系统第四天】【增加调查logo】【文件上传】【动态错误页指定】【上传限制】【国际化】

    增加logo的技术点:文件上传,国际化 文件上传的功能在struts2中是使用文件上传拦截器完成的. 1.首先需要在页面上添加一个文件上传的超链接. 点击该超链接能够跳转到文件上传页面.我给该表单页面 ...

  9. 【Java EE 学习 75 上】【数据采集系统第七天】【二进制运算实现权限管理】【权限分析和设计】

    一.权限计算相关分析 1.如何存储权限 首先说一下权限保存的问题,一个系统中最多有多少权限呢?一个大的系统中可能有成百上千个权限需要管理.怎么保存这么多的权限?首先,我们使用一个数字中的一位保存一种权 ...

随机推荐

  1. 封装一个mysql类(ggshop)

    接口 abstract class db{ //连接服务器 public abstract function connect($n,$u,$p); //发送查询 protected abstract ...

  2. spark发行版笔记10

    感谢DT大数据梦工厂支持提供技术支持,DT大数据梦工厂专注于Spark发行版定制. 本期概览: 数据接收全生命周期的思考 大数据处理框架中,最重要的就是性能,性能是排在前面的.其次再考虑其他的.因为数 ...

  3. cnodejs社区论坛4--话题列表

  4. BZOJ3438 小M的作物

    AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=3438 这题觉得和上题有点类似吧. 如果没有联合在一起的收成,可以比较好做[我们将属于A的表 ...

  5. 执行CMD命令

    可以执行多条命令,用“\r\n”分割 using System; using System.Diagnostics; namespace Tool { public class CMDHelper { ...

  6. CentOS安装MySQL问题汇总

    遇到的错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) denied for ...

  7. Android系统开发(2)——GDB调试工具

    调试的过程 我们在eclipse中来看一下一般调试的过程: 1.debug模式编译 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGF3YW5nYW5iY ...

  8. Cloud9 on Docker镜像发送

    老外有做过几个cloud9的镜像,但是都有各种各样的问题. 小弟在此做了一个docker镜像,特此分享,希望各位大佬多提宝贵意见.谢谢. Cloud9 Online IDE Coding anywhe ...

  9. zookeeper应用与原理学习总结

    一.什么是zookeeper Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群 ...

  10. docker常用常用删除操作

    文章参考 https://blog.csdn.net/superdangbo/article/details/78688904 https://www.cnblogs.com/jackadam/p/8 ...