Java
文章平均质量分 87
写代码的克总
道阻且长,行则将至
展开
-
开源任务调度框架
本文主要介绍一下任务调度框架Flowjob的整体结构,以及整体的心路历程。原创 2023-10-11 13:04:16 · 951 阅读 · 2 评论 -
Lambda的使用和序列化
最近想给orm工具包增加Lambda支持,实现`User:getId`映射到表`id`字段,碰到了问题,进行总结。原创 2022-03-14 12:51:53 · 1181 阅读 · 0 评论 -
Java类加载机制
一文搞懂java中类加载相关的知识内容,包含类加载过程、双亲委派机制、ClassLoader源码解析等原创 2021-04-14 18:58:54 · 416 阅读 · 1 评论 -
源码解析JDK动态代理原理
通过解析JDK动态原理的Class文件,借助源码,理解JDK动态代理的实现过程。原创 2019-09-25 21:47:11 · 485 阅读 · 0 评论 -
JUC并发编程---ReentrantLock源码分析
ReentrantLock重入锁是java中比较常用的锁,其中包含了公平/非公平的概念,通过本文可以了解其中的实现原理。原创 2019-09-09 17:07:03 · 3079 阅读 · 0 评论 -
一文搞定ThreadLocal、InheritableThreadLocal和ThreadLocalMap
ThreadLocal可以在指定的线程中存储数据,并只有在指定的线程中可以获取到存储的数据。平时我们有使用,现在就看看如何实现的。原创 2019-09-08 23:11:06 · 2951 阅读 · 0 评论 -
JUC并发编程---ThreadPoolExecutor线程池的状态、机制与原理源码解读
结合源码解读关键变量,线程池状态变更,任务提交及执行流程。原创 2019-09-06 12:50:15 · 3140 阅读 · 0 评论 -
图解HashMap源码
1. 基础变量这些变量可能会在源码阅读中反复出现capacity: 桶的数量 也就是table长度threshold:默认16 capacity*loadFactor 当size大于threshold的时候会进行resizeloadFactor:加载因子 默认 0.75 减少hash冲突modCount:数据修改次数 Iterator初始化的时候(HashIterator构造函数)e...原创 2019-09-04 10:19:59 · 2981 阅读 · 2 评论 -
JUC并发编程---简单聊聊LockSupport与Unsafe
LockSupport主要提供了一些park和unpark公有的静态方法,用来阻塞和唤醒线程。方法介绍park()阻塞当前线程,如果掉用unpark(Thread)方法或被中断,才能从park()返回park(Object blocker)阻塞当前线程,等待blocker释放parkNanos(long nanos)阻塞当前线程,nanos是超时时间p...原创 2019-10-30 13:58:31 · 327 阅读 · 0 评论 -
ThreadLocal内存泄漏问题和解决方法
ThreadLocal内存泄漏问题和解决方法原创 2020-09-15 11:19:13 · 520 阅读 · 0 评论 -
JUC并发编程---异步处理神器Future
ExecutorService executorService = Executors.newSingleThreadExecutor();Future<String> future = executorService.submit(() -> { Thread.sleep(1000L); return "success";});new Thread(() -> { try { System.out.println(future.get(原创 2020-08-21 10:15:10 · 389 阅读 · 0 评论 -
前后端分离跨域问题
解答csrf攻击以及什么是跨域。通过java过滤器(cors)和nginx实现跨域方式。原创 2017-05-15 15:59:39 · 2314 阅读 · 0 评论 -
Tomcat独立应用部署
一个tomcat部署一个应用,我自己体会到的好处是在html中一些静态文件获取的时候不需要考虑相对路径或者绝对路径都以/开头就行。1.在eclipse中的配置如果是想在eclipse中配置独立应用,打开navigator视图中项目相对的.setting文件夹下的 org.eclipse.wst.common.component配置文件<?xml version="1.0" encoding="UT原创 2016-03-25 14:40:22 · 1830 阅读 · 0 评论 -
Logback.xml文件配置详解
日志是每个项目都不可缺少的,对于后期的调试和一些性能优化上有很大的帮助。最近,由于需求需要将 不同级别的日志输出到不同位置。 日志大概具有5种正常级别(Level): 1.static Level DEBUG : DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。 2.static Level INFO INFO level表明 消息在粗粒度级别上突出强调应用翻译 2016-02-23 14:32:33 · 481 阅读 · 0 评论 -
Java使用密钥库相关问题(AES加密)
按照网上帖子使用AES加密的时候显示new BouncyCastleProvider()找不到 原帖地址:http://my.oschina.net/nicsun/blog/95632我去官网下载了适用的版本bcprov-jdk15on-153.jar 下载地址:http://www.bouncycastle.org/java.html然后build path之后终于没有说找不到相关类,但是出现原创 2015-12-15 16:11:33 · 1847 阅读 · 0 评论 -
Maven项目管理(相关配置)
pom.xml右键run as 。maven build 在goals中填入(选填)clean 清理compile 编译tes 测试package 打包install 部署pom.xml相关配置<project><modelVersion>4.0.0</>指定pom当前版本<groupId>反写公司网址+项目名</>定义maven属原创 2015-11-20 18:24:22 · 1838 阅读 · 0 评论 -
Socket编程(五)---NIO原理解读
参考文章: http://www.cnblogs.com/flyoung2008/p/3251826.html http://weixiaolu.iteye.com/blog/14796561.IO在Client/Server模型中,Server往往需要同时处理大量来自Client的访问请求,因此Server端需采用支持高并发访问的架构。一种简单而又直接的解决方案是“one-thread-per原创 2016-05-23 11:20:16 · 1148 阅读 · 0 评论 -
Eclipse生成javadoc方法与错误解决
大家在写好一个项目后可能需要自己来生成javadoc文件,现在我就说说我在此过程中的一些问题。1.生成javadoc首先选中想要生成的项目,右键,选择Export(导出),然后在Export(导出)对话框中选择java下的javadoc,然后下一步。 到了Javadoc Generation界面,其中: javadoc command:选择对应jdk的bin/javadoc.exe de原创 2015-12-12 18:12:28 · 7857 阅读 · 0 评论 -
Socket编程(二)---TCP简单实例
从上篇文章我们已经对Socket有了初步的认识,现在我们就通过一个例子来实现TCP简单实例。原创 2016-05-20 14:42:30 · 1502 阅读 · 0 评论 -
Socket编程(三)---仿QQ多人聊天实例
这次的实例,目的是为了模仿QQ上和好友聊天的功能,也就是用户登录后,点击用户头像,发送信息,好友就会接受到信息。原创 2016-05-21 15:47:23 · 7386 阅读 · 1 评论 -
Socket编程(四)---使用线程池优化服务端
在服务端使用线程池,来优化服务端处理的能力。原创 2016-05-23 09:19:14 · 3534 阅读 · 0 评论 -
Socket编程(六)---TCP/NIO实例讲解
本文将通过Channel(通道)、Buffer(缓冲区)以及Selector(选择器)来实现TCP下NIO的实例。原创 2016-05-23 15:49:56 · 1084 阅读 · 0 评论 -
Socket编程(一)---图解Socket
TCP/UDP基本概念介绍,socket相关行为的解释原创 2016-05-20 10:46:41 · 5147 阅读 · 1 评论 -
泛型让代码安全简单
合理的使用泛型,能让代码中的类型转换更加安全,而且在写代码的时候会更加简单。原创 2016-08-27 16:50:05 · 1243 阅读 · 0 评论 -
JDK版本转换Unsupported major.minor version 52.0
java.lang.UnsupportedClassVersionError: PR/Sort : Unsupported major.minor version 52.0上网查看,这个错误是由于高版本的java project使用了低版本的来运行。原创 2016-08-25 20:26:21 · 3378 阅读 · 0 评论 -
你知道这Java类型转换问题么?
一些我们忽视的类型转换问题,有你知道的,也有你不知道的。原创 2016-08-26 00:45:52 · 1183 阅读 · 0 评论