- 博客(88)
- 资源 (25)
- 问答 (1)
- 收藏
- 关注
原创 Java常见的一些内存溢出问题以及原因
有了对内存结构清晰的认识,就可以帮助我们理解不同的OutOfMemoryErrors,下面列举一些比较常见的内存溢出错误,通过查看冒号“:”后面的提示信息,基本上就能断定是JVM运行时数据的哪个区域出现了问题。Exception in thread “main”: java.lang.OutOfMemoryError: Java heap space原因:对象不能被分配到堆内存中。Exception in thread “main”: java.lang.OutOfMemoryError:
2021-05-25 10:50:21 186
原创 分库分表分析:SpringBoot2.0.3.RELEASE+sharding-jdbc4.1.0+mybatis-plus3.4.1+druid1.1.22 快速搭建分库分表
文末有demo的git地址Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款既能够独立部署,又支持混合部署配合使用的产品组成。目前,数据分片、读写分离、数据加密、影子库压测等功能,以及对 MySQL、PostgreSQL、SQLServer、Oracle 等 SQL 与协议的支持,均通过插件的方式织入项目。ShardingSphere-JDBC定位为轻量级 Java 框架,在 Ja...
2021-05-25 10:01:57 606
原创 深入理解Java类加载
本文目的:深入理解Java类加载机制; 理解各个类加载器特别是线程上下文加载器;Java虚拟机类加载机制虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型,这就是虚拟机的类加载机制。在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的类加载的过程类的个生命周期如下图:为支持运行时绑定,解析过程在某些情况下可在初始化之后再开始,除解析过程外的其他加载过程必须按照如图顺序开...
2021-05-25 02:45:56 495
原创 tomcat中看启动时加载的类
在tomcat bin里面有个catalina.bat ifnot"%SECURITY_POLICY_FILE%"==""gotodoSecurity %_EXECJAVA%-verbose:class%JAVA_OPTS%%CATALINA_OPTS%%DEBUG_OPTS%-Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%"-classpath"%CLASSPATH%"-Dcatalina....
2021-05-25 02:36:58 816
转载 Class.forName()的作用与使用总结
1、Class类简介:Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类。Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建。Class 没有公共构造方法。Class 对象是在加载类时由Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的,因此不能显式地声明一个Class对...
2021-05-25 02:26:53 889
原创 Java Class.forName()用法和newInstance()方法原理解析
Class.forName()主要功能Class.forName(xxx.xx.xx)返回的是一个类,Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段。下面,通过解答以下三个问题的来详细讲解下Class.forName()的用法。①new 和Class.forName()有什么区别和newInstance的用法?A a = (A)Class.forName(“pacage.A”).newInstanc...
2021-05-25 01:45:37 313
原创 Java中new和Class.forName的区别,Class.forName()和Class.forName().newInstance()之间有什么区别
首先:New = Class.forName("pacage.A").newInstance();new是关键字,直接创建对象。Class.forName()是一个方法,要求JVM查找并加载指定的类,类装载到虚拟机上之后,静态方法和静态块中的处理被执行。这时候还没有创建对象。newInstance()是创建对象。我们最常用的jdbc, 经常会用Class.forName来加载数据库驱动。jdbc接口中,会存在各种数据库的驱动,不在在接口中写死,一般都写在配置文件里,所以需要我们调用...
2021-05-25 01:20:51 236
原创 图示B树和B+树的原理和操作过程
1 B树在介绍B+树之前, 先简单的介绍一下B树,这两种数据结构既有相似之处,也有他们的区别,最后,我们也会对比一下这两种数据结构的区别。1.1 B树概念B树也称B-树,它是一颗多路平衡查找树。二叉树我想大家都不陌生,其实,B树和后面讲到的B+树也是从最简单的二叉树变换而来的,并没有什么神秘的地方,下面我们来看看B树的定义。 每个节点最多有m-1个关键字(可以存有的键值对)。 根节点最少可以只有1个关键字。 非根节点至少有m/2个关键字。 每个节点中的关...
2021-05-23 16:29:47 1902
原创 DelegatingFilterProxy的作用与用法
一、类结构 DelegatingFilterProxy类存在与spring-web包中,其作用就是一个filter的代理,用这个类的好处是可以通过spring容器来管理filter的生命周期,还有就是,可以通过spring注入的形式,来代理一个filter执行,如shiro,下面会说到;有上图我们可以看到,DelegatingFilterProxy类继承GenericFilterBean,间接实现了Filter这个接口,故而该类属于一个过滤器。那么就会有实现Filter中init、doFil...
2021-05-07 10:59:22 2335 2
转载 threadlocal内存泄露_内存泄露的原因找到了,罪魁祸首居然是Java TheadLocal
weixin_399553552020-11-21 09:28:0343收藏文章标签:threadlocal内存泄露组内来了一个实习生,看这小伙子春光满面、精神抖擞、头发微少,我心头一喜:绝对是个潜力股。于是我找经理申请亲自来带他,为了帮助小伙子快速成长,我给他分了一个需求,这不需求刚上线几天就出网上问题了 后台监控服务发现内存一直在缓慢上升,初步怀疑是内存泄露。把实习生的PR都找出来仔细review,果然发现问题了。由于公司内部代码是保密的,这里简单写一个demo还原场景(忽略...
2021-04-29 14:15:54 147
原创 SQL 存储过程里读取表内容 游标fetch的使用
DECLARE @Hid varchar(50), @Hname varchar(50)declare contact_cursor cursor for --声明游标select hotel_id,h_name from hotel where hotel_id<25open contact_cursor --打开游标fetch next from contact_cursor into @Hid,@Hname --游标指针下移一行while @@fetch_status=0...
2021-04-28 09:39:47 1491
原创 游标取数为什么要用两次FETCH NEXT FROM INTO语句
fetch next from mycursorinto @O_ID,@A_Salarywhile(@@fetch_status = 0)beginUpdate OriginSalary set O_Salary=O_Salary+@A_Salary where O_ID=@O_IDfetch next from mycursor into @O_ID,@A_Salaryend假设表tempTableid,text1,T12,T23,T3面代码省略,现在一句一句看fetch n...
2021-04-27 17:06:10 1728
原创 Java 中hashtable的例子分析原理(哈希原理)
package com.gwssi.test.cases;import java.math.BigInteger;//构建一个Hashtable类public class HashTable { //定义一个节点类,里面定义了每一个节点所需要的数据 public class Node { Node next;//指向下一节点 Object key;//键值 Object data;//数据域 //节点的构造函数.
2021-04-26 14:50:29 120
原创 i++ 和 ++i原理
i++ 即后加加,原理是:先自增,然后返回自增之前的值++i 即前加加,原理是:先自增,然后返回自增之后的值重点:这是一般人所不知道的,记住:不论是前++还是后++,都有个共同点是先自增例子:int a = 2;int b = a + (3 * ++a);System.out.println(b);//输出11int a = 2;int b = a + (3 * a++);System.out.println(b);//输出8...
2021-04-25 09:56:30 170
原创 MYSQL实现列拼接,即同一个字段,多条记录拼接成一条
MYSQL实现列拼接,即同一个字段,多条记录拼接成一条一、首先,新建三张表DROP TABLE IF EXISTS `article`;CREATE TABLE `article` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL COMMENT '标题', `content` text NOT NULL COMMENT '内容', PRIMARY KEY (`id..
2021-04-22 11:54:21 8895
原创 举例子简单易懂说明Java中取模和取余的区别
取余,遵循尽可能让商向0靠近的原则取模,遵循尽可能让商向负无穷靠近的原则符号相同时,两者不会冲突。比如,7/3=2.3,产生了两个商2和37=3*2+1或7=3*3+(-2)。因此,7rem3=1,7mod3=1。符号不同时,两者会产生冲突。比如,7/(-3)=-2.3,产生了两个商-2和-37=(-3)*(-2)+1或7=(-3)*(-3)+(-2)。因此,7rem(-3)=1,7mod(-3)=(-2)--------------------------------...
2021-04-22 10:27:10 285
转载 ThreadLocal的使用场景(在spring中的使用)
置顶 义臻 2016-08-11 14:11:32 2732 收藏 2分类专栏: Spring 应届生求职版权经历了几天的研究,终于是明白了ThreadLocal在Spring事务管理过程中发挥的用途。下面就以图文的形式和大家分享,如有错误,欢迎指正。大家都知道,Spring允许以声明的方式进行事务管理。通过声明的方式,程序员可以仅仅专注于业务代码,事务管理由Spring框架代为进行。以JDBC为例,正常的事务代码可能如下:dbc = new DataBaseConnection...
2021-04-21 02:15:13 1677
原创 Java负数的二进制补码表示这样计算
负数的二进制补码表示这样计算。1:先将负数中的负号去掉变成正数,使用二进制表示这个正数2:将这个二进制正数所有的位取反,再加1,结到的二进制序列就是这个负数的补码比如:-1,取其正值1,32位二进制表示为:00000000000000000000000000000001各位全部取反:11111111111111111111111111111110再加1:11111111111111111111111111111111因此-1的二进制补码表示为...
2021-04-19 18:20:29 947
原创 Java中「与运算,或运算,异或运算,取反运算。」
Java中「与运算,或运算,异或运算,取反运算。」版权声明一:本文为博主原创文章,转载请附上原文出处链接和本声明。版权声明二:本网站的所有作品会及时更新,欢迎大家阅读后发表评论,以利作品的完善。版权声明三:对不遵守本声明或其他违法、恶意使用本网内容者,保留追究其法律责任的权利。本文链接:https://segmentfault.com/writ...Java中的「与运算 & 」 规则 :都为1时才为1,否则为0即:两位同时为“1”,结果才为“1”,否则为0例如: pu
2021-04-19 17:47:21 767
原创 Log4j2的高性能分析
Log4j2的高性能分析log4j2之所以能在异步写日志时性能提高这么多,离不开优秀的mq组件Disruptor。目前使用该队列的知名软件包括但不限于Apache Storm、Camel、Log4j2。底层队列的实现对性能的影响是最大的。logback使用的是异步appender,log4j2使用的是disruptor。异步Appender的实现,内部内置了一个BlockingQueue队列,具体实现采用了ArrayBlockingQueue。而Disruptor则是使用了Ringbuffe
2021-04-17 11:23:38 301
原创 分布式应⽤知识CAP理论知识
讲解分布式核⼼知识CAP理论CAP定理: 指的是在⼀个分布式系统中,Consistency(⼀致性)、 Availability(可⽤性)、 Partition tolerance(分区容错性),三者不可同时获得。 ⼀致性(C):在分布式系统中的所有数据备份,在同⼀时刻是否同样的值。(所有节点在同⼀时间 的数据完全⼀致,越多节点,数据同步越耗时) 可⽤性(A):负载过⼤后,集群整体是否还能响应客户端的读写请求。(服务⼀直可⽤,⽽且是正 常响应时间) 分区容错性(P):分区..
2021-02-23 15:24:42 62
原创 Java设计模式中的状态模式的业务场景分析--电商系统订单状态
状态模式,听过的人可能不是很多,它不在我们熟知的 23 中设计模式之内。但它归属与行为型模式中的一种。今天我们一起来学习学习状态模式!在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。通常我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。状态模式最大的优点是:允许对象在内部状态发生改变时...
2020-04-10 19:48:12 2522
原创 社团管理系统java实现(系统流程图片在最后面)
基于ssh社团管理系统的设计与实现较为复杂,故所分得模块较多,详细分为会员注册模块、用户个人信息管理模块、管理员信息管理模块、动态消息管理模块和消息留言处理模块五个模块。会员注册模块主要包括:会员注册、用户登录两个个子模块。用户个人信息管理模块主要包括:个人资料管理、照片信息管理、密码管理、日志管理,照片信息管理,心情信息管理六个子模块。管理员信息管理模块主要包括:系统公告管理、密码管理、日志信息...
2020-04-09 10:16:10 4865 3
原创 Java设计模式之桥接模式的业务场景
如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系,通过桥接模式可以使它们在抽象层建立一个关联关系。 2、对于那些不希望使用继承或因为多层次继承导致系统类的个数急剧增加的系统,桥接模式尤为适我们还是通过上面的关于支付的简单例子可以说明它的原理。显然,它具备和模版方法相类似的能力,但是不采用继承。public class Payment{...
2020-04-08 15:15:36 432
原创 Failed to create a Maven project: '......../pom.xml' already exist
需要在此处手动加入添加模块名称
2020-01-10 16:09:42 248
原创 ThreadLocal原理和使用场景
ThreadLocal与线程成员变量还有区别,ThreadLocal该类提供了线程局部变量。这个局部变量与一般的成员变量不一样,ThreadLocal的变量在被多个线程使用时候,每个线程只能拿到该变量的一个副本,这是Java API中的描述,通过阅读API源码,发现并非副本,副本什么概念?克隆品? 或者是别的样子,太模糊。准确的说,应该是ThreadLocal类型的变量内部的...
2020-01-06 11:28:05 151
转载 Java线程池之---ForkJoinPool线程池的使用以及原理
所属专栏:YourBatman的乌托邦版权声明: https://blog.csdn.net/f641385712/article/details/83749798相关阅读【小家java】java5新特性(简述十大新特性) 重要一跃【小家java】java6新特性(简述十大新特性) 鸡肋升级【小家java】java7新特性(简述八大新特性) 不温不火【小家java】java8...
2019-07-10 09:40:53 1048
原创 java动态代理有什么作用
作用非常大,在很多底层框架中都会用得到,比如struts,Spring等都用到了动态代理,它的作用很简单,就是将你要使用的类,重新生成一个子类或本类,这样框架就可以利用这个新生成的类做一些事情,比如在该类的方法前后加一些代码。。这样的话,你想像一下,你是不是不用修改任何已经编写好的代码,只要使用代理就可以灵活的加入任何东西,将来不喜欢了,不用也不会影响原来的代码。...
2019-07-01 10:24:14 531
原创 Java动态代理的业务场景分析和原理分析
动态代理看起来好像是个什么高大上的名词,但其实并没有那么复杂,直接从字面就很容易理解。动态地代理,可以猜测一下它的含义,在运行时动态地对某些东西代理,代理它做了其他事情。先不去搞清楚这个动态代理真正的含义,我们来举个生动的例子来理解下它到底做了什么。一个例子一个程序员Developer,他会开发code,他调试debug。程序员有很多分类,其中有Java程序员J...
2019-07-01 10:03:37 428
原创 Spring Security 默认的过滤器链
别名 类名称 Namespace Element or Attribute CHANNEL_FILTER ChannelProcessingFilter http/intercept-url@requires-channel SECURITY_CONTEXT_FILTER SecurityContextPersistenceFilter http...
2019-06-26 11:40:47 744
原创 数据结构--时间复杂度的算法
前前言what is O?:"O"是数学符号,它的严格定义是"若T(n)和f(n)是定义在正整数集合上的两个函数,则T(n)=O(f(n))表示存在正的常数C和n0 ,使得当n≥n0时都满足0≤T(n)≤C?f(n)。"用容易理解的话说就是这两个函数当整型自变量n趋向于无穷大时,两者的比值是一个不等于0的常数。前言算法很重要,但是一般情况下做移动开发并不经常用到,所以很...
2019-06-24 17:43:46 1483
原创 大数据量的Java算法数据结构面试题详细
作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日说明:本文分为俩部分,第一部分为10道海量数据处理的面试题,第二部分为10个海量数据处理的方法总结。有任何问题,欢迎交流、指正。出处:http://blog.csdn.net/v_JULY_v。第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。首先是...
2019-06-21 09:40:16 913
原创 java的List Object 转换成List String
List<Object>不能直接转成List<String> ,只能这样转换:List<String> strs = (List<String>)(List)objList
2019-06-17 10:16:53 34783 5
原创 centOS7 环境安装和配置jdk1.8的环境变量
首先下载jdk1.8 去官网下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html解压到指定的目录 解压命令若后缀为.tar.gz,使用tar -xzvf filename //安装到当前目录下tar -zxvf filename -C /us...
2019-06-05 15:17:11 256
原创 centos7使用Docker的详细教程
一、Docker是什么? 产生背景:开发和运维之间因为环境不同和导致的矛盾(不同的操作系统、软件环境、应用配置等)DevOps 代码、系统、环境、配置等封装成镜像Image--->运维; 集群的环境下每台服务器都要配置相同的环境; 解决“在我的机器是哪个可以正常工作”的问题; Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个...
2019-06-04 16:59:40 9083
原创 深入理解Docker容器和镜像
【编者的话】本文用图文并茂的方式介绍了容器、镜像的区别和Docker每个命令后面的技术细节,能够很好的帮助读者深入理解Docker。如果你想和我或者更多Docker专家交流,可以加我微信453465325这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(container)和镜像(image)之间的区别,并深入探讨容器和运行中的容器之间的区别。当我对Docker技术还...
2019-06-04 15:36:08 103
原创 apche Shiro的原理分析
本篇内容大多总结自张开涛的《跟我学Shiro》原文地址:http://jinnianshilongnian.iteye.com/blog/2018936我并没有全部看完,只是选择了一部分对我来说急需在项目中使用的知识加以学习。并且对于大多数第一次接触Shiro的同学来说,掌握这些也应该足够了。一、架构要学习如何使用Shiro必须先从它的架构谈起,作为一款安全框架Shiro的设计相...
2019-06-04 10:17:59 123
原创 基于ssm的婚恋网站的设计与实现(寻爱网)(包含后台管理系统)
源码下载csdn地址:https://download.csdn.net/download/u014191624/11218848没有积分的联系我,我发给你开发平台:Eclipse+jdk8有什么不懂得随时问我吧,大家一起交流开发架构:springmvc+mybatis+spring开发数据库:mysqlweb容器:tomcat8管理工具:maven项目结构:...
2019-05-31 15:34:33 2476 18
原创 对indexof的源码分析
public int indexOf(String str) { return indexOf(str, 0);}public int indexOf(String str, int fromIndex) { return indexOf(value, 0, value.length, str.value, 0, str.value.length, f...
2019-05-21 14:19:26 1030
原创 Volatile关键词深度剖析
1背景12Volatile:易变的12.1小结23Volatile:不可优化的33.1小结44Volatile:顺序性44.1happens-before64.2小结75Volatile:Java增强86V...
2019-05-17 02:50:07 105
基于springboot+h5+websocket的即时通讯客服系统和百度实时语音转译(语音在线识别)
2021-11-29
社团管理系统(基于ssh框架,需要sql联系我)
2020-04-09
基于android框架的客户端和基于java服务端的物流快递系统(不懂的联系我)
2020-01-07
基于Android的物流配送管理系统(有图片和参考代码,不懂可以联系问我)
2020-01-07
基于ssm的婚恋网站(寻欢网)(包含后台管理系统)
2019-05-31
刚完成的基于ssh的婚恋交友网站(有运行截图,文档说明,有问题找我)
2019-05-08
基于ssm的在线考试系统(问卷系统)(有运行截图,包含单选题,多选题,问答题,有不懂的联系我)
2019-05-03
自己做的微服务环境简单搭建----网上书店
2019-03-26
学生成绩管理系统ssm(毕业设计代码+论文)
2018-04-28
学生管理系统ssm(毕业设计代码+论文)
2018-04-28
基于ssm的医院预约挂号系统
2018-03-29
struts2+hibernate+spring+jpa+maven的网上订餐系统
2018-03-26
基于ssh的社团管理系统的设计与实现(有疑问联系我头像)
2017-11-22
基于ssm的网上服饰商城毕业论文(关注我还有更多的学习资料)
2017-11-13
webservice+spring+xfire完整项目(包含jar包)
2017-10-20
求解Java一个最优分配算法
2017-08-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人