
Java
文章平均质量分 65
运动人生
本人很懒,什么都没留下!
展开
-
1、spring5.2.x源码解读之下载源码和编译
spring5.2.x源码解读之下载源码和编译原创 2024-07-07 10:30:22 · 554 阅读 · 0 评论 -
webmagic爬取网页
webmagic爬取网页1、对webmagic框架的认识webmagic框架是java开源的爬虫框架,封装了读取网页内容和操作html相关标签的方法,使用起来简单,上手很快。2、webmagic的使用2.1、pom文件配置<dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-core</artifactId> <version>原创 2022-05-09 22:06:44 · 1498 阅读 · 0 评论 -
Netty学习要点
Netty学习要点1、UNIX的5种I/O模型2、epoll与select的对比3、私有协议栈可靠性设计4、ByteBuf和ByteBuffer对比6、Netty的线程模型7、Netty的高性能,可靠性,可定制性,可扩展性的分析8、多线程编程在Netty中的应用9、Netty的高性能分析10、Netty高可靠性设计UNIX的5种I/O模型: Linux...原创 2020-01-03 21:41:31 · 381 阅读 · 0 评论 -
spring boot手动提交事务
spring boot手动提交事务import org.springframework.jdbc.datasource.DataSourceTransactionManager;import org.springframework.transaction.TransactionDefinition;import org.springframework.transaction.Transact...原创 2019-11-16 16:16:33 · 4710 阅读 · 1 评论 -
spring boot的线程池配置
spring boot的线程池配置/** * 线程池配置 * */@EnableAsync @Configurationpublic class AsyncConfig implements AsyncConfigurer { //初始化@Async需要的线程池 @Override public Executor getAsyncExecutor() { ...原创 2019-11-16 16:08:48 · 327 阅读 · 0 评论 -
spring boot的接口参数校验
spring boot的接口参数校验@Api(tags= {"校验案例接口"})@RestController@RequestMapping("/validate")@Validatedpublic class ValidateDemoController { @Autowired private IValidateDemoService validateDemoService;...原创 2019-11-16 15:41:36 · 612 阅读 · 0 评论 -
spring boot返回统一处理
springboot返回统一处理/** * 统一的返回信息处理 */@SuppressWarnings({ "rawtypes" })@RestControllerAdvice("com.wuxin")public class MyResponseBodyAdvice implements ResponseBodyAdvice<Object> { /** * 不需要...原创 2019-11-16 15:17:51 · 213 阅读 · 0 评论 -
spring boot 的异常统一处理
spring boot 的异常统一处理/** * 全局的异常处理 * */@RestControllerAdvicepublic class GlobalExceptionHandler { private static Logger logger= LoggerFactory.getLogger(GlobalExceptionHandler.class); /**...原创 2019-11-16 15:10:56 · 171 阅读 · 0 评论 -
小程序后端token生成机制
小程序后端token生成机制以及与前端交互处理一、token的生成/*** 校验和创建token * @param userId * @param sign * @param timestamp * @return */public TokenRespVO checkoutAndCreateToken(String token,String userId, ...原创 2019-11-16 15:06:09 · 2848 阅读 · 0 评论 -
idea重构
idea重构Refactor 重构Signarture 签名Extract 提取Field 属性Constant 常量Method 方法Parameter 参数Surround 环绕重命名文件、方法、属性等(Rename):Shift+F6,同时被修改处在其他被调用的地方也会随之更改,修改文件名,如类名,右键当前类文件 -> Refactor -> Rename,便会...转载 2019-03-19 06:02:22 · 914 阅读 · 0 评论 -
git操作
git操作一、添加项目:第一步:项目的外层目录下执行命令 git init第二步:在项目的目录下执行命令 git add ./nodejs-study/第三步:在项目的目录下执行命令 git commit -m 'first commit'第四步:执行命令 git remote add origin https://github.com/wuxin402/nodejs.git第五步:获...原创 2019-02-26 15:14:56 · 141 阅读 · 0 评论 -
自动生成java代码
自动生成java代码一、引入依赖 &lt;dependency&gt; &lt;groupId&gt;com.baomidou&lt;/groupId&gt; &lt;artifactId&gt;mybatis-plus-boot-starter&lt;/artifactId&g原创 2018-12-24 16:19:20 · 396 阅读 · 0 评论 -
fiddler使用
fiddler使用一、Content-type为application/x-www-form-urlencoded#请求头 User-Agent: Fiddler Host: localhost:8080 Content-Length: 153 Content-type: application/x-www-form-urlencoded#post请求传参方式title=测...原创 2018-12-28 15:47:14 · 224 阅读 · 0 评论 -
阿里云私服配置
阿里云私服配置 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirror原创 2018-12-09 22:06:27 · 961 阅读 · 0 评论 -
java8操作日期的工具类
java8操作日期的工具类一、方法概览 该包的API提供了大量相关的方法,这些方法一般有一致的方法前缀: of:静态工厂方法。 parse:静态工厂方法,关注于解析。 get:获取某些东西的值。 is:检查某些东西的是否是true。 with:不可变的setter等价物。 plus:加一些量到某个对象。 minus:从某个对象减去一些量。 to:转换到另一个类型...原创 2018-12-20 10:47:54 · 1088 阅读 · 0 评论 -
Mysql索引失效的原因
Mysql索引失效的原因1、最佳左前缀原则——如果索引了多列,要遵守最左前缀原则。指的是查询要从索引的最左前列开始并且不跳过索引中的列。2、不在索引列上做任何操作(计算,函数,(自动或者手动)类型装换),会导致索引失效而导致全表扫描。3、存储引擎不能使用索引中范围条件右边的列,范围之后索引失效。(< ,> between and)。这写条件判断最后放到后面,先定位到小的范围再开始...转载 2018-11-25 20:22:26 · 1898 阅读 · 0 评论 -
Java面试时常用设计模式的用途
Java面试时常用设计模式的用途一、Adapter模式 在软件版本升级的时候,以前版本的软件已经通过测试了,为了兼容老的版本,这时用Adapter模式,可以轻松地同时维护新版本和老版本。实现方式:让新版本扮演Adaptee(被适配)角色,旧版本扮演Target角色,接着编写一个扮演,Adapter角色的类,让它使用新版本的类来实现旧版本的类中的方法。二、Builder模式 Buil...原创 2018-11-20 11:25:04 · 825 阅读 · 0 评论 -
谈谈进程与线程
谈谈进程与线程一、进程 1、什么是进程? 进程 = 程序 + 执行,当把一个程序从磁盘中加载到内存,cpu去运算和处理这个进程(运行起来的程序就是进程)。 2、从多个维度分析进程? 从内存维度分析进程:每个进程都独占一块地址空间,cpu处理进程实际上就是处理这个进程内存的首地址到尾地址的数据库信息。 从执行的逻辑维度分析进程:每个进程都可以被CPU所处理和计算,此外,每一个进...原创 2018-11-01 21:30:03 · 253 阅读 · 0 评论 -
线程池
线程池一、ExecutorService接口 常用的实现类:ThreadPoolExecutor,参数: corePoolSize - 核心线程数,池中所保存的线程数,包括空闲线程。 maximumPoolSize - 池中允许的最大线程数=核心线程数+临时线程数。 keepAliveTime - 临时线程等待新任务的最长时间。 unit - keepAliveTime 参数...原创 2018-11-03 16:08:54 · 357 阅读 · 0 评论 -
谈谈Java并发包
谈谈Java并发包一、阻塞队列BlockingQueue 阻塞队列中未满时: add(…):成功添加,没有抛出异常,并返回true。 put(…):成功添加,未产生阻塞。 offer(…):成功添加,返回特定值true。 阻塞队列中已满时: add():抛出Queue full异常。 put():产生阻塞。 offer():添加失败,返回特定值f...原创 2018-11-03 11:05:16 · 350 阅读 · 0 评论 -
谈谈数据结构
谈谈数据结构1、静态数组Array Array类 - 线性结构,支持随机访问,通过已知的index获取对应的元素,在内存中是连续分布的,需在第一次创建时指定长度。优点:访问快。缺点:无法自动实现容量伸缩问题。System.arraycopy()方法实现数组间指定位置和数量的复制。Array.copyOf()支持全量复制,底层实现就是System.arraycopy(),复制的是对象所引用的地...原创 2018-10-29 21:03:39 · 313 阅读 · 0 评论 -
谈谈锁的理解
谈谈锁的理解1、对象头Mark Mark Word,对象头的标记,32位 描述对象的hash、锁信息、垃圾回收标记、年龄 - 指向锁记录的指针 - 指向monitor的指针 - GC标记 - 偏向锁线程ID2、偏向锁 大部分情况是么有竞争的,所以可以通过偏向来提高性能,所谓的偏向,就是偏心,即锁会偏向于当前已经占有锁的线程。将对象头Mark的标记设置为偏向,并将线程...原创 2018-09-23 23:03:52 · 328 阅读 · 0 评论 -
Java方向学习视频整理
有兴趣的朋友去链接里找自己需要的视频资料:https://github.com/wuxin402/video原创 2018-08-30 15:04:01 · 186 阅读 · 0 评论 -
idea、svn、eclipse 代码更新碰到的问题
idea、svn、eclipse 代码更新碰到的问题eclipse更新idea上传到svn上的代码,没有依赖也没有jdk,此时需要右击项目->Configure->Convert to Maven Project原创 2018-08-27 14:23:33 · 758 阅读 · 0 评论 -
谈谈NIO与BIO
谈谈NIO与BIO一、BIO 面向流的:InputSream(),OuputSream字节输入输出流。Reader,Writer字符输入输出流。 特点:流是有方向性的、连续不断的。 局限性:不能灵活的操作流里的数据。 比如Socket,它的底层用的BIO机制,accept(),connect(),write(),read()调用时会产生阻塞。阻塞模型的局限性:不可能应对高并发、搞...原创 2018-11-02 10:11:24 · 900 阅读 · 0 评论 -
谈谈对JVM的理解(三)
谈谈对JVM的理解(三)1、GC的算法和种类 引用计数法:对于一个对象A,任何一个对象引用A,则A的引用计数器就加1,当引用失效时,引用计数器减一,当引用计数器为0时,就会被GC回收。 缺点:引用和去引用伴随加法和加法,影响性能,而且很难处理循环引用 2、标记-清除 是现代垃圾回收算法的思想基础。将垃圾回收分为标记阶段和回收阶段,标记阶段,首先通过根节点,标记所有从根节点开...原创 2018-09-19 22:11:05 · 557 阅读 · 0 评论 -
接口设计需要注意的地方
接口设计需要注意的地方一、接口版本化 生产环境中,如果没有版本控制的程序变更会导致调用接口的相关方频繁的跟着变更,假设相关方没有及时的跟着变更,那么系统就会报错,从而影响到用户的使用及体验,使其对整个系统的运营都是不利的,接口对接的难度也会不断的加大。 如果接口能够有版本的控制,则升级系统的主动权就掌握在相关方,这样当有新版本的程序发布时旧版本的业务逻辑不会受到影响,从用户感知上也受到的...转载 2018-11-23 21:44:11 · 2163 阅读 · 0 评论 -
MySQL的四种事务隔离级别
MySQL的四种事务隔离级别一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一致性(Consistency):事务开始前和结束后,数据库的完整...转载 2018-11-23 20:49:54 · 142 阅读 · 0 评论 -
java的位运算以及二进制和十六进制
java的位运算以及二进制和十六进制一、二进制 计算机内部表示数的字节长度是固定的,比如8位,16位,32位。所以在高位补齐,java中字节码是8位的,最高位是符号位,1个字节是八个二进制。此时从个位开始计算2的幂(个位是0,依次往后推)乘以对应位数上的数,然后得到的值想加。0000 0101表示的是(2的0次幂)*1+(2的1次幂)*0+(2的2次幂)*1 =5。二、十六进制 十六进...原创 2018-11-08 11:35:37 · 2566 阅读 · 0 评论 -
redis常用面试题总结
redis常用面试问题总结一、雪崩问题 在海量数据时,现在电商系统已经对缓存的依赖性非常高。有一种情况。当海量的请求过来时,缓存宕机,海量的请求继续涌向数据库,数据库服务器宕机。将数据库服务器重启,重启后,刚起来,海量的请求又来了数据库服务器都无法启动。这种情况称为雪崩。 解决办法:必须使用分布式缓存。集群,可以通过多台的服务器分担缓存。这时如果一台服务器宕机,这时少量的请求涌向数据库,...原创 2018-11-10 18:37:49 · 1762 阅读 · 0 评论 -
Hash一致性算法
Hash一致性算法一、Hash一致性算法 通过hash一致性算法,将对应的key哈希到一个具有2^32 次方个桶的空间中,即0~(2^32)-1的数字空间中。现在我们可以将这些数字头尾相连,想象成一个闭合的环形。固定的key就会落在固定服务器上。 在采用一致性哈希算法的分布式集群中将新的机器加入,其原理是通过使用与对象存储一样的Hash算法将机器也映射到环中(一般情况下对机器的hash计...原创 2018-11-10 15:21:43 · 548 阅读 · 0 评论 -
谈谈对JVM的理解(一)
谈谈对JVM的理解(一)1、Java虚拟机与程序的生命周期 (1):程序正常执行完,进程结束 (2):System.exit()方法来终止程序执行,传入参数为0,代表正常退出 (3):程序出现异常或者错误导致虚拟机进程退出 (4):操作系统出现错误导致虚拟机进程退出 2、类的加载、连接以及初始化 (1)...原创 2018-09-02 22:23:57 · 1591 阅读 · 0 评论 -
谈谈对JVM的理解(二)
1、JVM启动流程 Java XXX,执行java命令后 装置配置,根据当前路径和系统版本寻找jvm.cfg文件 根据配置文件寻找JVM.dll,JVM.dll为JVM主要实现 初始化JVM,获得相关native接口,其中JNIEnv接口,该接口为JVM接口,findClass等操作通过它实现 找到main方法并运行 2、堆,栈,方法区 堆:主要保存成员变量,...原创 2018-09-16 10:36:15 · 528 阅读 · 0 评论