自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 收藏
  • 关注

原创 Java 解决运行超时TLE,MLE,从入门到入坑完整版

1、用BufferedReader替换Snanner作为输入class Reader { static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer tokenizer = new StringTokenizer(""); static String nextLine() throws IOException{// 读取下一行字符串 retu

2021-02-08 09:48:24 2246 2

原创 c++转型java 需要总结 需要记牢的算法(全排列,重写的sort方法 ,动态规划,重复初始化数组

1 全排列public class 全排列_优快云 { public static void main(String[] args) { //待排列数组 int a[] = {1,2,3}; //Permutation>>全排列;perm(待排列数组,排列开始位置,排列结束位置) perm(a, 0, a.length); } public static void perm(int arr[], int start, int end) { if (start

2021-01-25 20:19:03 288

原创 动态规划教学,入门到入坑完整版,包含几十道例题

0-1背包问题描述:有n个物体,w(i),p(i) 分别为第i个物体的重量和价值,装进c容量的背包,求背包最大价值。解题:变量nw(i)p(i)g(i,j),在j容量的情况下,从前i个物体中挑选出来,背包的最大价值g(i,j)={ g(i-1,j) w(i)>j;{ max( g(i-1,j) g(i-1,j-w(i))+p(i)) w(i)<=j初始化: g(1,j)=p(1) { if(j=>w(1) }g(1,j)=0

2020-10-11 18:45:50 364 1

原创 数据结构-手撕链表

力扣和牛客题的数据结构的题目都是在已有的链表上写方法,缺少从0构建链表。

2022-12-12 22:09:02 252

原创 acm,pat算法常用英文

Data Structures 基本数据结构Dictionaries 字典Priority Queues 优先队列Graph Data Structures 图Set Data Structures 集合Kd-Trees 线段树Numerical Problems 数值问题Solving Linear Equations 线性方程组Matrix Multiplication 矩阵乘法Determinants and Permanents 行列式Constrained and Unconstrained Op

2021-09-11 11:52:17 332

原创 算法比赛经历--蓝桥杯,天梯赛,力扣,牛客,cf,acwing,acm

第一次蓝桥杯,是去年,用c++写,混了个省二等。今年蓝桥杯,用java写,水进上海前三,混了个省一等,国赛混了个二等天梯赛混了个团三。。。然后是查缺补漏,扩展算法知识点,真枯燥,临近白发,刷题太累,不想再刷题,只想打比赛联想赛,科大讯飞杯,接着打力扣,牛客,cf,acwing,acm,。算法,花了很多时间,学的一直不够深,努力过,算法让我获得了很多不属于我的东西(很多!)快毕业了,却感觉是刚刚起步学算法。...

2021-09-08 18:02:55 3512 4

原创 java后端面经--spring bean的作用域

singleton:默认,每个容器中只有一个bean的实例,单例的模式由BeanFactory自身来维护。该对象的生命周期是与Spring lOC容器一致的(但在第一次被注入时才会创建)。prototype:为每一个bean请求提供一个实例。在每次注入时都会创建一个新的对象request:bean被定义为在每个HTTP请求中创建一个单例对象,也就是说在单个请求中都会复用这一个单例对象。session:与request范围类似,确保每个session中有一个bean的实例,在

2021-08-21 11:09:18 232

原创 java后端面经--spring bean的生命周期(难点)

1、解析类得到BeanDefinition2、如果有多个构造方法,则要推断构造方法3、确定好构造方法后,进行实例化得到一个对象4、对对象中的加了@Autowired注解的属性进行属性填充5、回调Aware方法,比如BeanNameAware,BeanFactoryAware6、调用BeanPostProcessor的初始化前的方法7、调用初始化方法8、调用BeanPostProcessor的初始化后的方法,在这里会进行AOP9、如果当前创建的bean是单例的则会把bean放入单例池10

2021-08-21 11:00:18 216

原创 java后端面经--BeanFactory和ApplicationContext

同方面的区别:Bean工厂使用延迟加载形式来注入bean,只有在使用到相应bean时才会加载实例化,这样无法发现spring的配置问题ApplicationContext在容器启动时,一次性创建了所有bean,就可以更早发现spring的配置问题,另一方面也占用了内存空间,程序启动较慢。BeanFactory通常以编程的方式被创建,ApplicationContext还能以声明的方式创建。对于BeanPostProcessor,BeanFactoryPostProcessor,BeanFac

2021-08-21 10:55:53 199

原创 java后端面经--spring,aop,ioc

轻量级的j2EE框架(J2EE 是针对 Web Service、业务对象、数据访问和消息报传送的一组规范)一个容器框架,用来装javabean对象一个中间层框架:一个连接作用(将简单的组件配置,组合成为复杂的应用)是轻量级的控制反转IOC(达到松耦合的目的)和面向切面AOP(实行内聚性的开发)的容器框架AOP:面向切面:表示给方法增加的功能,一般是日志输出、事务、权限检查等切面aop可以看作是实现动态代理的一种规范,它把实现动态代理的步骤进行了规范化作用:1.在目标类不增

2021-08-20 17:18:29 209

原创 java后端面经--线程池中的线程复用原理

线程池将线程和任务解耦,分开独立,摆脱了之前通过Thread创建线程时的一个线程必须对应一个任务的限制 在线程池中:同一个线程可以在阻塞队列中不断获取新任务来执行,让每一个线程执行一个“循环任务”--调用任务中的run方法,通过这种方法只使用一个固定的线程就将所有任务的run方法串联起来。...

2021-08-20 11:23:03 265

原创 java后端面经--线程池中阻塞队列

阻塞队列作用:1,自带阻塞和唤醒功能,2,无任务执行时,线程池利用阻塞队列的take方法挂起,从而维持核心线程的存活,不至于一直占用cpu资源。3,任务数超过了核心线程数量,就有保存任务的作用有新任务时,为什么是先添加队列而不是先创建线程?因为在创建新线程时,是要获取全局锁的,这个时候其他的线程就会阻塞,会影响整体效率。放入阻塞队列中,有机会有休息的核心线程执行队列的任务,减少了创建新线程的消耗。...

2021-08-20 11:08:56 378

原创 java后端面经--线程池和其中的参数

作用:1,降低资源消耗,提高线程利用率2,提高响应速度,3,提高线程的可管理性;线程是稀缺资源,使用线程池可以统一分配调优监控。几个参数:1,corePoolSize,代表核心线程数,表示正常情况下创建工作的线程数,是一种常驻线程2,maxinumPoolSize,代表的是最大线程数,它与核心线程数相对应,在核心线程数别用完了,就会创建新线程,但线程池内线程线程总数不会超过最大线程数3,keepAliveTime,unit表示超出,核心线程数之外的线程的空闲存活时间4,w

2021-08-17 21:34:57 183

原创 java后端面经--ThreadLocal

ThreadLoacl有个内部类,ThreadLocalMap,用来存放ThreadLocal对象和对应线程变量。TreadLocal:执行set,ThreadLocal对象和变量放入ThreadLocalMap执行get,以ThreadLocal为key获取对应value(变量)。每一个线程都有私有的ThreadLocalMap,容器相互独立,所以不存在线程安全问题、应用场景:使用ThreadLocal1,在进行对象跨层(数据层,持久层等等)传递时,可以避免多次传递,...

2021-08-04 21:17:29 223

原创 Thread和Runable

Thread为抽象类,Runable为接口Thread实现了Runable,有更多的功能应用场景:有复杂的线程操作需求,就继承Thread简单的执行一个任务,就实现Runable

2021-08-04 21:03:54 293

原创 java后端面经--sleep,wait,yield,join的区别

四者都是将,线程暂定,休息,中断,等待。1,锁池:所有需要竞争同步锁的线程都会放到锁池中。得到同步锁后就会进入就绪队列进行cpu资源分配2,等待池:调用了wait()后,线程被放到等待池中。只有调用了notify()或notifyAll(),线程才会去竞争同步锁。sleep(原理:把cpu的执行资格权利释放出去,过了休眠时间再收回,即使该线程有锁,sleep了也不会释放锁)sleep和wait区别:1,sleep是Thread的静态本地方法,wait是Object类的本地方法2,

2021-08-04 20:49:18 275

原创 java后端面经--并发三大特性

原子性:一个操作中国cpu不会再在中途进行其他调度工作,会保证操作的完整性(eg:cpu调度了一个线程,自增值后会完成 主存赋值)可见性:多个线程访问同一个变量时,一个线程修改了变量值,其他线程能够立刻看到被修改后的值有序性:因为虚拟机内部代码编译时,为追求运行效率,会进行指令重排序,这种情况,在单线程中是安全的,在多线程中就不是安全的。所以要保证代码的执行有序性。...

2021-07-31 20:24:04 178

原创 java后端面经--串行,并行,并发

串行:任务在时间上不会发生重叠,一个完整任务接一个完整任务并行:两个任务在同一时刻互不干扰的同时执行。并发:任务在时间上不会发生重叠,多个任务允许相互干扰,任务交替执行...

2021-07-29 21:08:48 284

原创 java后端面经--名词:守护线程(Daemon)

线程分为:守护线程和用户线程。任何一个守护线程会为所有用户线程服务。特点:1,守护线程的终止是自身无法控制的,依赖于进程运行,进程终止,守护线程一定关闭。2,守护线程产生的线程必定是守护线程GC垃圾回收线程是守护线程。应用场景:1,为其他线程提供服务支持2,在任何情况下,程序结束时,这个线程必须正常且立刻关闭,就用守护线程,...

2021-07-29 21:04:52 168

原创 java后端面经--双亲委派模型

用处:快速加载相关类。自顶向下加载器:BootStrapClassLoader(util.),ExtClassLoader(ext包),AppClassLoader(jar,自己写的代码)。向上委派到BootStrapClassLoader,过程为查找缓存,查到了就直接返回,向下查找到原发起的加载器,过程为,查找加载路径,有就直接返回。双亲委派模型的好处:1,安全性,避免用户编写相关类替换了java的核心类2,避免类的重复加载,jvm区分不同的类,不仅仅是根据类名,被不同加载器加载的也是

2021-07-29 20:51:37 140

原创 算法竞赛--代码技巧

快捷代码#include<bits/stdc++.h>#define for(i,n) for(int i=1;i<=n;i++)#define pb push_back#define x0 fuckhel#define y0 fuckoscar#define x1 fucksub#define y1 fuckzzy#define x first#define y secondusing namespace std;typedef long long ll;type

2021-07-25 00:50:45 219

原创 java后端面经--jdk,jre,jvm理解

java开发工具:jdk,java devolopment kit javajava运行时环境: jre, java runtime environmentjava虚拟机:jvm,java virtual machinejdk(jre(jvm,lib),其他工具)

2021-07-22 15:19:17 485 2

原创 java后端面经--面向对象的理解

1,面向过程:不关注对象,注重流程的过程,执行动作。2,面向对象:关注对象,有对应的属性,行为。优点:易于页面扩展,维护和复用特点:封装,继承,多态。封装:对象封装,私有属性,行为。1,javabean,内部属性私有,提供getset对外访问2,orm框架,为对象关系映射。通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中不需要关心链接是如何建立的。继承:继承父类的属性和方法,同时可以进行更多的改变多态:对同一方法的调用,实际执行的逻辑不同。

2021-07-22 14:55:23 324 2

原创 java后端面经--线程安全的理解

背景知识:进程,线程,堆,栈。线程安全:当多个线程在不用额外的同步控制或其他协调操作访问一个对象,能够获得正确结果,则为线程安全。堆是进程和线程共有的空间,分全局对和局部堆。堆是java虚拟机管理最大的一块内存,是线程共享的区域,是为了存放对象实例,以及为对象实例和数组分配内存。栈(就是一个方法对应 栈),是线程独有的,是线程安全的。原因:每个进程的内存空间中都有一块堆,进程中的所有线程都可以访问到这个区域,可能会造成线程不安全。...

2021-07-22 01:41:52 215

原创 java后端面经--gc垃圾回收

引用计数法:每个对象都有个引用计数属性,新建一个引用,计数增加,引用释放计数减1,计数为0时被回收(方便,但是对于相互引用的对象无效)可达性分析法:从gc roots开始根据引用链向下搜索,当对象不在引用链,会被回收。gc roots对象:(有哪些是gc roots)1,虚拟机栈中的引用对象(就是指方法中new 的对象)2,方法中静态属性引用对象3,方法中常量引用对象4,本地方法栈中JN引用的对象可达性分析法:内部原理:对象被回收需要两次标记第一次,对象没有与gc roots相连的引用链,

2021-07-21 02:50:17 188

原创 java后端面经--字节码的那些小知识

过程:java代码 -》编译-》生成字节码(.class)-》在虚拟机中运行字节码文件-》解释器-》将虚拟机代码转换成二进制机械码(不同系统,机械码不同)。虚拟机是固定的,但是不同平台的解释器不同,从而达到语言跨平台。优点:在传统解释型语言中保留了可移植型,高效型。...

2021-07-19 09:47:28 129

原创 java后端面经--hashCode()和equals()

简介:用于比较两个对象。所有对象都有hashcode方法当对象的hashcode的存在是,会用equals比较是否为同一个对象理解hashCode(),确定该对象在哈希表的索引位置,hashCode()定义在Object.java中,任何类都有hashCode()。hashCode()的作用:对象会加入到一个hashSet中,先计算hashCode值,判断该值位置是否有值了,如果没有,插入,如果有,需要用equals()判断两个对象是否相等,不相等就重新排列,相等就不插入。这样大大减少了equa

2021-07-19 09:36:40 144

原创 java后端面经--final

修饰对象:类:不能被继承方法:不能覆盖,只能重载变量:不可改变局部内部类和匿名内部类只能访问局部final变量。因为编译生成两个class,内部类用final变量延长生命。

2021-07-17 11:47:30 121

原创 java后端面经--抽象,接口

区别:抽象为前者;接口为后者抽象类是对类本质的抽象,是 麻雀是鸟 的关系接口是对行为的抽象,是 麻雀像飞机 的关系。1,函数:普通成员函数;public abstract 方法2,成员变量:多种类型;只能是public static final3,抽象只能继承一个,接口可以实现多个4,性价比:抽象能实现的功能远超过接口,但是代价高,因为每个类只能继承一个类,也必须继承或编写出所有的共性。接口功能较少,只对一个动作的描述,一个类中可以实现多个接口,设计难度简单,方便...

2021-07-17 11:37:49 103

原创 java后端面经——(默写)熟悉第一遍

已学习:1,3,4,为学习:2,

2021-07-17 11:02:32 141

原创 java后端--数据库优化

优化方向:1,索引2,表结构3,系统配置4,服务器性能sql字段 执行顺序:from on jion where groupby having select truncate orderby limit;使用索引:1,where中的 字段前不要加模糊查询2,where中的 表达式左侧不要使用函数表达式3,不要使用 1=1 查询4,不要使用nulll查询5,不要使用 不等于 <> !=6,不要用 or 可以用union...

2021-07-16 08:53:35 137

原创 java后端面经--容器

1:vector:1,动态数组,同步,线程安全2,扩容方式:数组满了,创建新数组,拷贝,删除旧数组3,效率较低ArrayList:1,不同步,底层是动态数组2,查找效率较高linkedlist:1,不同步,为双向链表,没有扩容机制2,修改删除操作快2:list和set的区别:1:存储顺序,set是不保序的2:set是去重的3:set不允许插入空值4:实现类不同:ArrayList,linkedlist,vector;hashset,treeset,linkedhashset

2021-07-15 09:08:55 142

原创 java后端面经--string,error,equals

1string:字符串常量,增删改会创建新对象消耗空间巨大,同步,线程安全stringbuffer:字符串变量,append,同步,线程安全,字符超过容量自动扩容stringbuilder:字符串变量,append,不同步,线程不安全,功能和stringbuffer相同,执行速度更快2两者都是throwable的子类error:正常情况下,不太可能出现的错误,不可复转的,不便于也不需要进行捕捉。exception:可以预料到的错误,分为可检查与不可检查的错误。可检查错误,可以进行捕捉,添加操作

2021-07-14 09:14:57 199

原创 java后端面经--hashtable和hashmap的区别

hashtable和hashmap区别:外部:1,同步,线程安全;不同步,线程不安全2,继承不同,dictionary类,abstractmap类内部:1,初始化空间,扩容:hashtable 11,2n+1;hashmap 16,2n;2,key,value:hashtable都不能为空,hashmap可以为空。3,遍历方式:hashtable:自己的方法(Enumeration) hashmap:iterator4,计算内部地址(idx)值不同:hashtable,用key的has

2021-07-13 21:32:21 106

原创 树状数组 从入门到入坑 完整版

操作:1,将某一个数加上 xx2,求出某区间每一个数的和#include<iostream>using namespace std;const int N=5e5+5;int n,m;int tree[N];int lowbit(int x){ return x&-x;}void add(int x,int k){ while(x<=n) { tree[x]+=k; x+=lowbit(x); }}int sum(int x)..

2021-06-30 12:11:07 135

原创 acwing-程序自动分析

离散化+并查集#include<bits/stdc++.h>using namespace std;#define x first#define y secondtypedef pair<int,int> PII;const int N = 2e5;int t;int n;vector<int> all;vector<PII> ye;vector<PII> no;int f[N];int find(int x){

2021-06-28 01:23:22 156

原创 离散化,从入门到入坑

1.拷贝原数组2.将拷贝的数组排序3.利用unique()对拷贝数组去重,并记录不重复元素4.利用lower_bound()找离散化后的数的位置。注:注意下标究竟从几开始离散化后的值可以理解为是在这个数组中第几大的值,所以如果要查询离散化的值在原数组中对应哪个数,我们直接查询 t[这个值]就行了。用stl:int find(int x){ int l=0,r=all.size(); while(l<r) { int mid=l+r>>

2021-06-28 00:43:38 107

原创 acwing-搜索算法总结

FloodFill算法详解及应用最直接的一个应用就是「颜色填充」,就是 Windows 绘画本中那个小油漆桶的标志,可以把一块被圈起来的区域全部染色。这种算法思想还在许多其他地方有应用。比如说扫雷游戏,有时候你点一个方格,会一下子展开一片区域,这个展开过程,就是 FloodFill 算法实现的。类似的,像消消乐这类游戏,相同方块积累到一定数量,就全部消除,...

2021-06-24 14:15:16 233

原创 spring-mybatis applicationContext.xml 默认代码

<bean id="myDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="url" value="jdbc:mysql://localhost:3306/adinner"/> <property name="username" value="root"/>

2021-06-18 03:11:35 307

原创 spring 集成 mybatis 所有依赖

<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.12.RELEASE</version></dependency><dependency> <groupId>org.springframework<.

2021-06-18 01:18:29 172

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除