- 博客(36)
- 收藏
- 关注
原创 5.1 网络访问控制(NAC)
NAC对登录到网络的用户进行认证,同时决定该用户可以访问哪些数据,执行哪些操作。NAC同时可以检查用户的计算机或者移动设备(终端)的安全程度。
2025-03-06 15:56:23
386
原创 4.5 公钥基础设施
定义:公钥基础设施(PKI)定义为基于的用来生成、管理、存储、分配和撤销的一套硬件、软件、人员、策略和过程。目标:开发一个 PKI 的主要目标是使安全、方便和高效获取公钥成为可能。
2025-02-27 16:19:54
842
原创 4.4 X.509证书
X.500系列推荐标准定义了一套。所谓目录服务,实际上是指用于维护用户信息数据库的一个或一组分布式服务器。这些信息包括从用户名到网络地址的映射关系,以及其他关于用户的属性和信息。X.509是X.500推荐标准系列的一部分,X.509定义了一个使用X.500目录向其用户提供认证服务的框架。该目录可以作为。每个证书都包括用户的公钥,并由一个可信任的用签名。除此之外,X.509定义了另一个基于使用公钥证书的认证协议。X.509标准很重要!!!
2025-02-27 15:01:02
645
原创 进程间通信(上)
1)一个进程如何把信息传递给另一个?2)确保两个或更多的进程在关键活动中不会出现交叉。3)保持正确的顺序(如果该顺序是有关联的话)。第一个问题对同一个进程中的线程而言比较容易,因为线程之间共用一个地址空间。后两个问题和解决办法同样适用于线程。
2025-02-23 17:39:42
520
原创 进程的延伸——线程(下)
这些问题当然不是不可克服的,但是却说明了给已有的系统引入线程而不进行实质性的重新设计系统是根本不行的。至少可能需要重新定义系统调用的语义,并且不得不重写库。而且所有这些工作必须与在一个进程中有一个线程的原有程序向后兼容。
2025-02-20 16:34:45
881
原创 进程的延伸——线程(中)
如果是,它在线程表中保存该线程的寄存器(即它本身的),查看表中可运行的就绪线程,并把新线程的保存值重新装入机器的寄存器中。让某个线程实际进行阻塞系统调用会停止该进程中的所有线程,我们的目标是:允许每个线程使用阻塞调用,但是还要避免被阻塞的线程影响其他的线程。而在用户级线程中,运行时系统始终运行自己进程中的线程,直到内核剥夺它的CPU(或者没有可运行的线程存在了)为止。2.当某个线程希望创建一个新线程或撤销一个已有线程时,它进行一个系统调用,这个系统调用通过对线程表的更新完成线程创建或撤销工作。
2025-02-19 17:34:59
812
原创 进程的延伸——线程(上)
在一个有三个计算密集型线程的进程中,线程以并行方式运行,每个线程在一个CPU上得到了真实CPU速度的。例如,如果过程 X 调用过程 Y, 而 Y 又调用 Z, 那么当 Z 执行时,供 X、Y 和 Z 使用的栈帧会全部存在(执行这些过程的线程的)堆栈中。有时,线程是有层次的,它们具有一种父子关系,但是,通常不存在这样一种关系,所有的线程都是平等的。很显然,在这里用三个不同的进程是不能工作的,这是因为需要对同一个文件进行操作,多个线程可以共享公共内存,它们可以访问同一个正在编辑的文件,而三个进程是做不到的。
2025-02-18 22:26:27
819
原创 程序运行背后的真相——进程
当我们执行一个程序(或点击一个应用)时,我们都知道,背后需要操作系统调度硬件资源来运行程序,这个过程我们将它抽象地称作“进程”。
2025-02-17 16:53:24
561
原创 操作系统需知
学习操作系统,首先需要知道进程的(创建、调度、同步和通信机制)、线程、内存(虚拟内存、内存的分配与回收等)、文件系统(文件的存储结构、目录管理、文件读写等)、设备管理(如何驱动各类设备,实现设备的初始化、数据传输等)
2025-01-22 19:27:12
69
原创 P459 包装类Wrapper
/底层使用的仍然是Integer.valueOf(n2)int n3 = integer2;//底层使用的仍然是integer1.intValue()//演示 int <--> Integer 的装箱和拆箱。//手动装箱 int --> Integer。//手动拆箱 Integer --> int。//自动装箱 int --> Integer。//自动拆箱 Integer --> int。//jdk5后就可以自动装箱和拆箱。//jdk5前是手动装箱和拆箱。2)有了类的特点,就可以调用类中的方法。
2024-05-26 20:04:45
231
原创 P451 try-Catch异常处理
System.out.println("空指针异常=" + e.getMessage());System.out.println("异常信息=" + e.getMessage());System.out.println("算术异常=" + e.getMessage());//3. 如果希望不管是否发生异常,都执行某段代码(比如关闭连接,释放资源等)则使用如下代码。//1. 如果异常发生了,则异常发生后面的代码不会执行,直接进入到 catch 块。System.out.println("数字:" + a);
2024-05-25 18:56:59
516
原创 P425 Java-enum枚举类
/要描述的信息//定义四个对象,固定//使用 static 和 final 修饰public static final Season SPRING = new Season("春天","温暖");public static final Season SUMMER = new Season("夏天","炎热");public static final Season AUTUMN = new Season("秋天","凉爽");
2024-05-20 23:29:23
804
原创 P422 静态内部类
/因为静态内部类,是可以通过类名直接访问(前提是满足访问权限) Outer10.Inner10 inner10 = new Outer10.Inner10();public void say() { //如果外部类和静态内部类的成员重名时,静态内部类访问的时,public void m1() { //外部类---访问------>静态内部类 访问方式:创建对象,再访问。//外部其他类 使用静态内部类。//3. 可以直接访问外部类的所有静态成员,包含私有的,但不能直接访问非静态成员。
2024-05-20 22:44:04
623
原创 P75 C语言文件操作相关函数大全
这个函数属于文件I/O(输入/输出)的一部分,它允许你在文件中跳转到指定的位置,以便从该位置开始读取或写入数据。在这个示例中,我们首先打开一个名为 "example.txt" 的文件以写入模式("w")。是一个标准库函数,用于从指定的流(通常是文件或标准输入/输出流)中读取一行,并将其存储在提供的字符串中。在这个示例中,我们首先打开一个名为 "example.txt" 的文件以写入模式("w")。在这个示例中,我们首先打开一个名为 "example.txt" 的文件以写入模式("w")。
2024-05-18 22:29:41
693
原创 P420 成员内部类
System.out.println("n1 = " + n1 + " name = " + name + " 外部类的 n1=" + Outer08.this.n1);//如果成员内部类的成员和外部类的成员重名,会遵守就近原则. 可以通过 外部类名.this.属性 来访问外部类的成员。public void say() { //可以直接访问外部类的所有成员,包含私有的。//外部其他类,使用成员内部类的三种方式。//创建成员内部类的对象,然后使用相关的方法。
2024-05-17 15:08:59
361
原创 P416 匿名内部类
Father father = new Father("jack"){//基于类的匿名内部类,有参数列表。System.out.println("tiger的运行类型="+tiger.getClass());System.out.println("tiger的运行类型="+tiger.getClass());IA tiger = new IA() {//基于接口的匿名内部类。//匿名内部类是创建类的同时创建一个实例对象,类只能使用一次,//匿名内部类是创建类的同时创建一个实例对象,类只能使用一次,
2024-05-17 12:03:08
1754
原创 P414 Java局部内部类
如果定义类在局部位置(方法中/代码块) :(1)局部内部类(2)匿名内部类定义在成员位置(1)成员内部类(2)静态内部类。
2024-05-16 23:37:45
417
原创 P69 柔性数组
在C语言中,有一种数组叫柔性数组,它是在结构体中末尾定义。int arr[];//也可以arr[0],两者是等价的关系//前面的sizeof是计算struct S的大小,后面的是计算数组中所需的多少个元素的总大小int i = 0;for(i = 0;i<5;i++){//使用realloc改变内存大小if(pa!for(i = 0;i<10;i++){//打印...//释放动态内存,这里只需要释放ps指针。
2024-05-15 13:26:23
304
原创 P406 Java接口使用细节,区分接口与继承,接口的多态
在面向对象编程(OOP)中,接口(Interface)和继承(Inheritance)是两个重要的概念,用于实现代码的重用和扩展性。在前面的Usb接口案例,Usb usb既可以接收手机对象,又可以接收相机对象,就体现了接口的多态。2)接口中所有的方法是public方法,接口中抽象方法可以不用abstract修饰。9)接口的修饰符只能是public和默认,这点和类的修饰符是一样的。3)一个普通类实现接口,就必须将接口里的所有方法实现。4)抽象类实现接口,可以不用实现接口里的方法。1)接口不能被实例化。
2024-05-14 21:06:46
498
2
原创 P390 创建一个子类,代码块(静态和普通)、属性(静态和普通)、构造方法调用顺序
System.out.println("父类的普通代码块被调用");System.out.println("父类的静态代码块被调用");System.out.println("子类的静态代码块被调用");System.out.println("子类的普通代码块被调用");System.out.println("父类的静态属性被调用");System.out.println("子类的静态属性被调用");System.out.println("子类的普通属性被调用");//父类的普通代码块。
2024-05-14 20:16:49
414
2
原创 P403 Java接口的基本使用方法、接口应用场景
总之,Java接口在编程中扮演着重要角色,它们有助于实现代码的高内聚、低耦合、高复用性和可维护性。在构建大型系统和复杂应用程序时,使用接口可以显著提高代码的质量和可维护性。System.out.println("手机开始工作...");System.out.println("手机结束工作...");System.out.println("相机开始工作...");System.out.println("相机结束工作...");//创建手机和照相机。//关于照相机的接口。
2024-05-13 23:23:30
907
原创 P67 动态开辟内存空间可能存在的错误
/这里出现错误,因为p只开辟了40个字节的内存空间,而你实际访问了44个字节,造成越界访问。//内存泄露是一个很可怕的事情,它会一直消耗掉计算机的内存,当然不包括除堆区以外的内存,所以建议每次动态开辟内存,下一步就在后面写上释放的代码。//由于上面使用p++,此时p指向的地址已经不是动态内存的起始位置,此时释放p,会造成越界访问操作。//但如果malloc开辟失败,比如所要开辟空间过大,此时malloc会返回NULL,即p=NULL。//使用完后不要忘记释放p指向的动态内存空间,并将p指向NULL。
2024-05-10 11:11:23
576
原创 第二期:C语言学习工具、github网站
C语言专栏第二期:介绍了Visual Studio,github账号注册,github界面汉化,浏览器如何安装油猴插件以及如何下载脚本资源
2024-05-06 21:55:23
1843
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人