多态

什么是多态?

同一个对象在不同时刻表现出来的不同形态(多种形态)

例:Cat extends Animal

第一种形态:Cat c1 = new Cat(); //c1是只猫

第二种形态:Animal c2 = new Cat(); //c2是个动物

(多种形态)举例:数字:2
十进制:2
二进制:00000010

多态的前提 ?

1 有继承/实现关系

2 有方法的重写
3 父类的引用指向子类的对象

多态的使用?

//多态的代码体现格式
父类型 对象 = new 子类();//大类型包含小类型 int a = 10; long b = a;

多态代码的书写:1. 创建对象//父类型  父引用 = new 子类()Father f = new Son();2. 作为参数public void method( Father f ){f.方法()}3. 作为返回值public Animal getInstance(){//返回:子类对象return new Cat();}

多态在程序中解决什么问题?

1.提高代码的复用性

2.提高代码的扩展性

public interface Player{public abstract void play();public abstract void stop();
}
public MP3 implements Player{public void play(){System.out.println("mp3播放");}public void stop(){System.out.println("mp3停止");}
}
public MP4 implements Player{public void play(){System.out.println("mp4播放");}public void stop(){System.out.println("mp4停止");}
}
public static void main(String[] args){MP3 mp3 = new MP3();method(mp3);
MP4 mp4 = new MP4();method(mp4);
}
//多态的体现:Player p = new MP3/MP4();
public static void method(Player p){//Player p = mp3
p.play();
p.stop();
}
}//集合:ArrayList类 implements List接口
List list = new ArrayList();
需要改的时候(体现扩展性)List list = new LinkedList();

多态在使用时的注意细节?

1. 多态中:父类和子类拥有一模一样的成员变量时:

编译时:以父类型中的成员变量为主

运行时:使用父类中的成员变量

2. 多态中:父类和子类拥有一模一样的成员方法时:

编译时:以父类中的成员方法为主(检查父类中有没有这个成员方法,没有:报错)

运行时:以子类中的成员方法为主(调用子类对象中重写后的成员方法)

public class Father {int num = 100;public void show() {System.out.println("父类的show方法");}
}
public class Son extends Father {//成员变量int num = 10;//成员方法public void show() {System.out.println("子类的show方法");}public void show2(){System.out.println("子类特有的方法");}}
public class Test {public static void main(String[] args) {// 父类的引用指向子类的对象Father f = new Son();// 多态对象调用成员变量:调用的是父类的成员变量System.out.println(f.num);// 多态对新对象调用成员方法f.show();// 多态对象不能调用子类特有的方法// f.show2();//向下转型Son s = (Son)f;//子类 对象 = (子类) 父引用;s.show2();}
}
运行结果:
100
子类的show方法
子类特有的方法

多态的优缺点

多态的好处:提高了程序的扩展性,灵活性

多态形式体现(使用方向):

1. 定义方法的时候,使用父类型作为参数,该方法就可以接收这父类的任意子类对象

2 .定义方法的时候, 使用父类作为方法的返回值类型 , 该方法可以返回此父类任意子类对象

3. 定义变量时 , 用父类类型变量接收子类类型对象

多态的弊端:不能使用子类的特有功能

多态转型

向上转型(自动类型提升)
例:int a =10; long num = a;

//多态: 父类型 父引用 = new 子类(); //子类型变为:父类型 (弊端:父引用不能使用子类特有成员)

向下转型(强制类型转换) //解决的问题: 父引用不能使用子类中特有成员
例:long a =100L; int b = (int) a;

//多态的向下转型: 子类 对象 = (子类) 父引用;

注意细节:

向下转型时容易发生:

java.lang.ClassCastException(类型转换异常)

解决方案:instanceof

if( 父引用对象  instanceof 子类型 ){          
子类型 对象 = (子类型)父引用对象;          
对象.特有成员     
}
public abstract class Animal {private String breed;private String color;public Animal() {}public Animal(String breed, String color) {this.breed = breed;this.color = color;}public String getBreed() {return breed;}public void setBreed(String breed) {this.breed = breed;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public abstract void eat();
}
-------------------------------------------------------------
public class Cat extends Animal {public Cat() {}public Cat(String breed, String color) {super(breed, color);}@Overridepublic void eat() {System.out.println("猫吃鱼...");}public void catchMouse() {System.out.println("抓老鼠...");}
}
------------------------------------------------------------
public class Dog extends Animal {public Dog() {}public Dog(String breed, String color) {super(breed, color);}@Overridepublic void eat() {System.out.println("狗吃骨头!");}public void lookDoor(){System.out.println("狗看门...");}
}
----------------------------------------------------------------
public class Pig extends Animal {public Pig() {}public Pig(String breed, String color) {super(breed, color);}@Overridepublic void eat() {System.out.println("猪拱白菜...");}public void sleep() {System.out.println("一直再睡...");}
}
---------------------------------------------------------------
public class Test {public static void main(String[] args) {useAnimal(new Cat());//匿名对象作为参数传递到方法中System.out.println("---------");useAnimal(new Dog());System.out.println("---------");useAnimal(new Pig());}//使用多态:参数为父类型//向下转型public static void useAnimal(Animal animal){animal.eat();if(animal instanceof Cat){Cat cat = (Cat) animal;cat.catchMouse();}else if(animal instanceof Dog){Dog dog = (Dog)animal;dog.lookDoor();} else if (animal instanceof Pig) {Pig pig = (Pig) animal;pig.sleep();}}//    // 定义一个使用猫类的方法
//    public static void useAnimal(Cat c) {// Cat c = new Cat();
//        c.eat();
//        c.catchMouse();
//    }
//
//    // 定义一个使用狗类的方法
//    public static void useAnimal(Dog d) {// Dog d = new Dog();
//        d.eat();
//        d.lookDoor();
//    }
//
//    // 定义一个使用猪类的方法
//    public static void useAnimal(Pig p) {// Pig p = new Pig();
//        p.eat();
//        p.sleep();
//    }}
运行结果:
猫吃鱼...
抓老鼠...
---------
狗吃骨头!
狗看门...
---------
猪拱白菜...
一直再睡...

多态的应用之处有哪些 ?

第一 : 以多态形式创建一个类的对象

第二 : 方法的参数是一个类或者是一个接口 , 那么我们可以传入子类对象

第三 : 方法的返回值类型是一个类或者接口 , 那么我们可以返回子类对象

内部类

什么是内部类?

在一个类中,定义了另外一个类(内部类[成员内部类])

内部类的使用方法?

public class HelloWorld{
//成员变量
//成员方法
//在一个类中,定义了另外一个类(内部类[成员内部类])
class Hello{
}

}

问题:如何访问某个类中的成员变量or成员方法?

答案:创建类的对象,通过"对象名.成员"的方式访问

成员内部类

public class Person {// 心脏class Heart {// 变量-频率private int rate;//60~75// 跳动方法public void beats() {System.out.println("咚咚咚~~");}}
}
------------------------------------------------------------
public class Test {public static void main(String[] args) {//创建Person对象Person p = new Person();//创建成员内部类对象Person.Heart heart = p.new Heart();
//外部类名.内部类名  变量  =  外部类对象.new 内部类构造方法(参数);heart.beats();}
}
运行结果:咚咚咚~~
局部变量:直接访问,
内部类成员变量:this 访问
外部类成员变量:外部类名.this 访问
public class Person {private String name = "张三";int num = 30;//外部类成员变量class Heart {private int rate;//60~75int num = 20;//内部类成员变量public void beats() {int num = 10;//内部类方法中的局部变量System.out.println(num);//10System.out.println(this.num);//20System.out.println(Person.this.num);//30}}
}
--------------------------------------------------------------
public class Test {public static void main(String[] args) {Person.Heart heart = new Person().new Heart();heart.beats();}
}
--------------------------------------------------------------

匿名内部类:

解决程序中什么问题?

简化程序中代码的书写

怎么使用?

//语法格式:new 类名/接口(){//重写方法}
//接口
public interface Flyable {void fly();
}
---------------------------------------------------------------
public class Test2 {public static void main(String[] args) {//调1次new Flyable(){@Overridepublic void fly() {System.out.println("我在学习");}}.fly();//想要调用fly方法:2次Flyable f = new Flyable() {@Overridepublic void fly() {System.out.println("我在玩代码");}};f.fly();f.fly();}
}
------------------------------------------------------
运行结果:
我在学习
我在玩代码
我在玩代码

工具类:为解决某些特定问题,特意编写的公共类(都可以使用)

1.JDK(java开发工具包) = JRE + 核心类库

核心类库: jdk提供一些现成的功能,这些功能封装在不同的类中

2.JDK就提供了一些工具类:Math、Arrays

2.1,Arrays工具类:针对数组,提供了一系列现成的功能(例:排序)

import java.util.Arrays; //导入工具类所在包
import java.util.Comparator;public class ArraysTest {public static void main(String[] args) {//数组Integer[] array = {3, 1, 5, 2, 8, 4};//Integer就是int类型System.out.println("排序前:" + Arrays.toString(array));//对数组进行排序//使用JDK提供的现成工具类:Arrays,实现排序Arrays.sort(array);//默认排序规则: 升序(从小到大)System.out.println("排序后:" + Arrays.toString(array));//程序需求:数组元素必须是从大到小(降序)Arrays.sort(array, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o2 - o1;}});System.out.println("排序后:" + Arrays.toString(array));}
}
运行结果:
排序前:[3, 1, 5, 2, 8, 4]
排序后:[1, 2, 3, 4, 5, 8]
排序后:[8, 5, 4, 3, 2, 1]

常用API(1)

在Java继承体系中,有一个顶层父类:Object(鼻祖类)

在java语言中,程序员自定义的类或者jdk中存在的类,直接或间接都要继承Object

继承了Object类后,就可以使用Object提供的相关方法:

1.boolean equals(Object obj)

-boolean: 方法的返回值类型

-Object: 方法传递参数的类型

-作用:比较两个对象是否相同(比较两个对象的地址值是否相同)

import java.util.Objects;
public class Phone {private String brand;private int price;public Phone() {}@Overridepublic boolean equals(Object o) {//两个对象地址值相同说明是同一个对象if (this == o) return true;//当要比较的对象是null时,就不需要比较,直接返回:false//当比较两个对象类型不一样,不需要比较,直接返回:falseif (o == null || getClass() != o.getClass()) return false;//向下转型Phone phone = (Phone) o;//基本数据类型比较                           使用Objects工具类中的equals方法,比较两个字符串是否相同//  return price == phone.price && Objects.equals(brand, phone.brand);return price == phone.price && this.brand.equals(phone.brand);}@Overridepublic int hashCode() {return Objects.hash(brand, price);}public Phone(String brand, int price) {this.brand = brand;this.price = price;}public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}
}
--------------------------------------------------------------------
public class Test {//演示:equals方法public static void main(String[] args) {Phone p1 = new Phone("小米",1999);Phone p2 = new Phone("小米",1999);System.out.println(p1);System.out.println(p2);System.out.println("-----------------------------------------");System.out.println(p1==p2);//==比较的是变量中的数据值,比较的是对象中存储的地址值;p1,p2是对象System.out.println(p1.equals(p2));//Ojbect类中的equals方法,比较的是对象中存储的地址值
//当希望比较Phone中存储的数据值时,在Phone中重写equals方法,不重写,比较的是地址值}
}
--------------------------------------------------
运行结果:
com.Demo.object.equals.Phone@168b1cc
com.Demo.object.equals.Phone@168b1cc
-----------------------------------------
false
false

2.String toString()

- 作用: 把对象转换为字符串
public class Student {private String name;private int age;public Student() {}@Overridepublic String toString() {return "Student{name=" + name + ", age=" + age + '}';}public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}
--------------------------------------------------------------
public class Test {//演示:toString方法public static void main(String[] args) {//创建学生对象Student stu = new Student("熊大",23);//把对象转换为字符串String str = stu.toString();System.out.println(str);System.out.println(stu);}
}
--------------------------------------------------------------
运行结果:
Student{name=熊大, age=23}

比较两个字符串是否相同 :

1: String类中的equals方法

boolean result = 字符串1.equals(字符串2);

2:Objects工具类中的equals方法

boolean result = Objects.equals(字符串1 , 字符串2);

区别:Objects工具类中的equals方法 可以避免NullPointerException异常的发生

import java.util.Objects;public class ObjectsTest {public static void main(String[] args) {String str1 = null;String str2 = "itext";//使用Objects工具类中的API方法:比较两个字符串是否相同boolean result2 = Objects.equals(str1,str2);System.out.println(result2);//Objects工具类中的equals方法 可以避免NullPointerException异常的发生//使用String类中的API方法:比较两个字符串是否相同boolean result1 = str1.equals(str2);System.out.println(result1);}
}
--------------------------------------------
运行结果:
报错
false

日期类型的数据:

public class Emp{  //姓名    private String name;//String表示字符串   //年龄    private int age;//int表示整数   //生日    private Date birthday;
//Date表示日期    
}

Date类:

归属包:java.util

作用:表示日期时间(精确到毫秒)

使用: 构造方法(创建对象)

public Date()

public Date(long time)

import java.util.Date;public class DateTest {//演示:Date对象的使用public static void main(String[] args) {
method1();}public  static void method1(){//创建Date对象,输出实时时间Date date1 = new Date();System.out.println(date1);Date date2 = new Date(0);//传参时输出:Date对象 = 1970/1/1 0:0:0 + time毫秒值System.out.println(date2);//成员方法:获取毫秒值long time = date1.getTime();//返回毫秒值 = 当前Date代表的时间 - 1970/1/1 0:0:0System.out.println(time);}
}
---------------------------------------------------------------------
运行结果:
Wed Jul 16 23:02:33 CST 2025
Thu Jan 01 08:00:00 CST 1970
1752678153025

常用方法DateFormat类

DateFormat类是什么?
DateFormat类是java语言提供的日期格式化类
DateFormat类解决什么问题?
对日期进行格式化操作:Date类型 -> String类型 => String format(Date)

对日期进行解析操作:String类型 -> Date类型 => Date parse(String )

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class DateFormatTest {//演示:日期格式化、日期解析public static void main(String[] args) throws ParseException {
method1();
String str="2025-07-16 14:07:33";method2(str);//Alt+回车,选第一个解决问题}//把日期转换为字符串public static void method1(){//日期对象Date date = new Date();System.out.println(date);//创建日期格式化对象SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//日期转换为字符串(按照日期模板,把日期对象变成相应格式的字符串String strDate = sdf.format(date);System.out.println(strDate);}//把字符串解析为日期public static void method2(String s) throws ParseException {////创建日期格式化对象SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//String类型->Data类型Date date = sdf.parse(s);//Alt+回车System.out.println(date);}
}
-------------------------------------------------------------
运行结果:
Wed Jul 16 23:04:57 CST 2025
2025-07-16 23:04:57
Wed Jul 16 14:07:33 CST 2025
DateFormat类怎么使用?
java.text.DateFormat DataeFormat是一个抽象类,无法实例化。使用子类:SimpleDateFormat

DateFormat df = new SimpleDateFormat(“日期模板”); //日期模板:就是使用一些特定的字符,来表示某个日期。

例:yyyy表示全年 MM表示月 dd表示日

DateFormat df = new SimpleDateFormat(“yyyy/MM/dd”);

DateFormat df = new SimpleDateFormat(“yyyy年MM月dd日 HH:mm:ss”);

String format(Date date) //将Date类型的数据,按照日期模板,转换为字符串

Date parse(String s) //将日期格式的字符串数据,按照日期模板,转换为Date对象

Calendar类:日历类(存储的有日期、时间、日历信息)

代替java.util.Date类中的过期方法

Calendar类的使用: 构造方法、 常用方法

Calendar类是一个抽象类,无法创建对象。

子类:GregorianCalendar

在Calendar类中,提供了一个静态方法,该静态方法可以实现:Calendar对象的实例化(底层还是使用GregorianCalendar子类)

获取Calendar类对象Calendar c = Calendar.getInstance();

Calendar对象中存储的内容:

获取Calendar对象中存储的数据:

//API方法: public int get(int 字段名) //字段名:YEAR MONTH DAY_OF_MONTH在Calendar类中有一些静态常量: YEAR MONTH DAY_OF_MONTHCalenar.YEAR Calendar.MONTH

//获取日历对象中的年

Calendar c = Calendar.getInstance();

int year = c.get( Calenar.YEAR )

import java.util.Calendar;public class CalendarTest {//演示:Calendar日历类的使用public static void main(String[] args) {//创建Calendar类对象Calendar c = Calendar.getInstance();System.out.println(c);//获取日历对象中的:年,月,日int year = c.get( Calendar.YEAR );int month = c.get( Calendar.MONTH );//月分范围0~11int day = c.get( Calendar.DATE );System.out.println(year+"年"+(month+1)+"月"+day+"日");}
}

给日历对象设置具体的:年月日时分秒…

//获取日历对象中的年Calendar c = Calendar.getInstance(); //日历对象是基于当前系统日期时间获取的//修改日历对象中的信息

public void set(int 字段 , int 数值)

c.set( Calendar.YEAR , 2000 );

//修改日历对象中的年月日

c.set( 2000, 9, 31 );

import java.util.Calendar;public class CalendarTest2 {public static void main(String[] args) {//给日历对象设置具体的:年月日时分秒//获取日历对象中的年Calendar c = Calendar.getInstance(); //日历对象是基于当前系统日期时间获取的//修改日历对象中的年月日c.set( 2000, 9, 31 );int year = c.get( Calendar.YEAR );int month = c.get( Calendar.MONTH );//月分范围0~11int day = c.get( Calendar.DATE );System.out.println(year+"年"+month+"月"+day+"日");}
}

给日历对象中的信息,增加或减少

public void add(int 字段 , int 数值) //数值是负数是减少 , 数据是正数表示增加

import java.util.Calendar;
public class DataFormate3 {public static void main(String[] args) {//创建Calendar类对象Calendar c = Calendar.getInstance();System.out.println(c);//增加一年c.add(Calendar.YEAR,1);System.out.println(c);//减少一年c.add(Calendar.YEAR,-1);System.out.println(c);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/89264.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/89264.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/89264.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt小组件 - 7 SQL Thread Qt访问数据库ORM

简介网上关于Qt访问数据库的资料大多使用QSqlDatabase模块。虽然这在C中尚可接受&#xff0c;但在Python中使用就显得过于繁琐了——不仅要手动编写SQL语句&#xff0c;还与Python追求简洁的理念背道而驰。在这里写一个基于sqlalchemy的示例&#xff0c;也可以使用其他的ORM库 …

使用Gin框架构建高并发教练预约微服务:架构设计与实战解析

项目概述 技术栈 Web框架&#xff1a;Gin&#xff08;高性能HTTP框架&#xff09;数据存储&#xff1a;Redis&#xff08;内存数据库&#xff0c;用于高并发读写&#xff09; 项目结构 coach-booking-service ├── main.go # 程序入口&#xff0c;路由初始化&am…

深入拆解Spring第二大核心思想:AOP

什么是AOP Aspect Oriented Programming&#xff08;面向切面编程&#xff09; 什么是面向切面编程呢? 切⾯就是指某⼀类特定问题, 所以AOP也可以理解为面向特定方法编程. 什么是面向特定方法编程呢? 比如对于"登录校验", 就是⼀类特定问题. 登录校验拦截器, 就是…

linux服务器stress-ng的使用

安装方法 • Ubuntu/Debian&#xff1a;sudo apt update && sudo apt install stress-ng -y• CentOS/RHEL&#xff08;需EPEL源&#xff09;&#xff1a;sudo yum install epel-release -ysudo yum install stress-ng -y• 源码编译&#xff08;适合定制化需求&#x…

探索阿里云DMS:解锁高效数据管理新姿势

一、阿里云 DMS 是什么 阿里云 DMS&#xff0c;全称为 Data Management Service&#xff0c;即数据管理服务 &#xff0c;是一种集数据管理、结构管理、安全管理于一体的全面数据库服务平台。它能够有效地支持各类数据库产品&#xff0c;包括但不限于 MySQL、SQL Server、Post…

python爬取新浪财经网站上行业板块股票信息的代码

在这个多行业持续高速发展的时代&#xff0c;科技正在改变着我们的生活。 在世界科技领域中&#xff0c;中国正占据越来越重要的位置。当下&#xff0c;每个行业都提到了区块链、人工智能、大数据、5G等科技力量&#xff0c;强调了科技在行业咨询与数据分析领域的重要意义。 随…

【JAVA】监听windows中鼠标侧面键的按钮按下事件

监听windows中鼠标侧面键的按钮按下事件用到的包核心类使用这个类用到的包 jna-5.11.0.jar jna-platform-5.11.0.jar核心类 package sample.tt.mouse;import com.sun.jna.Pointer; import com.sun.jna.platform.win32.*; import com.sun.jna.platform.win32.WinDef.HMODULE; …

Redis突发写入阻断?解析“MISCONF Redis is configured to save RDB…“故障处理

当你的Redis服务器突然拒绝写入并抛出 MISCONF Redis is configured to save RDB snapshots... 错误时&#xff0c;别慌&#xff01;这是Redis的数据安全保护机制在发挥作用。本文带你深度解析故障根因&#xff0c;并提供完整的解决方案。&#x1f525; 故障现象还原 客户端&am…

产品更新丨谷云科技 iPaaS 集成平台 V7.6 版本发布

六月&#xff0c;谷云科技iPaaS集成平台更新了V7.6版本。这次更新中我们着重对API网关、API编排、组织管理权限、API监控等功能进行了增强以及优化&#xff0c;一起来看看有什么新变化吧&#xff01; 网关、监控、编排、组织权限全方位升级 1.API网关 错误码预警&#xff0c;可…

图像处理中的模板匹配:原理与实现

目录 一、什么是模板匹配&#xff1f; 二、模板匹配的匹配方法 1. 平方差匹配&#xff08;cv2.TM_SQDIFF&#xff09; 2. 归一化平方差匹配&#xff08;cv2.TM_SQDIFF_NORMED&#xff09; 3. 相关匹配&#xff08;cv2.TM_CCORR&#xff09; 4. 归一化相关匹配&#xff08…

高性能架构模式——高性能NoSQL

目录 一、关系数据库的缺点二、常见的 NoSQL 方案分 类2.1、K-V 存储2.2、文档数据库2.3、列式数据库2.4、全文搜索引擎三、高性能 NoSQL 方案的典型特征和应用场景3.1、K-V 存储典型特征和应用场景3.2、文档数据库典型特征和应用场景3.1.1、文档数据库的 no-schema 特性的优势…

正确选择光伏方案设计软件:人力成本优化的关键一步

在竞争激烈的市场环境中&#xff0c;企业无不追求效率提升与成本控制。设计环节作为产品开发的核心流程&#xff0c;其效率高低直接影响整体项目进度与资源消耗。错误的设计软件选择如同在信息高速公路上设置路障——它不会阻止前行&#xff0c;却会让每一次沟通、每一次修改都…

Git问题排查与故障解决详解

前言 在使用Git进行版本控制的过程中&#xff0c;开发者常常会遇到各种各样的问题和错误。本文将详细介绍常见的Git问题及其解决方法&#xff0c;帮助开发者快速定位和解决问题&#xff0c;避免在开发过程中浪费时间。 1. 基础错误与解决 1.1 身份配置问题 问题&#xff1a…

使用Xinference部署语音模型实现文本转语音:完整指南

文章目录引言环境准备1. 安装Xinference2. 启动Xinference服务3. 部署语音模型Python实现文本转语音关键参数说明应用场景性能优化建议常见问题解决结语引言 文本转语音&#xff08;Text-to-Speech, TTS&#xff09;技术在智能助手、有声读物、语音导航等应用中扮演着重要角色…

【C#】实体类定义的是long和值识别到的是Int64,实体类反射容易出现Object does not match target type

&#x1f339;欢迎来到《小5讲堂》&#x1f339; &#x1f339;这是《C#》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。&#x1f339; &#x1f339;温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01;&#…

C#获取当前系统账户是否为管理员账户

传统方式&#xff1a;WindowsPrincipal winPrincipal new WindowsPrincipal(WindowsIdentity.GetCurrent()); bool admin winPrincipal.IsInRole(WindowsBuiltInRole.Administrator);这种方式虽然是最常用的检测管理员权限的方法&#xff0c;但是有个致命的缺陷&#xff0c;就…

【c++深入系列】:万字详解list(附模拟实现的list源码)

&#x1f525; 本文专栏&#xff1a;c &#x1f338;作者主页&#xff1a;努力努力再努力wz &#x1f4aa; 今日博客励志语录&#xff1a; 当你觉得累的时候&#xff0c;说明你在走上坡路 ★★★ 本文前置知识&#xff1a; 模版 那么在之前的学习中&#xff0c;我们已经学习了…

PandaWiki与GitBook深度对比:AI时代的知识管理工具,选谁好?

在当今信息爆炸的时代&#xff0c;知识管理工具已成为个人学习、团队协作和企业文档管理的必需品。PandaWik作为AI时代迅速崛起的广受欢迎知识管理平台&#xff0c;代表了新一代AI驱动的知识库系统。本文将从功能特性、技术架构、适用场景等多个维度进行全面对比分析。产品定位…

清除 Android 手机 SIM 卡数据的4 种简单方法

SIM 卡存储了联系人、短信和通话记录等信息。在更换新 SIM 卡之前&#xff0c;彻底清除旧卡上的所有个人数据&#xff08;如 SIM 卡联系人、短信、通话记录和手机号码&#xff09;非常重要。要在 Android 手机上清除 SIM 卡内存&#xff0c;您可以参考以下方法。但在开始之前&a…

算法学习笔记:20.分治法——从原理到实战,涵盖 LeetCode 与考研 408 例题

分治法&#xff08;Divide and Conquer&#xff09;是计算机科学中最经典的算法设计思想之一&#xff0c;其核心思想是将复杂问题分解为若干个规模较小的子问题&#xff0c;通过解决子问题并合并结果来求解原问题。这种思想不仅在排序、搜索等基础算法中广泛应用&#xff0c;也…