自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 星海乐园系统功能测试

本文展示了如何对星海乐园系统进行功能测试。

2024-05-04 16:08:21 649 1

原创 linux常见的命令操作

使用cd写路径时候 不一定要一个字母一个字母的敲 如果匹配结果是单一的 那么可以使用tab键直接进行补全。4)ls - 和 ll的功能都是一样的 可以使linux展示目录更加详细清晰。2)ls 后面加一个空格 在加路径 可以查看当前路径下的目录有哪些。这里的pwd就相当于文件资源管理器中的地址栏一样 可以获得绝对路径。3)/表示根目录的意思 ls /表示查看当前根目录。可以显示绝对路径 如果忘记了自己所处的位置。1)直接输入ls 可以查看当前目录中都有哪些内容。在插入模式的时候就可以进行文本的编写了。

2024-03-01 22:28:41 321 1

原创 多线程系列九之线程安全

如果是单线程,代码的执行顺序是固定的,执行结果是可以预期的。但是有了多线程,变成抢占式执行,就会从一种情况变成无数种情况,那么我们就需要保证这无数种线程调度顺序,代码的执行顺序得到的结果都是正确的,2.相对于图中的cmp操作,load操作要慢的很多,又因为得到的load的数值都一样,此时编译器就做了一个优化,只从内存中读取一次后,直接从cpu寄存器中读取了。1.两个线程针对同一个对象加锁,就会产生锁竞争,先到先得,一个线程获取锁之后,另外一个线程只能阻塞等待,且不可抢占,只能等这个线程释放锁。

2023-11-12 00:00:00 36 1

原创 多线程系列七之单例模式

一、这种设计模式之所以被成为饿汉模式,是因为类加载阶段就把这个实例创建出来了,因此称之为饿汉模式。1.这个属性instance被static修饰,因此这个属性与实例无关,而是与类相关的。2.Java中的代码,每个类在编译完成之后都会形成一个 .class文件。在JVM运行过程中就会加载这个.class文件,并读取其中的二进制指令,在内存中构造出对应的类对象。例如:Singleton.class3.一个类对象在一个Java进程中只能有一份,因此类对象内部的类属性也是唯一一份的。

2023-11-09 00:00:00 28 1

原创 多线程系列六之死锁

1.死锁在程序猿开发环境中十分影响程序猿幸福感的一个问题,因为死锁的出现十分隐蔽,我们可能会感知不到,从而出现死锁。2.死锁:死锁是指两个或更多的事物在同一资源的相互占用,并尝试获取对方的资源。当很多进程因资源竞争而造成的一种僵局(都在互相等待对方释放锁),若没有外力的作用,这些进程都将处在等待之中。

2023-11-07 00:00:00 44 1

原创 多线程系列五之线程的状态

1.sleep方法是Thread类的类方法,因此通过使用Thread.sleep才能使用。2.让线程休眠,本质上就是让这些线程暂时不再参与调度。3.sleep方法需要包裹一个try catch,因为sleep可能会触发异常。

2023-11-06 00:00:00 31

原创 多线程系列四之Thread类用法

1.currentThread是Thread类的静态方法,可以通过这个方法获取到当前线程,简而言之就是,哪个线程调用的这个方法,得到就是哪个线程对象的引用。2.run方法执行完后,PCB就在被释放了,但是此时t对象还在,所以此时isAlive输出的是false。3.守护线程会随main线程的结束二终止,无论守护线程的工作是否做完,都必须终止。:又叫做守护线程,当mian线程结束时候,无论t线程工作是否做完都必须结束。2.如果设置为true,调用该方法的线程是守护线程,相反则为前台线程。

2023-11-05 00:00:00 24

原创 多线程系列三之创建多线程

本质上2方法相同,只不过把实现Runnable任务交给了匿名内部类的语法,new Runnable 描述了一个任务的内容 实例对象,然后把他交给了Thread的构造方法。本质上和1方法相同 new Thread 子类 只是这个子类没有名字 所以叫做匿名内部类 然后通过父类的引用指向了子类的run方法。

2023-11-03 00:00:00 25 1

原创 多线程系列二之认识线程

3.另外 关于线程本身的操作,操作系统都提供了API,操作系统提供的很多功能都被JVM给封装好了,因此我们并不用学习操作系统原生的API,只需要学习Java提供的API即可。我们引入进程是为了解决并发编程问题,然而随着CPU进入多核时代,要想提高程序的利用效率,必须要充分利用CPU的资源,才能提高程序的执行速度。对比这两种方法,我们就可以更加清晰的理解为什么线程比进程更加轻量,因为他把申请和释放的资源省下了,也就提高了程序的执行速度。进程的最大一个缺点就是太重,我们这里所说的重指的是在资源分配和回收上。

2023-11-01 00:00:00 1625 1

原创 多线程系列一之操作系统、进程、内存

操作系统:操作系统是一个负责管理的软件,对下负责管理硬件设备,对下为软件的运行提供稳定的运行环境。简而言之,操作系统是硬件、软件和用户进行交互的媒介。1.进程的定义:一个跑起来的程序就叫做一个进程,进程(process)也叫做任务(task).进程是操作系统进行资源分配的基本单位2.通过ctrl + alt + delet可以打开任务管理器,任务管理器中就可以查看当前启动的进程1.例如这里的idea.exe就是一个可执行程序。

2023-10-29 15:46:13 37 1

原创 认识Java中的String类

另外在比较是否字符串中是否相同时候 String类中还提供了忽略大小写的方法。

2023-10-22 22:42:15 22 1

原创 抽象类和接口

抽象类是指没有包含具体信息去描述一个类,这样的类叫做抽象类。abstract + class + 类名abstract class Shape{//此时Shape被abstract修饰,因此此时Shape是一个抽象类System.out.println("抽象类中也可以有非抽象类方法");//抽象类中既可以有抽象方法也可以有非抽像方法,但是抽象方法需要被abstract修饰//如果一个类继承了抽象类,那么该类一定要重写抽象类的方法@Override。

2023-10-19 08:16:40 18 1

原创 继承和多态

继承是对相同代码片段的共性的抽取,从而实现对代码的复用。A extends B表示A继承了B类其中extends是关键字。A:子类(派生类)。B:父类(基类/超类)。由下列代码可知类Dog和类Cat既继承了来自父类的成员变量和成员方法,同时也有自己特有的成员变量,例如:狗特有score和猫特有的weight。public String name = "大头";System.out.println(name + " 正在吃饭");

2023-10-17 16:59:29 21 1

原创 Java中的类和对象

下面定义一个学生类进行展示注意:1.类名的定义采用大驼峰的形式2.成员变量前先统一写为public 涉及权限问题,后续做出解释3.此处的方法暂时不写static,涉及静态成员方法和非静态成员方法后续做出解释4.一般来说一个.Java文件中只有一个类,更加直观。5.一个.Java文件中有且只能有一个类可以被public修饰 public class+类名。System.out.println(name + "正在认真学习");

2023-10-16 22:41:20 46 1

原创 Java中的数组

提示:Java中数组的定义与使用数组中存储的是相同数据类型的一块空间,且逻辑上物理上连续,下标index从零开始逐个++通过new关键字来实例化对象第一种方式【】中不加数字,但后面必须要写明数组中存储了哪些数据或者直接省略new int【】如果声明【】中分配的空间大小也可注意:如果为给出数组中中数据那么默认是零定义其他类型数组浮点型数组 字符串数组。

2023-10-09 08:47:10 40 1

原创 理解Java中的方法

java中方法的使用Java中方法可以理解为一个代码片段,可以理解为c语言中的函数,方法的出现解决了重复工作性问题,当需要时直接调用该方法即可注意:在一个.Java文件中 只有一个类只可以被public修饰以main方法为例1.public表示权限 2.static表示该方法是一个静态方法 3.void表示返回值的类型 其中void表示无返回值 4.main是方法名,方法名的命名采用小驼峰的形式 5.()括号里面表示传递的参数,若没有参数传递直接()即可另外一点补充1.方法的定义必须在类的内部。

2023-10-08 09:21:25 18 1

原创 基本数据类型与运算符

1.只有基本数据类型有包装类其中除了int的包装类是Integer和char类型的包装类是character外其余基本数据数据类型的包装类都是首字母开头大写。3.float类型在定义变量时候需要在末尾加上f或者是F也可以,在long类型转换时候需要加数字后L。4. 自增自减运算符++a是先++再进行后续操作 a++是先进行操作,再把a的值加一。2.需要注意的是/右边不能为0 %不要求两边必须为整数,两边为浮点数也可以。如果表达式1为真 则执行表达式2若为假则执行表达式3。表达式2 : 表达式3。

2023-10-07 17:28:23 23 1

原创 初识Java

例如:本文作为c语言和Java之间的过度,主要讲解记录了认识java、Java中的数据类型和变量及运算符。

2023-10-07 09:32:51 25 1

空空如也

空空如也

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

TA关注的人

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