C#--核心

CSharp核心知识点学习

学习内容有:

绪论:面向对象的概念

Lesson1:类和对象

练习:

Lesson2:封装--成员变量和访问修饰符

练习:

Lesson3:封装--成员方法

Lesson4:封装--构造函数和析构函数

知识点四 垃圾回收机制--面试常考

练习:

Lesson5:成员属性

练习:

Lesson6:封装--索引器

练习:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lesson6_练习
{

    #region 练习
    //自定义一个整形数组类,该类中有一个整形数组变量
    //为它封装增删查改的方法

    class IntArray
    {
        private int[] array;
        //房间容量
        private int capacity;
        //当前放了几个房间
        private int length;

        public IntArray()
        {
            capacity = 5;
            length = 0;
            array = new int[capacity];
        }

        //增
        public void Add(int value)
        {
            //如果要增加就涉及扩容
            //扩容就涉及"搬家"
            if(length < capacity)
            {
                array[length] = value;
                ++length;
            }
            //扩容“搬家”
            else
            {
                capacity *= 2;
                //新房子
                int[] tempArray = new int[capacity];
                for (int i = 0; i < array.Length; i++)
                {
                    tempArray[i] = array[i];
                }
                //老的房子地址 指向新房子地址
                array = tempArray;

                //传入的往后放
                array[length] = value;
                ++length;
            }
        }

        //删
        //指定内容删除
        public void Remove(int value)
        {
            //找到 传入值 在哪个位置
            for (int i = 0; i < length; i++)
            {
                if(array[i] == value)
                {
                    RemoveAt(i);
                    return;
                }
            }
            Console.WriteLine("没有在数组中找到{0}",value);
        }

        //指定索引删除
        public void RemoveAt(int index)
        {
            if(index > length)
            {
                Console.WriteLine("当前数组只有{0},你越界了",length);
                return;
            }
            for (int i = index; i < length - 1; i++)
            {
                array[i] = array[i + 1];
            }
            --length;
        }

        //查改
        public int this[int index]
        {
            get
            {
                if(index >= length || index < 0)
                {
                    Console.WriteLine("越界了");
                    return 0;
                }
                return array[index];
            }
            set
            {
                if (index >= length || index < 0)
                {
                    Console.WriteLine("越界了");
                }
                array[index] = value;
            }
        }

        public int Length
        {
            get
            {
                return length;
            }
        }
    }

    #endregion

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("索引器练习");

            IntArray intArray = new IntArray();
            intArray.Add(1);
            intArray.Add(2);
            Console.WriteLine(intArray.Length);
            //intArray.RemoveAt(1);
            intArray.Remove(2);
            Console.WriteLine(intArray[0]);
            //Console.WriteLine(intArray[1]);
            Console.WriteLine(intArray.Length);
            

        }
    }
}

Lesson7:封装--静态成员

练习:

Lesson8:封装-- 静态类和静态构造函数

Lesson9:封装--拓展方法

练习:

Lesson10:封装--运算符重载

练习:

Lesson11:封装--内部类和分部类

Lesson12:继承--继承的基本规则

练习:

Lesson13:继承--里氏替换原则

练习:

Lesson14:继承--继承中的构造函数

练习:

Lesson15:继承--万物之父和装箱拆箱

练习:

Lesson16:继承--密封类

练习:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lesson16_练习
{

    #region 练习
    //定义一个载具类
    //有速度,最大速度,可乘人数,司机和乘客等,有上车,下车,行驶,车祸等方法
    //用载具类申明一个对象,并将若干人装载上车

    class Car
    {
        public int speed;
        public int maxSpeed;
        //当前装了多少人
        public int num;
        
        public Person[] person;

        public Car(int speed, int maxSpeed, int num)
        {
            this.speed = speed;
            this.maxSpeed = maxSpeed;
            this.num = 0;
            person = new Person[num];
        }

        public void GetIn(Person p)
        {
            if(num >= person.Length)
            {
                Console.WriteLine("满载了");
                return;
            }
            person[num] = p;
            ++num;
        }

        public void GetOff(Person p)
        {
            for (int i = 0; i < person.Length; i++)
            {
                if(person[i] == null)
                {
                    break;
                }
                if (person[i] == p)
                {
                    //移动位置
                    for (int j = i; j < num - 1; j++)
                    {
                        person[j] = person[j + 1];
                    }
                    //最后一个位置清空
                    person[num - 1] = null;
                    --num;
                    break;
                }
            }
        }

        public void Move()
        {

        }

        public void Boom()
        {
             
        }
        
    }

    class Person
    {

    }

    class Driver : Person
    {

    }

    class Passenger : Person
    {

    }

    #endregion

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("封装继承综合练习");

            Car car = new Car(80, 100, 20);
            Driver driver = new Driver();
            Passenger p1 = new Passenger();
            Passenger p2 = new Passenger();
            Passenger p3 = new Passenger();
            car.GetIn(driver);
            car.GetIn(p1);
            car.GetIn(p2);
            car.GetIn(p3);
            car.GetOff(p1);

        }
    }
}

练习调试!!!

Lesson17:多态--vob

通过这节课的知识--解决了Lesson13 的练习题

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lesson13_练习
{

    #region 练习一
    //is和as的区别
    //is 用于判断 类对象判断是不是某个类型的对象  bool
    //as 用于转换 把一个类对象 转换成一个指定类型的对象  null
    #endregion

    #region 练习二
    //写一个Monster类,它派生出Boss和Gobin两个类
    //Boss有技能,小怪有攻击
    //随机生成10个怪,装载到数组中
    //遍历这个数组,调用他们的攻击方法,如果是boss就释放技能

    class Monster
    {

    }

    class Boss : Monster
    {
        public void Skill()
        {
            Console.WriteLine("Boss释放技能");
        }
    }

    class Goblin : Monster
    {
        public void Atk()
        {
            Console.WriteLine("小怪攻击");
        }
    }
    #endregion

    #region 练习三
    //FPS游戏模拟
    //写一个玩家类,玩家可以拥有各种武器
    //线在有四种武器,冲锋枪,散弹枪,手枪,匕首
    //玩家默认拥有匕首
    //请在玩家类中写一个方法,可以拾取不同的武器替换自己拥有的武器

    class Weapon
    {
        public virtual string Input()
        {
            return null;
        }
    }

    /// <summary>
    /// 冲锋枪
    /// </summary>
    class SubmachineGun : Weapon
    {
        public override string Input()
        {
            return "冲锋枪";
            //Console.WriteLine("冲锋枪");
        }
    }

    /// <summary>
    /// 散弹枪
    /// </summary>
    class ShotGun : Weapon
    {
        public override string Input()
        {
            return "散弹枪";
            //Console.WriteLine("散弹枪");
        }
    }

    /// <summary>
    /// 手枪
    /// </summary>
    class Pistol : Weapon
    {
        public override string Input()
        {
            return "手枪";
            //Console.WriteLine("手枪");
        }
    }

    /// <summary>
    /// 匕首
    /// </summary>
    class Dagger : Weapon
    {
        public override string Input()
        {
            return "匕首";
            //Console.WriteLine("匕首");
        }
    }

    class Player
    {
        private Weapon nowHaveWeapon;

        public Player()
        {
            nowHaveWeapon = new Dagger();
        }

        public void PickUp(Weapon weapon)
        {
            nowHaveWeapon = weapon;
        }

        public void Show()
        {
            Console.WriteLine("当前玩家使用的武器是:{0}",nowHaveWeapon.Input());
        }
    }

    #endregion

    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("里氏替换原则练习");

            //随机生成10个怪物
            Monster[] objects = new Monster[10];
            Random r = new Random();
            int box = 0;
            for (int i = 0; i < objects.Length; i++)
            {
                box = r.Next(1, 3);
                if(box == 1)
                {
                    objects[i] = new Boss();
                }
                else
                {
                    objects[i] = new Goblin();
                }
            }

            //遍历数组
            for (int i = 0; i < objects.Length; i++)
            {
                if(objects[i] is Boss)
                {
                    (objects[i] as Boss).Skill();
                }
                else if(objects[i] is Goblin)
                {
                    (objects[i] as Goblin).Atk();
                }
            }


            Player p = new Player();
            p.Show();
            Weapon submachineGun = new SubmachineGun();
            
            p.PickUp(submachineGun);
            p.Show();

            //遗留一个问题:重写?!!
            //通过学习Lesson17--多态ovb    得以解决
        }
    }
}

练习:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lesson17_练习
{

    #region 练习一
    //真的鸭子嘎嘎叫,木头鸭子吱吱叫,橡皮鸭子唧唧叫
    class Duck
    {
        public virtual void Speak()
        {
            Console.WriteLine("嘎嘎叫");
        }
    }

    class WoodDuck : Duck
    {
        public override void Speak()
        {
            //base.Speak();
            Console.WriteLine("吱吱叫");
        }
    }

    class RubberDuck : Duck
    {
        public override void Speak()
        {
            //base.Speak();
            Console.WriteLine("唧唧叫");
        }
    }
    #endregion

    #region 练习二
    //所有员工9点打卡
    //但经理十一点打卡,程序员不打卡

    class Staff
    {
        public virtual void PunchTheClock()
        {
            Console.WriteLine("普通员工9点打卡");
        }
    }

    class Manager : Staff
    {
        public override void PunchTheClock()
        {
            //base.PunchTheClock();
            Console.WriteLine("经理11点打卡");
        }
    }

    class Programmer : Staff
    {
        public override void PunchTheClock()
        {
            //base.PunchTheClock();
            Console.WriteLine("程序员不打卡");
        }
    }

    #endregion

    #region 练习三
    //创建一个图形类,有求面积和周长两个方法
    //创建矩形类,正方形类,圆形类继承图形类
    //实例化矩形,正方形,圆形对象求面积和周长

    class Graph
    {
        public virtual float GetLength()
        {
            return 0;
        }

        public virtual float GetArea()
        {
            return 0;
        }
    }

    class Rect : Graph
    {
        private float w;
        private float h;

        public Rect(float w, float h)
        {
            this.w = w;
            this.h = h;
        }

        public override float GetLength()
        {
            //return base.GetLength();
            return 2 * (w + h);
        }

        public override float GetArea()
        {
            //return base.GetArea();
            return w * h;
        }
    }

    class Square : Graph
    {
        private float h;

        public Square(float h)
        {
            this.h = h;
        }

        public override float GetLength()
        {
            //return base.GetLength();
            return 4 * h;
        }

        public override float GetArea()
        {
            //return base.GetArea();
            return h * h;
        }
    }

    class Circule : Graph
    {
        private float r;

        public Circule(float r)
        {
            this.r = r;
        }

        public override float GetLength()
        {
            //return base.GetLength();
            return 2 * 3.14F * r;
        }

        public override float GetArea()
        {
            //return base.GetArea();
            return 3.14f * r * r;
        }
    }

    #endregion

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("多态ovb");
            Console.WriteLine("virtual   override   base");

            Duck d = new Duck();
            d.Speak();

            Duck wd = new WoodDuck();
            wd.Speak();

            Duck rd = new RubberDuck();
            rd.Speak();


            Staff s = new Staff();
            s.PunchTheClock();

            Staff ma = new Manager();
            ma.PunchTheClock();
            (ma as Manager).PunchTheClock();

            Staff pr = new Programmer();
            (pr as Programmer).PunchTheClock();

            Rect r = new Rect(2, 4);
            Console.WriteLine("矩形的周长是:" + r.GetLength());
            Console.WriteLine("矩形的面积是:" + r.GetArea());

            Square sq = new Square(4);
            Console.WriteLine("正方形的周长是:" + sq.GetLength());
            Console.WriteLine("正方形的面积是:" + sq.GetArea());

            Circule ci = new Circule(3);
            Console.WriteLine("圆的周长是:" + ci.GetLength());
            Console.WriteLine("圆的面积是:" + ci.GetArea());

        }
    }
}

Lesson18:多态--抽象类和抽象方法

练习:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lesson18_练习
{

    #region 练习一
    //写一个动物抽象类,写三个子类
    //人叫、狗叫、猫叫

    abstract class Animal
    {
        public abstract void Speak();
    }

    class Person : Animal
    {
        public override void Speak()
        {
            Console.WriteLine("人在说话");
        }
    }

    class Dog : Animal
    {
        public override void Speak()
        {
            Console.WriteLine("狗在汪汪叫");
        }
    }

    class Cat : Animal
    {
        public override void Speak()
        {
            Console.WriteLine("猫在喵喵叫");
        }
    }

    #endregion

    #region 练习二
    //创建一个图形类,有求面积和周长两个方法
    //创建矩形类,正方形类,圆形类继承图形类
    //实例化矩形,正方形,圆形对象求面积和周长

    abstract class Graph
    {
        public abstract float GetLength();

        public abstract float GetArea();
    }

    class Rect : Graph
    {
        private float w;
        private float h;

        public Rect(float w, float h)
        {
            this.w = w;
            this.h = h;
        }

        public override float GetLength()
        {
            //return base.GetLength();
            return 2 * (w + h);
        }

        public override float GetArea()
        {
            //return base.GetArea();
            return w * h;
        }
    }

    class Square : Graph
    {
        private float h;

        public Square(float h)
        {
            this.h = h;
        }

        public override float GetLength()
        {
            //return base.GetLength();
            return 4 * h;
        }

        public override float GetArea()
        {
            //return base.GetArea();
            return h * h;
        }
    }

    class Circule : Graph
    {
        private float r;

        public Circule(float r)
        {
            this.r = r;
        }

        public override float GetLength()
        {
            //return base.GetLength();
            return 2 * 3.14F * r;
        }

        public override float GetArea()
        {
            //return base.GetArea();
            return 3.14f * r * r;
        }
    }

    #endregion

    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("抽象类和抽象方法");

            Person p = new Person();
            p.Speak();
            Dog dog = new Dog();
            dog.Speak();
            Animal cat = new Cat();
            cat.Speak();

        }
    }
}

Lesson19:多态--接口

练习:重要,加深对接口的应用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lesson19_练习
{

    #region 练习一
    //人、汽车、房子都需要登记,人需要到派出所登记,汽车需要去车管所登记,房子需要去房管局登记
    //使用接口实现登记方法

    interface IRegister
    {
        void Register();
    }

    class Person : IRegister
    {
        public void Register()
        {
            Console.WriteLine("派出所登记");
        }
    }

    class Car : IRegister
    {
        public void Register()
        {
            Console.WriteLine("车管所登记");
        }
    }

    class Home : IRegister
    {
        public void Register()
        {
            Console.WriteLine("房管局登记");
        }
    }

    #endregion

    #region 练习二
    //麻雀、鸵鸟、企鹅、鹦鹉、直升机、天鹅
    //直升机和部分鸟能飞
    //鸵鸟和企鹅不能飞
    //企鹅和天鹅能游泳
    //除直升机,其他都能走
    //请用面向对象相关知识实现

    abstract class Bird
    {
        public abstract void Walk();
    }

    interface IFly
    {
        void Fly();
    }

    interface ISwimming
    {
        void Swimming();
    }

    //麻雀
    class Sparrow : Bird,IFly
    {
        public void Fly()
        {
            
        }

        public override void Walk()
        {
            
        }
    }

    //鸵鸟
    class Ostrich : Bird
    {
        public override void Walk()
        {

        }
    }

    //企鹅
    class Penguin : Bird,ISwimming
    {
        public void Swimming()
        {
            throw new NotImplementedException();
        }

        public override void Walk()
        {

        }
    }

    //鹦鹉
    class Parrot : Bird,IFly
    {
        public void Fly()
        {
            throw new NotImplementedException();
        }

        public override void Walk()
        {

        }
    }

    //天鹅
    class Swan : Bird,IFly,ISwimming
    {
        public void Fly()
        {
            throw new NotImplementedException();
        }

        public void Swimming()
        {
            throw new NotImplementedException();
        }

        public override void Walk()
        {

        }
    }

    //直升机
    class Helicopter : IFly
    {
        public void Fly()
        {
            throw new NotImplementedException();
        }
    }


    #endregion

    #region 练习三
    //多态来模拟移动硬盘、U盘、MP3插到电脑上读取数据
    //移动硬盘与U盘都属于存储设备
    //MP3属于播放设备
    //但他们都能插在电脑上传输数据
    //电脑提供一个USB接口
    //请实现电脑的传输数据的功能

    interface IUSB
    {
        void ReadData();
    }

    class StorageDevice : IUSB
    {
        public string name;
        public StorageDevice(string name)
        {
            this.name = name;
        }

        public void ReadData()
        {
            Console.WriteLine("{0}传输数据",name);
        }
    }

    class MP3 : IUSB
    {
        public void ReadData()
        {
            Console.WriteLine("MP3传输数据");
        }
    }

    class Computer
    {
        public IUSB usb1;
    }

    #endregion

    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("接口练习");

            IRegister p = new Person();
            p.Register();
            Car car = new Car();
            car.Register();
            Home home = new Home();
            home.Register();

            StorageDevice hd = new StorageDevice("移动硬盘");
            StorageDevice ud = new StorageDevice("U盘");
            MP3 mp3 = new MP3();

            Computer cp = new Computer();

            cp.usb1 = hd;
            cp.usb1.ReadData();
            cp.usb1 = ud;
            cp.usb1.ReadData();
            cp.usb1 = mp3;
            cp.usb1.ReadData();


        }
    }
}

Lesson20:多态--密封方法

Lesson21:面向对象相关--命名空间

练习:

Lesson22:面向对象相关--万物之父中的方法

练习:

Lesson23:面向对象相关--string

练习:

Lesson24:面向对象相关--StringBuilder

练习:

Lesson25:面向对象相关--结构体和类的区别

Lesson26:面向对象相关--抽象类和接口的区别

学习完成:

CSharp核心实践小项目见下一篇笔记!

牢记--多看!!!

你还有好多东西要学习呢,抓紧时间啊!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/327099.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

程序员接私活还不知道这几个平台?那你真的亏了!

程序员接私活现在已经是一个老生常谈的话题了&#xff0c;现在市面上各种程序员接单平台层出不穷&#xff0c;也参差不齐&#xff0c;有比较老牌的知名平台&#xff0c;也有比较好的新兴平台&#xff0c;如此多的平台就容易让人眼花缭乱&#xff0c;不知道该如何选择。 这期文…

获取当前设备的IP

背景&#xff1a; 在本地使用自带webUI的项目时&#xff0c;需要制定webUI的访问地址。 一般本地访问使用&#xff1a;127.0.0.1&#xff0c;配置为可以从其他设备访问时&#xff0c;需要指定当前设备的IP&#xff0c;或者指定为0.0.0.0。 例如&#xff1a;使用locust的时候&a…

ElasticSearch降本增效常见的方法 | 京东云技术团队

Elasticsearch在db_ranking 的排名不断上升&#xff0c;其在存储领域已经蔚然成风且占有非常重要的地位。 随着Elasticsearch越来越受欢迎&#xff0c;企业花费在ES建设上的成本自然也不少。那如何减少ES的成本呢&#xff1f;今天我们就特地来聊聊ES降本增效的常见方法&#x…

x-cmd pkg | public-ip-cli - 公共 IP 地址查询工具

简介 public-ip-cli 是一个用 Javascript 编写的命令行工具&#xff0c;用于获取当前计算机或网络所使用的公共 IP 地址。 它可以让用户在命令行界面上查询 OpenDNS、Google DNS 和 HTTPS 服务的 DNS 记录以获取与互联网通信时所分配的公共 IP 地址。 首次用户 使用 x env us…

国科大-自然语言处理复习

自然语言处理复习 实体关系联合抽取流水线式端到端方法 检索式问答系统流水线方式信息检索&#xff08;IR&#xff09;阶段阅读理解&#xff08;RC&#xff09;阶段基于证据强度的重排基于证据覆盖的重排结合不同类型的聚合 端到端方式Retriever-Reader的联合学习基于预训练的R…

仿真机器人-深度学习CV和激光雷达感知(项目2)day01【项目介绍与环境搭建】

文章目录 前言项目介绍功能与技术简介硬件要求环境配置虚拟机运行项目demo 前言 &#x1f4ab;你好&#xff0c;我是辰chen&#xff0c;本文旨在准备考研复试或就业 &#x1f4ab;本文内容是我为复试准备的第二个项目 &#x1f4ab;欢迎大家的关注&#xff0c;我的博客主要关注…

图像处理:孤立点的检测

图像处理-孤立点的检测 孤立点的检测在图像处理中通常涉及到检测图像中的突变或者边缘&#xff0c;而使用二阶导数是一种常见的方法。一阶导数可以帮助找到图像中的边缘&#xff0c;而二阶导数则有助于检测边缘上的峰值&#xff0c;这些峰值可能对应于孤立点或者特殊的图像结构…

Zookeeper使用详解

介绍 ZooKeeper是一个分布式的&#xff0c;开放源码的分布式应用程序协调服务&#xff0c;是Google的Chubby一个开源的实现&#xff0c;是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件&#xff0c;提供的功能包括&#xff1a;配置维护、域名服务、分布…

谷粒商城-缓存使用分布式锁SpringCache(5天)

缓存使用 1.1.1 哪些数据适合放入缓存 即时性、 数据一致性要求不高的 访问量大且更新频率不高的数据&#xff08;读多&#xff0c; 写少&#xff09; 例如&#xff1a;电商类应用&#xff0c; 商品分类&#xff0c; 商品列表等适合缓存 本地缓存 使用Map进行本地缓存 本地缓存…

【Redis】AOF 源码

在上篇, 我们已经从使用 / 机制 / AOF 过程中涉及的辅助功能等方面简单了解了 Redis AOF。 这篇将从源码的形式, 进行深入的了解。 1 Redis 整个 AOF 主要功能 Redis 的 AOF 功能概括起来就 2 个功能 AOF 同步: 将客户端发送的变更命令, 保存到 AOF 文件中AOF 重写: 随着 Red…

MySQL数据库软件详解二

MySQL的配置文件 my.ini 概述&#xff1a;MySQL 的配置文件 参数名称说明port表示 MySQL 服务器的端口号basedir表示 MySQL 的安装路径datadir表示 MySQL 数据文件的存储位置&#xff0c;也是数据表的存放位置default-character-set表示服务器端默认的字符集default-storage…

系统性学习vue-组件及脚手架

书接上文 Vue组件及脚手架 初始化脚手架说明步骤 分析脚手架结构render函数修改默认配置ref属性props配置mixin 混入/混合定义混合局部混合全局混合 插件scoped样式安装less-loader 浏览器的本地存储 webStoragelocalStroage 本地存储sessionStorage 会话存储 组件自定义事件绑…

SQLServer 为角色开视图SELECT权限,报错提示需要开基础表权限

问题&#xff1a; 创建了个视图V&#xff0c;里面包含V库的a表&#xff0c;和T库的b表 为角色开启视图V的SELECT权限&#xff0c;提示T库的b表无SELECT权限&#xff0c;报错如下 解决方案&#xff1a; ①在T库建个视图TV&#xff0c;里面包含b表&#xff08;注意是在b表的对…

【Qt 学习之路】关于C++ Vlc视频播放

文章目录 1、简介2、效果2.1、视频2.2、动态图 3、核心代码3.1、判断视频3.2、视频核心类调用3.3、视频核心类3.3.1、头文件3.3.2、源文件 1、简介 最近有童鞋咨询VLC相关的问题&#xff0c;公布一个 5年前 编写的 VLC示例 代码供参考学习。包括正常对视频各种常用的操作&…

微信小程序快速入门03

&#x1f3e1;浩泽学编程&#xff1a;个人主页 &#x1f525; 推荐专栏&#xff1a;《深入浅出SpringBoot》《java项目分享》 《RabbitMQ》《Spring》《SpringMVC》 &#x1f6f8;学无止境&#xff0c;不骄不躁&#xff0c;知行合一 文章目录 前言一、生命周期生…

【Java数据结构】04-图(Prim,Kruskal,Dijkstra,topo)

5 图 推荐辅助理解 【视频讲解】bilibili Dijkstra Prim 【手动可视化】Algorithm Visualizer &#xff08;https://algorithm-visualizer.org/&#xff09; 【手动可视化】Data Structure Visualizations (https://www.cs.usfca.edu/~galles/visualization/Algorithms.ht…

基于k8s Deployment的弹性扩缩容及滚动发布机制详解

k8s第一个重要设计思想&#xff1a;控制器模式。k8s里第一个控制器模式的完整实现&#xff1a;Deployment。它实现了k8s一大重要功能&#xff1a;Pod的“水平扩展/收缩”&#xff08;horizontal scaling out/in&#xff09;。该功能从PaaS时代开始就是一个平台级项目必备编排能…

cookie和session的工作过程和作用:弥补http无状态的不足

cookie是客户端浏览器保存服务端数据的一种机制。当通过浏览器去访问服务端时&#xff0c;服务端可以把状态数据以key-value的形式写入到cookie中&#xff0c;存储到浏览器。浏览器下次去服务服务端时&#xff0c;就可以把这些状态数据携带给服务器端&#xff0c;服务器端可以根…

OceanBase架构概览

了解一个系统或软件&#xff0c;比较好的一种方式是了解其架构&#xff0c;下图是官网上的架构图&#xff0c;基于V 4.2.1版本 OceanBase 使用通用服务器硬件&#xff0c;依赖本地存储&#xff0c;分布式部署在多个服务器上&#xff0c;每个服务器都是对等的&#xff0c;数据库…

如何画出优秀的系统架构图-架构师系列-学习总结

--- 后之视今&#xff0c;亦犹今之视昔&#xff01; 目录 早期系统架构图 早期系统架构视图 41视图解读 41架构视图缺点 现代系统架构图的指导实践 业务架构 例子 使用场景 画图技巧 客户端架构、前端架构 例子 使用场景 画图技巧 系统架构 例子 定义 使用场…