
Java
赫丙
走崎岖路,需平常心
展开
-
jstack定位线程堆栈信息
一、先说流程1、找到CPU利用率持续比较高的进程, 命令:top2、找到CPU使用率较高的线程ID(TID):ps p 16480 -L -o pcpu,pid,tid,time,tname,cmd此处为:164983、将获取的线程号(十进制数)转换成十六进制printf "%x\n" 16498结果:40724、结合进程号和线程...转载 2020-03-13 14:12:45 · 633 阅读 · 0 评论 -
Spring MVC下载文件, IE浏览器不支持
@ApiOperation("图片下载") @GetMapping("/download") public ResponseEntity<byte[]> download(@RequestParam Long sbbId, @ApiParam("文件id") @RequestParam String fileId) throws IOException { ...原创 2019-12-18 15:18:26 · 326 阅读 · 0 评论 -
Java设计模式之《适配器模式》及应用场景
适配器就是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配,简单点理解就是平常所见的转接头,转换器之类的存在。 适配器模式有两种:类适配器、对象适配器、接口适配器 前二者在实现上有些许区别,作用一样,第三个接口适配器差别较大。1、类适配器模式: 原理:通过继承来实现适配器功能。 当我们要访问的接口A中没有我们想要的方法 ,却在另一个接口B中发现了...转载 2018-08-21 20:49:31 · 164 阅读 · 0 评论 -
原码, 反码和补码
为何要使用原码, 反码和补码在开始深入学习前, 我的学习建议是先"死记硬背"上面的原码, 反码和补码的表示方式以及计算方法.现在我们知道了计算机可以有三种编码方式表示一个数. 对于正数因为三种编码方式的结果都相同: [+1] = [00000001]原 = [00000001]反 = [00000001]补所以不需要过多解释. 但是对于负数:转载 2017-04-19 09:12:43 · 493 阅读 · 0 评论 -
数据结构(一)
看了一个大神的博客,对相关代码进行了整理,包含数据结构的面试题,有深度,特别全面,但是我没看懂,不说了都是泪,我就直接贴链接吧。原创 2017-04-07 14:57:40 · 347 阅读 · 0 评论 -
彻底理解ThreadLocal
源码分析 为了解释ThreadLocal类的工作原理,必须同时介绍与其工作甚密的其他几个类ThreadLocalMap(内部类) Thread 首先,在Thread类中有一行: /* ThreadLocal values pertaining to this thread. This map is maintained by the ThreadLocal clas...转载 2019-03-11 15:00:02 · 282 阅读 · 0 评论 -
JDK8的新特性——Lambda表达式
JDK8已经发布快4年的时间了,现在来谈它的新特性显得略微的有点“不合时宜”。尽管JDK8已不再“新”,但它的重要特性之一——Lambda表达式依然是不被大部分开发者所熟练运用,甚至不被开发者所熟知。 国内的开发环境大家都知道,有各种的老项目,有各种各样的发布风险,让公司以及项目组对新的技术往往望而却步,有公司甚至时至今日还在使用JDK6来进行项目开发,这导致了在很多技术的选择上受到了很大限...转载 2019-02-13 11:29:41 · 283 阅读 · 0 评论 -
Java:拼装解析XML报文,调用http接口返回数据
1、要拼装的xml报文格式为:2、拼装报文,并调用接口/** * 拼装报文,调用接口 * * @param jsonData 传送的报文body内容 * @param tranId 接口id * @return */public String callService(String jsonData,String tranId) { //拼装报文 Document ...原创 2018-12-29 15:41:45 · 11528 阅读 · 4 评论 -
Set遍历解决java.util.NoSuchElementException报错问题
出现问题:在遍历Set集合时,使用到了迭代器。项目运行时报错:java.util.NoSuchElementException报错原因:itr本身只有两个值,而itr.next()两次,没有值可取导致报错。解决办法:将itr.next()赋值给一个变量,之后使用这个变量即可。 其他:进行Set遍历的时候,除了迭代遍历,还可以有其他方法。如果对迭代器使用不熟练...原创 2018-09-19 19:37:02 · 894 阅读 · 0 评论 -
信鸽推送(Android和iOS):详细流程+问题解决
最近初次了解到信鸽推送,详细记录一下整个过程。一、下载SDK需要去官网http://xg.qq.com/xg/ctr_index/download下载用户手册,分为服务端和客户端。根据用户手册选择适合当前业务场景的接口,文档中每个接口下有demo可以参考。pushSingleAccount 推送消息给单个账号(注意分为Android和iOS,所以需要有不同的key和密钥)p...原创 2018-08-31 15:06:57 · 6795 阅读 · 0 评论 -
单点登录原理与简单实现
一、单系统登录机制1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系 但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必转载 2017-07-24 10:01:33 · 306 阅读 · 0 评论 -
Java 并发开发:内置锁 Synchronized
摘要:在多线程编程中,线程安全问题是一个最为关键的问题,其核心概念就在于正确性,即当多个线程访问某一共享、可变数据时,始终都不会导致数据破坏以及其他不该出现的结果。而所有的并发模式在解决这个问题时,采用的方案都是序列化访问临界资源 。在 Java 中,提供了两种方式来实现同步互斥访问:synchronized 和 Lock。本文针对 synchronized 内置锁 详细讨论了其在 J转载 2017-03-15 10:35:15 · 250 阅读 · 0 评论 -
《JAVA与模式》之单例模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述单例模式的: 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。单例模式的结构 单例模式的特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。 饿汉式单例类publi转载 2017-03-15 10:25:40 · 209 阅读 · 0 评论 -
创建型模式之单例模式
我们之前见过很多各式各样的建筑,但是大部分的房子都很相像,而设计每一个房子大概都是一个固定的套路,挖坑啊打地基啊开始垒砖啊等等。设计模式就相当于盖房子,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。设计模式共有23种,分为创建型、结构型和行为型,下面先简单介绍创建型模式。一、创建型模式 对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效原创 2017-03-14 15:50:46 · 349 阅读 · 0 评论