Java——基础语法(二)

2023-10-29

前言

在这里插入图片描述
「作者主页」雪碧有白泡泡
「个人网站」雪碧的个人网站
「推荐专栏」

java一站式服务
React从入门到精通
前端炫酷代码分享
从0到英雄,vue成神之路
uniapp-从构建到提升
从0到英雄,vue成神之路
解决算法,一个专栏就够了
架构咱们从0说
数据流通的精妙之道
后端进阶之路

请添加图片描述
在这里插入图片描述

继上一篇Java——基础语法(一)后的续文

5. 继承与多态:

Java支持继承和多态。继承是一种面向对象编程的重要技术,它可以使一个新的类获取已有类的属性和方法。多态指的是同一个方法在不同情况下表现出不同的行为。

下面我将详细介绍Java中的继承与多态。

继承的基本概念

在Java中,继承是一种面向对象编程的机制,它允许一个类从另一个类继承属性和行为。被继承的类称为父类或基类,继承的类称为子类或派生类。继承使得代码重用更加容易,同时也提高了代码的可读性和可维护性。

Java中使用关键字extends来实现继承关系,示例代码如下:

public class Animal {
    public void eat() {
        System.out.println("Animal is eating.");
    }
}

public class Dog extends Animal {
    public void bark() {
        System.out.println("Dog is barking.");
    }
}

在上面的代码中,Dog类继承自Animal类,因此Dog类具有父类Animal中的成员方法eat()。

继承的特点

  • 子类可以继承父类的成员变量和成员方法,包括公有、受保护和默认访问级别的成员。
  • 子类可以重写父类的成员方法以实现特定需求。
  • 子类可以添加新的成员变量和成员方法,以满足特定需求。
  • 子类不能直接访问父类的私有成员变量和私有成员方法,但可以通过父类的公有或受保护成员方法来访问。

多态的基本概念

多态是面向对象编程中的一种特性,它允许不同的对象对同一消息做出不同的响应。在Java中,多态可以通过方法重载和方法重写来实现。

  • 方法重载:方法重载是指在一个类中定义多个具有相同方法名但参数列表不同的方法。Java会根据方法的参数列表来决定调用哪个方法。
  • 方法重写:方法重写是指在子类中对父类的某个方法进行重新定义。子类重写的方法必须与父类的方法具有相同的名称、参数列表和返回类型,并且访问修饰符不能更严格。

示例代码:

public class Animal {
    public void eat() {
        System.out.println("Animal is eating.");
    }
}

public class Dog extends Animal {
    @Override
    public void eat() {
        System.out.println("Dog is eating bones.");
    }
}

public class Cat extends Animal {
    @Override
    public void eat() {
        System.out.println("Cat is eating fish.");
    }
}

上述代码中,Dog类和Cat类都重写了父类Animal中的eat()方法。当调用eat()方法时,Java虚拟机会根据具体调用的对象类型来决定调用哪个方法。

多态的实现方式

在Java中,多态有两种实现方式:通过继承和接口来实现多态。

  • 通过继承实现多态:

    在继承体系中,父类指针可以指向子类对象。使用父类的引用变量来调用重写的方法时,Java虚拟机会根据具体调用的对象类型来决定调用哪个方法。

    示例代码:

    Animal ani1 = new Dog();
    Animal ani2 = new Cat();
    ani1.eat();   // 输出:Dog is eating bones.
    ani2.eat();   // 输出:Cat is eating fish.
    
  • 通过接口实现多态:

    接口是一种特殊的抽象类,它只定义了方法的声明而没有提供方法的实现。一个类可以实现多个接口,从而具有不同的行为特征。Java中通过将对象引用转换为接口类型来实现多态。使用接口的引用变量来调用实现类中的方法时,Java虚拟机会根据具体调用的对象类型来决定调用哪个方法。

示例代码:

interface Shape {
    void draw();
}

class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("Draw a circle.");
    }
}

class Rectangle implements Shape {
    @Override
    public void draw() {
        System.out.println("Draw a rectangle.");
    }
}

public class Main {
    public static void main(String[] args) {
        Shape s1 = new Circle();
        Shape s2 = new Rectangle();
        s1.draw();  // 输出:Draw a circle.
        s2.draw();  // 输出:Draw a rectangle.
    }
}

在上述代码中,Circle和Rectangle类都实现了Shape接口,并重写了接口中的draw()方法。当使用接口的引用变量来调用实现类中的方法时,Java虚拟机会根据具体调用的对象类型来决定调用哪个方法。

强制类型转换

在Java中,可以使用强制类型转换将父类引用变量转换为子类引用变量,以方便访问子类特有的成员。

示例代码:

Animal ani = new Dog();
if (ani instanceof Dog) {
    Dog d = (Dog)ani;
    d.bark();
}

在上述代码中,ani是一个Animal类的引用变量,但它指向的是一个Dog类的实例。通过使用instanceof运算符可以判断ani是否指向了一个Dog类的实例。如果是,则可以使用强制类型转换将ani转换为Dog类型,以便访问Dog类特有的方法bark()。

需要注意的是,如果进行强制类型转换时,实际对象不是所需类型的子类,会抛出ClassCastException异常。因此,在进行强制类型转换之前,最好先使用instanceof运算符进行类型检查。
6. 调用父类的构造方法

在Java中,子类继承了父类的所有属性和方法,但并没有继承父类的构造方法。因此,在子类的构造方法中调用父类的构造方法是非常必要的,以确保父类的成员变量得到正确的初始化。

在子类的构造方法中使用super关键字来调用父类的构造方法。如果父类有多个构造方法,则可以通过super关键字指定需要调用的构造方法。

示例代码:

public class Animal {
    private String name;
    public Animal(String name) {
        this.name = name;
    }
}

public class Dog extends Animal {
    private int age;
    public Dog(String name, int age) {
        super(name);  // 调用父类的构造方法
        this.age = age;
    }
}

在上述代码中,Dog类继承自Animal类,并在其构造方法中调用了Animal类的构造方法。

抽象类与抽象方法

抽象类是一种特殊的类,它不能被实例化,只能作为其他类的父类使用。抽象类中可以包含抽象方法,抽象方法没有具体的实现,只有方法的声明。

在Java中,使用abstract关键字来定义一个抽象类或抽象方法。如果一个类包含抽象方法,则这个类必须是抽象类。

示例代码:

abstract class Shape {
    abstract void draw();
}

class Circle extends Shape {
    @Override
    void draw() {
        System.out.println("Draw a circle.");
    }
}

class Rectangle extends Shape {
    @Override
    void draw() {
        System.out.println("Draw a rectangle.");
    }
}

在上述代码中,Shape类是一个抽象类,其中包含了一个抽象方法draw()。Circle类和Rectangle类都继承自Shape类,并实现了draw()方法。

需要注意的是,如果一个类继承了一个抽象类,则必须实现抽象类中的所有抽象方法,否则该类也必须声明为抽象类。

接口

接口是一种特殊的抽象类,它只定义了方法的声明而没有提供方法的实现。一个类可以实现多个接口,从而具有不同的行为特征。

在Java中,使用interface关键字来定义一个接口。接口中的方法默认都是公有的抽象方法,也可以定义常量和默认方法、静态方法。

示例代码:

interface Shape {
    double PI = 3.14;  // 定义常量
    void draw();       // 定义抽象方法
    default void show() {   // 定义默认方法
        System.out.println("This is a shape.");
    }
    static void info() {    // 定义静态方法
        System.out.println("This is a shape interface.");
    }
}

class Circle implements Shape {
    private double radius;
    public Circle(double radius) {
        this.radius = radius;
    }
    @Override
    public void draw() {
        System.out.println("Draw a circle with radius " + radius);
    }
}

在上述代码中,Shape接口定义了一个常量PI,以及一个抽象方法draw()、一个默认方法show()、一个静态方法info()。Circle类实现了Shape接口,并重写了其中的draw()方法。

需要注意的是,如果一个类实现了一个接口,则必须实现接口中的所有方法,否则该类必须声明为抽象类。

总结

继承和多态是面向对象编程中非常重要的概念。继承使得代码重用更加容易,同时也提高了代码的可读性和可维护性。多态是面向对象编程中一个非常强大的特性,它可以让不同的对象对同一消息做出不同的响应。

在Java中,使用extends关键字来实现继承关系,使用super关键字来调用父类的构造方法。多态可以通过方法重载和方法重写来实现,以及通过接口来实现。在进行强制类型转换时,需要注意进行类型检查,避免发生ClassCastException异常。此外,抽象类和接口也是面向对象编程中非常重要的概念,它们可以帮助我们更好地组织代码、封装数据和实现复杂功能。

6. 接口:

Java中的接口是一组抽象方法的集合。接口可以被类实现,而一个类也可以实现多个接口。接口使用interface关键字进行定义。
下面我将详细介绍Java中接口的概念、特点、使用方法及应用场景。

接口的概念

在Java中,接口是一种特殊的抽象类,它只包含方法定义和常量声明,而没有具体的方法实现。接口可以让多个不同的类实现相同的方法,从而达到代码重用的目的。同时,接口也可以用于实现回调机制(callback),即某个对象在特定情况下调用另一个对象的方法。

接口的特点

  • 接口中的所有方法都是公有的抽象方法,不包含具体的方法实现。
  • 接口中可以定义常量,但不能定义变量。
  • 接口不能被实例化,只能被实现。
  • 一个类可以实现多个接口。
  • 一个接口可以继承多个接口。

接口的使用方法

在Java中,使用关键字interface来定义一个接口。接口中的方法默认都是公有的抽象方法,可以在方法名前添加abstract关键字,但不是必须的。

示例代码:

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

在上述代码中,定义了一个Shape接口,其中包含了两个方法getArea()和getPerimeter(),这两个方法都是公有的抽象方法。该接口可以被其他类实现,以提供不同的形状计算面积和周长的功能。

接口的实现

在Java中,使用关键字implements来实现一个接口。一个类可以实现多个接口,实现接口的类必须实现接口中声明的所有方法。

示例代码:

public class Circle implements Shape {
    private double radius;
    public Circle(double radius) {
        this.radius = radius;
    }
    @Override
    public double getArea() {
        return Math.PI * radius * radius;
    }
    @Override
    public double getPerimeter() {
        return 2 * Math.PI * radius;
    }
}

在上述代码中,Circle类实现了Shape接口,并重写了其中的getArea()和getPerimeter()方法。

接口的继承

在Java中,接口也可以继承另一个接口,从而允许子接口继承父接口的方法定义。

示例代码:

public interface Drawable {
    void draw();
}

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

在上述代码中,Shape接口继承了Drawable接口,并扩展了两个新的方法getArea()和getPerimeter()。

接口的应用场景

  • 实现多态:接口可以让多个不同的类实现相同的方法,从而达到代码重用的目的。
  • 实现回调机制:接口可以用于实现回调机制,即某个对象在特定情况下调用另一个对象的方法。
  • 限制类的继承:接口可以作为一种约束,限制某个类的继承关系。如果某个类实现了某个接口,就必须实现该接口中声明的所有方法。
  • 定义常量:接口可以定义常量,供其他类使用。

总之,接口是Java中非常重要的概念之一,它可以让我们更好地组织代码、封装数据和实现复杂功能。在设计API时,接口也是非常常见的一种设计模式,它可以提高 API 的可扩展性和可维护性。

7. 泛型:

泛型是Java语言中的一个强大特性,它可以使代码更加灵活和安全。使用泛型可以将类型参数化,从而使代码更好地适应不同的数据类型。

好的,下面我将详细介绍Java中泛型的概念、特点、使用方法及应用场景。

泛型的概念

在Java中,泛型(Generic)是一种参数化类型的机制,它可以让我们定义一个类或方法,使其可以支持多种不同的数据类型。通俗地说,泛型就是把数据类型作为参数传递给类或方法,从而实现代码的重用和扩展。

泛型的特点

  • 泛型支持可编译时类型检查,能够在编译时发现类型错误。
  • 泛型可以减少代码重复,提高代码的可读性和可维护性。
  • 泛型可以增加程序的灵活性和扩展性。

泛型的使用方法

在Java中,使用尖括号<>来指定泛型类型,例如:

List<String> list = new ArrayList<>();

在上述代码中,List是一个泛型接口,其中包含了多个操作列表的方法,String表示元素的类型,ArrayList是一个基于数组实现的 List 接口的可变长度的数组序列。

泛型类

在Java中,我们可以定义一个泛型类,使其可以支持多种不同类型的对象。泛型类在定义时要在类名后面添加类型参数,如下所示:

public class Box<T> {
    private T data;
    public Box(T data) {
        this.data = data;
    }
    public T getData() {
        return data;
    }
}

在上述代码中,Box类是一个泛型类,其中定义了一个类型参数T,表示Box可以存储任意类型的数据。在创建Box对象时,需要指定T的具体类型。

泛型方法

在Java中,我们也可以定义一个泛型方法,使其可以支持多种不同类型的参数。泛型方法在定义时要在方法名前面添加类型参数,如下所示:

public class ArrayUtil {
    public static <T> void printArray(T[] array) {
        for (T element : array) {
            System.out.printf("%s ", element);
        }
        System.out.println();
    }
}

在上述代码中,printArray()是一个泛型方法,其中定义了一个类型参数T,表示该方法可以处理任意类型的数组。在调用printArray()方法时,需要指定T的具体类型。

通配符

在Java中,我们可以使用通配符(wildcard)来表示某种类型的子类或父类。

  • ? extends T 表示某种类型的子类。
  • ? super T 表示某种类型的父类。

示例代码:

public class Animal {}
public class Dog extends Animal {}

List<? extends Animal> list1 = new ArrayList<Dog>(); // 子类向父类转换
List<? super Dog> list2 = new ArrayList<Animal>(); // 父类向子类转换

在上述代码中,list1表示包含所有Animal的子类的List,可以接收Dog类型的List;list2表示包含所有Dog的父类的List,可以接收Animal类型的List。这样就可以实现子类向父类转换和父类向子类转换。

泛型的应用场景

  • 集合类:Java中的集合类(如List、Set、Map等)都是使用泛型来实现的。
  • 接口与抽象类:泛型可以被用于接口和抽象类中,使其支持多种不同类型的对象。
  • 类型安全:泛型可以保证编写类型安全的代码,避免了强制类型转换时的运行时错误。
  • 反射机制:泛型可以与反射机制相结合,使得我们可以在运行时获取到泛型信息。

总之,泛型是Java中非常重要的概念之一,泛型可以使我们在编译时发现类型错误,从而提高代码的健壮性和可读性。它还可以减少代码重复,提高代码的可维护性和可扩展性。

二,泛型不仅适用于类,还适用于方法。在定义泛型方法时,需要在方法名前面添加类型参数。

三,通配符是泛型中一个非常重要的概念,它可以用来表示某种类型的子类或父类。比如List<? extends Number>表示包含所有Number的子类的List,而List<? super Integer>表示包含所有Integer的父类的List。

四,泛型的应用场景非常广泛,常见的有集合类、接口和抽象类、类型安全和反射机制等等。

下面是一些使用泛型的示例代码:

泛型类

public class Box<T> {
    private T data;
    public Box(T data) {
        this.data = data;
    }
    public T getData() {
        return data;
    }
}

在上述代码中,Box是一个泛型类,其中定义了一个类型参数T,表示Box可以存储任意类型的数据。

泛型方法

public class ArrayUtil {
    public static <T> void printArray(T[] array) {
        for (T element : array) {
            System.out.printf("%s ", element);
        }
        System.out.println();
    }
}

在上述代码中,printArray()是一个泛型方法,其中定义了一个类型参数T,表示该方法可以处理任意类型的数组。

通配符

public class Animal {}
public class Dog extends Animal {}

List<? extends Animal> list1 = new ArrayList<Dog>(); // 子类向父类转换
List<? super Dog> list2 = new ArrayList<Animal>(); // 父类向子类转换

在上述代码中,list1表示包含所有Animal的子类的List,可以接收Dog类型的List;list2表示包含所有Dog的父类的List,可以接收Animal类型的List。这样就可以实现子类向父类转换和父类向子类转换。

泛型接口

public interface Comparable<T> {
    int compareTo(T o);
}

在上述代码中,Comparable是一个泛型接口,其中定义了一个类型参数T,表示Comparable可以比较任意类型的对象。

泛型枚举

public enum Color {RED, GREEN, BLUE}
public enum Size {SMALL, MEDIUM, LARGE}

public class Shirt<T extends Enum<T>> {
    private T color;
    private T size;
    public Shirt(T color, T size) {
        this.color = color;
        this.size = size;
    }
    public T getColor() {
        return color;
    }
    public T getSize() {
        return size;
    }
}

在上述代码中,Shirt是一个泛型类,其中定义了两个类型参数T和E。T必须是一个枚举类型(如Color或Size),E必须是实现了Comparable接口的类型。这样就可以创建一个泛型枚举类,用于表示衬衫的颜色和大小。

总之,泛型是Java中非常重要的概念之一,它可以让我们编写更健壮、更灵活和更可扩展的代码。在实际开发中,我们应该熟练掌握泛型的语法和使用方法,以便更好地完成自己的工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java——基础语法(二) 的相关文章

  • 如何在 Java 中访问嵌套的 HashMap?

    我有一个 Java 中的 HashMap 其中的内容 你们可能都知道 可以通过以下方式访问 HashMap get keyname 如果一个 HashMap 位于另一个 HashMap 中 即嵌套的 HashMap 我将如何访问内容 我可以
  • 将一种类型的对象声明为另一种类型的实例有什么好处? [复制]

    这个问题在这里已经有答案了 可能的重复 Base b2 new Child 是什么意思 表示 https stackoverflow com questions 4447924 what does base b2 new child sig
  • 在 Java 中从 SOAPMessage 获取原始 XML

    我已经在 J AX WS 中设置了 SOAP WebServiceProvider 但我无法弄清楚如何从 SOAPMessage 或任何 Node 对象获取原始 XML 下面是我现在获得的代码示例 以及我试图获取 XML 的位置 WebSe
  • 迁移到Java 9或更高版本时是否需要切换到模块?

    我们目前正在从 Java 8 迁移到 Java 11 但是 升级我们的服务并没有我们预期的那么痛苦 我们基本上只需要更改我们的版本号build gradle文件和服务都顺利启动并运行 我们升级了库以及使用这些库的 微 服务 到目前为止没有问
  • Android WebView文件上传

    我正在开发一个 Android 应用程序 基本上它是一个WebView和一个进度条 Facebook 的移动网站 m facebook com 已加载到WebView 当我单击 选择文件 按钮上传图像时 没有任何反应 我已经尝试了所有的解决
  • Kafka Java Consumer 已关闭

    我刚刚开始使用卡夫卡 我面临着消费者的一个小问题 我用Java写了一个消费者 我收到此异常 IllegalStateException 此消费者已关闭 我在以下行中遇到异常 ConsumerRecords
  • maven 无法下载 jacoco 0.7.10-SNAPSHOT jar

    我对此感到困惑 我的 pom xml 中有这个
  • LocalDate 减去 period 得到错误的结果

    LocalDate减去一个Period 如 28年1个月27天 得到错误的结果 但减去一个Period 只有天单位 如 10282 天 得到正确的结果 有什么需要注意的吗 public static void main String arg
  • java.lang.Object的hashCode具体使用的算法是什么

    中使用的算法是什么JVM实施java lang Object的隐含的hashCode 方法 OpenJDK or Oracle JDK答案中首选 它依赖于实现 并且在很大程度上 该算法是entirely取决于实施 只要它是一致的 但是 根据
  • 将现有 eclipse 项目导出到 war 文件时出现“模块名称无效”

    我正在尝试将现有 Eclipse 项目导出到 war 文件 但无论我在 WAR Export 对话框页面中输入什么 系统总是返回 模块名称无效 我不知道如何解决这个问题 谢谢您的帮助 我有同样的问题 我修复了它 请按照以下步骤操作 您可以创
  • 查找数组中的组合

    我在java中有一个像这样的二维数组 transmission communication tv television approach memorycode methodact 我需要获得所有组合 例如 transmission appr
  • 更改 JComboBox 中滚动条的大小

    有谁知道如何手动更改 jComboBox 中的滚动条大小 我已经尝试了一大堆东西 但没有任何效果 好吧 我明白了 您可以实现 PopUpMenuListener 并使用它 public void popupMenuWillBecomeVis
  • 改变 Java 中凯撒移位的方向

    用户可以通过选择 1 向左或 2 向右移动字母来选择向左或向右移动 左边工作正常 右边不行 现在它显示了完全相同的循环 但我已经改变了所有 and 以不同的方式进行标记 最终我总是得到奇怪的字符 如何让程序将字符向相反方向移动 如果用户输入
  • MongoDB java 驱动程序 3.0 在身份验证时无法捕获异常

    我超级卡住o 0 在尝试通过 Java 驱动程序进行身份验证时 存在捕获异常的问题 正如你可能会看到的Throwable类不工作 private MongoClient mongoClient private MongoDatabase m
  • JAXB 编组器无参数默认构造函数

    我想从 java 库中编组一个 java 对象 当使用 JAXB marschaller 编组 java 对象时 我遇到了一个问题 A 类没有无参数默认构造函数 我使用Java Decompiler来检查类的实现 它是这样的 public
  • 如何检查日期字符串的有效性?

    在我的项目中 我需要检查日期字符串是否计算为正确的日期对象 我决定允许 yyyy MM dd 和日期格式 年 月 日 和 年 月 日 小时 分钟 我如何检查它们是否有效 我的代码为 1980 01 01 和一些奇怪的日期 如 3837 05
  • 为什么我不能将 Collection 转换为 Collection>

    问题的关键是 为什么这会导致编译时错误 List
  • 使用自定义比较器在 Java 中创建 SortedMap

    我想创建一个TreeMap在 Java 中具有自定义排序顺序 排序后的键是字符串 需要根据第二个字符进行排序 这些值也是字符串 示例地图 Za FOO Ab Bar 您可以像这样使用自定义比较器 Comparator
  • 使用 AmazonSNSClient 发送短信时的授权

    aws 官方文档如何发送短信 http docs aws amazon com sns latest dg sms publish to phone html使用 java 中的 aws SDK 非常简单 但是 当发送如底部示例所示的消息时
  • 将数组值导出到 csv 文件 java

    我只需要帮助将数组元素导出到 csv 文件 我不知道我的代码有什么问题 任何帮助将不胜感激 谢谢 for int index 0 index lt cols length index FileWriter fw new FileWriter

随机推荐

  • 初始化和未初始化的全局变量

    一 初始化的全局变量存放在数据段 data segment 数据段数据静态分配 二 未初始化的全局变量存放在bss段 BSS是英文Block Started by Symbol的简称 BSS段属于静态内存分配 未初始化 这一说法其实并不准确
  • webm转换成mp4格式的几种方法详细介绍

    webm转换成mp4格式怎么转 WebM是一种支持高清视频和音频媒体的开放式多媒体格式 与VP8和VP9编解码器配合使用 具有良好的压缩性能和高质量的音视频效果 但是 在实际应用过程中 有些设备和软件不支持WebM格式 因此需要将WebM格
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • pointCloudsLibrary视频资料

    pointCloudsLibrary视频资料 版权 边缘疯狂试探 https www bilibili com video BV1JV411C7f3 前言 目前pointCloudsLibrary的资料很少 只有官网的文档 下面介绍一个点云
  • CTF的区块链入门资料

    文章目录 编写课件的心路历程 第一阶段 第二阶段 题目列表 靶场Security Innovation Blockchain CTF 合约逆向 其他 常用平台 区块链安全公司相关 编写课件的心路历程 第一阶段 查找半个小时 发现CTF区块链
  • Java8 Stream 分组求和使用笔记

    Java8 Stream 分组求和使用笔记 话不多说 直接贴代码 分组使用 class Foo private int code private int count public Foo int code int count this co
  • APS系列:二

    距上篇居然快一年了 汗 阶段总结真的不能停 否则过阵子就彻底淡忘了 年纪渐长 记性也指数下降 话说APS这个话题我已脱手半年多 懒是病 得治 APS在工业界 特别是制造行业是非常重要和核心的 可惜在学术界并不是研究热点 除了少数几个贼贵的行
  • jQuery 入门教程(32): jQuery UI Datepicker 示例(五)

    设置可以选择的日期范围 有时希望用户在给定的日期内选择 比如预约会议的时间 只能在当天开始的一个月带10天以内 这时可以通过配置minDate和maxDate 来设置 如果minDate或maxDate 没有配置 表示没有最小日期或最大日期
  • C语言最佳实践(B站学习)更新

    接口设计模式 为独立的网络请求模块设计的接口 select接口 不如epoll好 epoll 解决了select问题 将一个多个监听描述符的行为再抽象为一个文件描述符的监听 包括指针一起封装起来 浏览器的 从网络获取数据功能运行独立的网络进
  • Stable Diffusion控制人物脸部和手的方法

    目前Stable Diffusion在人体姿态控制方面已经取得了比较稳定的效果 但是在人脸和手部姿势的控制上还没有很好的解决 经常会出现崩手和崩脸的情况 01 After Detailer解决崩脸的问题 After Detailer是sd的
  • 梳理mavan使用流程,利用IDEA使用maven引入servlet包

    maven的引入 传统方式引入包 缺点 1 程序员自己手动导入包 2 自己解决版本冲突问题 3 自己解决相互依赖问题 4 自己解决包之间的冲突问题 因为包的导入的缺点 设计出更好 更简单的辅助管理程序 maven 大概的流程 利用IDEA使
  • ctfshow(web入门1-28)

    CTF SHOW 信息搜集 参考 https blog csdn net a597934448 article details 105431367 web1 右键查看源码得到flag web2 无法右键和F12查看源码 复制view sou
  • -bash: mysql: command not found

    问题描述 原因描述 系统默认会查找 usr bin下的命令 如果这个命令不在这个目录下 当然会找不到命令 我们需要做的就是映射一个链接到 usr bin目录下 相当于建立一个链接文件 解决方法 首先得知道mysql命令或mysqladmin
  • Struts2+MyBatis3.1.0+Spring3.1.0 整合之道一:数据映射器整合

    第一步 导入相应的jar包 第二步 Web xml文件中整合Struts2和Spring3 1 0
  • 表达式求值-递归

    表达式由项组成 项由因子组成 include
  • Sql Server Profiler Sql 事件探查器 使用方法

    如何进入事件探查器 开始 程序 SQL Server 2008 R2 Sql Server Profiler 点击打开可视窗口 点击新建事件跟踪 输入数据库用户名和密码 事件探查器重要列名解释 CPU 事件所使用的 CPU 时间总计 以毫秒
  • 微信小程序 本地资源图片无法通过 WXSS 获取,可以使用网络图片,或者 base64,或者使用image标签。

    微信小程序不能使用background image问题解决 报错信息 pages index index wxss 中的本地资源图片无法通过 WXSS 获取 可以使用网络图片 或者 base64 或者使用
  • 从零开始搭建vue项目 (晋级篇) npm run dev npm run build

    目录 一 前言 1 目标 2 搭建思路 3 环境准备 二 基础知识 1 包配置安装 npm install 2 运行项目 npm run dev 2 1 执行npm run dev 2 2 调用入口文件 webpack dev conf j
  • idea插件之Smart Tomcat

    IDEA中Smart Tomcat的部署和配置 由于idea版本原因需要自己安装Tomcat插件 但只有Smart Tomcat 并且与之前Tomcat的部署差别有点大 折腾了三个小时终于完成 分享下踩过的坑 社区版 1 安装smart t
  • Java——基础语法(二)

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 React从入门到精通 前端炫酷代码分享 从0到英雄 vue成神之路 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架