
JAVA
文章平均质量分 94
super_man_0820
无无
展开
-
FullGC的Demo与原因定位
作为平台开发人员,经常要为用户定位应用(如Flink、Spark等)的线上问题,出现频率较高的就是任务实现问题,出现FullGC,从而导致数据处理速度下降或是OOM等问题,下面简单记录、分享下定位过程。内容如下:Main方法,复现FullGC场景定位FullGC的步骤...原创 2019-06-14 17:28:22 · 2542 阅读 · 1 评论 -
基于Java NIO 的数传服务器项目预研demo
项目背景:数传服务器项目,需对 与外界交互的 报文进行加/解密,提高数传服务器的报文处理能力;因为数传服务器需随 便携设备 一起工作,所以并不能简单的依靠增加设备来提高的报文处理能力,因此项目改进点只能是提高单个设备的报文处理能力相关说明:数传服务器 属于 服务端功能,对接收到的报文进行 加/解密 后,再转发;项目 起初是用BIO的方式 完成,考虑使用 NIO 的方式进行改进。...原创 2019-08-05 19:28:04 · 260 阅读 · 0 评论 -
Java IO编程总结(BIO、NIO、AIO)
本文包括以下内容:IO介绍传统的 IO 大致可以分为4种类型:InputStream、OutputStream 基于字节操作的 IOWriter、Reader 基于字符操作的 IOFile 基于磁盘操作的 IOSocket 基于网络操作的 IOjava.net 下提供的 Scoket 很多时候人们也把它归为 同步阻塞 IO,因为网络通讯同样是 IO 行为。因项目数传服务器是...原创 2019-08-05 16:24:20 · 427 阅读 · 0 评论 -
ClassLoader:Java实现从指定路径加载jar包/class文件
项目背景:在线计算开发平台在 yarn客户端 提交机上 提交Flink任务时,需要加载 非结构化数据解析器jar 和 自定义函数jar方案:考虑到 java 自带的 ClassLoader 无法灵活的添加某路径下的类,考虑以下三种方式实现:AppClassLoader 继承自 URLClassLoader,以反射的方式将 addURL 方法设置为 public,以添加自定义路径为 cla...原创 2019-07-22 17:57:44 · 13319 阅读 · 3 评论 -
CopyOnWrite的使用场景和应用
本文内容:读多写少的场景下引发的问题?引入 CopyOnWrite 思想解决问题!CopyOnWrite思想在Kafka源码中的运用读多写少的场景下引发的问题?大家可以设想一下现在我们的内存里有一个ArrayList,这个ArrayList默认情况下肯定是线程不安全的,要是多个线程并发读和写这个ArrayList可能会有问题。好,问题来了,我们应该怎么让这个ArrayList变成线...原创 2019-07-16 17:23:17 · 971 阅读 · 0 评论 -
Java集合框架
List结构的集合类ArrayList集合类的使用方法(无同步性,线程不安全)//ArrayList --- 实现了List接口,ArrayList是容量大小可变的数组的实现ArrayList al = new ArrayList();//将元素添加到al集合中的尾部String str1 = "a";al.add(str1);String str2 = "b";al.a...原创 2016-06-18 11:13:01 · 351 阅读 · 0 评论 -
Java基础程序设计
1.Java数据类型1.1数据类型划分1.2java基本数据类型1.3数据类型的转换⑴ 自动类型转换条件:*转换前的数据类型与转换后的类型兼容。 *转换后的数据类型的表示范围比转换前的类型大。 注:任何类型的数据都向String转型⑵强制类型转换语法:*(欲转换...原创 2015-11-09 17:44:03 · 365 阅读 · 0 评论 -
java知识点总结
Java核心知识点博客知识点整理按照上图顺序,进行归纳整理,供后期查询相关知识。JavaSE最重要的知识点:*面向对象*Java类集*JavaIO*JDBCJava软件工程师知识体系Java学习流程...原创 2015-11-09 16:14:37 · 487 阅读 · 0 评论 -
搭建java开发环境
下载JDK的具体步骤如下:1、打开浏览器,在浏览器地址栏输入http://www.oracle.com/technetwork/java/javase/downloads/index.html2、进入如下界面3、点击图中红色区域4、进入如下界面5、选择适合系统类型的安装文件,进行下载。安装JDK的具体步骤如下:1、双击JDK安装程序,进入安装界面,...原创 2015-11-09 15:29:11 · 300 阅读 · 0 评论 -
AQS原理及其实现的Java并发工具类
本文主要介绍AbstractQueuedSynchronizer(AQS)及其常用的一些实现,如 CountDownLatch、CyclicBarrier、Semaphore、ReentrantLock、ReentrantReadWriteLock等。本文目的以实用为主,概述基本原理,说明使用场景,引入基本案例。AbstractQueuedSynchronizerAQS定义了一套多线程访问共...原创 2019-07-27 10:00:30 · 285 阅读 · 0 评论 -
Java并发之AQS详解
1. 概述谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch…。以下是本文的目录大纲:概述框架...原创 2019-07-24 20:54:43 · 173 阅读 · 0 评论 -
死锁的Demo与原因定位
前不久我们平台在做任务调度的时候,出现了死锁,虽说死锁定位很简单,此处就把过程记录下。内容如下:Main方法,复现lock场景定位FullGC的步骤Main方法,复现lock场景死锁条件:互斥条件:一个资源每次只能被一个进程使用。请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。循环等待条件:若干...原创 2019-06-16 14:17:02 · 350 阅读 · 0 评论 -
基于Java AIO 的数传服务器项目预研demo
项目背景:数传服务器项目,需对 与外界交互的 报文进行加/解密,提高数传服务器的报文处理能力;因为数传服务器需随 便携设备 一起工作,所以并不能简单的依靠增加设备来提高的报文处理能力,因此项目改进点只能是提高单个设备的报文处理能力目前数传服务器的 IO 已通过 NIO 实现,现自研以 AIO 的方式实现 Demo相关说明:数传服务器 属于 服务端功能,对接收到的报文进行 加/解密 后,再...原创 2019-08-05 19:39:36 · 419 阅读 · 0 评论