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

相关推荐
JH30732 小时前
SpringBoot 优雅处理金额格式化:拦截器+自定义注解方案
java·spring boot·spring
盐焗西兰花2 小时前
鸿蒙学习实战之路-Reader Kit修改翻页方式字体大小及行间距最佳实践
学习·华为·harmonyos
QiZhang | UESTC2 小时前
学习日记day76
学习
久邦科技2 小时前
20个免费电子书下载网站,实现电子书自由(2025持续更新)
学习
Coder_Boy_3 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
Gain_chance3 小时前
34-学习笔记尚硅谷数仓搭建-DWS层最近一日汇总表建表语句汇总
数据仓库·hive·笔记·学习·datagrip
invicinble3 小时前
对tomcat的提供的功能与底层拓扑结构与实现机制的理解
java·tomcat
较真的菜鸟3 小时前
使用ASM和agent监控属性变化
java
黎雁·泠崖3 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
Gain_chance4 小时前
36-学习笔记尚硅谷数仓搭建-DWS层数据装载脚本
大数据·数据仓库·笔记·学习