java
文章平均质量分 73
技不如人,甘拜下风
这个作者很懒,什么都没留下…
展开
-
Topk问题
题目描述从n个未排序的数中得到的最大的k个数,称为TopK问题。(最小的k个数做法也相似)也可能是这样的描述:给定 100 个 int 数字,在其中找出最大的 10 个;给定 10 亿个 int 数字,在其中找出最大的 10 个(这 10 个数字可以无序);给定 10 亿个 int 数字,在其中找出最大的 10 个(这 10 个数字依次排序);给定 10 亿个不重复的 int 数字,在其中找出最大的 10 个;给定 10 个数组,每个数组中有 1 亿个 int 数字,在其中找出最大的 10原创 2022-02-22 19:43:59 · 337 阅读 · 0 评论 -
5-Spring-AOP-基于注解
Spring-AOP-基于注解文章目录Spring-AOP-基于注解一. 介绍1.1 准备工作1.2 编写增强类1.3 配置切入点1.4 测试结果一. 介绍AOP 是面向切面编程,是一种思想,以一种横向抽取的机制,取代了传统的纵向继承的重复性代码编写方式(性能监控、事务管理、安全检查、缓存、日志)1.1 准备工作开启注解功能<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http:原创 2021-10-11 19:38:09 · 140 阅读 · 0 评论 -
2-java集合-集合与数组转化
java集合-集合与数组转化文章目录java集合-集合与数组转化一. 集合转化数组二. 数组转化为集合三. 如何正确使用asList1. 手动实现工具类2.一. 集合转化数组核心方法:对象.toArray()Object[] arr = list.toArray();String[] strs = list.toArray(new String[0]);// 参数用于说明转为什么数组// 细节,方法二中,如果参数数组可用,即长度足够存放集合的所有元素,则使用该数组// 如果数组不可用,则自原创 2021-10-10 22:42:38 · 378 阅读 · 0 评论 -
1-java基础知识学习摘要
JVM启动时的内存划分栈内存:运行所有方法的。方法压栈或弹栈。也会存基础类型的变量、对象的引用变量。**回收:**当超过变量的作用域后,会自动释放,该空间即可以另作他用堆内存:所有使用new 关键字创建的均放置于其中;**回收:**由jvm gc来回收方法区:又会划分为若干区域存放class文件的区域、常量池(如final)、静态区(static)等本地方法区:自己的程序无法直接使用,一般是 jvm 加载被 native 修饰方法所在的区域寄存器:给cpu使用的堆空间开辟的空间都会有默认初始原创 2021-10-10 22:41:56 · 105 阅读 · 0 评论 -
3-Spring-基于注解配置bean
Spring-基于注解配置bean文章目录Spring-基于注解配置bean一. 基于注解配置bean1.1 准备工作1.2 使用注解1.3 分层注解1.4 @Component起别名二. Bean属性依赖注入(注解方式)2.1 简单数据注入2.2 复杂类型注入2.3 注解配置bean 的初始化和销毁方法2.4 注解配置 bean 的作用域三. spring整合其他框架,举例junit使用注解省去new context对象总结:配置常见注解一. 基于注解配置bean使用注解可以提高开发效率,但是维原创 2021-10-10 22:06:33 · 97 阅读 · 0 评论 -
2-Spring-基于xml配置bean
Spring-基于xml配置bean文章目录Spring-基于xml配置bean一. Bean实例化的4种方式1.1 无参数构造方法(开发最常用)1.2 静态工厂方法1.3 实例工厂方法1.4 FactoryBean方式(Spring底层使用较多)1.5 FactoryBean 与 BeanFactory区别二. Bean相关知识2.1 Bean的作用域2.2 Bean的生命周期2.3 Bean的属性注入2.3.1 构造方法2.3.2 setter方法注入2.3.3 集合属性注入xml配置中的标签及属性b原创 2021-10-10 19:09:23 · 172 阅读 · 0 评论 -
1-Spring-基础知识
Spring-基础知识文章目录Spring-基础知识一. 简介1.1 优点1.2 核心技术二. IOC技术2.1 搭建环境2.2 IOC概念2.3 IOC快速入门2.4 DI依赖注入一. 简介Spring 解决的是业务逻辑层与其他层的松耦合问题,将面向接口的思想贯穿整个系统应用。也有人称为粘合剂,用于粘合其余别的层的框架。web程序开发分层一般如下:#mermaid-svg-zguFqVJzyzXpYNOh .label{font-family:'trebuchet ms', verdana,原创 2021-10-10 10:13:16 · 119 阅读 · 0 评论 -
3-java集合-集合工具类
java集合-集合工具类文章目录java集合-集合工具类集合工具类Collections.addAllCollections.enumeration(list)Collections.reverse集合工具类这里记几个集合工具类中的方法。Collections.addAll该方法一次性添加多个数据进入容器Collections.addAll(list, 数据1, 数据2)Collections.enumeration(list)该方法将 list/set 转化为 enumeration原创 2021-10-08 22:08:18 · 71 阅读 · 0 评论 -
4-java多线程-基础多线程知识
java多线程-基础多线程知识文章目录java多线程-基础多线程知识一、搬水问题二、创建线程的方法1.将类声明为Thread的子类2. 类实现Runnable接口三、线程其他技术1.同步的锁2.面试题3. 死锁4. 线程安全相关的类5. 线程优先级6. 线程组7. 守护线程8. 线程中的其他方法9. 定时器一、搬水问题搬水问题,现在有100桶水,找多个人去搬,每个人的工作都是一样的,所以可以使用多线程,基本代码如下:class Water{ private int num = 100; pr原创 2021-10-08 21:40:50 · 93 阅读 · 0 评论 -
5-java多线程-生产者消费者模型
java多线程文章目录java多线程一、生产者消费者模型二、生产者消费者模型的安全问题1.同步代码块三、生产者消费者模型的同步问题四、生产者消费者模型的多生产多消费问题五、lock+condition解决生产者消费者模型总结一、生产者消费者模型这里采用的是最基本的生产者消费者模型,生产者生产资源,消费者消耗资源。隐蔽知识点:生产者消费者模型一般不使用集合来模拟,这是因为集合会无限扩容,使用数组可以很好的展现效果基本模型搭建如下:还未添加线程的同步机制// 资源类class Resource原创 2021-10-07 10:22:34 · 109 阅读 · 0 评论 -
6-java多线程-单例懒汉式的多线程问题
java多线程-单例懒汉式的多线程问题文章目录java多线程-单例懒汉式的多线程问题一. 单例懒汉式的多线程问题解决办法1:在对外方法上加锁解决办法2:在if判断前加锁解决办法3:多加一重判断一. 单例懒汉式的多线程问题单例模式(懒汉式)代码如下,记忆方法:私有本类构造创建静态对象对外提供方法,获取本类对象通过 类名.方法名 获取本类的唯一对象class Single{ private Single(){}; private static Single instance = nu原创 2021-10-08 21:56:07 · 165 阅读 · 0 评论 -
7-java零碎知识点-junit、url、注解
java零碎知识点-junit、url、注解文章目录java零碎知识点-junit、url、注解java零碎知识点junitURL、URI注解注解细节常见注解java零碎知识点这里记几个java零碎知识点。junit在测试的方法前,加注解 @Test,可以直接进行测试。也可以给其他方法前加@Before, 在@Test之前执行@After, 在@Test之后执行@BeforeClass, 在类加载之前执行@AfterClass, 在程序结束后执行坑:仅可用于非s原创 2021-10-08 22:32:07 · 169 阅读 · 0 评论 -
8-java反射-基础反射知识
java反射-基础反射知识文章目录java反射-基础反射知识反射1. 反射示意图2. 获取 Class对象 的方法2.1 getClass方法2.2 class属性2.3 forName方法3. CLass对象的创建时间4. 使用Class对象创建类的对象5. 获取CLass对象的内容5.1 获取构造方法面试小技巧5.2 获取成员变量5.3 获取方法反射反射就是把Java类中的各个成分映射成一个个的Java对象。即在运行状态中,对于任意一个类,都能够知道这个类的所以属性和方法;对于任意一个对象,都原创 2021-10-10 22:37:29 · 105 阅读 · 0 评论 -
p5-哈希表+有序表+链表
p5-set+map+TreeSet+TreeMapset与mapset与map区别仅在于有无伴随数据,其他部分是相同的增 put, 删 remove, 改put, 查get; 时间是常数级别,但可能是一个比较大的常数哈希表内放入的是基础类型,如Integer、String(虽然String不是基础类型,但也会这样操作),是按值传递,哈希表会拷贝一份进去,内存占用就是该数据本身。哈希表内放的不是基础类型,如自定义的Node、Student,是按引用传递,哈希表不会拷贝东西进去,而是记录内存地址,原创 2021-09-02 23:00:22 · 112 阅读 · 0 评论 -
p4-堆+桶排序
p4 堆排序、桶排序、排序总结堆堆是一个完全二叉树。用数组对应完全二叉树,则i位置左孩子为2*i+1,右孩子为2*i+2,父为(i-1)/2。堆结构重要性大于堆排序大根堆小根堆对于每一颗子树,其最大值都是头节点的值。构建堆的过程:heapInsert对于每一个新节点,来了之后,递归的和自己父亲比较,比父亲大则交换,直到到头或者没父亲大了。时间复杂度O(logN)调整堆:heap对于一个需要调整的节点(如删除堆顶时,将堆顶与堆尾进行交换,此时堆顶需要调整),要寻找其左右孩子,获得大的进行交换原创 2021-09-02 22:59:51 · 118 阅读 · 0 评论 -
p3-归并+快排
p3 O(NlogN)的排序master公式计算递归方法的时间复杂度如果递归行为满足,母递归行为每次均拆分为N/b规模的子递归行为,而且总额外时间复杂度(除去调用子问题)为O(N^d),那么总问题的时间复杂度即可以计算。公式如下:T(N) = a*T(N/b) + O(N^d)log(b,a) > d -> O(N ^ log(b,a))log(b,a) = d -> O(N ^ d * log(N))log(b,a) < d -> O(N ^ d)注:log原创 2021-09-02 22:59:20 · 69 阅读 · 0 评论 -
Integer.valueOf和Integer.parseInt区别
在日常开发工作中,我们经常需要将一个字符串值转换成整型值,这个时候我们可以选择Integer.valueOf和Integer.parseInt两个选择.接下来我们分析下这两个方法的区别.Integer.valueOf返回值是Integer类型.Integer.parseInt返回值是int类型.而且,在Integer类中还有一个内部的缓存类IntegerCache,它默认缓存了[-128, 127]的Integer值.Integer.parseInt很简单,它是将一个字符串转成10进制的int数值原创 2021-09-01 12:46:42 · 449 阅读 · 0 评论 -
交换两个空间的值,不依赖第三个空间的方法
交换两个空间的值,不依赖第三个空间的方法通常交换两个空间的值,需要借助第三方空间,如下代码:int c = b;b = a;a = c;但是可以采用运算,来实现不依赖第三方空间进行交换。我们假设a的值是x, b的值是y,可以看一下过程// 可能溢出a = a + b; // a = x + yb = a - b; // b = x + y - y = xa = a - b; // a = x + y - x = y或者是异或操作a = a ^ b; // a = x ^ yb =原创 2021-08-05 22:35:57 · 254 阅读 · 0 评论 -
java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter解决方案
今天在启动项目的时候,报了如下错误ERROR c.r.f.w.e.GlobalExceptionHandler - [handleException,83] - Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverterorg.springframework.web.util.NestedServletException: Handler dis原创 2020-07-06 22:38:52 · 1061 阅读 · 0 评论