- 博客(37)
- 收藏
- 关注
原创 Java的字符串操作(二)(代码示例)
/ 直接赋值方式定义字符串// 使用new关键字定义字符串// 可以通过打印对象的哈希码来查看是否是同一个对象(在一定程度上反映引用情况)System.out.println("str1的哈希码: " + System.identityHashCode(str1));System.out.println("str2的哈希码: " + System.identityHashCode(str2));在上述代码中,通过直接赋值和使用new。
2024-11-25 18:44:48
281
原创 Java 的字符串操作(一)
这样做的好处是可以节省内存空间,因为如果有多个相同内容的字符串,它们可以共享同一个对象。如果调用该方法的字符串小于参数中的字符串,则返回一个负整数;,这种方式会在堆内存中创建一个新的字符串对象,即使字符串常量池中已经存在相同内容的字符串。,这种方式简单直接,Java 会自动在字符串常量池中查找是否已经存在相同内容的字符串,如果有就直接引用,没有则创建新的字符串对象并放入常量池。实际上引用的是同一个字符串对象,这个对象位于字符串常量池中。这个字符串,也会先在常量池中创建一个,然后再在堆中创建新的对象供。
2024-11-25 18:42:32
655
原创 Java基础语法(一)
包括 byte(1 字节,范围是 - 128 到 127)、short(2 字节,范围是 - 32768 到 32767)、int(4 字节,范围是 - 2147483648 到 2147483647)和 long(8 字节)。:对整数的二进制位进行操作,包括按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)、右移(>>)和无符号右移(>>>)。=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)。:是基于哈希表实现的集合,它不允许元素重复,元素的存储顺序是无序的。
2024-11-18 18:48:45
781
原创 HarmonyOS项目开发一多简介
当窗口尺寸变化较大时,仅靠自适应布局可能出现问题,此时需要响应式布局调整页面结构。响应式布局根据特定特征(如窗口宽度)自动变化以适应外部容器变化,主要通过断点、媒体查询和栅格布局实现。
2024-10-28 22:49:08
673
原创 MVP和MVVM架构总结
负责数据的存储、获取和业务逻辑处理。例如,在一个用户管理系统中,Model 层会包含数据库操作,如查询用户信息、更新用户密码等操作相关的代码。它是独立于视图层的,不关心数据如何展示,只专注于数据本身的管理和业务规则的实现。
2024-10-25 11:44:29
1099
原创 鸿蒙模块化
在大型软件工程中,模块化是将复杂系统拆解为功能模块,以提高可维护性和可拓展性。在 HarmonyOS 应用开发中,模块化将应用程序拆分为多个功能模块,功能模块可独立开发、编译和部署,也可在不同设备上灵活组合和调用。在进行模块化设计时,需要考虑HarmonyOS的应用包结构选型,HarmonyOS的应用包结构是为了定义应用的组织方式,通过开发态、编译态、发布态阶段应用程序包的形态,了解到不同包类型对应的使用场景以及使用规则。根据业务设备及诉求选择和设计 Ability 组件。
2024-10-25 11:17:20
786
原创 Java设计模式六大原则
类,它负责用户的所有操作,包括用户信息的获取、更新和删除。即,一个类不应直接访问另一个类的内部成员,而应该通过其公开接口进行交互。即,一个类不应强迫实现不相关的接口,接口应该尽可能小且专注。:在某些情况下,过度使用迪米特法则可能导致不必要的复杂性,产生大量的中间方法和接口。:当子类替代父类时,系统的可扩展性增强,同时也确保了子类的行为不会引发新的错误。:一个类应该只有一个引起它变化的原因,换句话说,一个类只负责一个职责。:如果每个功能都分解到单独的类,可能会导致类数量增加,增加管理复杂度。
2024-10-17 21:48:31
1290
原创 每日一练算法题(顺序串的基本操作)
假定下面所有的串均为顺序串,参数ch、ch1和ch2均是字符型,编写算法依次实现下列操作。① 将串r中所有值为ch1的字符换成ch2的字符。② 将串r中所有字符按照相反的次序仍存放在r中。③ 从串r中删除其值等于ch的所有字符。④ 从串r1中第index个字符起求出首次与串r2相同的子串的起始位置。输入格式:第一行:r第二行:r1第三行:r2第四行:ch ch1 ch2第五行:index输出格式:第一行:操作①结果第二行:操作②结果第三行:操作③结果第
2024-10-17 21:34:16
259
原创 Java面向对象六大设计原则总结1
在Java面向对象设计中,遵循六大原则是确保代码质量、可维护性和可扩展性的关键。这六大原则分别是:单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖倒置原则(DIP)和迪米特法则(LOD)。以下是对这六大原则的详细解释,并结合实例进行说明。单一职责原则。对类来说,即一个类应该只负责一项职责。开闭原则。对扩展开放,对修改关闭。在程序需要进行扩展的时候,不能去修改原有代码,使用接口和抽象类实现一个热插拔的效果。里氏替换原则。
2024-10-15 21:55:08
998
原创 每日一练算法题(循环队列的操作集合(增设tag))
/初始化队列,返回值为指向队列的指针。//队列判空,若为空,则返回1;非空,返回0。//队列判满,若为满,则返回1;非满,返回0。// 元素x入队,若操作成功,则返回1;操作失败,则返回0。// 出队一个元素,若操作成功,则返回1;操作失败,则返回0。说明:循环队列类型定义如下:#define MAXSIZE 4 //队列的最大容量 typedef int ElemType;int rear;//队尾元素的位置 int front;//对头元素的前一个位置 int tag;
2024-10-09 21:19:05
298
原创 每日一练算法题(循环队列的操作集合(只设 rear和quelen))
/队列判空,若为空,则返回1;非空,返回0。//队列判满,若为满,则返回1;非满,返回0。// 元素x入队,若操作成功,则返回1;操作失败,则返回0。// 出队一个元素,若操作成功,则返回1;操作失败,则返回0。#define MAXSIZE 4 //队列的最大容量int rear;//队尾元素的位置int quelen;//队中元素的个数}SeQueue;
2024-10-07 19:03:01
391
原创 每日一练算法题(判断表达式中括号是否匹配)
/判断str中括号是否匹配。其中str是用户传入的参数,其值为带判断表达式。若括号匹配则返回1,否则返回0。int top;}SeqStack;//栈的基本操作函数定义//栈初始化//栈判空//栈判满// 入栈// 出栈// 取栈顶元素。
2024-10-07 19:00:22
722
原创 每日一练算法题(使用栈完成回文判断)
/判断字符串s是否回文。其中s是用户传入的参数,其值为待判断字符串。如果s是回文,则返回值为1,否则返回值为0。特别说明:本题要求使用栈的基本操作完成回文的判断。int top;}SeqStack;//栈的基本操作函数定义//栈初始化//栈判空//栈判满// 入栈// 出栈// 取栈顶元素。
2024-09-28 19:44:01
363
原创 每日一练算法题(队列的操作集合(带尾指针的循环链表))
/初始化队列,返回值为队列的尾指针。//队列判空,若为空,则返回1;非空,返回0。// 元素x入队,若操作成功,则返回1;操作失败,则返回0。// 出队一个元素,若操作成功,则返回1;操作失败,则返回0。
2024-09-28 19:39:12
286
原创 Typescript知识点(超全面)
abstract: 用abstract关键字声明的类叫做抽象类,声明的方法叫做抽象方法抽象类:指不能被实例化,因为它里面包含一个或多个抽象方法。抽象方法:是指不包含具体实现的方法;注:抽象类是不能直接实例化,只能实例化实现了所有抽象方法的子类// 抽象方法console.log(`我的名字是${this.name},年龄是${age}`);let res = new Person("小杜杜") //errorlet res1 = new Child("小杜杜");
2024-09-25 09:30:57
1423
原创 Typescript高级用法
单独使用条件类型可能用处不是很大,但是结合泛型使用时就非常有用。一个常见的用例就是使用带有never类型的条件类型来修剪类型中的值。其中可以是string或null类型,它用于itemName变量。定义一个名为NoNull我们想从类型中剔除null,需要通过条件来检查类型是否包含null当这个条件为true时,不想使用该类型,返回nevernever当这个条件为false时,说明类型中不包含null,可以直接返回Tnever : T;将itemName变量的类型更改为NoNull。
2024-09-25 09:30:27
1107
原创 git入门
百度百科定义是酱紫的~版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。那么,集中化的版本控制系统又是什么呢,说白了,就是有一个集中管理的中央服务器,保存着所有文件的修改历史版本,而协同开发者通过客户端连接到这台服务器,从服务器上同步更新或上传自己的修改。分布式版本控制系统,就是远程仓库同步所有版本信息到本地的每个用户。
2024-09-23 20:30:47
1172
原创 Python入门5(时间模块)
datetime 包括了 date 与 time 的所有信息,格式为:datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0),参数范围值参考 date 类与 time 类。time 类表示由时、分、秒、微秒组成的时间,格式为:time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)。
2024-09-13 19:17:15
1144
原创 Python入门4(列表、元组、字典、集合)
Python 中没有数组,而是加入了功能更强大的列表(list),列表可以存储任何类型的数据,同一个列表中的数据类型还可以不同;列表是序列结构,可以进行序列结构的基本操作:索引、切片、加、乘、检查成员。元组(tuple)与列表类似,但元组是不可变的,可简单将其看作是不可变的列表,元组常用于保存不可修改的内容。当看到字典这个词时,有些人包括我自己在内,首先映入眼帘的便是新华字典我清楚的记得,刚上小学时老师就让每一个学生准备一本新华字典,它的使用大家也应该都清楚,通过拼音、偏旁部首等进行查询;
2024-09-12 20:53:25
1390
1
原创 Python入门3(基本操作)
Python 中,使用数字 n 乘以一个序列会生成新的序列,内容为原来序列被重复 n 次的结果。以字符串为例,如下所示:。以字符串为例,如下所示:。下面通过一个示例作进一步了解,以字符串为例,如下所示:。end:表示切片的结束索引位置(不包括该位置),默认为序列的长度;通过一个例子作进一步了解,以字符串为例,如下所示:。函数把编码转成相应字符。如下所示:。简单举几个例子,如下所示:。以字符串为例,如下所示:。
2024-09-09 19:40:07
1295
原创 Python入门2(语句)
我有三种数值类型,分别是:整型(int)、浮点型(float)、复数(complex),如果你使用的还是我的低版本 Python2,那么还包含长整型(long)。如下所示:。如下所示:。如下所示:。当需要多次重复执行时,我们要用到循环语句,Python 提供了 for 循环和 while 循环。如下所示:。使用如下所示:。使用如下所示:。我的基本运算见下表,整型和浮点型均支持下表中运算。使用方式如下所示:。
2024-09-08 22:01:30
1200
原创 Python入门1(标识符、关键字、运算符等)
以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 导入;双下划线开头的标识符,如:__xx,表示私有成员;Python2 中默认编码为 ASCII,假如内容为汉字,不指定编码便不能正确的输出及读取,比如我们想要指定编码为 UTF-8,Python 中通过在开头加入 # -*- coding: UTF-8 -*- 进行指定。**= 幂赋值运算符 a **= b 等效于 a = a ** b。
2024-09-07 16:31:01
601
原创 天气预报程序
Text(`夜间${cast.nightweather}`).fontSize(25).fontColor(Color.Black).fontWeight(FontWeight.Normal)Text('已添加').fontSize(20).fontColor(Color.Black).margin({top:20}).opacity(0.8)Button('完成').fontSize(26).fontColor(Color.Black).backgroundColor('#ff9dcdf6')
2024-08-03 15:50:23
1379
1
原创 简单抽卡系统
本文是一个简单的抽卡系统,当收集到所有卡片即可领取大奖,其中使用了Bage和stack和Grid等方法,还通过透明度图层变化实现页面变更。// badgeColor:'0xfff'圆形底色。Text('恭喜您获得手机一部')Button('再来一次')Button('立即抽卡')Text('恭喜获得卡片')Button('开心收下')
2024-07-31 09:21:10
531
原创 用Devecostudio写一个简单的计算器
在遍历标记的循环中,如果标记是一个数字,则将其转换为数字并压入操作数栈。如果标记是一个运算符,先检查运算符栈顶的运算符优先级是否高于或等于当前运算符。如果是,则从运算符栈和操作数栈中取出相应的元素进行运算,并将结果压入操作数栈。在遍历完所有标记后,如果运算符栈中还有运算符,继续取出进行运算,直到运算符栈为空。总的来说,这个函数实现了对一个四则运算表达式的计算,通过栈来处理运算符的优先级,遵循了常见的表达式求值算法。
2024-07-30 10:25:32
2770
原创 typescript基础语法补充
**原始类型**: `number`, `string`, `boolean`, `null`, `undefined`, `symbol` (ES6+), `bigint` (ES10+).: number): number`- **函数类型**: `function add(x: number, y: number): number`- **成员**: `public`, `private`, `protected`- **数组**: `number[]` 或 `Array`
2024-07-27 11:24:44
689
原创 MySQL基础篇——DDL
只有整数时可以用UNsigned修饰 如age TINYINT unsigned comment 年龄。变长字符串varchar,如varchar(10)则最多为10,小于10则有剩余空间。定长字符串char,如char(10)则占用空间为10,无剩余空间。decimal(标度:数字总位数,精度:小数位数)BLOB表示二进制数据。TEXT表示文本数据。
2024-07-23 16:43:30
551
原创 TS基础语法
/ 因为const声明的变量不能再改变,而str2 是 const 声明的,值只能是 Hello TS,所以类型只能是 Hello TS。z: number }显式any情况:当变量的类型指定为 any 的时候,不会有任何错误,也不会有代码提示,TS会忽略类型检查。类型与类型之间使用 | 连接,代表类型可以是它们当中的其中一种,这种类型叫:联合类型。使用 js字面量 作为变量类型,这种类型就是字面量类型,使用字面量类型更加精确、严谨。当同一类型(复杂)被多次使用时,可以通过类型别名,简化 该类型的使用。
2024-07-21 13:01:49
1073
原创 C语言期末知识点复习6
偏移量为1,接下来存放 int b,偏移量1不是对齐数4 的整数倍,所以向后继续偏移一直到4,4是对齐数4的整数倍,所以将int b存放在偏移地址为4处,占用4个字节;这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体), 联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小(因为联合至少得有能力保存最大的那个成员)。将分配size个大小的空间,然后在调整原内存空间大小的基础上,将原来内存中的数据移动到新的空间,返回值为调整之后的内存起始位置。
2024-06-26 16:59:38
659
2
原创 C语言知识点复习5
(细细体会一下)本例中 &arr 的类型是: int(*)[10] ,是一种数组指针类型数组的地址+1,跳过整个数组的大小,所以 &arr+1 相对于 &arr 的差值是40。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数就是回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。//解释:p先和*结合,说明p是一个指针变量,然后指着指向的是一个大小为10个整型的数组。
2024-06-25 11:46:40
733
原创 C语言知识点复习4
(7 4 1 ==> 共(7-1)/3+1=3次,1-3=-2,即254,继续循环) 指针时用来存放地址的,指针类型的变量无论指向目标是什么类型,指针本身在32位平台所占大小都为4个字节,在64位平台是8个字节。6 3 ==> 共(255-5)/3+1=85次(3-3=0,退出循环) 所以总共173次。5 2 ==> 共(254-2)/3+1=85次(2-3=-1,即255,继续循环)//错误,由于const修饰的是q,此时的q的指向不可以进行修改。//在内存中开辟一块空间,左值为空间,右值为内容。
2024-06-24 18:57:03
1827
原创 C语言复习知识点3
/传过去的是二维数组的数组名,即数组首元素的地址,也就是第一行的地址,第一行也是个数组,用一个数组指针接收(比较少用)//此处由于结尾没有'\0',strlen的机制是遇到'\0'即停止,所以在结尾没有'\0'时为随机数。//直接通过""定义字符串时,会自动在结尾补'\0',不需要自行补充,但'\0'依旧会占据一个字节。 **反码:**正数的反码为原码本身,负数反码符号位不变,剩余的数字位取反;//用数组的形式传递参数,不需要指定参数的大小,传的只是数组首元素的地址。//或char a[]="axd"
2024-06-21 12:30:22
396
原创 C语言知识点复习2
函数声明,要满足先声明后使用的原则,由返回值类型、函数名与函数参数组成(需要加分号), 当我们用到很多函数声明的时候,为了方便我们的调用,我们可以创建一个头文件.h(比如test.h),将函数声明放在头文件当中 ,在写头文件时,要注意加上#pragma once。 形参:函数名括号后的变量,因为形参只有在被调用的时候才被实例化并分配空间(形参实例化),在被调用过后即被销毁,只在该函数中有效(局部变量),所以叫形参。 表达式1为初始化部分,用于初始化循环变量,当表达式1为空时直接进入循环;
2024-06-15 22:52:02
345
1
原创 C语言知识点复习1
作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。 1、整型(int) 四字节,默认有符号(-231-231-1),无符号加unsigned(0-232-1)(十位数); 表达式部分为真则执行语句(0为假,非0为真),尽量在每个分支语句后都加{},否则只会执行分支后第一条语句。 4、长长整型(long long int), 八字节(-263-263-1),无符号(0-264-1);
2024-06-15 22:38:36
405
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人