自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Java的专栏

真正的Java

  • 博客(51)
  • 资源 (1)
  • 收藏
  • 关注

原创 hashCode的生成

hashCode 方法的定义在jdk api中 关于hashCode有如下说明: 1234567891011121314151617 Returns a hash code value for the object.This method is supported for the benefit of hash tables such as those provided by HashMap.The general c...

2020-05-16 21:25:08 1365

原创 LSTM和循环网络基础教程

https://deeplearning4j.org/cn/lstmhttps://www.zhihu.com/question/40942637/answer/136248839https://nd4j.org/backend.html

2020-05-15 19:38:56 270

原创 synchronized 关键字

synchronized 关键字实现原理在java1.6中对synchronized进行了一系列优化,在之前的版本中,lock性能远比synchronized关键字好,测试数据这里不放了。重点关注下实现原理。先说几个概念:普通同步方法,锁当前实例(相当于synchronize(this))。 静态同步方法,锁当前类的class对象。(任何该class的实例全都会阻塞) synchronized(object)锁object对象。当一个线程访问同步代码块时,它首先是需要得到锁才能执行同步

2020-05-12 17:18:13 261

原创 Java阻塞队列的原理分析

Java阻塞队列的原理分析先看看BlockingQueue接口的文档说明:add:添加元素到队列里,添加成功返回true,由于容量满了添加失败会抛出IllegalStateException异常; offer:添加元素到队列里,添加成功返回true,添加失败返回false; put:添加元素到队列里,如果容量满了会阻塞直到容量不满; poll:删除队列头部元素,如果队列为空,返回null。否则返回元素; remove:基于对象找到对应的元素,并删除。删除成功返回true,否则返回false;

2020-05-12 17:13:24 190

原创 Java阻塞队列的原理分析

Java阻塞队列的原理分析先看看BlockingQueue接口的文档说明:add:添加元素到队列里,添加成功返回true,由于容量满了添加失败会抛出IllegalStateException异常; offer:添加元素到队列里,添加成功返回true,添加失败返回false; put:添加元素到队列里,如果容量满了会阻塞直到容量不满; poll:删除队列头部元素,如果队列为空,返回null。否则返回元素; remove:基于对象找到对应的元素,并删除。删除成功返回true,否则返回false;

2020-05-12 17:00:49 289

原创 JAVA - AQS源码解读

JAVA - AQS源码解读前言AQS全称AbstractQueuedSynchronizer。是Lock、CountDownLatch、Semaphore(信号量)的基础。这个AQS我在大约一年多以前看过一次,但是当时水平有限,根本没看懂什么意思,最后对于AQS的理解都是来自于网上的博文,可以说是吃人家嚼过的。。这次重读源码还是收获颇丰。Node看一下Node的结构: 1 2 3 4 5 6 7 8 .

2020-05-12 16:56:46 177

原创 JVM源码分析 – 偏向锁

JVM源码分析 – 偏向锁前言JAVA在内部提供了许多种锁,在虚拟机内部,又会根据虚拟机配置和场景来使用不同种类的锁,比如偏向、轻量级以及重量级等等,这篇文章根据1.8的源码,来看一下JAVA内部实现的锁。提前说明,笔者并非专业的C++开发人员,只了解一些基本的语法,只能通过方法命名、注释来大体了解一下代码的执行过程以及效果。我们从字节码开始,我们使用synchronized(Object)包裹代码块的时候,字节码中会用如下方式包裹: 1 2 3 .

2020-05-12 16:49:09 869

原创 netty in action读书笔记

关于netty的内存管理:netty在4.1.x版本默认使用的allocator是PooledByteBufAllocator,在分配ByteBuf的时候,引入了新的alloc机制——jemalloc,netty内部自己按照jemalloc的机制,实现了一个java版的(这个有待考证,目前我翻了一下源码,好像是java实现的,没有调用native的部分)关于Channel.write和ChannelHandlerContext.write:ChannelHandlerContext的write方

2020-05-10 16:37:32 172

原创 ICU4J介绍

ICU (International Components for Unicode)是为软件应用提供Unicode和全球化支持的一套成熟、广泛使用的C/C++和Java类库集,可在所有平台的C/C++和Java软件上获得一致的结果。ICU首先是由Taligent公司开发的,Taligent公司被合并为IBM公司全球化认证中心的Unicode研究组后,ICU由IBM和开源组织合作继续开发。开始ICU只有Java平台的版本,后来这个平台下的ICU类被吸纳入SUN公司开发的JDK1.1,并在JDK以后的版本中不断

2020-05-10 16:34:35 7334

原创 记一次Disruptor排坑

Abstract我们在项目中使用了Disruptor作为事件总线,实现的业务是:用户消费完成成就,完成八个成就之后自动获得第九个成就——获得前面八个成就。这个项目不是我参与的,当时我自己封装的高性能事件总线(Electrons)已经完全能胜任上述功能,但是由于小伙伴当时对我的这个组件没有特别研究,仍然感觉我的这个就是顺序执行前面几个监听器,就没有用。这个项目在测试环境中一直没有问题,原因我分析一下有下:并发量太小,RingBuffer的队列的size太小都完全足够。 测试环境中代码不稳定,

2020-05-09 17:35:28 3289 5

原创 ElasticSearch资料

时间序列数据库的秘密(1)—— 介绍时间序列数据库的秘密(2)——索引时间序列数据库的秘密(3)——加载和分布式计算用SQL查询Elasticsearchhttps://github.com/taowen/es-monitor【01】把 Elasticsearch 当数据库使:表结构定义【02】把 Elasticsearch 当数据库使:过滤和排序【03】把 Elasticsearch...

2020-05-04 17:52:00 144

原创 elasticsearch-cn-out-of-box

https://github.com/hangxin1940/elasticsearch-cn-out-of-box/为elasticsearch集成一些实用插件以及配置的开箱即用的版本。Dockerfile docker-elasticsearch-cndocker pull hangxin1940/docker-elasticsearch-cn:v2.1.1elastic...

2020-05-04 17:50:51 136

原创 时间序列数据库的秘密(1)—— 介绍

什么是时间序列数据?最简单的定义就是数据格式里包含timestamp字段的数据。比如股票市场的价格,环境中的温度,主机的CPU使用率等。但是又有什么数据是不包含timestamp的呢?几乎所有的数据都可以打上一个timestamp字段。时间序列数据更重要的一个属性是如何去查询它。在查询的时候,对于时间序列我们总是会带上一个时间范围去过滤数据。同时查询的结果里也总是会包含timestamp字段。...

2020-05-04 17:42:00 250

原创 中国气象数据网

中国气象数据网门户网站中国气象数据网(http://data.cma.cn)中国气象局国家气象信息中心(中国气象局气象数据中心)资料服务室(Climatic Data Center, National Meteorological Information Center, China Meteorological Administration)是我国历史最悠久的气象信息、档案的收集...

2020-05-04 17:30:59 2017

原创 等高线地图

http://www.opencyclemap.org/在http://www.opencyclemap.org发现 Landscape 图层. 比原来的 opencyclemap 改进了不少.Thunderforest Landscape map 资料http://www.thunderforest.com/landscape/Thunderfo...

2020-05-04 17:27:59 7706 1

原创 什么是霍尔传感器

一、什么是霍尔传感器霍尔传感器安装在手机上主要功能就是使用智能皮套(磁皮套),扣上皮套后屏幕就会在皮套上留出的小窗口中出现一个小窗口界面,用来接听来电或阅读短信。这功能在安卓手机上应该是较为普遍的,但是为何不见厂家一直宣传?休眠皮套的原理就是屏幕左边放置个磁场传感器,前盖内置磁铁,后壳内置铁片屏蔽磁场,这样实现合盖休眠,开盖唤醒的功能。磁场传感器用来实现这...

2020-05-03 22:39:43 2368

原创 Helios Decompiler

https://github.com/helios-decompiler/HeliosHelios is an all-in-one Java reverse engineering tool. It features integration with the latest up-to-date decompilers.https://github.com/...

2020-05-03 18:08:14 181

转载 Java反编译器剖析(下)

更多细节目前为止,我们的分析仅限于一个单独的代码序列——以一个简单指令列表开始,经过一系列转换产生更高级别的指令。如果你认为这些都太过简化,你的看法是对的。因为Java是一种高度结构化的编程语言,包含的概念比如范围(scope)、块(block),以及更加复杂的控制流。为了处理一些更加复杂的指令,比如if/else块和循环(loop),我们需要对代码进行更加深入的分析,关注各种可能被选取的...

2020-05-03 18:05:43 217

转载 Java反编译器剖析(中)

在上一篇文章中,我们介绍了翻译器的功能、简单的字节码知识回顾、反编译和栈分析。本文将继续讨论反编译器中对条件表达式、变量类型分析、短路运算符和方法调用在反编译器中的处理。条件表达式在这里可以决定我们的代码是否使用了三元运算符(?:):有一个判断条件,条件的每个分支都对同一个栈变量s{1,2}进行一次赋值,赋值后两条路径会进行合并。一旦确定了这个模式,就可直接使用三元表达式。...

2020-05-03 18:03:29 163

转载 Java反编译器剖析(上) 

反编译器(或者解码器),简而言之,就是将目标程序码反转成源代码。但是其中的过程却比较复杂,也很有意思——Java源码是结构化的,字节码却不是。而且,转换不是一一对应的:两段完全不同的Java程序也可能生成完全相同的字节码,有时需要一些试探才能更加接近源码。(一段简短的)字节码教程为了更好的理解反编译器如何工作,现在有必要理解一下字节码基础。如果你对此非常熟悉,可以略过此处直接跳到下一部分。...

2020-05-02 18:36:13 284

原创 Java Deobfuscator

https://javadeobfuscator.com/https://github.com/CalebFenton/simplifyGeneric Android DeobfuscatorSimplify uses a virtual machine to understand what an app does. Then, it applies optimizations to ...

2020-05-02 18:32:47 696

原创 Smalidea无源码调试 android 应用

smalidea是一款 IntelliJ IDEA/Android Studio的 smali 插件已有功能语法高亮/错误提示 字节码级别调试 断点 单步调试 寄存器查看 本地窗口 java 语法支持,debug 模式下同样支持 支持跳转,方便追踪变量/函数/类.(Xref也支持) 查找用法 重命名 从 java 代码引用 smali 类 错误反馈.....

2020-05-02 18:21:03 244

原创 关于Retargetable Decompiler

riusksk推荐了一个在线反编译网站,decompiler.fit.vutbr.cz,介绍说支持MIPS、PowerPC、ARM、x86等等。拿一个MSB MIPS的binary上去试了试,呃,备忘吧。说不定有人用得上,自求多福。http://www.showmycode.com/ 各种各样的反编译器。...

2020-05-02 18:18:53 515 1

原创 美化二维码

二维码内容长度不作控制 大多数互联网技术使用到二维码生成,都是使用开源的包生成,输入字符信息,即可生成一张包含此字符信息的黑白二维码图片: 上面有两个二维码图片,扫码结果都是访问到同个页面,但是大多数使用二维码的地方,都是生成第一种样式,WC里的广告就是直接的例子: 很明显,第一种二维码点阵非常复杂,在某种复杂的环境下,如扫码角度大、...

2020-05-02 16:50:50 3631 1

原创 QR码使用总结

QR码(学名为快速响应矩阵码;Quick Response Code)是二维码的一种,相应的ISO国际标准ISO/IEC 18004,现在互联网上的二维码一般都是QR码。本文主要总结生成QR码(模式2)遇到的几个问题,生成使用开源条码库ZXing。QR码尺寸问题问题描述:运营同学需要23px*23px的QR码(不包括边缘留白),一定能实现么?背景知识:QR码共有40种版本,每个版本都有...

2020-05-02 16:49:06 5523

原创 二维码生成细节和原理

二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章 ,揭露一下。供好学的人一同学习之。关于QR Code Specification,可参看这...

2020-05-02 16:43:01 1285

原创 Netbeans6.9.1的模块列表

NetBeans的模块列表Netbeans6.9.1的源代码分析。1. ant.browsertaskWeb Browser Ant Task任务, 添加Ant任务<nbbrowser>, 目的是打开浏览器。定义一个Ant任务,<nbbrowser>,目的是打开一个URL,有用的运行一些测试和显示html结果。2. ant.debuggerAnt调试...

2020-05-02 16:29:46 1746

原创 NetBeans的JPDA调试功能

要使用一个JPDA调试功能:D:\JEBProject\release>java -jar -Xrunjdwp:transport=dt_socket,server=y,address=8700 jebv7.jarListening for transport dt_socket at address: 8700JEB v1.5.201403100 (full) is ...

2020-05-02 16:24:55 526

原创 ObjectwebASM研究-CodeGenerator

ASM就是一个Generator产生器。http://budairenqin.iteye.com/blog/1771141 Java字节码框架asm快速入门一般情况下,Class文件是通过javac编译器产生的,然后通过类加载器加载到虚拟机内,再通过执行引擎去执行。现在我们可以通过ASM的API直接生成符合Java虚拟机规范的Class字节流,这样,ASM做的事情一定程度...

2020-05-02 16:02:25 1059

原创 Android的一些开源库

android6.0动态权限https://github.com/SpikeKing/wcl-permission-demoPorting Android DownloadProvider:https://github.com/yxl/DownloadProviderThis project ports the DownloadProvider of Android 2.3.7. I...

2020-05-01 16:04:01 192

原创 RxJava初探

RxJava 是来自于Netflix的Reactive Extension的java版实现。Reactive Extenstion所要解决的一个问题是对多个异步任务的组合,依赖所带来的编码复杂性的问题,我们先从一个例子看起:异步任务的依赖假设我们的程序需要从五个micro-service获取数据,这些micro-services之间存在依赖关系,我们来看一下第一版实现:note: ...

2020-05-01 15:57:47 217

原创 RxJava的基础教程

创建一个Observable对象很简单,直接调用Observable.create即可.Observable<String> myObservable = Observable.create( new Observable.OnSubscribe<String>() { public void call(Subscriber<? super...

2020-05-01 15:56:19 206

原创 Netflix继续开源,更多猴子进入视野

在众多开发者眼中,Netflix以它的“猴子”闻名于世,在过去的一年里,他们陆续开源了众多基础设施。近期,Netflix又举办了一次活动,宣布了2013年的开源计划,同时对一些已经开源的项目做了简单的介绍。截止2012年底,Netflix已经开源了15个基础设施的代码,涉及AWS上的自动伸缩及控制面板、高性能Java日志框架、Cassandra及ZooKeeper扩展等诸多方面的内容。今年,他...

2020-05-01 15:54:48 321 1

原创 JNA技术

JNA来自https://github.com/java-native-access/jna已经编译好的为https://maven.java.net/content/repositories/releases/net/java/dev/jna/jna/4.2.1/jna-4.2.1.jar我们以jna-4.2.1的版本为例进行研究alphamaskdemo: 一个简单演示Window...

2020-05-01 15:49:08 734

原创 关于JediTerm

JediTerm 提供了一个纯 Java 的终端部件可轻松的嵌入到集成开发环境中。支持 SSH 终端会话和 OS X、Linux 和 Windows 上的 PTY。JetBrains 的一系列 IDE 都使用了这个库来实现终端窗口,包括:PyCharm, IDEA, PhpStorm, WebStorm, AppCode, CLion, 和 Rider。https://github.com...

2020-05-01 12:06:46 1212 3

原创 FileObserver交互图

3、既然iNotify这么牛x,它是怎么实现起来的?inotify 实例对应一个 inotify_device 结构struct inotify_device { wait_queue_head_t wq; /* wait queue for i/o */ struct idr idr;...

2020-05-01 11:36:18 194

原创 iNotify机制

iNotify 是Linux 2.6 内核中的文件系统变化通知机制,Android 1.6版本便已基于Linux 2.6.29内核,自带集成了这个强大的功能。既可以监视文件,也可以监视目录 不需要对被监视的目标打开文件描述符,资源占用少 可以监视的文件系统事件包括: Event 描述 IN_ACCESS 即文件被访问...

2020-05-01 11:30:14 510

原创 Proguard的Optimizations

Proguard的Optimization可以通过开关-dontoptimize来进行设置。通过-optimizations可以设置详细的优化规则。!表示exclude。"code/simplification/variable,code/simplification/arithmetic"仅仅做SimplificationVariable和Simplificat...

2020-05-01 10:55:37 1389

原创 Proguard的增量混淆和applymapping

Proguard怎么实现增量混淆,我们查看proguard的选项:-applymappingfilenameSpecifies to reuse the given name mapping that was printed out in a previous obfuscation run of ProGuard. Classes and class members that are ...

2020-05-01 10:51:29 1970

原创 肿瘤TMB的计算原理及数学模型

作者按:继上周发表了“关于Omisc Core WES计算TMB的一点见解”(基因谷也同时转发了,在此表示感谢!),很多同行来联系并进行了深入交流。本人从事生物信息多年,最近花了近三年的时间夜以继日开发了一系列肿瘤NGS 检测算法(单计算函数自己就创建了近一百个!),包括超高深度测序数据的UMI分子标签算法。同时把这些算法集成到自主开发的云计算系统中。所有的计算都不需用复杂的命令行,简洁的界面化在...

2019-12-11 17:50:09 6347

乐视TV的js脚本

一种乐事tv的javascript脚本,用来获取其视频源,破解代码

2014-06-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除