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使用操作系统内核抬得代码,由操作系统内核来管理线程的调度和管理。

相关推荐
腥臭腐朽的日子熠熠生辉28 分钟前
解决maven失效问题(现象:maven中只有jdk的工具包,没有springboot的包)
java·spring boot·maven
ejinxian30 分钟前
Spring AI Alibaba 快速开发生成式 Java AI 应用
java·人工智能·spring
杉之36 分钟前
SpringBlade 数据库字段的自动填充
java·笔记·学习·spring·tomcat
圈圈编码1 小时前
Spring Task 定时任务
java·前端·spring
俏布斯1 小时前
算法日常记录
java·算法·leetcode
27669582921 小时前
美团民宿 mtgsig 小程序 mtgsig1.2 分析
java·python·小程序·美团·mtgsig·mtgsig1.2·美团民宿
爱的叹息1 小时前
Java 连接 Redis 的驱动(Jedis、Lettuce、Redisson、Spring Data Redis)分类及对比
java·redis·spring
程序猿chen1 小时前
《JVM考古现场(十五):熵火燎原——从量子递归到热寂晶壁的代码涅槃》
java·jvm·git·后端·java-ee·区块链·量子计算
松韬2 小时前
Spring + Redisson:从 0 到 1 搭建高可用分布式缓存系统
java·redis·分布式·spring·缓存
绝顶少年2 小时前
Spring Boot 注解:深度解析与应用场景
java·spring boot·后端