文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

从接口到大数据:Java学习笔记分享

2023-10-17 03:26

关注

Java是目前最流行的编程语言之一,它被广泛应用于Web开发、移动应用开发、企业应用开发等领域。本文将分享我在学习Java过程中的一些笔记和心得,内容涵盖从接口到大数据的知识点。

一、接口

接口是Java中的一种特殊的类,它只包含抽象方法和常量,没有实例变量和普通方法。接口可以被其他类实现,实现接口的类需要实现接口中定义的所有抽象方法。接口的作用是实现多态,也方便代码的扩展和维护。

下面是一个简单的接口示例:

public interface Shape {
  double getArea();
  double getPerimeter();
}

这个接口定义了两个抽象方法,分别用于计算图形的面积和周长。下面是一个实现该接口的类:

public class Rectangle implements Shape {
  private double width;
  private double height;

  public Rectangle(double width, double height) {
    this.width = width;
    this.height = height;
  }

  public double getArea() {
    return width * height;
  }

  public double getPerimeter() {
    return 2 * (width + height);
  }
}

这个类实现了Shape接口,并根据需要实现了getArea和getPerimeter方法。这样,我们就可以通过Shape类型的变量来引用Rectangle对象,实现多态的效果。

二、异常处理

在Java中,异常是指程序运行过程中遇到的错误或异常情况。Java提供了异常处理机制,可以在程序中捕获和处理异常,避免程序崩溃或出现不可预期的错误。

下面是一个简单的异常处理示例:

public class Calculator {
  public static double divide(double num1, double num2) {
    if (num2 == 0) {
      throw new IllegalArgumentException("除数不能为0");
    }
    return num1 / num2;
  }

  public static void main(String[] args) {
    try {
      double result = divide(10, 0);
      System.out.println(result);
    } catch (Exception e) {
      System.out.println(e.getMessage());
    }
  }
}

这个程序定义了一个除法运算方法divide,如果除数为0,则抛出IllegalArgumentException异常。在main方法中,我们使用try-catch语句捕获了这个异常,并输出了异常信息。这样,即使输入的除数为0,程序也不会崩溃,而是会输出相应的错误信息。

三、多线程

多线程是指在一个程序中同时执行多个线程。Java提供了多线程支持,可以让程序同时执行多个任务,提高程序的性能和效率。

下面是一个简单的多线程示例:

public class MyThread extends Thread {
  private String name;

  public MyThread(String name) {
    this.name = name;
  }

  public void run() {
    for (int i = 0; i < 10; i++) {
      System.out.println(name + "运行:" + i);
      try {
        sleep((int)(Math.random() * 1000));
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }
  }

  public static void main(String[] args) {
    MyThread thread1 = new MyThread("线程1");
    MyThread thread2 = new MyThread("线程2");
    thread1.start();
    thread2.start();
  }
}

这个程序定义了一个MyThread类,继承了Thread类,并重写了run方法。在run方法中,我们使用for循环模拟了线程的运行过程,并使用sleep方法让线程随机休眠一段时间。在main方法中,我们创建了两个MyThread对象,并分别启动了这两个线程。这样,程序就会同时执行这两个线程,并输出相应的运行结果。

四、大数据

大数据是指数据量非常庞大、处理复杂、结构多样的数据集合。Java是大数据处理的主要编程语言之一,提供了丰富的大数据处理框架和工具。

下面是一个简单的Hadoop示例:

public class WordCount {
  public static void main(String[] args) throws Exception {
    Configuration conf = new Configuration();
    Job job = Job.getInstance(conf, "word count");
    job.setJarByClass(WordCount.class);
    job.setMapperClass(TokenizerMapper.class);
    job.setCombinerClass(IntSumReducer.class);
    job.setReducerClass(IntSumReducer.class);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);
    FileInputFormat.addInputPath(job, new Path(args[0]));
    FileOutputFormat.setOutputPath(job, new Path(args[1]));
    System.exit(job.waitForCompletion(true) ? 0 : 1);
  }

  public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable> {
    private final static IntWritable one = new IntWritable(1);
    private Text word = new Text();

    public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
      StringTokenizer itr = new StringTokenizer(value.toString());
      while (itr.hasMoreTokens()) {
        word.set(itr.nextToken());
        context.write(word, one);
      }
    }
  }

  public static class IntSumReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
    private IntWritable result = new IntWritable();

    public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
      int sum = 0;
      for (IntWritable val : values) {
        sum += val.get();
      }
      result.set(sum);
      context.write(key, result);
    }
  }
}

这个程序使用Hadoop框架实现了一个简单的词频统计功能。在main方法中,我们创建了一个Job对象,并设置了一些参数,包括输入和输出路径、Mapper和Reducer类等。在Mapper类中,我们实现了map方法,用于对输入数据进行分词并计数。在Reducer类中,我们实现了reduce方法,用于对Mapper输出的结果进行合并。最后,我们调用waitForCompletion方法运行这个Job,并输出相应的结果。

总结

本文介绍了Java中的接口、异常处理、多线程和大数据处理等知识点,并给出了相应的示例代码。这些知识点都是Java编程中非常重要的部分,掌握它们可以帮助我们更好地理解和应用Java编程语言。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯