自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (1)
  • 收藏
  • 关注

原创 基于@Aspect的Spring AOP实现竟然没有运行:Spring“最直觉”的调试思路

本文通过一个问题“基于@Aspect的Spring AOP实现竟然没有运行”的调试全过程,给出了Spring最基础最“直觉”最“特别”的调试思路:考虑对象是否被框架加载/实例化了?比较了解Spring AOP的同学可以直接看第二部分“2. 调试思路总结”。阅读本文大概需要10min。

2019-04-28 21:31:10 1707

原创 网络连接情况的调试思路:从实践中理解ICMP协议

网络连接问题在后台开发中最常见的问题之一。本文总结了定位网络连接问题的思路及常用工具 ping和traceroute(traceroute是Linux命令,在windows中是tracert),并从ICMP网络协议的角度来解释 ping和traceroute的实现原理。假如学有余力的读者,还可以看看扩展部分,一起来转一下牛角尖:“机器通不通”这个描述到底准不准确?

2019-04-20 18:32:04 100095

原创 NXSDOMAIN(域名无法访问)的问题排查思路:深入理解"在浏览器输入网址到显示页面全过程"(一)

问题描述通过域名访问放在腾讯云服务器上的SpringBoot应用出现异常:腾讯云上的部署情况:腾讯云服务器上同时部署了多个应用(网站),通过nginx监听80端口,将域名的请求转发到相应的端口,再由端口对应的程序处理网络请求。问题解决思路首先看到是DNS没有找到这个域名对应的IP address.Tomcat出错找日志www.iasokg.com访问出错的全过程先找域名是否能够正...

2019-02-25 19:08:51 2745

原创 英文抗生素药物医学知识图谱IASO1.0版发布 线上试用正式启动

近日,由北京大学互联网信息工程研发中心(CIRE)开发的中文医学知识图谱英文抗生素药物医学知识图谱IASO1.0发布,面向公众正式开放试用。IASO是利用自然语言处理与文本挖掘技术,基于大规模医学文本数据,以人机结合的方式研发的英文药物医学知识图谱。IASO知识图谱基于DO,IDO,NCBI,HPO和DrugBank等数据库,以及在线百科,权威医学文献等高质量医学数据资源构建而成的。 涵盖507...

2019-02-18 17:52:59 907 1

原创 23种常见设计模式总结(类图,优缺点,不同设计模式之间的对比)

设计模式的几个重要原则单一职责原则开闭原则依赖倒转原则里氏代换原则合成聚合复用原则:尽量使用组合/聚合代替继承迪米特原则:降低耦合性设计模式 类图 优点 缺点...

2018-12-29 09:30:12 10334 6

原创 从数据结构(树)深入理解数据库的索引

树二叉树性质: 1. 在非空二叉树中,第iii层的结点总数不超过2i−12i−12^{i-1}, i>=1i>=1i>=1; 2. 深度为hhh的二叉树最多有2h−12h−12^{h}-1个结点(h>=1),最少有h个结点; 3. 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;

2018-09-17 12:13:46 820 3

原创 实践出真知:理解Spring Bean生命周期

实例生命周期Spring Aware接口Spring PostProcessor一些建议实例public class MyBean implements BeanNameAware, BeanFactoryAware, ApplicationContextAware, BeanClassLoaderAware, InitializingBean...

2018-09-08 21:16:31 2898 2

转载 深入浅出解析HashMap源码

转载自:https://huanglei.rocks/coding/194.html (该个人博客十分geek) 基于 OpenJDK1.81 综述1.1 内部类和字段1.1.1 Node1.1.2 TreeNode1.1.3 table:Node[]1.1.4 modCount:int1.2 底层数据结构2 插入2.1 流程综述2.2 hash()...

2018-09-05 21:40:25 504 1

原创 傻傻分不清:Spring IoC注入,自动装配与循环依赖

什么是IoCIoC注入方式优缺点比较循环依赖解决办法1.改用setter注入方式(推荐)2. @Lazy注解3. 使用ApplicationContextAware, InitializingBean什么是IoC在创建新的Bean时,IoC容器会自动注入新Bean的所依赖的其他Bean,而无须自己手动创建。 IoC注入方式构造器注入 ...

2018-09-04 19:47:42 7190 2

原创 SpringBoot 2.0 学习计划

SpringBoot 2.0 学习计划学习计划相关链接: https://github.com/YuanKQ/SpringBootTutorial , 学习计划的每一步都有对应的commit. 在查找配置文件相关文档时,务必要保证SpringBoot的版本号要匹配, // 重要版本信息Spring Boot 2.0.3fastJson 1.2.17redis 4.0 ...

2018-07-01 20:34:29 1441

原创 Java线程池实现原理与源码解析(jdk1.8)

为什么需要线程池? 线程池能够对线程进行统一分配,调优和监控: - 降低资源消耗(线程无限制地创建,然后使用完毕后销毁) - 提高响应速度(无须创建线程) - 提高线程的可管理性Java是如何实现和管理线程池的? 从JDK 5开始,把工作单元与执行机制分离开来,工作单元包括Runnable和Callable,而执行机制有Executor框架提供。 newScheduled...

2018-04-03 10:09:49 33026 20

原创 JVM方法调用与方法区

0. 方法区0.1 内容加载的时间节点0.1.1 类信息0.1.2 静态变量0.1.3 常量0.1.4 代码0.1.5 虚方法表0.2 方法区会发生OOM吗?1. 解析调用2. 分派调用2.1 静态分派2.2 动态分派2.3 单分派与多分派Reference0. 方法区0.1 内容加载的时间节点0.1.1 类信息=...

2018-03-30 22:23:19 941

原创 ConcurrentHashMap源码解析(jdk1.8)

ConcurrentHashMap 基于JDK1.8ConcurrentHashMap1. 原理解析1.1. 重要成员变量1.2. 实例初始化1.3. put操作1.3.1 put过程描述1.3.2 hash算法1.3.3 定位索引1.3.4 获取table对应的索引元素f1.4. table 扩容1.4.1 addCount1.4.2 treeify...

2018-03-27 16:30:07 39681 21

原创 ThreadLocal知识点解析

1. 作用(具体作用)为每个线程都维护一个* 线程局部变量* ;(目的)每个线程都可以修改自己内部的变量本,而不影响其他线程的变量。(重要区分:optional)属于线程安全范畴,但是不是为了解决线程同步问题:多个线程对同一个资源的并发访问。2. 每个线程的局部变量是存储在哪里的? 类似问题: ThreadLocal是如何每个线程维护局部变量的?==每...

2018-03-03 19:05:58 395

原创 Thread.join()的真正含义

首先, Thread.join() 并没有将线程合并起来~ 任何疑惑都先从Java Doc开始, stackoverflow上有个极好的例子: 1. After the main thread creates and starts the t1 and t2 threads. There are 3 threads running in parallel: main, t1, t2

2017-12-29 18:53:13 15828 6

原创 ReentrantReadWriteLock 读写锁获取与释放源码解析

ReentrantReadWriteLock 读写锁构造函数与ReentrantLock相类似, 其自定义同步器Sync分为公平锁FairSync与非公平锁NonfairSync的两种.默认为NonfairSyncpublic ReentrantReadWriteLock() { this(false); }public ReentrantReadWriteLock(bool

2017-12-27 11:53:05 1150

原创 ReentrantLock加锁与解锁源码解析

ReentrantLock公平锁与非公平锁的lock()和unlock()过程解析.ReentrantLock.lock() public void lock() { this.sync.lock(); }sync.lock()取决于ReentrantLock获取锁的机制: 公平性FairSync or 非公平性UnfairSync(Default)非公平性(实现重进入的过程

2017-12-26 19:55:33 605

原创 首次将本地代码上传至github

这个问题我遇到好几次了, 每次解决的方式都不一样, 有时解决地十分丑陋, 所有今天必须给自己规范化一下解决流程.前提github账号 本地也已经安装了git场景本地尚且没有代码本地已经有代码了, github上也没有代码, 尚未将代码上传至github本地已有代码, github上也有代码, 两者没有冲突, 需要将本地代码上传至github上本地已有代码, github上也有代码, 两者也

2017-09-17 17:19:08 9360 2

原创 Python中使用多个分隔符分隔字符串re.split

正则表达式基础,看这篇就够了摘要split多个分隔符 单一分隔符,使用str.split()即可 多个分隔符,复杂的分隔情况,使用re.split单一分隔符,str.split()与 re.split()效果是一样的 多个单一 分隔符 时 ,”[]”与 “|”的 效果是一样的,但是 请注意 使用 “|”时某些字符 需要转义 多个 长短 不一 的的分隔符的分隔符时, 就应

2017-08-19 11:57:02 46388

原创 Get pixel width of d3.js SVG element created with width as percentage

问题描述借助d3.js画了一个力引导图(Force-Directed Graph) 官方示例 但是官方示例中将SVG元素的width和height都是设定为像素, 也就是是该SVG不能自适应了.那么为了使SVG能够自适应, 自然而然将svg元素的width和height设置为百分比.<svg width="100%" height="100%"></svg>依然是官方示例, 力引导图却没有出现在网

2017-07-07 20:10:46 1902

原创 SpringMVC 将复杂对象以json格式返回前端

环境SpringMVC 4.3.5 Jackson 2.6.5复杂对象描述涵盖列表, 而列表里面的每一个也都是对象 返回json数据如下:{ "nodes": [ {"id": "Myriel", "group": 1}, {"id": "Napoleon", "group": 1}, {"id": "Mlle.Baptistine", "group": 1},

2017-07-04 20:35:09 5017

原创 FreeMarker模板继承

动机freemarker默认是没有模板继承功能的,为其添加新指令@extends,@block,@override,@super,这些指令属于rapid-framework的扩展。问题但是,都说加上rapid-framework的jar包,然后修改配置文件就够了, 但是你会发现出现一下问题: 12-May-2017 16:43:11.123 SEVERE [http-nio-8081-exec-

2017-05-12 17:25:28 1423

原创 FreeMarker中文乱码

共有三处地方需要注意:FreeMarkerConfigurer<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="/WEB-INF/view

2017-05-09 11:40:57 5748

原创 springMVC与freemarker整合

主要遇到以下两个问题:freemarker.template.TemplateHashModelExException in thread "main" java.lang.NoClassDefFoundError: freemarker/template/TemplateHashModelEx . . .Caused by: java.lang.ClassNotFound

2017-05-08 20:22:03 5190 1

原创 neo4j 3.0多数库切换

动机类似与关系型数据库,创建了多个数据库想要像访问关系型数据库那样来可以无缝切换多个数据库然而,在neo4j 3.0都暂时没有办法做到:每次启动neo4j,它只能读取一个数据库。 比如,现在有两个数据库graph.db,graph2.db。假设neo4j默认的数据库为graph.db,启动neo4j,这时候想要访问graph2.db,必须修改neo4j的配置文件,将数据库改为graph2.d

2017-04-07 17:29:37 9900 3

原创 远程访问neo4j

动机采用REST来远程访问neo4j的数据库 同时在本地浏览器查看数据是否添加正确(neo4j的可视化界面x.x.x.x:7474/browser)即,通过HTTP协议来与neo4j进行交互环境配置Linux 版本$ lsb_release -aLSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch

2017-04-06 20:59:28 26545 3

原创 MySQL备忘之表联结(JOIN)

个人觉得写得极好的一篇博客: http://www.cnblogs.com/BeginMan/p/3754322.html本来就是一个左右不分的迷糊虫,刚开始学习表联结时,出现了left join,right join,inner join,balala…… @^@已经懵圈了,知道遇到这幅图,整个世界都清明了。但是,mysql不支持Full join,不过可以通过UNION 关键字来合并 LEFT

2017-03-23 21:43:31 504

原创 IntelliJ编译时,致命错误:在路径和启动路径中找不到包java.lang

基础知识主要是发现自己的Java没有安装成功:……\Java\jdk1.8.0_121\lib里面没有tools.jar,dt.jar而假如正确安装的话,dt.jar和tools.jar位于:{Java_Home}/lib/下,而rt.jar位于:{Java_Home}/jre/lib/下, {Java_Home}对应的本文的是……\Java\jdk1.8.0_121rt.jar是JAVA基础类库

2017-03-06 23:08:09 9122

原创 MySQL备忘之数据更新篇(INSERT, UPDATE, DELETE)

INSERT插入完整行与NULLnot null字段必须插入值auto_increment字段可以不填入,即使填入NULL值也是不必要的,由DBMS自动计算并填充。如果表的定义允许,则可以在INSERT操作中省略某 些列。省略的列必须满足以下某个条件。 该列定义为允许NULL值(无值或空值)。 在表定义中给出默认值。这表示如果不给出值,将使用默 认值。 如果对表中不允许NULL值且没有默

2017-03-06 12:09:00 697

原创 MySQL备忘之查询篇

最好的教材当然是官方文档: https://dev.mysql.com/doc/refman/5.7/en/ 作为一枚回回英语考试都垫底的英文盲觉得文档写得还是很通俗易懂,只要你够耐心。distinctDISTINCT关键字应用于所有列而不仅仅是它的前置列。SELECT DISTINCT vend_id,prod_price from product.products# 返回vend_id,

2017-03-05 14:11:08 510

原创 Import Java Projects from other IDE into IntelliJ IDEA

需求将一个在Mac OSX NetBeans的Java Application Project导入到win10 IntelliJ IDEA,进行二次开发。问题IntelliJ IDEA无法识别出整个工程,如下图 强行运行,需要Edit Configuration,发现无法发现main class: 原因IntelliJ无法识别出整个工程,甚至无法识别出Java文件,那么,就是定位问题。分析检

2017-03-01 21:41:29 1105

原创 系统级虚拟机

本文仅是基于“了解基本概念”层面,所以会写的比较简单,想深入了解的同学可以读一下两篇很经典的paper:Disco: running commodity operating systems on scalable multiprocessors和Virtual Machine Monitors 肘子直接吃了其他人站在巨人肩膀上摘下的苹果了。JVM是程序级虚拟机,在这里就不赘述。基本概念虚拟机(Vi

2017-02-08 17:08:52 887

原创 数的表示与运算

计算机基础知识总结第一篇,先从最害怕的计算机组成原理开始。 为了防止写过就忘(其实还是会忘记T……T)。计算机中数的表示假设该计算机使用八位表示数,其中一位是符号位,其余7位表示数值。机器数与真值机器数:一个数字在机器中的二进制表示形式,带有符号位 真值:带符号位的机器数对应的真正的数值,机器数不一定就等于真值原码形式: 【符号位】【真值的绝对值】eg. +1 = 0 0000001 -

2017-02-05 18:35:41 5000 2

原创 How to Install MongoDB on CentOS7 Gracefully

倒腾MongoDB好几天,强迫症的老人家发现了这些问题:其实安装MongoDB不难,但是有没有发现启动起来很麻烦?关闭看进程号,再kill掉T…T有没有更加gracefully使用MongoDB?能不能让它随着服务器启动而启动?或者是我想让它启动再启动?安装环境还是那句老话,不讲环境的安装教程都是耍流氓~ 安装MongoDB下载官方安装源官方下载地址 选择自己合适的版本 根据自己是Ce

2016-11-16 22:44:38 604

原创 Linux快速启动应用程序

刚从windows转linux系统,一般都需要通过图形界面过渡一下。随着安装的软件增多,尤其是一些编程用的IDE,比如JB家的软件,每次都要cd xx/xx/xx/bin,然后再运行脚本,所以觉得十分麻烦。所以就想想能不能不要那么麻烦,快速地启动应用程序呢?不会偷懒的程序猿不是好攻城狮。下面是我的解决问题的思路。环境一切不说版本的安装教程都是耍流氓TT 系统:CentOS 7 桌面系统版本

2016-11-07 22:37:15 17959 1

原创 笔记本装SSD,win10

目前搜到的网上教程都是在机械硬盘再加装一个SSD,然后再装win7。而肘子是直接把SSD替换原来的HDD,再重装win10。踩过了无数的坑。。。T^T0.环境国行版的envy14j104tx的m.2接口没(yan)有(ge),所以,肘子只能把笔记本的机械硬盘拆掉,在原来的机械硬盘位置装上固态硬盘。 另外,惠普的电脑有很多驱动和软件(肘子觉得即使到要换笔记本也不会用上一回)所以重装系统win10和驱

2016-08-28 11:56:25 5240

原创 Java 泛型

首先,肘子假设各位读者朋友已经了解了泛型的基本概念了。同样以Head First Java的习题开头(P576练习) 下面哪些语句可以通过编译么?//Dog是Animal的子类//[1]ArrayList<Dog> dogs1 = new ArrayList<Animal>();//[2]ArrayList<Animal> animals1 = new ArrayList<Dog>();

2016-08-04 20:28:49 947

原创 Java静态与同步

Head First Java(第2版)P526程序:/*代码示例一*/public class TestThread { public static void main(String args[]){ ThreadOne t1 = new ThreadOne(); ThreadTwo t2 = new ThreadTwo(); Thread

2016-07-29 17:50:38 597

原创 Java中的异常处理

先看看在Head First Java(第二版)第351页习题:class MyEx extends Exception {}public class ExTestDrive { public static void main(String[] args) { String test = args[0]; try { System.ou

2016-07-20 16:52:12 1411

原创 byte[]与ByteBuffer相互转化

NFD在传送大量数据的时候,比如我要传输大文件,或者各类文件的时候,只能使用Blob,但是当接收方接收数据的时候,Blob只能转为ByteBuffer,如何转化为byte[]呢?在查看API文档的时候,发现有个array()的函数,但是被坑惨了!!!根本读不出来好嘛!!!在stackoverflow上找到问题:If hasArray() reports false then,

2016-04-11 21:41:58 34814

Machine learning: Trends,perspectives, and prospects

M. I. Jordan和T. M. Mitchell在Science上发表了一篇论文Machine learning: Trends,perspectives, and prospects,这篇论文是7月16日发布的,还挺新的,对机器学习的基本概念,发展状况,应用,常见的学习算法做了介绍。对于刚入门来说,构建一个比较基本的机器学习的概念图。 好东西就要拿出来分享,要资源分就不好了

2015-08-26

空空如也

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

TA关注的人

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