- 博客(53)
- 资源 (5)
- 问答 (3)
- 收藏
- 关注
原创 查找完全二叉树底层的最右节点(二):为啥深搜比广搜快这么多
查找完全二叉树底层的最右节点(一)在(一)中结果对比的时候,发现个奇怪的现象,就是从20384个节点开始深搜比广搜快,按算法来说,两个应该是一样的gc的影响再看我写的广搜里面,会有个额外的队列存储下一层的节点,因此怀疑是节点数量增多,导致触发了gcPrintGC查看gc情况添加了-XX:+PrintGC来打印gc信息,并且为了排除可能前者消耗内存在导致后面触发gc的情况,在每个步骤后面增加了活动调用gc,再来观察下可以看到从1648576开始,深搜和广搜都出现不同次数的gcpublic st
2020-08-29 17:29:11
506
原创 查找完全二叉树底层的最右节点(一)
是面试的时候问到的题目,没有用很多case去测,不保证代码完全正确题目节点结构:public class TreeNode { public int val; public TreeNode left; public TreeNode right; public TreeNode(int x) { val = x; }}完全二叉树:叶子结点只能出现在最下层和次下层,且最下层的叶子结点集中在树的左部给出完全二叉树,返回底层最右节点的.
2020-08-24 23:42:27
2140
原创 spring:bean的销毁
登记需要执行销毁方法的bean在bean装配里面提过,bean初始化完成之后,会注册成为DisposableBean,这个DisposableBean就是关闭的时候,调用其destroy方法来销毁beanAbstractBeanFactory#registerDisposableBeanIfNecessary重点是requiresDestruction方法,用来判断是否需要手动调用销毁方法,...
2020-05-04 22:44:15
731
原创 spring IOC:bean装配
总结额。。。写得并不是很好,不过通过这个来强迫自己去梳理下整个流程,加深印象,也是阔以的最后,spring的注释是写得真的全啊!!!过程总结:项目启动做创建刷新上下文前的各种准备工作下面开始装配bean调用BeanDefinitionRegistryPostProcessor加载bean定义调用BeanFactoryPostProcessor修改替换bean定义里面的属性值(${...
2020-05-04 19:11:11
312
原创 spring aop过程分析
额。。。终于艰难的把整个aop和部分ioc初始化过程捋了遍。。。总结1.在 bean初始化完成,加入到spring ioc容器之前,会调用BeanPostProcessors执行后置动作2.其中会调用自动代理生成器(AbstractAutoProxyCreator)或者其他的自定义代理生成(AbstractAdvisingBeanPostProcessor之类)来判断(类、方法)、生成代...
2020-03-29 01:23:39
291
原创 java获取启动类的名字
public static String getMainClassName() { StackTraceElement[] stackTraceElements = new RuntimeException().getStackTrace(); for (StackTraceElement stackTraceElement : stackTraceElements) { ...
2020-03-21 21:37:04
2068
原创 java反射通过class构造对象
通过class获取到构造函数,通过构造函数创建对象 public static void main(String[] args) throws Exception { System.out.println(construct("234", "java.lang.Integer")); } public static <T extends Number>...
2020-03-20 16:46:55
360
原创 AQS
AbstractQueuedSynchronizer基础的同步器,主要实现了对等待队列的管理(入队出队,独占/共享模式下对等待节点的唤醒等),而具体的获取、释放的判断逻辑由子类实现等待队列节点类是AbstractQueuedSynchronizer一个内部类Node该队列是一个双向队列,AQS的head变量指向头结点(不是等待节点,head.next才是队列中第一个等待节点),tail变量...
2020-03-14 23:53:17
171
原创 jvm关闭
关闭方式正常关闭最后一个普通线程(非守护线程)结束调用了System.exit发送SIGINT信号(相当于不带参数的kill命令)或者键入Ctrl-C强制关闭调用Runtime.halt发送SIGKILL信号(kill -9 命令)关闭钩子(Shutdown Hook)钩子配置方法通过下面的设置方法可看到,关闭钩子实际为线程Runtime.getRuntime().a...
2020-02-05 11:23:41
808
原创 线程异常的处理
主动处理主动处理runnable中通过try…catch进行处理public void run() { Throwable thrown = null; try { ... } catch (Throwable e) { ... thrown = e } finally { // 线程退出的处理...
2020-02-03 19:07:42
488
原创 spring提供的RestTemplate的header格式
闲聊:这次需求需要后台服务以http方式调用另一个服务,我用的spring的RestTemplate,先是通过本地配置host方法成功调成功,但是后面接入公司的mesh网关后(调用方所在服务器不需要配置host),连接失败了,排查了下发现是RestTemplate的header格式导致在使用RestTemplate的时候,除非直接使用execute方法,其他的如post…,get…,exc...
2019-11-23 20:53:19
917
原创 spring activemq @JmsListener 参数配置
id /** * The unique identifier of the container managing this endpoint. * <p>If none is specified, an auto-generated one is provided. * @see org.springframework.jms.config.JmsListenerEndp...
2019-04-30 14:37:34
9321
原创 RestTemplate服务端异常信息无法完整打印
问题: ... try { res = restTemplate.postForObject(url.toString(), requestEntity, String.class); } catch (RestClientException e){ logger.error("出现异常 {}", e.getMessag...
2019-03-30 23:02:29
2049
2
转载 Java 8 中的 Streams API 详解
https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/
2019-01-21 14:54:21
179
原创 判断指定月份、日期是否在时间范围内
public boolean isInMonthDay(int month, int day, Calendar minCal, Calendar maxCal){ boolean res = false; if(minCal == null || maxCal == null){ return res; } ...
2018-09-14 11:57:12
2274
原创 elastic-job使用及过程中遇到的问题
以前公司的项目分布式调度用的两种方式,一是通过配置文件进行分区,一是用阿里的一个dtss控件;配置文件的方式就不说了,比较挫;而阿里的dtss控件存在问题,而且该控件也已经停止维护更新(别的控件又要收钱)。 所以找到了这个elastic-job,目前只用到了其中的SimpleJob,后续的再更新。。。官方文档官网地址:http://elasticjob.io/index_...
2018-07-29 19:10:31
11174
3
原创 try catch finally踩到的坑
用aop around做了一个日志打印,类似这样:public Object aroundMapper(ProceedingJoinPoint joinPoint) throws Throwable { Object obj = null; ... try{ obj = joinPoint.proceed(); }catch (Throwab...
2018-07-22 20:56:49
1338
原创 支付宝PC端支付报INVALID_PARAMETER错误,一次解决过程
前言我们项目前端部分分为PC端、手机端两个项目,然后共用一个web端,手机端已经上线,手机端中的充值支付模块也已经正常在使用;但这次PC端项目上线的时候,充值却出现了问题,支付接口返回INVALID_PARAMETER的错误;而充值这块之前是另一名开发负责,可是已经离职,只能自己去排查了。解决过程经过多次测试,发现是部分金额支付出现问题,然后根据官方文档,出现INVALID_PAR...
2018-04-11 14:14:18
43210
原创 javaweb:在线聊天网站(框架版)
之前写过一次在线聊天网站,不过那次是无框架版的,这次用框架构建网站,基本功能和上次差不多涉及知识java spring(4.3.5):spring、spring MVC hibernate bootstrap jsp JavaScript,jquery websocket mysql功能1.用户的登录、注册、注销、密码修改 2.获知在线用户名字及数量 ...
2017-02-15 15:36:29
20876
18
原创 hibernate中hql语句注意点
hql组成是根据代码中的实体类不是数据库的表@Entitypublic class Bean{ @Column(name = "a") private String prop; @Column(name = "b") private int prop2;}from Bean obj where obj.prop = 'value' and prop2 = 'value2'
2017-02-01 16:30:48
509
原创 hibernate中获取session和开启事务时遇到问题及解决
代码 是在spring+hibernate框架下org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread解决方法org.hibernate.TransactionException: nested transactions not supported解决方法
2017-02-01 15:55:12
5583
原创 推箱子暴力求解程序(SokobanSolver)
写这个程序是因为在看《Java并发编程实战》书的时候,提到过用多线程来解决推箱子游戏,感觉挺好玩的,于是就开始写啦!!准备阶段先介绍一个推箱子网站(主页):http://sokoban.cn/ 在这个网站你在它的规则(格式)下,也可以轻松获得推箱子地图、验证答案。 规则、格式:http://sokoban.cn/xsb_lurd.php 推箱子地图获取、答案验证:http://sokoban
2017-01-17 15:39:30
14433
6
原创 垃圾收集算法与内存分配策略
《深入立即Java虚拟机》第二版-第3章读书笔记分代收集算法描述:根据对象存活周期的不同将内存划分为几块(一般为新生代和老年代),这样可以根据各个年代的特点采用最适当的收集算法。 新生代中,每次垃圾收集时都有大批对象死去,只有少量存活。 老年代中,对象存活率高、而且没有额外空间对它进行分配担保。标记清除算法描述:算法分为“标记”和“清除”两个阶段:首先标记处所有需要回收的对象,在标记完成后统一
2016-10-06 15:13:05
415
原创 垃圾收集-判断对象是否存活
《深入理解Java虚拟机》第二版-第3章读书笔记引用计数法描述:给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的(垃圾收集)。缺点:很难解决相互引用的问题 例如下面这种情况,这两个对象已经不可能再被访问,但是由于相互引用,导致它们的引用计数都不为0,导致GC收集器无法回收它们。public class T
2016-10-04 16:17:16
392
原创 Java虚拟机(HotSpot)-对象:创建、内存布局、访问定位
《深入理解Java虚拟机》第2版-第二章读书笔记对象的创建1.检查这个指令的参数是否能在常量池中定位到这个类的符号引用,如果存在即进入22.检测该符号引用代表的类是否已被加载、解析和初始化过,若没有,则先执行相应的类的加载过程3.通过了上面的加载检查后,虚拟机为新生对象分配内存(对象所需内存的大小在类加载完成后便可完全确定),为对象分配空间的任务等同于把一块确定大小的内存从java堆中划分出来。4
2016-10-04 10:54:15
565
原创 Java虚拟机管理划分的运行时数据区域
《深入理解JAVA虚拟机》的读书笔记-第2章程序计数器功能: 当前线程所执行的字节码的行号指示器,字节码解释器工作时,就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等处功能都需要依赖这个计数器来完成。这和计算机处理器中的计数器功能基本一样,简单来说就是这个任务有N个步骤,从头开始执行: 1.计数器的值为x=0 2.处理器读取计数器的值x
2016-09-24 18:02:12
370
原创 java.lang.NoClassDefFoundError: org/apache/ibatis/io/Resources] with root cause
使用mybatis的时候,在jsp页面中创建使用到mybatis对象时,在访问页面时报的错。 其实这个错和报struts2包不存在的解决方法差不多:eclipse的解决方法:1.右键项目名称,再点击Properties2.点击左列的Deployment Assembly3.点击右边的Add4.Java Build Path Entires在选择你要添加的包(这里肯定是mybatis的包) 我已经
2016-05-19 16:02:56
12623
3
原创 hibernate注解简单使用
最近刚学的hibernate,用来写东西,出现挺多问题的,特别最麻烦的就是多表关联的配置好麻烦,配置不好后面的操作会出现一堆问题,所以下面说的都是简单实用。前提:这篇对hibernate的注解的一些参数的介绍的不是很不全(通常只是介绍例子中给出的注解解析),要更完整的了解其中一个注解可以再继续查询这个注解。
2016-05-04 21:53:23
8456
原创 hibernate表关联出现的异常及解决方法
最近边学边用hibernate写东西,然后出现各种问题,总结一下出现的问题及解决方法在存在@OneToMany、@ManyToOne的情况报Table ‘table.A_B’ doesn’t exist异常异常出现的背景:排除真正的表不存在的因素外,该异常通常出现的情况如下:create table a( id int primary key not null ); create t
2016-05-04 12:30:50
3661
原创 java api文档离线查询器
写java程序的时候,经常要到官网(http://docs.oracle.com/javase/8/docs/api/index.html)查文档,用着用着感觉有时有些不方便: 1.java官网有时登不上去 2.没有搜索查询功能 所以针对这两个,就想到做一个文档离线查询器,把文档离线下来,然后可以进行搜索查找。(代码依然写得乱。。。)项目介绍:项目名称:java文档离线下载器(J
2016-03-11 17:24:07
4786
原创 关于java.lang.IllegalMonitorStateException
http://www.blogjava.net/freeman1984/archive/2011/10/14/361306.html
2016-02-22 15:13:11
574
原创 java中文词语大小比较
public class Test{ public static void main(String[] args) throws Exception { //获取相应语言的校验器 Collator collator = Collator.getInstance(Locale.CHINA); while(true) {
2016-02-16 17:29:32
3420
原创 java判断字符串中是否含有中文
这感觉其实是一个不太正规的方法,只是我在写爬取网页的东西的时候突然想到这可以用来判断是否为中文,说到这里感觉大家都想到了,对的,就是利用编码转码的方法: url中网址中不能直接包含中文,中文需要先经过编码转换成一串字符(例如”你好”>>”%E4%BD%A0%E5%A5%BD”),而英文经过编码后是不会改变的(”hello”>>”hello”),所以:public class Test{ pu
2016-02-01 13:52:53
2701
原创 eclipse创建配置struts项目时遇到的ClassNotFoundException问题解决方案
可能出现的问题大概有:问题1:java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter问题2:java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
2016-01-10 17:19:43
899
原创 javaweb:在线聊天网站
前言: 最近学了一堆网页相关的内容,html,js,jquery,javaweb,servlet,websocket等东西,所以就试着集合起来写个简单的网页,于是就决定就是你了:在线聊天网站。
2016-01-08 23:22:45
23023
5
推箱子暴力求解程序(SokobanSolver)
2017-01-22
java api文档离线查询器:Jdor
2016-03-12
javaweb在线聊天网站
2016-01-09
汇编贪食蛇
2015-07-20
javaweb写在线聊天网页怎么实现向对方发送消息后,对方自动更新显示消息
2015-12-14
保护模式下的中断的问题:关于硬件的中断对应的是哪个中断向量?
2015-08-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人