Java安全|03.Java基础语法(2)

00x1 单例模式

  1. 定义:

    • 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

    • 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

  2. 应用场景

    • 类的构造过程复杂,需要经过多个步骤,如果让外部直接构造,可能会缺失部分步骤
    • 需要频繁的创建或销毁的对象
    • 创建对象耗时过多或消耗的资源过多,但又经常用到对象
  3. 简单示例

    public class Main {
    public static void main(String[] args) {
    SingleObject dome1 = SingleObject.getInstance();
    //通过getInstance()方法获取SingleObject类的实例对象
    SingleObject dome2 = SingleObject.getInstance();
    //主函数当中使用此类的getInstance()函数,即可得到系统当前已经实例化的该类对象,若当前系统还没有实例化过这个类的对象,则调用此类的构造函数
    System.out.println("dome1 = " + dome1);
    System.out.println("dome2 = " + dome2);
    System.out.println(dome1.equals(dome2));
    //equals()方法比较两个对象是否相同
    }
    }
    class SingleObject{
    private static SingleObject singleObject = null;
    private SingleObject(){
    }
    public static SingleObject getInstance(){
    if (singleObject == null) {
    singleObject = new SingleObject();
    //判断对象singleObject对象是否为null。若是则创建;若否则返回已有的对象。
    }
    return singleObject;
    }
    } >>>
    dome1 = SingleObject@682a0b20
    dome2 = SingleObject@682a0b20
    true

00x2 final关键字

  1. java中提供了一种语法,可以在数据初始化后不被修改,使用关键字final。
  2. final可以修改的对象
    • 修饰变量。修饰类中的变量需要对变量进行初始化,一般将final修饰的变量称为常量。
    • 修饰方法。被final修饰的方法不能被重写。且final不允许修饰构造方法。
    • 修饰类。被final修饰的类不能被继承。
    • 修饰方法参数。一旦修饰,参数无法修改。

00x3 抽象

  1. 定义

    • 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
  2. 抽象方法:只有声明,没有实现的方法称为抽象方法。

    • 语法:abstract 返回值类型 方法名(参数);
  3. 抽象类:不完整的类就是抽象类。包含抽象方法的类一定是抽象类,但是反之抽象类的方法不一定是抽象方法。

    • 语法 abstract class 类名

    • 抽象类无法实例化

    • 抽象类无法直接构造对象,但是可以通过子类间接构造对象.

    • 一个类只能继承一个抽象类。

    • 如果抽象类中含有抽象方法,子类继承时必须重写抽象方法。

      //demo1
      public class Abstract {
      public static void main(String[] args) {
      Fruits apple = new Fruits() {
      @Override
      void color() {
      System.out.println("apple is red");
      }
      };//对方法进行重写
      apple.color();
      }
      }
      abstract class Fruits{
      String fruitName;
      abstract void color();
      }
      >>>
      apple is red //demo2
      public class Abstract {
      public static void main(String[] args) {
      Apple apple = new Apple();
      apple.color();
      }
      } abstract class Fruits{
      String fruitName;
      abstract void color();
      } class Apple extends Fruits{
      @Override
      void color() {
      System.out.println("apple is red");
      }
      }
      >>>
      apple is red

Java基础|03.基础语法(2)的更多相关文章

  1. Java入门 - 语言基础 - 03.基础语法

    原文地址:http://www.work100.net/training/java-basic-syntax.html 更多教程:光束云 - 免费课程 基础语法 序号 文内章节 视频 1 第一个Jav ...

  2. java基础-03基本语法

    关键词 常用关键字53个(含2个保留字): 1.保留关键字(2个) const --常量 常数:用于修改字段或局部变量的声明. goto--转到 指定跳转到标签,找到标签后,程序将处理从下一行开始的命 ...

  3. 023 01 Android 零基础入门 01 Java基础语法 03 Java运算符 03 算术运算符之——自增自减运算符

    023 01 Android 零基础入门 01 Java基础语法 03 Java运算符 03 算术运算符之--自增自减运算符 本文知识点:Java算术运算符中的自增自减运算符 自增自减运算符 之前我们 ...

  4. 003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程

    003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程 Java程序长啥样? 首先编写一个Java程序 记事本编写程序 打开记事本 1.wi ...

  5. 086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结

    086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结 本文知识点:面向对象基础(类和对象)总结 说明 ...

  6. Java多线程系列--“基础篇”03之 Thread中start()和run()的区别

    概要 Thread类包含start()和run()方法,它们的区别是什么?本章将对此作出解答.本章内容包括:start() 和 run()的区别说明start() 和 run()的区别示例start( ...

  7. Java基础之基础语法

    前言:Java内功心法之基础语法,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 一个Java程序可以认为是一系列对象的集合,而这些对象通过调 ...

  8. # 095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 03 封装总结 01 封装知识点总结

    095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  9. 098 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 02 编写并测试Subject类

    098 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 02 编写并测试Subject类 本文知识点:编写并测试Subject类 说明: ...

  10. 099 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 03 编写并测试Student类

    099 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 03 编写并测试Student类 本文知识点:编写并测试Subject类 说明: ...

随机推荐

  1. uniapp打包h5

    1. 找到项目中 manifest.json --- H5 配置---运行时的基础路径, 将路径修改为 相对路径(./ ) 注意: 1.运行的基础路径系统默认打包路径为绝对路径,如不改,打包时找不到对 ...

  2. python3.10.0字符串基础

    字符串支持 索引 (下标访问),第一个字符的索引是 0.单字符没有专用的类型,就是长度为一的字符串: >>> word = 'Python' >>> word[0] ...

  3. 监控可视化nagios xi

    官网下载 https://www.nagios.com/downloads/nagios-xi/linux/ 也可以手动下载解压并安装 cd /tmp wget https://assets.nagi ...

  4. Wix打包升级包

    前面我们已经知道怎么制作一个完整安装包了,但我们的软件往往不能一次性就满足客户的需要,当客户需要我们给软件进行升级的时候,我们应该怎么做呢? 在这之前,我们有必要了解下Windows Installe ...

  5. 【阿里云ACP】-01(阿里云综述、弹性计算)

    课程能力 课程范围 ECS 磁盘 实例 磁盘 快照 镜像 网络 安全组 AS 伸缩组 伸缩配置 伸缩规则 伸缩活动 伸缩触发任务 伸缩模式 冷却时间 SLB 定义 实现原理 支持的协议 绘画保持 健康 ...

  6. CPU、内存的占用率

    要获取不包含百分比符号的内存占用率: #free -t | awk 'NR ==2 {print "Current Memory Utilization is: "$3/$2*10 ...

  7. Tushare金融大数据开放社区 - 数据抽取案例学习

    进入平台介绍 扫码立即注册,更多大数据等你来探索 ! 案例: 导入tushare import tushare as ts 这里注意, tushare版本需大于1.2.10 设置token ts.se ...

  8. Docker 详解

    1.docker 基础 https://blog.csdn.net/huangjhai/article/details/118854733 2.docker进阶 https://blog.csdn.n ...

  9. UI设计圈年终福利,错过一次等一年!

    年底了,小摹发现各种大数据年终报告接踵而至.但真相是,某博不知道和你互动最多的是个机器人,某Q不知道听歌最久那天只是忘了关APP.大数据不懂你,但是摹客懂你! 设计萌新更希望大佬能在线帮忙改稿. 5年 ...

  10. 使用supervisor 管理 laravel 框架中的进程

    前言:在laravel中,经常要在项目根目录下执行 php artisan queue:work  来执行队列中的任务,由此,我们想到用supervisor来管理这个进程 Supervisor是用Py ...