- 博客(21)
- 收藏
- 关注
原创 Arthas获取spring上下文
对基于spring的工程而言,获取到spring上下文就可以做很多事情,比如获取注册的Bean对象,查看其属性值,调用其方法等。生产环境中排查问题时,不方便修改代码打印变量的值、重启服务以便调用刷新缓存的方法等,这时,使用arthas就方法许多了。基于SpringMvc的工程获取spring上下文tt -t org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter invokeHandle.
2020-06-23 00:07:45
3200
原创 Guava cache 特性及使用
特性guava cache类似concurrentMap使用分段锁提高并发写的效率支持缓存三种缓存淘汰策略支持缓存移除监听(移除、过期、gc回收)支持key/value的软引用、弱引用缓存命中率统计加载数据的方式1.从CacheLoader加载LoadingCache.get(key)方法返回缓存中的值,如果不存在,自动调用内部CacheLoader.load(key)方法返回...
2019-12-08 18:10:36
515
原创 URLEncode与Java中的URLEncode
urlencode在1994年订立的RFC1738中。对字符串中除了-_.三个字符之外的所有非字母数字字符都替换成百分号(%)后跟两位十六进制数。十六进制数中字母必须为大写。http://tools.ietf.org/html/rfc1738在2005年定义的RFC3986中,将针对- _.~(可见又扩充了一个波浪线字符)四个字符之外的所有非字母数字字符进行百分号编码。http中的ur...
2019-10-10 15:16:12
5337
原创 阿里开源配置服务diamond分析
diamond简述diamond是阿里巴巴开源的一款配置中心服务。diamond中文意思是钻石,而钻石的特点有小巧、珍贵、稳定。小巧:在如今的互联网公司中配置服务作为基础的中间件,其核心功能比较简单就是存储并管理配置数据,功能单一。珍贵:随着公司业务线增加及规模的扩大,传统的基于配置文件、尤其是多环境下繁杂、易出错的配置和需要动态感知配置变化时,统一化的配置服务显得弥足重要,对开发人员更加...
2019-05-01 18:52:24
6279
1
原创 物联网协议MQTT浅谈
第一部分 物联网的组成第二部分 常见物联网通信协议比较第三部分 MQTT协议及开源实现第四部分 IOT架构及设备接入实践1.物联网的组成 生活中常见的共享单车、智能手环、智能家居等都是物联网的实际引用。物联网最初在1999年提出:即通过射频识别( RFID)、 红外感应器、全球定位系统、激光扫描器、气体感应器等信息传感设备,按约定的协议,把任何物品与互联网连接起来,进行信息交换...
2018-07-08 23:21:28
15896
4
原创 项目中有重写框架源码的类时,debug无法跟源码
项目中有重写框架源码的类时,debug无法跟源码因为classpath中有相同的类名的class文件,idea不知道使用哪个,可以在idea中设置出现这种情况时人工选择:setting--debugger--show alternative source switcher 勾选...
2018-03-30 00:08:01
524
转载 IDEA中来自maven依赖的类的代码完成没有建议
Intellij IDEA code completion does not suggest classes coming from maven dependencies(IDEA中来自maven依赖的类的代码完成没有建议)This may sound stupid but here I go (there's no silly question after all, right?): I'm w...
2018-03-30 00:06:13
508
原创 idea包结构问题
在idea的包下面新建子包,出现把 包名.子包 作为一个包的情况暂时可以在资源管理器中新建文件夹,到idea里面刷新就自动识别为正确的包路径了
2018-03-30 00:04:45
1153
原创 Java中常用的锁机制
1.1什么是锁? 在计算机科学中,锁(lock)或互斥(mutex)是一种同步机制,用于在有许多执行线程的环境中强制对资源的访问限制。锁旨在强制实施互斥排他、并发控制策略。 锁通常需要硬件支持才能有效实施。这种支持通常采取一个或多个原子指令的形式,如"test-and-set", "fetch-and-add" or "compare-and-swap"”。这些指令允许...
2018-03-29 23:43:10
61488
8
翻译 Apache HttpComponents
官网原文 Apache HttpComponents Apache HttpComponents™项目负责创建和维护一个专注于HTTP和相关协议的低级Java组件工具集。这个项目在Apache软件基金会下运行,是一个有大量开发者和用户的社区的一部分。HttpComponents预览 超文本传输协议(HTTP)可能是当今互联网上使用的最重要的协议。网络服务,支持网络的设备以及网络计算的发展继
2017-11-18 13:30:23
402
转载 关于myeclipse无法使用ctrl+shift+f快捷键格式化代码的问题
同时使用MyEclipse/Eclipse 和 sougou输入法时,无法使用ctrl+shift+f 格式化代码问题解决:取消sougou的快捷键:
2013-11-21 09:55:29
894
原创 (8)String、StringBuffer、StringBuilder
1.String s1="abc";String s2=new String ("abc");String s3="abc";s1==s2; //flases1==s3; //true区别:S1在内存中有1个对象,S2在内存中有2个对象常量是在方法区中的常量池里的,当String s1="abc"时,常量池中已经有了abc对象,执行String s3="abc"
2013-11-08 12:55:44
597
原创 (7)抽象类、接口、多态、内部类(匿名内部类)、异常(自定义异常)
1.抽象类中可以没有抽象方法,但有抽象方法的类一定是抽象类。2.接口中成员的定义规则interface InterDemo{ public static final int Num=4; public abstract void show();}接口中只能定义public static final全局常量和和public abstract抽象方法,publ
2013-11-03 20:06:09
921
原创 (6)单例模式和模板方法模式
1.单例模式(单例指一个实例,即一个类只能创建一个对象)需求:在一个软件中,用户更改字体设置,保存后,下次运行该软件,字体是上次修改的字体,这说明用户在本软件中更改某项设置,只产生一个属性面板对象,这就需要单例模式。思路:要使一个类只能创建一个对象,需要做到:(1)不能在外部创建对象 (2)在单例类中创建好一个对象,供外部使用(3)提供一个功能使外部可以调用这个创建
2013-11-03 20:01:17
684
原创 (5)this和static关键字及对象初始化过程
1.成员变量与局部变量(方法中或for语句中)区别:作用域:成员变量在类中有效,局部变量只在方法中有效。内存特点:成员变量存在于堆内存中,局部变量存在于栈内存中。2.匿名对象操作属性没有意义,匿名对象调用方法只能使用一次,用后就成垃圾对象.当对象要操作多个属性或方法时就要给他起名。匿名对象用在:只调用一次方法;作为实际参数传入方法,简化代码。3.构造函数特点:(1)
2013-11-03 19:57:36
729
原创 (4)数组
1.定义函数首先明确函数需要返回什么结果,即返回值类型,其次明确函数运算过程中需要参与的未知变量,即形式参数类型和个数。定义函数只需完成需要的功能即可,不需要打印返回结果,需要对返回值进行打印还是比较等运算是函数调用者的事,不要在函数定义时完成额外的功能,依需求而定。2.数组定义:元素类型 [ ] 数组名=new 元素类型[数组长度或元素个数]java虚拟机运行时,把内存划分为5
2013-11-03 19:52:33
508
原创 (3)流程控制语句
1.if语句三种形式:(if在做判断题)(1)if(条件表达式) { 执行语句 } // 作用域仅限大括号内,省略大括号时,仅限if后的一句(2)if(条件表达式) {执行语句1} else {执行语句2}(3)if(条件表达式1) {
2013-11-03 19:48:15
629
原创 (2)数据类型和运算符
1.java数据类型有基本数据类型和引用数据类型。基本数据类型有8种:数值型(整型、实型)、字符型、布尔型。引用数据类型有数组、类和接口。整数类型:byte(1个字节-128~127),short(2个字节-32768~32767),int(4个字节),long(8个字节)实数类型:float(4个字节),double(8个字节)字符类型:char(2个字节)布尔类型:java并没
2013-11-03 19:31:25
577
原创 (1)JAVA基础及环境变量
1.编程语言的分类(1)编译性语言和解释性语言:编译性语言指程序运行前先进行编译,生成计算机可以识别的机器码文件,一经编译,以后便可直接运行,运行速度较快,但由于函数库或类库升级修改程序后必须重新编译。如C语言、C++、VB、Delphi;解释性语言指程序可以不经编译,边解释边执行,运行速度稍慢,但较灵活。如JavaScript、VBScript、Python、Perl。(2)动态类型语言
2013-11-03 19:25:45
657
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人