- 博客(122)
- 资源 (8)
- 收藏
- 关注
原创 效率提升-idea的leetcode插件应用
安装leetcode插件 遍历功能 右下角为配置入口 配置账号密码 登录 双击可以进行考题 编写第一题,这里使用官方推荐的map法进行解题。可以看到内存占用多,但是执行速度快。 同时也可以查看提交历史(跟git差不多) 可以查看解题方法 open solation 评价 刷题更加便捷了。。。 ...
2020-05-14 11:22:43
1476
原创 java-一道面试题(链式+stream编程)
题目要求:一分钟内完成此题,只能用一行代码实现。 现在有5个用户,筛选: 1、ID必须是偶数 2、年龄必须大于23岁 3、用户名转换为大写 4、用户名字母倒排序 5、只输出一个用户 public class MyTest { User user1 = new User(1, "AB", 24); User user2 = new User(2, "cd", 25); User user3 = new User(3, "ef", 23); List<User> list = Arra.
2020-05-08 21:48:24
579
原创 并发编程-一个简单的例子阐述volatile的保持线程间内存可见性作用(volatile)
实践 代码参考:https://gitee.com/wangtonggui/java_demo.git的keyword-demo 使用volatile,线程可以停止 不使用,线程不可以停止 说明volatile可以进行变量的线程间同步 评价 使用一个例子可以方便的说明问题。 ...
2020-04-29 12:03:15
309
原创 并发编程-复现一个简单的并发场景
实践过程 代码参考:https://gitee.com/wangtonggui/java_demo.git的ParallelProblem 模拟场景:黄牛抢票 把count看做是票 把Thread看做是黄牛 黄牛不断抢票,但是多次尝试之后,出现了两个黄牛抢到一张票的场景 评价 java中如果没有进行任何线程安全同步的情况下,公有资源的访问必然会出现线程安全的问题。 ...
2020-04-28 12:07:03
466
原创 并发编程-简易秒杀实践(分布式锁+redis+springboot+redisson)
背景 分布式锁的核心是把并发操作强行串行化,在面试过程中非常常见,在高并发场景的编程下也非常常见。本wiki将进行简易的编程实践。 注:代码没有在线上工程中实际应用,仅供学习参考 实践过程 搭建环境 使用docker搭建redis环境 sudo docker run --name redis -p 6379:6379 -d redis spring boot实现一个简易的web服务(seckil...
2020-04-27 19:24:38
486
原创 设计模式-java实现静态代理和动态代理
背景 在进行mybatis的学习中,设计到了动态搭理,即仅仅定义接口和mapper,就能获取相应的接口实现类,进行dao的种种操作。 实践过程 参考代码:https://gitee.com/wangtonggui/design_pattern.git 需求:使用代理的方式,实现某接口的时间调用时间纪录。 静态代理 Person实现了eat的接口,我们要通过代理的方式纪录eat的时间 下面是通过继...
2020-04-22 14:38:48
255
原创 并发编程-juc-semaphore信号量实践
背景 在进行限流与熔断的过程中,java信号量起到了很大的作用,本wiki将java的信号量做了最基础的实战。 实践过程 参考代码:https://gitee.com/wangtonggui/java_demo.git 创建信号量,公平模式就是先到先得,抢占式就是看运气 信号量阻塞-1,这个是线程安全的 当信号量的可用许可证为0的时候,acquire就会阻塞 release操作就是+1操作,...
2020-04-20 19:56:49
303
原创 数据库-存储过程的理解与实践
背景 存储过程的概念类似于linux中的sh脚本,即能同时执行多条命令,而且可以传入参数等。 实践 创建过程 create procedure procedure_name() begin select name from t_user; select name from t_user; end; 删除一个过程 drop procedure procedure_name 调用过程 call...
2020-04-20 11:15:28
260
原创 效率提升-idea-按照包下断点
背景 在进行框架代码研究的时候,下断点尝试是常用的手段。本wiki尝试一种按照包来下断点的调试手法。 实践过程 随便创建一个工程,这里以mybatis为例,写了一个mybatis的helloworld级别的代码, 在run里面进入view breakpoints 添加一个断点方案,选择Java Method BreakPoints 输入你想打断点的包org.apache.ibatis.ses...
2020-04-19 20:28:02
328
原创 框架编程-mybatis的helloworld(mybati+maven+xml)
文章目录背景实践过程准备数据创建maven工程添加mybatis的maven依赖添加java代码添加mybatis配置测试代码评价 背景 之前经常在springboot中使用mybatis,封装性太强,不容易窥其全貌,本wiki将根据官方文档自己实现一个demo。 简单来说: mybatis可以完全替代你jdbc 让sql的操作更简单 让结果集的映射更简单 实践过程 源码地址:https://...
2020-04-17 17:14:57
304
原创 编程框架-springboot-@SpringBootApplication的探索
背景 如果研究springboot,那么必然要研究它的自动装配,而自动配置的核心如下: SpringbootApplication注解所带动的一系列配置(这里是静态的,当run后进行扫描的时候,就会全部涉列到,本文重点阐述) run方法(启动过程,将来另外的wiki进行阐述) SpringBootApplication探索过程 总览 细看 Spring boot必须要做的两件事,做完之后就可...
2020-04-16 20:48:39
235
原创 java-jdk中常用类的使用demo(String类)
概述 本文阐述jdk中String类的常用方法。 实践过程 下载示例代码 源码地址:https://gitee.com/wangtonggui/java_demo.git 跑一跑看看 String的new,可以直接传入StringBuffer和StringBuilder 方便的定位字符 判断字符串是否相等 判断字符串的大于小于和等于 剩下的startWith、endWith、indexO...
2020-04-13 21:54:41
384
原创 编程框架-springboot启动流程(springboot+2.2.x)
背景 天天在用spring boot,不了解基础的启动流程是真的说不过去。本wiki将进行启动流程阐述。 启动流程 时序图 DemoApplicationSpringApplicationStopWatchSystemSpringFactBeanUtilsSpringApplicatBinderSpringApplicatiSpringBootExcConfigurableAppAbstractA...
2020-04-13 17:47:28
507
原创 效率提升-idea索引技巧-在某个包中进行查找
背景 用idea看源代码能提高效率,但是扛不住代码量大,重复的内容多。本wiki将总结一个查看代码的小技巧,以备后用。 搜索过程 目标查找SpringBootConfiguration的使用情况 ctrl + shift + f,查找SpringBootConfiguration 点击右侧的三个点(从这里来设定搜索范围) 点击 + -> local,输入名称springframework(...
2020-04-13 11:52:59
1333
1
原创 设计模式-java实战建造者模式(uml+java)
背景 20+种设计模式,实践ing。本wiki将阐述建造者模式(builder模式)。 这个模式的特点是:降低同系列对象的创建难度。 重点参考:https://www.bilibili.com/video/BV1Qx411o7tN?p=27 实践过程 需求分析 拿视频里面的例子来说: 客户端(client)想创建几个电脑对象,给不同的人使用,那么就会出现以下代码: // 电脑类如下 @Data p...
2020-04-12 11:11:32
555
原创 java-mapStruct源码走读
背景 最近在研究mapStruct,为了方便以后能顺手使用,本wiki将简单地走读一下源码。 源码走读 总览 源码下载:https://gitee.com/mirrors/mapstruct.git pom模块概览 parent,只有一个pom文件,用于全局统一加载工具,例如guava、freemarker等 build-config,一些配置的xml集合 core,各种注解和常量的定义与...
2020-04-08 17:10:36
1593
原创 java-自定义代码生成器(spring boot+freemarker)
背景 javaEE 开发的本质是进行数据操作,开发的难点其实是在数据库设计。本wiki将阐述一下数据库设计完毕后,直接生成代码的过程。 生成代码过程 clone自制的代码生成器: git clone https://gitee.com/wangtonggui/code-maker.git 做一下数据库的简单配置: 目标库是:dbpay 生成器会自动生成这个库下所有表的model 直接运行工程,查...
2020-04-08 14:56:13
971
原创 java-apt编程实践(Annotatino Processing Tool+maven)
背景 最近在研究mapStruct,而mapStruct核心技巧就是apt,通过编译期注解+freemarker进行java文件生成,从而省去了很多编码。 本wiki将阐述一个apt的编程实践。 实践过程 创建一个hello工程 工程由两个模块组成: application模块,将使用自定义的编译器注解 apt模块,自定义注解,并且完成AbstractProcessor的继承和实现 根pom如...
2020-04-07 16:01:26
1578
原创 java-spi编程实践(Service Provider Interface+maven)
背景 在研究java注解处理器的过程中,涉及到了spi机制的理解,本wiki将进行一下实践。 spi机制 spi机制的目标:实现接口与实现的解耦。 spi机制在开源项目中的应用: spring中大量使用(ioc的过程会自动选取一个实现) 数据库驱动加载 dubbo等等 在后续的博客中将对不同的框架进行调研并加以说明。 spi简易demo 创建一个maven项目 pom文件如下 <?xm...
2020-04-06 18:15:07
969
原创 效率提升-再次实践pojo的映射简化(mapStruct)
背景 之前写了一个mapStruct的Hello World,本wiki将再用一个实际项目中的例子来进行优化。 实现过程 创建一个spring boot项目 这里创建了一个MyApplicationRunner,方便我们调试bean 复制之前项目中的代码 使用mapStruct进行修改 评价 ...
2020-04-04 15:03:49
429
原创 效率提升-简化java开发中pojo的转换(mapstruct)
背景 在java的web开发中,pojo转换难以避免,mapstruct工具帮我们进行了简化,本wiki将进行实践。 实践过程 简易实践 创建一个hello项目(最简单的maven项目即可)。 pom文件添加依赖 <properties> <mapstruct.version>1.2.0.Final</mapstruct.version>...
2020-04-03 16:40:30
733
原创 工程组件-nginx提供文件下载功能
背景 nginx是开发中的利器,本wiki将阐述如何使用nginx制作一个文件下载服务器。 实战过程 docker默认安装nginx sudo docker run -d --name nginx -p 9008:80 nginx:stable 浏览器访问9008端口 sudo docker exec -it nginx bash cd /etc/nginx # 查看默认配置文件 cat ngi...
2020-04-02 20:25:17
766
原创 工程组件-使用docker安装部署配置Jenkins(docker+Jenkins)
背景 Jenkins在自动化集成中必不可少,本博客将阐述一种简易的安装部署方式。 安装部署过程 docker安装Jenkins最新版 下载最新版本的Jenkins资源包:http://updates.jenkins-ci.org/latest/jenkins.war mkdir -p /home/jenkins_home mkdir -p /home/soft cd /home/soft rz上传...
2020-04-02 14:22:23
311
原创 工程组建-pinpoint的apm部署
文章目录背景部署hbase下载hbase的jar包解压后配置 hbase-site.xml配置hbase-env.sh启动hbase创建hbase表查看启动情况部署pinpoint-web部署tomcat查看启动情况部署pinpoint-collector启动服务的时候同时使用agent进入pinpoint-web观测数据服务运行情况评价 背景 在进行微服务开发过程中,链路追踪功能是必要的。本文将...
2020-04-01 18:28:39
480
原创 效率提升-任务管理(teambition)
背景 在工作和学习中,是不是经常出现忘记任务我的情况呢?本博客将阐述一个简单的任务管理系统工具,teambition。 使用实战 官网地址:https://www.teambition.com 注册登录后如图。 可以直接创建自己的任务,进行纪录,另外可以进行任务的追踪。 teambition的功能不仅如此,还可以进行项目的创建与追踪、同时可以进行团队管理(正如其名)。 评价 此工具进行任务管理还...
2020-03-31 11:02:18
649
原创 效率提升-使用markdown画时序图
背景 markdown现在使用越来越多,好处多多。本博客将阐述如何使用markdown来画时序图。 参考 文档:https://mermaid-js.github.io 友情提示,网络不好的话可能访问不通。 实战 文本审核基础服务odps读取训练数据(文本分词)返回训练数据(文本分词)模型训练预测测试集计算模型指标写入模型写入模型指标数据文本审核基础服务odps 源码 sequenceDiagra...
2020-03-26 21:48:53
1001
原创 java-元组实现
背景 在java工程开发的过程中,经常会遇到需要函数直接返回多个参数的情况,这里阐述一种自定义元组的方法。 代码实战 以下为元组类的定义 public class Tuple { public static <A, B> TwoTuple<A, B> tuple(A a, B b) { return new TwoTuple<>(a, ...
2020-03-25 14:32:23
1441
原创 大数据-一站式内容画像数据处理(pyodps+odps)
背景 公司的pro环境并没有搭建自己存储环境,而是直接使用阿里云的rds,那么数仓的建设也就直接使用了阿里云的dataworks(也就是原odps,也有maxcompute)。 数据存储的限制,需要使用pyodps的sdk才能进行更好的管理、分析、处理(机器学习、深度学习模型训练等)。 本wiki将阐述使用pyodps的优势。 数据流 概念解析: 内容源 爬虫系统,scrapy实现,爬取文章...
2020-03-18 16:54:28
2387
2
原创 python-jupyterhub通过docker方式安装
背景 在python的开发中,经常会用到jupyter notebook,脚本都是写在本机的,这点难以协同开发。本博客将阐述jupyterhub的安装,方便在服务器上写jupyter。 安装过程 参考:https://jupyterhub.readthedocs.io/en/stable/quickstart-docker.html 提前安装docker,步骤略。 使用如下命令进行下载并且启动镜像...
2020-03-13 16:30:21
2163
原创 java-log4j2的配置实战
背景 spring boot项目中用了log4j2,配置的设置只是重复的轮子,博主进行一下记录和分享。 实战 log4j2.xml <?xml version="1.0" encoding="UTF-8"?> <!--设置log4j2的自身log级别为warn --> <configuration status="warn"> <propertie...
2020-02-26 15:02:49
250
原创 效率提升-windows空间优化工具spacesniffer
背景 最近在家里办公,是windows系统,C盘空间快红了,现在优化一下。博主推荐使用spacesniffer工具来辅助。 实践 打开spacesniffer工具,直接进行扫描,可以看到使用空间被非常直观的方式被展示出来了,方便我们去删除。 这里gradle的空间很大,是之前搞android的时候留下的。。。剩下的小伙伴们自己用用体会体会吧。 ...
2020-02-23 22:57:16
1084
原创 操作系统-linux-centos7安装google的bbr加速
背景 同事推荐ecs上安装google的bbr加速,可以提升网络吞吐。本文将进行记录。 实战 安装和重启 wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh 安装完成后会提示重启。 重启 ech...
2020-02-14 16:42:41
729
原创 框架编程-spring-redisTemplate访问多数据源实现
背景 在使用spring boot 2.x做项目的时候,需要访问多个数据库db,本博客讲进行实战展示 实战 思路:每一个redisTemplate实例只能访问一个对应的db,所以我们需要做多个redisTemplate实例,并且每个实例必须有自己对应的连接工厂。 package com.ztjy.contentrank.common; import com.alibaba.fastjson.pa...
2020-02-14 09:24:31
461
原创 数据库-解决Lock wait timeout exceeded; try restarting transaction
背景 有一次在操作alpha环境的表过程中,因为网络问题,导致锁表,有以下提示: Lock wait timeout exceeded; try restarting transaction 解决过程 问题如下: 查看锁住的thread: SELECT * FROM information_schema.innodb_trx \G 杀掉对应的thread: kill 17901; 问题解决: ...
2020-02-13 11:45:40
1332
1
原创 数据挖掘-pandas-读取mysql
背景 pandas经常用来读取不同数据源的数据进行分析,本博客实战读取mysql的结构化数据。 实战 依赖模块: import pandas as pd from sqlalchemy import create_engine engine = create_engine('mysql+pymysql://szy:yP0tfUTHvP5q@alpha-mysql.szy.com:3306/dbar...
2020-02-13 10:18:01
311
原创 python-疑难杂症-zadd报错
错误复现 正常使用zadd报错 r = redis.StrictRedis(host=xxxxx) d = dict() d['1231'] = 123 r.zadd(d) redisError: ZADD requires an equal number of values and scores python版本:3.6.1 错误定位 在另外一个环境3.6.5,运行代码,正常。 说明是版本问题...
2020-02-10 11:55:03
2134
原创 python-在python中实现java的hashCode函数
背景 今天有个需求,需要用python实现java的hashCode分表。 本博客将把这个操作记录下来,以免以后重复造轮子。 实现 def hash_code(s): h = 0 if len(s) > 0: for item in s: h = 31 * h + ord(item) return h ...
2020-01-29 20:23:42
3053
原创 开源项目-基础环境部署
背景 众多的开源项目都是基于mysql存储,redis缓存,spring boot开发的。 本博客主要是把基础环境的部署进行文档记录。 环境部署 服务器,阿里云 系统环境, linux centos 部署方法,docker 添加基础用户 adduser wang # 添加密码 passwd wang # 添加sudo权限 vi /etc/sudoers # 在100行后添加(原则是:模仿ro...
2020-01-26 10:27:34
558
原创 机器学习-java调用机器学习pai的LR模型
背景 最近在使用阿里的机器学习pai进行模型训练,训练出来的模型需要给java进行调用来使用。本博客阐述java调用pmml进行预测的过程。 实战 获取pmml模型 在机器学习pai->模板实验->心脏病预测,可以直接训练并且导出模型,具体步骤参考:https://help.aliyun.com/document_detail/34929.html?spm=a2c4g.11186623...
2020-01-14 16:56:38
1024
10w文章标题数据(仅供学习使用)
2020-02-18
cifar-10-python.tar.gz的下载资源
2019-09-05
VOCtrainval_11-May-2012.tar训练测试数据下载
2019-08-23
SpaceSniffer.zip
2020-02-23
资料and停用词典.zip
2020-01-02
lr_demo.pmml
2020-01-14
VGG_ILSVRC_16_layers_fc_reduced.caffemodel.txt
2019-08-23
TCP-IP详解.卷三:TCP事务协议,HTTP,NNTP和UNIX域协议
2012-07-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅