java
宫宏伟
这个作者很懒,什么都没留下…
展开
-
JVM分代及回收算法总结
CMS(标记清除)并发标记大概占用整个收集80%时间,让应用线程并发不暂停,提高用户体验。cms可能stw总时间会更长,但是他分成了几个阶段。大内存,4-8g用cms,提升用户体验。Parallel(标记整理) 吞吐量 垃圾收集效率高,stw时间短,应用线程暂停了。4g以下用parallel。新生代:复制算法,PartNew 只用于新生代。分代理论:eden、s0、s1。老年代:标记清除、标记整理。原创 2022-10-17 22:37:21 · 189 阅读 · 1 评论 -
缓存穿透、击穿、雪崩
穿透:查缓存 查数据库都没有,直接透过去了,所以叫穿透。击穿:查缓存没有,但查数据库有,所以叫击穿。雪崩:击穿是一条数据在缓存中查不到,雪崩则是大批量缓存数据查不到,都走到了数据库。...原创 2021-08-27 14:24:12 · 148 阅读 · 0 评论 -
Object类中的clone()方法是深拷贝还是浅拷贝?
深拷贝:完全复制一个副本出来,副本的改变不影响原对象浅拷贝反之一个对象能被拷贝,需2个条件1.实现Cloneable接口,使拷贝合法,不抛CloneNotSupportedException2.覆写clone方法@Overridepublic Object clone() throws CloneNotSupportedException { return super.clone();}clone()本身是浅拷贝,想要深拷贝需要自己实现改造。需要把对象中引用的所有对象都深拷原创 2021-07-30 14:56:56 · 2117 阅读 · 1 评论 -
拦截器与过滤器的区别
一、二者理解过滤器(Filter)过滤器,是在java web中将你传入的request、response提前过滤掉一些信息,或者提前设置一些参数。然后再传入Servlet或Struts2的 action进行业务逻辑处理。比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入Servlet或Struts2的action前统一设置字符集,或者去除掉一些非法字符。拦截器(Interceptor)拦截器,是面向切面编程(AOP,Aspect Oriented Pro转载 2021-04-15 09:22:08 · 884 阅读 · 0 评论 -
线程池工具类
java线程池实现类ThreadPoolExecutorThreadPoolExecutor可以构造一个线程池,就是装了一堆线程的容器。这些线程可以用来执行任务。其实按道理讲,我们可以自己创建一个线程来执行自己的任务。那么为啥要用线程池呢,是因为线程池装了一堆已经创建好了的线程,不需要我们自己再去创建,这节省了创建线程的资源,也保障了线程的高效利用。1、方法说明任务管理主要方法如下:上述方法中, execute() 和 submit() 方法在有空闲线程存在的情况下会立即调用该线程执行任务,区别在转载 2020-08-09 12:53:42 · 1115 阅读 · 0 评论 -
Object,T,?的区别以及具体含义
1,object类的解释.2,object的运用.3,JDK1.5之后 泛型的解释4.通配符?5.区别内容虽多, 因解释详细,容易理解,耐心看完你会发现另一片天地!如有帮助就顶一下,如有自己的看法和意见,就发表评论,大家一起学习,莫要吝啬哦!开干!!!1.Object类:java.lang包在使用的时候无需显示导入,编译时由编译器自动导入。Object类是类层次结构的根,Jav...转载 2020-05-21 10:47:08 · 2329 阅读 · 1 评论 -
生成菜单树示例
menu.javapackage com.unis.demo.entity;import java.util.List;public class Menu { // 菜单id private String id; // 菜单名称 private String name; // 父菜单id private String parentId; // 菜单...原创 2020-05-21 10:47:33 · 206 阅读 · 0 评论 -
SpringBoot集成Spring Security入门体验
一、前言Spring Security和Apache Shiro都是安全框架,为Java应用程序提供身份认证和授权。二者区别 Spring Security:重量级安全框架 Apache Shiro:轻量级安全框架 关于shiro的权限认证与授权可参考小编的另外一篇文章 :SpringBoot集成Shiro 实现动态加载权限https://blog.csdn...转载 2019-11-04 10:42:06 · 346 阅读 · 0 评论 -
MYSQL类型与JAVA类型对应表
类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) VARCHAR L+N VARCHAR java.lang.String 12 CHAR N CHAR java.lang.String 1 BLOB L+N BLOB java.lang.byte[] -4 TE...转载 2019-10-23 11:05:48 · 166 阅读 · 0 评论 -
如何做好权限管理系统
一、权限管理系统定义权限管理是一个几乎所有后台系统的都会涉及的一个重要组成部分,主要目的是对整个后台管理系统进行权限的控制,而针对的对象是员工,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,数据泄露等问题。其实权限管理的设计并不难,就目前来说最广泛的是一个账号对应多个角色,每个角色对应相应的权限集(RBAC模型)这种模型基本可以应对所有的问题,且通过角色可以实现灵活且...转载 2019-09-10 19:40:39 · 2001 阅读 · 0 评论 -
Java 程序如何正确地打日志
什么是日志简单的说,日志就是记录程序的运行轨迹,方便查找关键信息,也方便快速定位解决问题。我们 Java 程序员在开发项目时都是依赖 Eclipse/ Idea 等开发工具的 Debug 调试功能来跟踪解决 Bug,在开发环境可以这么做,但项目发布到了测试、生产环境呢?你有可能会说可以使用远程调试,但实际并不能允许让你这么做。所以,日志的作用就是在测试、生产环境没有 Debug 调试工具时开...转载 2019-02-28 15:02:09 · 263 阅读 · 0 评论 -
Java实现冒泡排序与选择排序
实现选择排序和冒泡排序及执行流程图解1、 选择排序:把第一个数与他后面的数进行比较,如果顺序则继续与后面比较,如果逆序则两数交换位置,继续将第一个数与交换位置后的数进行比较,这样就完成了第一轮排序。同理将第二位与其后的数比较,直到数组有序为止。最好时间复杂度:O(n) 平均时间复杂度:O(n^2) 最坏时间复杂度: O(n^2) 空间复杂度:O(1) 图解:Java...转载 2018-06-19 20:50:20 · 237 阅读 · 0 评论