- 博客(43)
- 收藏
- 关注
原创 IDEA 启动远程调试
有时工作时候遇到类似回调的事,用穿透软件成功率不行,有时又是和别的公司共用交换机 ,自己也不能修改。所以一般都会在云上部署一个测试的以备调试 因为刚换IDE 从eclipse转到IDEA,还不熟悉,导致 今天搞这东西 搞了我大半个小时 所以这里记下。首先在tomcat开启远程调试功能 打开 ${TOMCAT_PATH}\bin\catalina.sh 然后搜索# ----- E...
2018-12-22 23:15:18
462
转载 解决linkbutton组件disable方法无法禁用jQuery绑定事件的问题
/** * linkbutton方法扩展 * @param {Object} jq */$.extend($.fn.linkbutton.methods, { /** * 激活选项(覆盖重写) * @param {Object} jq */ enable: function(jq){ return jq.each(functi...
2018-12-17 16:19:24
808
原创 记一次easyui tree cascadeCheck 的坑
首先说下需求 父节点选中 子节点全部选中,子节点全部取消选中 父节点也取消选中状态,可easyui的级联效果就是下图给个方形 获取选中的节点时 也获取不到 所以,取消了级联 ,写了onCheck事件 模拟一下$.extend($.fn.tree.methods, {//首先扩展一下获取节点方法 方便重写的时候 获取子节点 getLeafChildren: funct...
2018-12-16 16:47:52
3167
原创 jvm--java内存模型简单概述
java里面处理器的乱序执行,即时编译器的重排序,内存系统的重排序都会造成写的代码的顺序和实际执行的顺序并不相同。为了让程序能够排除数据竞争的干扰。java5引入了明确定义的java内存模型。其中最重要的就是Happens-before关系。程序次序规则:一个线程内,按照代码顺序,书写在前面的操作先行发生于书写在后面的操作; 锁定规则:一个unLock操作先行发生于后面对同一个锁额lock操...
2018-11-29 10:09:25
344
转载 解决linux环境下nohup: redirecting stderr to stdout问题
在生产环境下启动Weblogic时,发现原来好好的nohup信息输出到指定文件中的功能,突然出问题了。现象是控制台输出的信息一部分输出到了我指定的文件,另一部分却输出到了nohup.out,而我是不想让它产生nohup.out文件,不知道是什么原因。我的启动命令是这样的:nohup bin/startManagedServer.sh myserver htp://192.168.0.1 -Xm...
2018-11-21 18:45:28
1488
原创 java虚拟机--垃圾回收简单分析
首先看看传统的垃圾回收算法引用计数法和可达性分析法引用计数法:给每一个对象添加一个引用计数器,表示这个对象的引用个数,一旦引用个数为0的时候,说明该对象已经没用了,就可以回收了。缺点是需要额外的空间,额外的更新操作,且不能处理循环引用。一旦有对象互相引用你 即 A引用B,B引用A,如果使用引用计数法那这两个对象就永远不会回收造成内存泄漏。可达性分析法:将一系列GCRoots作为根集合...
2018-11-21 09:56:24
151
原创 java虚拟机--内存里的java对象
在java中,创建对象的方式有很多种。最常见的就是new关键字了。除此之外,还有反射,clone(),反序列化以及Unsafe.allocateInstance。其中,反序列化和clone()是直接复制已有的数据来初始化对象的字段。Unsafe.allocateInstance 没有初始化对象的字段。new和反射则是调用构造方法来初始化实例字段的。下面是new关键字的字节码 test ...
2018-11-20 10:18:23
274
原创 java虚拟机--invokedynamic指令简单分析
invokedynamic指令是java7引入的。这是自 1.0 以来第一次引入新的虚拟机指令。到了 java 8 这条指令才第一次在 java 应用,用在 lambda 表达式里。在这之前的方法调用指令为 invokestatic、invokespecial、invokevirtual、invokeinterface。这四种指令和包含目标方法类名,方法名以及方法描述符的符号引用绑定。为了实现in...
2018-11-14 09:37:13
626
1
原创 java虚拟机--jvm执行反射简单分析
反射是java中一个相当重要的特性,它的应用十分广泛。譬如java调试器,在调试过程中枚举对象所有字段的值。在Web开发中,各种可配置的框架。为了框架的扩展性,基本上都是使用反射机制。譬如Spring的IOC容器。当然,这么方便的东西往往是牺牲另一部分的特性锁带来的,而反射牺牲的则是代码执行的性能。下面就来简单分析下反射的机制反射的实现首先看下Method类的源码public fina...
2018-11-11 14:53:35
557
原创 记一次easyui的Cannot read property 'options' of undefined异常
后台管理系统,使用的是easyui开发。使用$.ajaxSetup()方法给ajax添加全局方法beforeSend,添加了一个进度款,complete就关闭这个进度款。但重复关闭导致出现Cannot read property 'options' of undefined,很烦,找了好久,终于找到了解决方法在jquery.easyui.min.js文件里面,搜索var opts=_240.o...
2018-11-08 19:07:26
10420
原创 java虚拟机--jvm处理异常简单介绍
在java中,异常处理主要是由抛出异常和捕获异常两大元素组成。这两个元素就组成java程序控制流的非正常转移。抛出异常分两种:显式和隐式。显式指的是在程序中通过throw关键字手动抛出异常实例,它的主体是应用程序;而隐式值指的是在jvm执行过程中,碰到无法继续执行的异常状态,自动抛出异常,它的主体是jvm。捕获异常则涉及到了try-catch-finally代码块。try:标记需要异常...
2018-11-07 10:21:10
589
转载 记一个加密算法 java 3DES (DESede/ECB/PKCS5Padding) 加解密
对接一个接口,需要用到DESede/ECB/PKCS5Padding 进行加密,刚开始以为很牛逼...上代码private static Cipher DES_CIPHER; static { try { DES_CIPHER = Cipher.getInstance("DESede/ECB/PKCS5Padding"); ...
2018-11-05 17:10:56
4636
1
原创 java虚拟机--JVM执行方法的简单分析
重载和重写在java中,如果同一个类出现了多个名称相同,参数也相同的方法,是无法通过编译的。就是说,在同一个类中定义相同名字的方法,该方法的参数必须不同,这就叫做重载。重载方法在编译过程中就可以被识别。java编译器会根据所传入的参数的声明类型来选取重载方法。共有三个阶段不考虑基本类型的自动装拆箱和可变长参数的情况下选; 在(1)没找到的话,允许装拆箱但不允许可变长参数的情况下选; 允...
2018-11-05 11:21:48
248
原创 java虚拟机---JVM加载类的过程简单介绍
基本概念JVM把class文件加载到内存中变成类共有三大步骤,加载,链接,初始化。其中,链接需要验证类是否符合JVM规范,而没有经过初始化的类,在内存里是不能使用的。大家都知道,java语言可以把类型分两大类,基本类型和引用类型。基本类型是由JVM预先定义好的,所以,我们主要讨论的是引用类型。引用类型可以细分为4类:类,接口,数组和泛型。其中,泛型会在编译时被擦除,所以,JVM中的类型只有...
2018-11-05 10:17:06
203
原创 java并发--CountDownLatch简单分析
CountDownLatch在java并发编程实战一书中翻译为闭锁。主要的作用是一组线程等待另一组线程完成事件后调用 CountDownLatch.countDown 方法,当里面的状态 为0的时候,其他调用CountDownLatch.await方法的线程继续往下执行。首先看下构造方法 public CountDownLatch(int count) { if...
2018-10-31 10:24:46
174
原创 java并发--ReentrantLock简单分析
ReentrantLock是java中并发包里的互斥锁,包含公平和非公平两种方式。内部是基于AQS实现的。实现了两个接口,Lock和Serializable。内部有个抽象类叫Sync。 private final Sync sync; /** * Base of synchronization control for this lock. Subclassed ...
2018-10-25 17:39:44
140
原创 java并发---Condition简单分析
Condition的概念Condition是一个接口,默认实现是Lock里的ConditionObject。创建方式一般是lock.newCondition();主要是用来实现等待/通知功能的。Condition的源码简单分析Condition接口定义public interface Condition { void await() throws Interrupted...
2018-10-21 21:13:14
274
原创 spring cloud---服务治理框架 Eureka:配置
服务注册类配置可以通过org.springframework.cloud.netflix.eureka.EurekaClientConfigBean的属性来查看配置,前缀都是eureka.client,下面列取些简要的配置说说参数名 说明 默认值 enabled 启用eureka客户端 true registryFetchIntervalSeconds ...
2018-10-08 10:32:59
181
原创 spring cloud--API网关:spring cloud zuul--过滤器详解
spring cloud--API网关:spring cloud zuul--过滤器详解 --待更新
2018-10-07 14:28:36
302
原创 spring cloud--API网关:spring cloud zuul--路由详解
spring cloud--API网关:spring cloud zuul--路由详解 待更新
2018-10-07 14:27:52
454
原创 spring cloud --服务容错保护:spring cloud Hystrix--原理简要分析
spring cloud Hystrix的工作流程简单介绍首先上流程图(网上找的流程图) 创建HystrixCommand或者HystrixObservableCommand对象。用来表示对以来服务的请求操作。从命名就能看的出来,使用的是命令模式,其中HystrixCommand返回的是单个操作结果,HystrixObservableCommand返回多个结果 命令执行。共有4中方法...
2018-10-07 10:42:05
437
原创 springcloud --spring cloud ribbon--配置简要介绍
自动化配置引入spring cloud ribbon后会自动化构建一下配置IClientConfig:Ribbon客户端配置,默认采用com.netlix.client.config.DefaultClientConfigImpl实现 IRule:Ribboin的负载均衡策略实现,默认采用com.netflix.loadbalancer.ZoneAvoidanceRule实现,该策略能在...
2018-10-07 10:24:39
923
原创 spring动态设置多数据源--AbstractRoutingDataSource
spring 有个类叫AbstractRoutingDataSource,只需要继承并重写方法就行了。首先要先定义几个数据源 <bean id="master" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${master....
2018-10-03 22:43:36
394
原创 spring cloud --服务容错保护:spring cloud Hystrix--快速入门
在你的消费者应用程序里加上如下依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> </dependency>在...
2018-10-02 18:27:42
172
原创 springcloud --客户端负载均衡:spring cloud ribbon-LoadBalancer简单分析
通过我之前的RestTemplate简单分析可以知道,虽然spring cloud 之中定义了LoadBalancerClient作为负载均衡的通用接口,并且对于Ribbon有了具体的实现RibbonLoadBalancerClient,但是,在具体使用客户端负载均衡时是使用Ribbon的ILoadBalancer接口实现的,现在我就根据ILoadBalancer接口的实现类来具体的分析分析。...
2018-10-02 12:13:03
10471
原创 springcloud --客户端负载均衡:spring cloud ribbon-RestTemplate简单分析
负载均衡这个东西,昂相信每个软件开发者应该都接触过。spring cloud ribbon是spring cloud 对Netflix Ribbon的封装,可以让我们轻松的把REST请求转换成客户端负载均衡的服务调用。spring cloud ribbon虽然只是一个工具类的框架,但她几乎存在于每一个基于spring cloud构建的微服务里。要想通过spring cloud ribbon实现...
2018-10-02 10:50:52
472
原创 spring cloud --eureka简单分析
大家知道,将一个普通的springboot 应用注册到Eureka Server只需要两步在应用主类添加@EnableDiscoveryClient注解 在application.properties中配置eureka.client.serviceUrl.defaultZone顺着这条思路,首先看下@EnableDiscoveryClient有什么类容/** * Annotatio...
2018-10-01 11:44:51
238
原创 spring cloud---服务治理框架 Eureka
首先创建spring boot 工程,引入 如下 pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.7...
2018-10-01 09:25:03
382
原创 springmvc 的请求详解
现如今java web面试,spring mvc 是不可避免的,而大多数的面试官又喜欢问问springmvc 的工作流程,虽然昂觉得这个工作流程问的一点意义都没有,所以,昂在这记一下springmvc 的工作流程。当一个http请求到你的服务器,服务器转发到springmvc 应用时,第一个接触的类是FrameworkServlet,调用的方法是service,而service会将请求交给Ht...
2018-09-29 20:45:55
243
1
原创 netty内存-PoolSubpage分析
前面讲过PoolChunk最小得分配单位是page,而page得默认大小是8k,但在实际应用当中,会有很多的小数据,如果小数据也占用一个page的话。那无疑内存将会大大的浪费。针对这种情况,netty就建了个新东西叫PoolSubpage。PoolSubpage的工作和PoolChunk类似,只是PoolSubpage所管理的内存块远小于PoolChunk,且PoolSubpage的内存是从chu...
2018-09-19 15:53:04
460
原创 springcloud feignClient-上传文件
使用springmvc,基本用的都是MultipartFile,而feign本身并不支持MultipartFile。想继续使用的话就要使用扩展包。maven依赖如下 <dependency> <groupId>io.github.openfeign.form</groupId> ...
2018-09-19 15:48:19
650
原创 netty内存--PoolChunk分析
PoolChunk使用了jemalloc分配算法。对这个算法不了解的,请另行百度哈,这里我就不展开了。首先说下几个概念吧。page是chunk中内存分配的最小单元,chunk是由一系列的page组成的。当然,page也可以分割成一系列的subpage。一个chunk的大小chunksize=2{maxorder}*pageSize。PoolChunk是由final修饰的,这代表不能去修改的...
2018-09-19 15:34:51
945
原创 netty-读半包处理--ByteToMessageDecoder
Netty作为网络应用框架,在网络上的各个应用之间不断进行数据交互。而网络数据交换的基本单位是字节,而java应用传输又是POJO,这就要序列化成字节再网络上传输。Netty是使用TCP/UDP在互联网上传输数据,由于Netty异步的特性,当使用TCP时,不可避免就会出现TCP粘包/拆包现象。对于TCP粘包/拆包,业界公开的有一下几种方法:使用分隔符分割 使用定长的消息,不足补空格之类的 ...
2018-09-10 15:15:13
6247
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人