自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 C#学习(十四)——垃圾回收、析构与IDisposable

但是运行后会发现,程序并不会输出“AnywayClass类销毁”,要判断当前实例是否还会被引用,是根据语句的区域决定的,也就是说,它的作用域是整个main方法,因此垃圾回收是在整个main方法外面,因此看不到析构方法的输出。当删除时,需要先删除堆内存的数据,再删除栈内存的数据,然而如果先删除了栈内存的数据,那么对内存中的数据就再也无法找到,也无法删除,无法重复利用,就会造成内存泄漏。运行垃圾回收的成本很高,需要不断地遍历所有数据,因此使用了复杂的机制来解决高效运行问题。而在栈内存中仅保存了需要调用的地址。

2024-02-25 20:02:01 930

原创 C#学习(十三)——多线程与异步

程序执行的最小单元一次页面的渲染、一次点击事件的触发、一次数据库的访问、一次登录操作都可以看作是一个一个的进程在一个进程中同时启用多个线程并行操作,就叫做多线程由CPU来自动处理线程有运行、阻塞、就绪三态Print1();});i < 1000;i++)运行结果为可以看到,在结果中,0和1的输出是交织在一起的,原因为两个线程交替着被运行,不断反复直到结束。另外一个常用操作为Sleep();让时间暂停,使得线程进入静默状态。

2024-02-17 17:49:08 1193

原创 C#学习(十二)——Linq

在读取获得最多耗油量车时,之所以不使用Take(1),是因为first或者FirstOrDefault方法,会在提取数据时,同时展开集合,可以为接下来的开发带来极大便利。在上面想要得到耗油量最多的车时,我们只需要得到Model和Combined,任何其他的数据都是冗余数据,因此可以使用select来去除多余数据。在上文中,使用select语句可以对数据进行塑性,数据类型发生了变化,对数据塑性的过程叫做数据投影。Linq语句最终的决定,数据类型的读取是由select所决定的。

2024-02-04 21:32:56 1124

原创 C#学习(十一)——Array和Collection

在底层实现中,list依然使用数组承载数据,不过在数组装满数据以后,list会立刻创建新的数组来代替旧的数组,并且把所有数据复制装载到新的数组中,因此列表又可以成为动态数组。此时,创建了1000000个数据,但是实际上只需要前1000个数据,对于其余的数据,内存空间完全浪费了,因为根本不会用到。的数据,对于foreach,引用类型的数据本身地址是不改变的,因此这里的数据就可以完成修改。孤立的数据是没有意义的,集合可以作为大量数据的处理,可进行数据的搜索、迭代、添加、删除。

2024-01-27 21:36:50 746

原创 C#学习(十)——WPF重构与美化

一、Entity Framework Core特点:【跨平台】,【建模】,【查询、更改、保存】,【并发】,【事务】,【缓存】,【数据迁移】EF的组件二、重构:构建数据模型项目延续C#学习(九)的 项目代码,以此基础进行进一步重构所需的NuGet包如下:逆向数据库获得数据模型(Model)首先在根目录下创建Models文件夹,然后使用Tools->NuGet包管理器->程序包管理器控制台输入指令Scaffold-DbContext "自己的数据库连接字符串" Micro

2024-01-24 18:43:13 1794

原创 C#学习(九)——数据库与WPF

对于Customers表的删除,由于Appointments表的CustomerId为对应Customers表Id的外键,因此删除时,需要先删除Appointments数据,再删除Customers表的数据。实现修改,需要显示出项目数据,因此可以利用添加数据时的输入框来显示数据并完成修改,因此在 customerList_SelectionChanged函数中实现输入框显示数据。由于对于数据库的操作是具有风险的,因此一定要将对外操作放进try,catch中,防止因为数据库的死机等意外造成系统的崩溃。

2024-01-21 21:34:12 1483

原创 C#学习(八)——WPF基础入门

软件工程的架构方式 ][ 模型(Model)、视图(View)、控制器(Controller) ][ 分离业务操作、数据显示、逻辑控制 ]

2024-01-19 19:18:04 1163

原创 C#学习(七)——委托与事件

System.Action无返回值,支持16种不同方法重载System.Func有返回值,支持17种不同方法重载对上面的代码修改,使用预定义的方法委托Program.csConsole.WriteLine("加上红眼特效");//只是引用与被引用关系,不需要加()数据、操作和通知Program.csConsole.WriteLine("闹钟响了,不行还困,继续睡");set;Console.WriteLine("受不了啦,我关闹钟还不行嘛!");

2024-01-18 14:08:34 769

原创 C#学习(六)——高级编程

生成SSD和FlashDisk项目,分别进入这两个项目中的SSD(和FlashDisk)->bin->Dibug->net8.0->文件中,将SSD.dll和FlashDisk.dll项目复制粘贴到Computer->bin->Dibug->net8.0->USB文件中。使用动态类型dynamic,程序只有运行到这一行时,才对数据类型进行检查,与var是具有本质区别的,使用var定义,在定义时,其实已经确定了此时的变量类型。可以看到代码1和代码2 的执行结果完全一样,因此推荐使用代码2的合并运算“?

2024-01-15 21:40:05 1138

原创 C#学习(五)——面向对象:接口

区分继承类与接口的区别,对于继承的类来说,可以实现对于方法的重写,然而对于接口来说,只存在对于方法的实现。事实上接口本身的目的就是为了解耦合,而不是代码的复用。查看之前的main代码,可以看到是先通过接口创建价格计算器,再在订单处理器计算方法中绑定价格计算器,因此二者处于高度依赖关系。上述代码使用的是NuGet下的microsoft.extensions.dependencyinjection。接口与抽象类类似,仅作为功能声明不作代码实现的语法结构。我们可以在类中实现多重接口,但这不是多重继承。

2024-01-12 20:15:32 807

原创 C#学习(四)——面向对象:多态

声明修饰符;可以修饰类、方法、属性;只有声明、没有逻辑,不会被实现;

2024-01-10 17:07:12 378

原创 C#学习(三)——面向对象:继承与组合

向上转型(upcasting):把一个派生类类型转换为他的基类。向下转型(downcasting):把一个基类转化为他的派生类。只能被自己、或者被继承于自己的子类访问。装箱:一个值类型转化一个引用类型的过程。拆箱:从对象中打开,提取基本数据类型。是一种测量各种类和子系统关系的方法。不同类之间包含与被包含的关系。示例代码:数据库迁移程序。

2024-01-09 19:57:36 368

原创 C#学习(二)——面向对象:入门

当对x,y进行private保护时,如果需要对x的值进行检查(例如不能为负数)使用属性对代码进行简化,使用“getter,setter懒人包”创建一个对象的过程就是实例化,实例化的产物为实例、或叫做对象。访问修饰符 声明修饰符 类型 this[参数]{类索引(Index)的语法结构。

2024-01-08 19:33:53 401

原创 C#学习(一)——基础语法

Read():读取用户键盘操作,每次读取用户的第一次键盘操作,输出为键入的ASCII码。<访问修饰符> <声明修饰符> <返回类型> <方法名称> (参数列表) {ReadLine():无长度限制,读取用户输入的全部数据直至按下回车。ReadKey():可以读取一些特殊字符,例如读取回车。当形参的值发生改变时,不会影响实参的值,实参数据安全。WriteLine()为输出后光标换行。为每个值参数创建一个新的存储位置。Write()为直接输出;字符串拼接,使用“+”

2024-01-07 20:39:02 446

原创 Centos 7YUM出现COULD NOT RETRIEVE MIRRORLIST

Centos 7YUM出现COULD NOT RETRIEVE MIRRORLIST

2022-01-20 23:11:33 1563

原创 @slf4j注解与log.info

@slf4j注解

2022-01-19 00:26:54 2470

原创 关于Mysql8连接失败localhost 拒绝了我们的连接请求

关于Mysql8连接失败localhost 拒绝了我们的连接请求

2022-01-18 12:01:34 1311 1

原创 JAVA集合流练习

JAVA集合流练习以下Student类可直接使用。public class Student {private int number;private String name;private String clazz;private int score;public Student(int number, String name, String clazz, int score) { this.number = number; this.name = name;

2020-06-05 01:10:49 343 1

原创 解决IDEA一些配置问题

解决IDEA一些配置问题情况一Error:(21, 48) java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)首先遇见这种情况,打开idea左上角的FILE点击Project Structure点击MUDULE 右侧在language level里面选择相应版本情况二IDEA Error:java: Compilation failed: internal java compiler error遇

2020-05-17 01:54:58 342

原创 JAVA练习题继承

JAVA练习题继承创建Animal类;Mouse,dog等的一个继承分级结构在父类中提供适用于Animal的方法,并在子类中覆盖他们import java.util.Scanner;class Animal{ public String name; public String getName(String ming){ name=ming; r...

2020-05-05 23:55:40 766 1

原创 JAVA练习题接口

JAVA练习题接口编写一个USB接口程序,模拟计算机启动过程和关闭过程,过程中要加载鼠标键盘麦克风等USB设备interface USB {//定义接口 void turnOn(); void turnOff();}class Mouse implements USB { final String name="鼠标"; public String getNa...

2020-05-05 23:49:30 2753 2

原创 JAVA练习题函数调用

JAVA练习题函数调用创建一个类,为该类定义三个构造函数,从键盘输入两个int值,三个double值,两个字符串,分别执行以下操作import java.util.Scanner;class Check { private int a,b; private double c,d,e; private String f,g; public Check(int ...

2020-05-05 23:42:08 543 1

原创 java练习题静态成员定义

java练习题静态成员定义编写一个类ObjectCounter,用来统计程序中目前存在多少个该类的对象import java.util.Scanner;class ObjectCounter { public static int count=0; public ObjectCounter(){ count++;//每调用一次,计数器加1 } ...

2020-04-30 09:33:51 520 1

原创 JAVA关于类的定义题目练习

JAVA关于类的定义题目练习定义并实现一个复数类Complex,要求实现复数的加法和减法import java.util.Scanner;import java.util.*;public class Main{ public static void main(String[] args) { int m,n; //第一个数的实部和虚部 in...

2020-04-28 15:36:10 930 1

C#学习(十二)-CSV数据资源

C#学习(十二)-CSV数据资源2

2024-02-04

C#学习(十二)-CSV数据资源

C#学习(十二)-CSV数据资源

2024-02-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除