
JAVA
华仔的逆袭
这个作者很懒,什么都没留下…
展开
-
Rsession让Java与R建立连接
接着上一篇文章《Rserve安装、配置和远程操控》,这篇文章主要是介绍如果使用Rsession来使Java与R建立连接,Rsession为Rserve的进一步封装,废话不多说,开始介绍。1. Rsession下载与配置Rsession的使用需要Rserve的Jar来支撑,所以需要的Jar包有:REngine.jar、RserveEngine.jar 和Rsession.jar,前两个Jar的下载配置原创 2016-09-04 23:36:32 · 3144 阅读 · 2 评论 -
Integer中equlas()方法的运用与问题总结
说实话,在写这篇博文之前真的不知道Integer还有这么一个大坑。还好最近看了阿里v1.2版本的Java开发手册才发现了,先给自己打个预防针。1.问题下面我们先来看几小段代码,先自己想想运行结果是什么?public class Test1{ public static void main(String[] args) { Integer a=100; Inte原创 2017-05-26 21:34:47 · 1090 阅读 · 0 评论 -
AbstractQueuedSynchronizer同步队列与Condition等待队列协同机制
之前对AbstractQueuedSynchronizer(AQS)同步队列与Condition等待队列的功能一直不是很清晰,没太清楚地区分开二者的区别和联系,最近研究了一下分享出来。1.同步队列和等待队列简述AQS维护的队列是当前等待资源的队列。当前线程获取同步状态失败时,同步器会将当前线程以及等待状态等信息构造成为一个节点并将其加入同步队列,同时会阻塞当前线程,当同步状态释放时,会把首节点中的线原创 2017-04-04 11:32:22 · 5391 阅读 · 4 评论 -
网站架构模式
这篇是读《大型网站技术架构》后的一些总结和个人理解。1.模式“模式”词我们应该是很熟悉的, 我们最常见和最常用到的就是设计模式了。那如何来解释“模式”这个词呢? 个人理解:在相似场景下可复用的解决方案。两个比较关键的点:1.相似场景 2.可复用方案2.网站架构模式2.1 分层(横向)分层主要是将系统进行横向切割。例如我们一般把系统分为应用层,服务层,数据层。进一步地,我们还可以继续在大的层次原创 2017-03-30 15:36:57 · 585 阅读 · 0 评论 -
volatile和锁的内存语义与实现
1.volatile的内存语义与实现1.1 volatile写读的内存语义在介绍锁的内存语义之前,我们先简单介绍一下volatile写读的内存语义:当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值刷新到主内存中。当读一个volatile变量时,JMM会把该线程对应的本地内存置为无效,线程接下来将从主内存中读取共享变量这两条保证了volatile能够达到它的即时可见的原创 2017-03-28 14:43:06 · 1698 阅读 · 1 评论 -
ReentrantLock的源代码解析和锁的内存语义实现
我们这一篇重点解析的是ReentrantLock,对AbstractQueuedSynchronizer(AQS)的解析会相对较少。所以,如果对AQS的原理还不是很了解的话,建议先去了解AQS的实现原理,然后再来看本篇,一些之前看不太懂的地方应该就会恍然大悟了。1.ReentrantLock类我们先来看看ReentrantLock类中大体包含一些什么成员变量和函数:public class Reen原创 2017-03-28 18:42:29 · 911 阅读 · 2 评论 -
使用canal进行mysql数据同步到Redis
写这篇博文时,自己一定是含着误删数据库的眼泪写完的,文中的后续部分会谈到这个“从删库到**”的悲惨故事,这个故事深刻地教训了我,我也想以此来警示大家,注意数据安全和数据备份。1. 可行方案回归正题:我们的标题为《使用canal进行mysql数据同步到Redis》,那就先来说说我们的目的:mysql数据同步到Redis,想达到读写分离,Redis只做缓存,MySQL做持久化。刚开始想这样干的时候就去网原创 2016-12-29 15:16:20 · 25532 阅读 · 14 评论 -
Java中普通代码块,构造代码块,静态代码块区别和优先级
执行优先级:静态代码块 > mian方法 > 构造代码块 > 构造方法 废话不多说,我们来介绍一下大家不经常接触到的静态代码块和构造代码块。1. 静态代码块随着类的加载而执行,只执行一次,并优先于主函数执行,是对类初始化的。public class Test { //静态代码块 static { System.out.println("test static blo原创 2016-08-09 15:58:00 · 1887 阅读 · 0 评论 -
canal的使用错误“Context namespace element 'component-scan' and its parser class”
在继上次为了用canal发生意外之后,今日又被canal坑了一把。在上次的CanalClient实现时,为了测试方便,直接将CanalClient类放置于项目的Test中进行测试,同时加载了canal的maven依赖,然后就没有继续执行其他操作。今日启动tomcat,发现无法正常启动,启动日志出现一堆错误org.springframework.beans.factory.BeanDefinition原创 2016-12-30 15:13:38 · 4122 阅读 · 2 评论 -
Java泛型接口、迭代器与反射机制结合实例,和泛型方法的使用原则
本来这部分的内容是相对简单的,但是在看书的过程中发现了一个很好的例子,涉及了好几个知识点,忍不住要写一篇博文。泛型接口,顾名思义,泛型也可以应用于接口,接口使用泛型和类使用泛型没什么区别。下面举一个生成器的例子,是工厂方法的一种应用,负责创建对象的类。生成器接口://接口方法返回类型是参数化的T,切记要与泛型方法进行区别;泛型方法是为了参数的泛化,后面我们将会给出一个简单的实例public int原创 2016-12-26 14:21:08 · 1418 阅读 · 0 评论 -
<a>标签href与js(onclick)的触发顺序
在前端标签<a> 的执行过程中遇到问题,发现了href与js(onclick)的触发是存在先后顺序的。 优先级:onclik > href 如果不需要href的跳转可以使用event.preventDefault() 方法置于onclick函数中。 如果只是把<a> 作为按钮使用可以使用href="javascript:void(0);"。<a href="index" onclick="to原创 2016-12-22 21:29:18 · 8052 阅读 · 0 评论 -
SpringMVC绑定ajax传递json数据到pojo对象错误(400 Bad Request)
问题如标题所述,ajax向SpringMVC Controller传递JSON数据,遇到了错误“Failed to load resource: the server responded with a status of 400 (Bad Request)”,该错误为前端报错,JSON数据压根没有被Controller接收。因为后端想通过接收JSON数据直接转换为pojo对象,进行pojo绑定。经过原创 2016-12-21 16:57:19 · 9387 阅读 · 0 评论 -
Rserve安装、配置和远程操控
关于ubuntu下R的安装在上一篇博文《Ubuntu安装更新最新版本R》中已经讲过了,这篇博文主要介绍的是如何使用Java来调用R。1. Rserve的安装与配置 Rserve是个什么东西?从这个词面的意思来理解就是R的一个服务,主要是提供远程连接的服务,当然功能是很多的,具体可参考:https://rforge.net/Rserve/在安装Rserve之前确保R能够正常运行,并正确配置了R的环境原创 2016-09-04 16:55:34 · 5379 阅读 · 0 评论 -
从代理模式到Java动态代理
在之前的设计模式博文《设计模式_代理模式(Java)》中,介绍了代理模式。它是为了提供额外的操作,而创建的用来替代实际对象的对象,原理和实现都较为简单,在这片文章中我们主要是介绍Java中提供的动态代理。动态代理比代理的思想更向前迈进一步,因为它可以动态地创建代理,并动态地处理对所代理方法的调用。在动态代理上所做的所有调用都会被重定向到单一的调用处理器(InvocationHandler实现)上。在原创 2016-12-23 21:36:13 · 713 阅读 · 0 评论