- 博客(17)
- 收藏
- 关注
原创 编译原理(高级语言转变为机器语言的步骤)
代码生成:根据目标机器的架构和特性,将优化后的中间代码转化为机器语言的指令序列。代码优化:对中间代码进行一系列的优化操作,以提高程序的性能和效率。词法分析:将高级语言的源代码分解为一个个的词法单元(也称为记号或词元),如变量名、运算符、关键字等。目标代码优化:对生成的机器代码进行优化,以进一步提高程序的性能和效率。目标代码生成:将优化后的机器代码转化为目标机器的二进制表示形式,生成可执行文件或可加载的目标模块。以上是高级语言转变为机器语言的大致步骤,具体的实现方式和工具可能会有所不同,但整体流程大致相似。
2024-06-07 15:17:12
591
原创 javaEE的SSH介绍
SSH是指Spring+Struts2+Hibernate,它是一种基于Java的Web开发框架。SSH框架结合了Spring的容器管理、Struts2的MVC设计模式和Hibernate的对象关系映射,使得开发人员能够更加方便地进行Java Web应用程序的开发。上述示例代码中,Spring框架负责管理UserService和UserDao两个bean的创建和依赖注入,Hibernate框架负责与数据库进行交互,Struts2框架负责处理用户的请求和返回相应的视图。
2024-06-07 15:12:09
167
原创 Java和Tomcat来构建和运行Web应用程序
Java和Tomcat的结合可以提供一个强大的平台来开发和运行Web应用程序。配置Tomcat:将Web应用程序部署到Tomcat的webapps目录下,并配置Tomcat的server.xml文件以指定Web应用程序的上下文路径和端口号。访问Web应用程序:在浏览器中输入Tomcat的URL和Web应用程序的上下文路径,即可访问Web应用程序。Java和Tomcat是两个不同的东西,但它们可以一起使用来构建和运行Web应用程序。启动Tomcat:通过运行Tomcat的启动脚本来启动Tomcat服务器。
2024-03-15 13:59:11
421
1
原创 Java 常用的数据类型
类型的装箱和拆箱:基本数据类型和对应的包装类之间可以相互转换,称为装箱和拆箱。装箱将基本数据类型转换为对应的包装类,拆箱将包装类转换为对应的基本数据类型。数值类型与字符类型之间的转换:基本数值类型和字符类型之间可以相互转换。例如,char 类型可以转换为 int 类型,int 类型也可以转换为 char 类型。自动类型转换:当容量小的数据类型与容量大的数据类型做运算时,容量小的数据类型会自动转换为容量大的数据类型。字符串与基本数据类型之间的转换:字符串与基本数据类型之间的转换需要使用相应的包装类。
2024-03-15 13:57:21
398
1
原创 Java的输入与输出
使用NIO(New IO):Java提供了新的非阻塞IO库,可以通过使用ByteBuffer和Channel类来进行大型数据的输入输出操作。使用文件映射方式:Java提供了FileChannel以及MappedByteBuffer类,可以使用文件映射方式来直接读写大型数据文件。使用缓冲IO流:Java提供了BufferedReader和BufferedWriter类,可以使用这两个类来读取大型数据文件和写入大量数据到文件。使用字节流:如果处理的数据是二进制数据,可以使用字节流来进行读写操作。
2024-03-11 14:34:24
1212
1
原创 c语言的输入输出
gets函数:用于从键盘上接收字符串输入,并将其存储到字符数组中。以上函数是C语言中常用的输入输出函数,可以满足大部分的基本需求。scanf函数:用于从键盘上接收输入值,并将其存储到变量中。getchar函数:用于从键盘上接收一个字符输入。putchar函数:用于将一个字符输出到屏幕上。printf函数:用于将输出结果打印到屏幕上。puts函数:用于将字符串输出到屏幕上。
2024-03-11 14:31:21
756
1
原创 介绍 TensorFlow 的基本概念和使用场景
TensorFlow的主要特点是其灵活性和可扩展性,可以在多种平台上运行,包括手机、服务器和分布式系统。TensorFlow提供了丰富的API和工具,使得开发人员可以轻松地构建、训练和部署机器学习模型。它支持多种编程语言,如Python、C++和Java,并提供了高级封装接口,如Keras和Estimator,使得模型开发更加简洁和容易。它可以用于各种机器学习任务,如图像分类、目标检测、文本生成和自然语言处理。它的灵活性和可扩展性使得它适用于各种应用场景,并且在学术界和工业界都得到了广泛的应用和认可。
2024-03-08 09:35:40
432
1
原创 朴素Dijkstra算法
dis[1]=0,其他的点dis[v]都初始化为正无穷(实际实现中用一个比较大的数代替即可),dis[v]=+无穷;第一步只有起点被遍历到了,只有它的距离是确定的。
2023-01-17 18:49:20
157
原创 KMP算法,看完这篇你就懂了
如果不成立,就不断令j=next[j],直到j=-1或者找到s[5]=s[j+1]成立。如图2.1.2所示,当已经得到next[3]=1时,最长相等前后缀等于“ab",之后在计算next[4]时,由于s[4]==s[next[3]+1],因此可以把最长相等的前后缀"ab"扩展为"aba",因此next[4]=next[3]+1=3,并令j指向next[4]。图6:i=5,子串s[0,i]为"ababaa",能使前后缀相等的最大的k为1,当k=1时,后缀s[i-k,i]为"a",前缀s[0,i]为"a";
2022-12-25 22:16:39
387
原创 C++之引用(详)
结论:C++推荐用引用技术,因为语法方便,引用本质是指针常量,但是所有的指针操作编译器都帮我们做了。总结:通过引用参数产生的效果同按地址传递是一样的。引用的语法更清楚简单。在函数形参列表中,可以加==const修饰形参==,防止形参改变实参。函数传参时,可以利用引用的技术让形参修饰实参。作用:引用是可以作为函数的返回值存在的。常量引用主要用来修饰形参,防止误操作。引用在初始化后,不可以改变。用法:函数调用作为左值。可以简化指针修改实参。
2022-11-11 20:11:05
112
原创 排序之快速排序
快排的核心思想是分治。进行快排的大体步骤可以分为3步:1.确定分界点我们可以选择的点有四种,第一种是左端点,第二种是右端点,第三种是中电,第四种是区间内的随机值2.调整区间3.递归处理左右两段我们要说的第一种实现方式是暴力实现:1.设置数组a[],b[]2.遍历给出的数组,q[i]x的,放入b数组。3.最后将a,b数组排入q数组我们采用两个指针的做法,即设置指针i,指针j。i指向左端点,j指向右端点,先移动i,若满足条件q[i]>1],则i继续向下一位移动。
2022-11-02 22:49:43
147
原创 递归实现指数型枚举
我们的思路是,依次从1~n考虑每个数选或者不选,以下图片就是以n为3所举的一个例子,我们采用递归搜索树跟深度优先搜索结合。同一行内的数必须升序排列,相邻两个数用恰好 1个空格隔开。从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。解法之递归,递归最重要的就是顺序,即可以将所以可能都考虑到。对于没有选任何数的方案,输出空行。
2022-10-31 03:00:00
86
原创 C++课程设计之通讯录管理系统
亲爱的小伙伴们大家好啊,今天给大家带来的是C++课程设计之通讯录管理系统。我们进行课程设计的主要目的是为了对C++的基础进行复习,为后续深入学习其他知识打好基础。
2022-10-30 10:17:53
1212
原创 简单斐波那契数列问题
这种方法是设fn=a+b;然后将a,b都往前推一步,即a=fn-1,b=fn;也就是a=b,b=fn;在一行中输出斐波那契数列的前 N项,数字之间用空格隔开。这个数列从第 3项开始,每一项都等于前两项之和。请你输出这个序列的前 N 项。用数组来存储,采用递推的方法。被称为斐波纳契数列。
2022-10-29 23:34:58
521
1
Java程序设计之课程设计作业
2024-03-08
openmv串口通信功能介绍
2023-07-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人