2021
07-21
07-21
贪心算法原理及在Java中的使用
目录贪心算法区间调度问题好了,说了这么多,那针对该问题正确的贪心策略到底是哪个?应用总结贪心算法由于贪心算法本身的特殊性,我们在使用贪心算法之前必须要进行证明,保证算法满足贪心选择性质。具体的证明方法无外乎就是通过数学归纳法来进行证明。但大部分人可能并不喜欢枯燥的公式,因而我这里提供一个使用贪心算法的小技巧。由于贪心算法某种程度上算是动态规划算法的特例,使用条件比较苛刻,因而能够用动态规划解决的问...
继续阅读 >
目录前言一、何为鉴权服务二、利用servlet+jdbc实现简单的用户登录程序1.明确思路2.手把手教你实现一个简单的web登录程序三、回顾1.密码未加密裸奔2.登录信息未存储3.对于其他资源并未进行权限管理四、优化设计1.密码加密存储2.存储登录信息3.对资源进行管理五、关于鉴权问题1.Cookie/Session机制2.用Cookie/Session解决鉴权问题?3.使用token机制解决鉴权问题六、用SpringBoot+SSM实现一套简单的鉴权服务(注册,登录,权限控制)...
目录一、应用程序直接获取数据库连接的缺点二、使用数据库连接池优化程序性能2.1、数据库连接池的基本概念2.2、编写数据库连接池三、开源数据库连接池3.1、DBCP数据源3.2、在应用程序中加入dbcp连接池3.3、C3P0数据源(重点)四、Tomcat中配置数据库源4.1、JNDI技术简介4.2、配置Tomcat数据源包结构:注意了:有个问题坑了我一天具体请看:tomcat虚拟路径的配置一、应用程序直接获取数据库连接的缺点用户每次请求都需要向数据...
目录一、代理的概念二、java中的代理2.1、"java.lang.reflect.Proxy"类介绍2.2、编写生成代理对象的类三、动态代理应用3.1、在字符过滤器中使用动态代理解决中文乱码3.2、在字符过滤器中使用动态代理压缩服务器响应的内容后再输出到客户端一、代理的概念动态代理技术是整个java技术中最重要的一个技术,它是学习java框架的基础,不会动态代理技术,那么在学习Spring这些框架时是学不明白的。动态代理技术就是用来产生一个...
简介情景:1000万表数据导入内存数据库,按分页大小10000查询,多线程,15条线程跑。使用了ExecutorServiceexecutor=Executors.newFixedThreadPool(15)本地跑了一段时间后,发现电脑CPU逐渐升高,最后CPU占用100%卡死,内存使用也高达80%。排查问题Debug发现虽然创建了定长15的线程池,但是因为数据量大,在For中循环分页查询的List会持续加入LinkedBlockingQueue()队列中每一个等待的任务,又加载了1万的数据。所以不管是线程...
目录一、IO底层是怎么回事?二、梳理类的结构三、IO类大点兵四、来波实例展示五、总结一、IO底层是怎么回事?操作系统就是管家,电脑的设备就是资源,如果进程先要操作资源,必须要进行系统调用,有操作系统去处理,然后再返回给进程,这样的代理模式是不是很常见?因此app就是你写的程序,资源就是硬盘或者其他的设备,io就是进行的系统调用。为了保证操作系统的稳定性和安全性,一个进程的地址空间划分为用户空间(Userspace...
早期ConcurrentHashMap,其实现是基于:分离锁,也就是将内部进行分段(Segment),里面则是HashEntry的数组,和HashMap类似,哈希相同的条目也是以链表形式存放。HashEntry内部使用volatile的value字段来保证可见性,也利用了不可变对象的机制以改进利用Unsafe提供的底层能力,比如volatileaccess,去直接完成部分操作,以最优化性能,毕竟Unsafe中的很多操作都是JVMintrinsic优化过的。在进行并发操...