2024/3/31学习总结

才不是今天没有学大知识才学这个。等我下周我发个大的。最近在读mysql的innodb底层,到时候给大家总结大的用自己的话,应该是缓慢更新吧

一、上午

1.1 icpc西部赛

酣畅淋漓的环节。主办方没有活硬整,就a,c,d,h可以做。a,h还题目意思都不对。什么玩意

H题解

#include <bits/stdc++.h>
#define OST std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
using namespace std;
typedef long long ll;
typedef  pair<int,int> PII;
const int INF = 0x3f3f3f3f;


string YES="YES",NO="NO",Yes="Yes",No="No",yes="yes",no="no";

void slove(){
	int n;
	cin>>n;
	vector<string> vec;
	string s;
	for(int i=0;i<n;i++){
		cin>>s;
		vec.push_back(s);
	}
	ll fs[4]={0};
	for(int i=0;i<4;i++) cin>>fs[i];
	ll blood=0;
	cin>>blood;
	ll combo=0;
	ll ans=0;
	for(auto s:vec){
		if(s=="miss"){
			blood-=2;
			combo=0;
		} 
		else if(s=="bad") {
			ans+=fs[3];
			blood-=1;
			combo=0;
		}
		else if(s=="good") {
			ans+=fs[2];
			combo=0;
		}
		else if(s=="great"){
			ans+=fs[1];
			ans+=combo;
			combo++;
		}
		else if(s=="perfect"){
			ans+=fs[0];
			ans+=combo;
			combo++;
		}
		if(blood<=0){
			cout<<"Poor Severus"<<endl;
			return;
		}
	}
	cout<<ans<<endl;
}

int main(){
	OST;
	int nn=1;
	while(cin>>nn){
		int j=1;
		while(j<=nn){
			cout<<"Case $"<<j<<":"<<endl;
			slove();
			//			if(j<nn) cout<<endl;
			j++;
		}
	}
}

c找不到题解了。

反正一个铜牌,没有含金量的比赛

二、下午

嘎嘎大睡。八股文

2.1 LinkedHashMap你可以介绍下嘛

LinkedHashMap继承了Hashmap的方法和函数。但是他重新了afterNodeRemoval,AfterNodeInsertion,afterNodeAccess方法。是他和hashmap不一样可以顺序插入和按序访问。

2.2 LinkedHashMap是如何按需插入迭代元素的

LinkedHashMap默认情况下就是按顺迭代的。accessOrder参数指定了按需访问。当access为true的时候,即get获取特定的值之后会将这个值放入链表的尾部。

2.3 LinkedHashMap是如果实现LRU?

LinkedHashMap内部维护的一个双向链表。当accessOrder为true并且removeEldenEntry重写的时候,当链表的长度大于容量放回true的时候,则会将头节点进行下移动,这样子就实现了lru.

2.4 LInkedHashMap和Map的区别

LinkedHasMap底层是双向链表,支持插入顺序和按序访问的。但是hashmap里面的参数则是不一定的。由于LinkedHashMap要维护双向链表所以会导致他的插入效率比较低。但是他提供了更多的功能,并且遍历迭代的时间比hashmap快。

2.5 什么是进程和线程

进程是程序的一次运行过程,是操作系统运行程序的基本单位,所以进程是动态的。当操作系统运行程序即是一个进程创建、运行到销毁的过程。

线程:线程是比进程更小的单位。一个进程可以同时拥有多个进程,同一个进程中的线程共享堆和方法区。线程的上下文切换开销与进程少,也叫轻量化的进程

2.6 java线程和操作系统的线程有啥区别?

jdk1.2之前使用的是绿色线程,即是java自己模拟的多线程,是不依赖操作系统的。则无法使用操作系统的io异步。只可以在内核线程中运行无法利用多核态的特点。

jdk1.2使用操作系统内核抬得代码,由操作系统内核来管理线程的调度和管理。

相关推荐
虫小宝3 小时前
如何在Java中实现批量数据处理
java·开发语言
king888866663 小时前
Java中的AQS
java
吉拉尔3 小时前
昇思25天学习打卡营第06天 | 网络构建
学习
冰暮流星3 小时前
软设之类的继承与泛化,多重继承
java·开发语言
虫小宝3 小时前
Java中的多线程与并发编程详解
java·开发语言
oNuoyi3 小时前
定位线上同步锁仍然重复扣费的Bug定位及Redis分布式锁解决方案
java·spring boot·redis·分布式
Easonmax3 小时前
【C++】 解决 C++ 语言报错:Undefined Reference
java·开发语言·c++
王大锤43913 小时前
idea导入opencv和mediapipe
java·opencv·intellij-idea
Java追光着3 小时前
谷粒商城学习-07-虚拟机网络设置
服务器·网络·学习·谷粒商城
github_zwl3 小时前
昇思25天学习打卡营第6天|linchenfengxue
人工智能·学习·目标跟踪