Java期末复习基础题编程题
文章目录
- 基础题记录
- 实践题记录&&与C++比较
- 题目1:
- 题目2:
- 题目3:
基础题记录

编译型语言:
定义:在程序运行之前,通过编译器将源程序编译成机器码(可运行的二进制代码),以后执行这个程序时,就不用再进行编译了。
代表语言:C、C++
解释型语言:
定义:解释型语言的源代码不是直接翻译成机器码,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。在运行的时候才将源程序翻译成机器码,翻译一句,然后执行一句,直至结束。
代表语言:JavaScript、Python
混合型语言:
定义:既然编译型和解释型各有缺点就会有人想到把两种类型整合起来,取其精华去其糟粕,就出现了半编译,半解释型语言。
java就是混合型语言

B:编译:javac 文件名.java 运行:java 文件名
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g8X5VKdI-1690521510534)(https://gitee.com/aure0219/typora-img/raw/master/202307281313003.png)]](https://img-blog.csdnimg.cn/6ffa49b104a04fd99c21c452b77112db.png)

1、 每个编译单元(文件)只能有一个public 类。这么做的意思是,每个编译单元只能有一个公开的接口,而这个接口就由其public 类来表示。
2、 java程序的入口是main方法,所以被定为public的这个类里一定是含有main方法的类,而且该类的名称要和文件名一致,因为虚拟机开始要找main的。(同个源文件有多个公共类,编译器就找不到应该执行的main方法了)
5


![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1tfI1Cvp-1690521638847)(https://gitee.com/aure0219/typora-img/raw/master/202307281314364.png)]](https://img-blog.csdnimg.cn/abc759689d274b30b3c45d663b0a4eb2.png)
goto是的

定义str必须要双引号,双引号,里面一个字符也没事的,但是就是要双引号
java中的float和C语言不一样
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FDtbAzt3-1690521510536)(https://gitee.com/aure0219/typora-img/raw/master/202307281314157.png)]](https://img-blog.csdnimg.cn/77112bb88e0e4d139bb8941d7febfc3d.png)
字符串和int型是可以相加的,即转成字符串
A:float不能变成long,把n改成int也不行
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-THEm4sdj-1690521510536)(https://gitee.com/aure0219/typora-img/raw/master/202307281314364.png)]](https://img-blog.csdnimg.cn/73afcc3a6c2c4efcbeecdd542a5ae13f.png)
编译报错:The local variable z may not have been initialized

java中有printf,最终结果是12,x变成了2

实践题记录&&与C++比较
题目1:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
import java.util.TreeSet;public class TotalArea {public static void main(String[] args) {//Map<Integer,Student> mp=new TreeMap<Integer,Student>();Map<String ,Integer>mp=new HashMap<String,Integer>();Map<String,Integer>s=new HashMap<String,Integer>();int n,m,k;Scanner input=new Scanner(System.in);n=input.nextInt();m=input.nextInt();k=input.nextInt();String sas=input.nextLine();//第一个坑for(int i=1;i<=n;++i) {String str=input.nextLine();mp.put(str,0);}for(int i=1;i<=m;++i) {String str=input.next();int score=input.nextInt();s.put(str,score);}for(int i=1;i<=k;++i) {String str=input.next();String ss=input.next();String h=input.next();if(h.equals("AC")) {if(s.containsKey(ss)&&mp.containsKey(str)) //第二个坑mp.put(str, s.get(ss)+mp.get(str));}}Iterator iter=mp.entrySet().iterator();while(iter.hasNext()) {Map.Entry entry=(Map.Entry)iter.next();if(entry.getValue()!=null) //第三个坑System.out.println(entry.getKey()+" "+entry.getValue());} }
}
第一个坑:如果不加这行代码的话,下面的nextline会先读取换行符(和C++使用getline差不多)
第二个坑:如果不加这行代码,编译失败Cannot invoke "java.lang.Integer.intValue()" because the return value of "java.util.Map.get(Object)" is null,意思就是可能会是null
第三个坑:如果没有这行代码,此时是没有影响的,因为有if(s.containsKey(ss)&&mp.containsKey(str)的保证
但是如果那行代码,考虑下面的输入
2 2 4
GabrielPessoa
beza
metebronca 100
geometry 200
beza metebronca AC
ffern numbertheory AC
GabrielPessoa geometry WA
beza geometry AC输出
GabrielPessoa 0
beza 300
ffern null
但是这是错误的代码,因为题目说输出 N 行, 第 i 行输出第 i个人的名字和对应分数 (名字和分数用空格隔开)。
而现在的代码输出是随机的,下面是错误样例
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rRYI3YHC-1690521510537)(https://gitee.com/aure0219/typora-img/raw/master/202307281314921.png)]
本应该先输出2的,但现在先输出了1
所以要加一个数组来记录他们的顺序
下面来看AC代码
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
import java.util.TreeSet;public class TotalArea {public static void main(String[] args) {Map<String ,Integer>mp=new HashMap<String,Integer>();Map<String,Integer>s=new HashMap<String,Integer>();int n,m,k;String []name=new String [1000];Scanner input=new Scanner(System.in);n=input.nextInt();m=input.nextInt();k=input.nextInt();String sas=input.nextLine();for(int i=1;i<=n;++i) {String str=input.nextLine();mp.put(str,0);name[i]=str;}for(int i=1;i<=m;++i) {String str=input.next();int score=input.nextInt();s.put(str,score);}for(int i=1;i<=k;++i) {String str=input.next();String ss=input.next();String h=input.next();if(h.equals("AC")) {if(s.containsKey(ss)&&mp.containsKey(str)) {mp.put(str, mp.get(str)+s.get(ss));}}}for(int i=1;i<=n;++i) {if(mp.get(name[i])!=null) System.out.println(name[i]+" "+mp.get(name[i]));}
// Iterator iter=mp.entrySet().iterator();
// while(iter.hasNext()) {
// Map.Entry entry=(Map.Entry)iter.next();
// if(entry.getValue()!=null)
// System.out.println(entry.getKey()+" "+entry.getValue());
// }
// }
}}
通过name数组来存放相对位置,这样输出的时候也就不需要用迭代器了
再来看看用C++写的代码
#include<bits/stdc++.h>
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
map<string,int>people;
map<string,int>score;
int main(void) {
int n,m,k,s1;
string s,x,y;
cin>>n>>m>>k;
while(n--){cin>>s;people[s]=1;
}
while(m--){cin>>s>>s1;score[s]=s1;
}
while(k--){cin>>s>>x>>y;if(people[s]&&y=="AC") people[s]=people[s]+score[x];
}
//map<string,int>::iterator it;
//map<int,map<string,int> >::iterator it;
//for(it=people.begin();it!=people.end();it++){
// if(it->second==0) continue;
// cout<<it->first<<" "<<it->second-1<<endl;
//}
for(auto a:people){if(a.second!=0) cout<<a.first<<" "<<a.second-1<<endl;
}
return 0;
}
//这个写法没考虑到map会按键进行排序,所以输出的时候没按题中输入顺序输出,所以考虑在map前面在加一个参数来记录输入顺序
和java不一样,c++的map会按键进行排序(c++的map相当于java中的TreeMap)
#include <bits/stdc++.h>
using namespace std;
map<int,map<string,int> >people;
map<string,int>score;
int main(void){int n,m,k;int score1;string str,str1,str2;cin>>n>>m>>k;for(int i=1;i<=n;++i) {cin>>str;people[i][str]=1;}for(int i=1;i<=m;++i){cin>>str>>score1;score[str]=score1;}while(k--){cin>>str>>str1>>str2;if(str2=="AC"){for(int i=1;i<=n;++i){if(people[i][str]>0){people[i][str]+=score[str1];break;}}}}for(int i=1;i<=n;++i){for(auto t:people[i]){if(t.second>0) cout<<t.first<<" "<<t.second-1<<endl;//因为初始化1,所以这里要剪掉1 }}return 0;
}
那如果运用这个思路,用java怎么实现呢
public class Student {public String name;public int score;Student(){};Student(String name,int score){this.name=name;this.score=score;}
}import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
import java.util.TreeSet;
public class TotalArea {public static void main(String[] args) {Map<Integer,Student> mp=new TreeMap<Integer,Student>();Map<String,Integer>s=new HashMap<String,Integer>();int n,m,k;Scanner input=new Scanner(System.in);n=input.nextInt();m=input.nextInt();k=input.nextInt();String sas=input.nextLine();for(int i=1;i<=n;++i) {String str=input.nextLine();mp.put(i,new Student(str,0));}for(int i=1;i<=m;++i) {String str=input.next();int score=input.nextInt();s.put(str,score);}for(int i=1;i<=k;++i) {String str=input.next();String ss=input.next();String h=input.next();if(h.equals("AC")) {Iterator iter=mp.entrySet().iterator();while(iter.hasNext()) {Map.Entry entry=(Map.Entry)iter.next();if(entry.getValue()!=null) //此时要返回下标,然后进行操作,但现在还未能实现}}}}
}
通过对比,我觉得我在实现类似map类有关操作时,还是C++的STL用的比较熟练,代码量也相对于Java来说较少。
题目2:

import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class TotalArea {public static void main(String[] args) {Set<Point> p=new HashSet<Point>();Scanner in=new Scanner(System.in);int n=in.nextInt();final int N=600;int [][]ch=new int [N][2];for(int i=1;i<=n;++i) {ch[i][0]=in.nextInt();ch[i][1]=in.nextInt();} for(int i=1;i<=n;++i) {for(int j=1;j<=n;++j) {if(i!=j) {int a=ch[i][0]-ch[j][0];int b=ch[i][1]-ch[j][1];p.add(new Point(a/gcd(a,b),b/gcd(a,b)));}}}System.out.println(p.size());
}
static int gcd(int x,int y){return y==0?x:gcd(y,x%y);
}
}
class Point{private int x;private int y;Point(){};public Point(int x,int y){this.x=x;this.y=y;}
}
下面来看C++AC代码
#include <bits/stdc++.h>
#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
set<pair<int,int> >mp;//set里面放pair
//map<int,vector<int> >mp;
int ch[510][2];
int gcd(int x,int y){return y==0?x:gcd(y,x%y);
}
int main(void) {
int n;
cin>>n;
for(int i=1;i<=n;++i){cin>>ch[i][0]>>ch[i][1];
}
for(int i=1;i<=n;++i){for(int j=1;j<=n;++j){if(i!=j){int x=ch[i][0]-ch[j][0];int y=ch[i][1]-ch[j][1];// mp.insert(pair<int,int>(x/gcd(x,y),y/gcd(x,y)));//mp.insert(make_pair(x/gcd(x,y),y/gcd(x,y)));mp.insert({x/gcd(x,y),y/gcd(x,y)});//这几种写法都可以的}}
}
cout<<2*mp.size();
return 0;
}
为什么用c++写最后的size要乘2呢,而java直接就是size呢,按代码分析理应是两个都需要*2的,因为一正一负,而存入set中的都是正的
//下面是java的
输入:
3
1 1
4 5
1 4
输出:
3 1
3 4
0 1
3 4
3 1
0 1
6
//发现此时的set并没有去重//下面是C++的
输入:
3
1 1
4 5
1 4
输出:
0 1
3 1
3 4
6
注:在java中set去重是对象去重, 对象内容一样,但对象引用不一样,无法去重
package javafx.geometry;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;
public class TotalArea {public static void main(String[] args) {Set<Point> p=new HashSet<Point>();Scanner in=new Scanner(System.in);int n=in.nextInt();final int N=600;int [][]ch=new int [N][2];for(int i=1;i<=n;++i) {ch[i][0]=in.nextInt();ch[i][1]=in.nextInt();} for(int i=1;i<=n;++i) {for(int j=1;j<=n;++j) {if(i!=j) {int a=ch[i][0]-ch[j][0];int b=ch[i][1]-ch[j][1];Point c=new Point(a/gcd(a,b),b/gcd(a,b));p.add(c);}}}Iterator<Point>it=p.iterator();while(it.hasNext()) {Point c=(Point)it.next();System.out.println(c.getX()+" "+c.getY());}System.out.println(p.size());
}static int gcd(int x,int y){return y==0?x:gcd(y,x%y);
}
}
class Point{private Integer x;private Integer y;Point(){};public Point(Integer x,Integer y){this.x=x;this.y=y;}public Integer getX() {return x;}public Integer getY() {return y;}@Overridepublic boolean equals(Object obj) {// System.out.println("调用equals方法,当前的hashCode为:"+hashCode());/** 对象是 null 直接返回 false **/if (obj == null) {return false;}/** 对象是当前对象,直接返回 true **/if (this == obj) {return true;}/** 判断对象类型是否是User **/if (obj instanceof Point) ;Point vo=(Point) obj;/** 比较每个属性的值一致时才返回true **//** 有几个对象就要比较几个属性 **/if (vo.x.equals(this.x) && vo.y.equals(this.y)) {return true;}return false;}/*** 重写hashcode方法,返回的hashCode一样才再去比较每个属性的值*/@Overridepublic int hashCode() {return this.getX().hashCode() * this.getY().hashCode();}
}
这样,才实现了去重功能,上面如果写int编译过不了的(Cannot invoke equals(int) on the primitive type int Cannot invoke hashCode() on the primitive type int),
其中equals改成==就行了,但是hashCode怎么改。
那么写成Integer就不会报错了
输入
3
1 1
4 5
1 4
输出:
0 1
3 1
3 4
3
题目3:

Java代码
import java.util.LinkedList;
import java.util.Scanner;
public class TestCircle {public static void main(String[] args) {LinkedList<Integer> l=new LinkedList<Integer>();Scanner input=new Scanner(System.in);int t=input.nextInt();for(int i=1;i<=t;++i) {String str=input.next();if(str.equals("insert")) {int a=input.nextInt();int b=input.nextInt();l.add(a,b);}else if(str.equals("delete")) {int a=input.nextInt();l.remove(a-1);}else if(str.equals("query")) {int a=input.nextInt();System.out.println(l.get(a-1));}}}
}
当时复制输入数据的时候,发现最后一个query后的值不会输出,debug了好久迟迟发现不了什么问题,以为是代码出现了问题,最后发现还要按一下回车才行。。。。
C++ 代码
#include <bits/stdc++.h>
#include <vector>
using namespace std;
vector<int>G;
int main(void){
int n,x,y;
cin>>n;
string str;
while(n--){cin>>str;if(str=="insert"){//string类型支持直接等于比较cin>>x>>y;G.insert(G.begin()+x,y);}else if(str=="query"){cin>>x;cout<<G[x-1]<<endl;}else if(str=="delete"){cin>>x;G.erase(G.begin()+x-1);}
}
return 0;
}
这题的话,两种语言写法差不多,代码量也差不多
相关文章:
Java期末复习基础题编程题
文章目录 基础题记录实践题记录&&与C比较题目1:题目2:题目3: 基础题记录 编译型语言: 定义:在程序运行之前,通过编译器将源程序编译成机器码(可运行的二进制代码),以后执行这个程序时&…...
资深测试总结,自动化测试-ddt数据驱动yaml文件实战(详细)
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 ddt 驱动 yaml/ym…...
F12 浏览器调试模式页面刷新 network 日志刷新消失的解决办法
每次请求刷新后都把之前的请求记录刷新掉了,把preserve log勾选上后,所有的请求都会保留,再也不怕抓不到记录了。...
代理模式-对象的间接访问
现在朋友圈有好多做香港代购的微商,大部分网民无法自己去香港购买想要的商品,于是委托这些微商,告诉他们想要的商品,让他们帮我们购买。我们只需要付钱给他们,他们就会去香港购买,然后把商品寄给我们。这就…...
汽车产业链面临重大变革 大运乘用车加强产业布局 助力低碳出行
当前,国家“双碳”战略的全面实施,全球绿色产业发展理念的不断加深以及汽车产品形态、交通出行模式、能源消费结构变革所呈现的发展机遇等诸多因素,持续推动新能源汽车产业全面转型提速。据悉,2022年,中国新能源汽车销…...
simulink与遗传算法结合求解TSP问题
前言:刚开始入门学习simulink,了解了基本的模块功能后想尝试从自己熟悉的领域入手,自己出题使用simulink搭建模型。选择的是TSP问题的遗传算法,考虑如何用simulink建模思想来实现一个简单TSP问题的遗传算法。 TSP问题描述 一个配…...
环境搭建-Ubuntu18.04.6系统TensorFlow BenchMark的GPU测试
1. 下载Ubuntu18.04.6镜像 登录阿里云官方镜像站:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 2. 测试环境 Server OS:Ubuntu 20.04.6 LTS Kernel: Linux 5.4.0-155-generic x86-64 Docker Version:24.0.5, build ced0996 docker-com…...
C# 汇总区间
228 汇总区间 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围…...
加利福尼亚大学|3D-LLM:将3D世界于大规模语言模型结合
来自加利福尼亚大学的3D-LLM项目团队提到:大型语言模型 (LLM) 和视觉语言模型 (VLM) 已被证明在多项任务上表现出色,例如常识推理。尽管这些模型非常强大,但它们并不以 3D 物理世界为基础,而 3D 物理世界涉及更丰富的概念…...
HCIA实验四
一.实验要求: 1、R4为ISP,其上只能配置IP地址;R4与其他所有直连设备间均使用共有IP; 2、R3 - R5/6/7为MGRE环境,R3为中心站点; 3、整个网络配置OSPF环境,IP基于172.16.0.0/16网段划分&#x…...
常见的算法
查找算法 基本查找 Demo1 public static boolean basicSearch(int index,int[] arr){for (int i 0; i < arr.length; i) {if (indexarr[i]){return true;}}return false; } Demo2 //顺序查找,考虑重复,返回查找内容的索引 public static ArrayLis…...
Jetbrains 2023.2教程
IDEA 2023.2 激活演示 Pycharm 2023.2 激活演示 WebStorm 2023.2 激活演示 Clion 2023.2 激活演示 DataGrip 2023.2 PhpStorm 2023.1.4 激活演示(2023.2尚未发布) RubyMine 2023.2 激活演示 获取方式 仔细看每一个工具演示的图片 本文由 mdnice …...
OpenLayers入门,OpenLayers地图初始化时如何设置默认缩放级别、设置默认地图中心点、最大缩放级别和最小缩放级别以及默认坐标系
专栏目录: OpenLayers入门教程汇总目录 前言 OpenLayers地图初始化时如何设置默认缩放级别、初始化时设置默认地图中心点、设置最大缩放级别和最小缩放级别,超过缩放级别用户无法再放大和缩小,和设置默认坐标系。 二、依赖和使用 "ol": "^6.15.1"使用…...
css实现步骤条中的横线
实现步骤中的横线,我们使用css中的after选择器,content写空,然后给这个范围设定一个绝对定位,相当于和它设置伪类选择的元素的位置,直接看代码: const commonStyle useMemo(() > ({fontSize: 30px}),[]…...
【业务功能篇57】Springboot + Spring Security 权限管理 【上篇】
4.权限管理模块开发 4.1 权限管理概述 4.1.1 权限管理的意义 后台管理系统中,通常需要控制不同的登录用户可以操作的内容。权限管理用于管理系统资源,分配用户菜单、资源权限,以及验证用户是否有访问资源权限。 4.1.2 RBAC权限设计模型 …...
云计算需求激增带来的基础设施挑战及解决方案
云计算的指数级增长迅速改变了我们消费和存储数字信息的方式。随着企业和个人越来越依赖基于云的服务和数据存储,对支持这些服务的强大且可扩展的基础设施的需求已达到前所未有的水平。 云计算需求的快速增长 我们的日常生活越来越多地被新技术所渗透。流媒体服务、…...
R语言中的函数23:zoo::rollmean, rollmax, rollmedian, rollsum等等
文章目录 函数介绍rollmean()rollmax()rollmedianrollsum 函数介绍 rollmean(x, k, fill if (na.pad) NA, na.pad FALSE, align c("center", "left", "right"), ...)rollmax(x, k, fill if (na.pad) NA, na.pad FALSE, align c("cen…...
数据结构—数组和广义表
4.2数组 数组:按一定格式排列起来的,具有相同类型的数据元素的集合。 **一维数组:**若线性表中的数据元素为非结果的简单元素,则称为一维数组。 **一维数组的逻辑结构:**线性结构,定长的线性表。 **声明…...
服务器负载均衡算法有哪些
算法举例 服务器负载均衡算法是用于分配网络流量到多个服务器的策略,以实现负载均衡和提高系统性能。以下是一些常见的服务器负载均衡算法的详细说明: 轮询(Round Robin)算法: 轮询算法是最简单且常见的负载均衡算法之…...
2023年深圳杯数学建模B题电子资源版权保护问题
2023年深圳杯数学建模 B题 电子资源版权保护问题 原题再现: 版权又称著作权,包括发表权、署名权、修改权、保护作品完整权、复制权、发行权、出租权、展览权、表演权、放映权、广播权、信息网络传播权、摄制权、改编权、翻译权、汇编权及应当由著作权人…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
智能职业发展系统:AI驱动的职业规划平台技术解析
智能职业发展系统:AI驱动的职业规划平台技术解析 引言:数字时代的职业革命 在当今瞬息万变的就业市场中,传统的职业规划方法已无法满足个人和企业的需求。据统计,全球每年有超过2亿人面临职业转型困境,而企业也因此遭…...
leetcode_69.x的平方根
题目如下 : 看到题 ,我们最原始的想法就是暴力解决: for(long long i 0;i<INT_MAX;i){if(i*ix){return i;}else if((i*i>x)&&((i-1)*(i-1)<x)){return i-1;}}我们直接开始遍历,我们是整数的平方根,所以我们分两…...
