Java
文章平均质量分 88
低调的洋仔
春风桃李花开日,秋雨梧桐叶落时。西宫南内多秋草,落叶满阶红不扫。
展开
-
Java源码Concurrent包剩余部分类
FutureTask /** * Simple linked list nodes to record waiting threads in a Treiber * stack. See other classes such as Phaser and SynchronousQueue * for more detailed explanation.原创 2020-12-12 15:58:22 · 226 阅读 · 0 评论 -
toHexString(b[n] & 0XFF)为什么要和0XFF做与运算
在32位的电脑中数字都是以32格式存放的,如果是一个byte(8位)类型的数字,高24位里面都是随机数字,低8位才是实际的数据。java.lang.Integer.toHexString() 方法的参数是int(32位)类型,如果输入一个byte(8位)类型的数字,这个方法会把这个数字的高24为也看作有效位,这就必然导致错误,使用& 0XFF操作,可以把高24位置0以避免这原创 2016-08-23 14:24:58 · 15352 阅读 · 14 评论 -
Java源码Atomic部分源码解析
AtomicXXX加了volatile保证了可见性。本质上这一系列的都是采用的CAS的方式来更新原来的值的。boolean实际上是用的int值来存储的。AtomicXXXArray private static final Unsafe unsafe = Unsafe.getUnsafe(); private static final int base = unsafe.arrayB原创 2020-12-12 15:57:09 · 309 阅读 · 0 评论 -
Java源码总结锁部分解读
LockSupport内部采用了Unsafe中的方法来实现的,使用其实现阻塞的相关操作,调用其park方法来实现线程的阻塞。Unsafe主要提供了硬件级别原子操作。1.Java线程一般与操作系统进程是一对一的关系,比如在linux平台,对应的是linux的轻量级进程(也就是linux的线程)。2.linux线程的调度和具体调度器有关,比如CFS调度器下,所有待调度的线程按照nice值排列在一棵红黑原创 2020-12-12 15:57:41 · 423 阅读 · 2 评论 -
Java源码总结整理注意点
1. Throwable是异常的鼻祖,下设Error 和Exception两大类异常,Exception又分为了两大类检查型和非检查型的异常。2. Booleanboolean中存储true和false全是常量final staic的,相当于缓存 public int hashCode() { return value ? 1231 : 1237; } pub原创 2020-12-12 15:56:10 · 273 阅读 · 0 评论 -
Java源码分析集合部分总结
按照自己的理解集合类分为多个分支一个是Collection派系的集合,一个是Map派系的集合。两者分别支撑起来整个集合的阵营。Collection派系的主要是List、Queue、Set.Map的部分则是键值对的派系,大部分应该说都是直接使用了这个键值对的形式。因为Map作为一个键值对的接口,已经定义了,键值对的各种操作的方法。为什么这么划分?这个问题我觉得确实是一个设计的重点,当初设计的时候,肯原创 2020-12-12 15:55:41 · 663 阅读 · 0 评论 -
ElasticJob源码部分解读-Zookeeper建立连接
private static CoordinatorRegistryCenter createRegistryCenter() { CoordinatorRegistryCenter regCenter = new ZookeeperRegistryCenter(new ZookeeperConfiguration(SERVERLIST, "movie_data"));原创 2020-12-12 15:59:54 · 1080 阅读 · 0 评论 -
ElasticJob源码分析--定时任务执行JobScheduler类分析
public static void main(String[] args) { // 初始化数据源 DataSource dataSource = MovieServiceUtils.getDataSource(); // 定义日志数据库事件溯源配置 JobEventConfiguration jobEventRdbConfig =原创 2020-12-12 16:00:15 · 904 阅读 · 0 评论 -
Java集合总结Map篇
MapMap是一个接口属于键值对的总接口,也就是集合的另一个大阵营。其派生的类包括AbstractMap、HashMap、Hashtable、IdentityHashMap、LinkedHashMap、WeakHashMap、ConcurrentHashMap、ConcurrentMap、SortedMap。这个派系和Collection其实是差不多的,只不过区别在于Map这边直接实现map的比较原创 2020-12-12 15:56:56 · 320 阅读 · 0 评论 -
Java源码HashMap与HashSet解析
HashSet与HashMap的关系用一句话概括为:披着羊皮的狼。其内部实现实际上是用了HashMap的实例,将具体实现委托给HashMap进行完成的。本文主要讲解部分HashMap的相关方法。HashMap采用了拉链法解决hash冲突问题,一部分为数组,可以通过hash后的值找到该数组处的链表。另一部分是链表,通过map实体组成的链表前后相连组成链表。 影响其性能的两个主要的参数主要是初始值和负原创 2017-03-05 15:00:17 · 737 阅读 · 0 评论 -
Java集合ArrayDeque类解读
前言ArrayDeque类是双端队列的实现类,类的继承结构如下面,继承自AbastractCollection(该类实习了部分集合通用的方法,其实现了Collection接口),其实现的接口Deque接口中定义了双端队列的主要的方法,比如从头删除,从尾部删除,获取头数据,获取尾部数据等等。public class ArrayDeque<E> extends AbstractCollection<E>原创 2017-02-25 15:09:11 · 8279 阅读 · 0 评论 -
Java面向对象:封装、继承、多态
为什么要面向对象编程?以前开发的过程通常是采用面向过程编程,面向过程是以过程为中心来进行编程设计,本质上是分析出需要哪些过程,在编程时一步步的对其实现,但是随着软件规模的扩大,这种面向过程的设计模式已经越来越不适应如此大规模的软件。面向过程存在着诸多的缺点比如: 1.软件重用性差重用性是指同一事物不经修改或稍加修改就可多次重复使用的性质。软件重用性是软件工程追求的目标之一。原创 2015-09-30 16:44:06 · 4154 阅读 · 0 评论 -
java ClassLoader类解析-双亲委托机制
做Java开发,对于ClassLoader的机制是必须要熟悉的基础知识,本文针对Java ClassLoader的机制做一个简要的总结。因为不同的JVM的实现不同,本文所描述的内容均只限于Hotspot Jvm.本文将会从JDK默认的提供的ClassLoader,双亲委托模型,如何自定义ClassLoader以及Java中打破双亲委托机制的场景四个方面入手去讨论和总结一下。JDK默认Cla原创 2015-10-27 14:43:05 · 16947 阅读 · 0 评论 -
java代码实现excel数据导入数据库
1、添加POI jar包到项目的lib目录下2、Excel文件目录:d://excel.xls3、数据库字段为:num1 num2 num3 num4 num5 num64、数据库名:blog5、表名:test6、编写类:连接mysql的字符串方法、插入的方法、实体类import java.io.FileInputStream;import java.io原创 2015-11-09 10:27:17 · 13471 阅读 · 4 评论 -
java操作pdf文件
import java.io.FileOutputStream;import java.io.IOException;import java.sql.SQLException;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;import com.action.cha原创 2015-11-09 10:29:12 · 3386 阅读 · 0 评论 -
MD5加密算法与SHA加密算法
2、MD5加密2.1 概述Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992).原创 2015-11-09 14:57:05 · 10067 阅读 · 0 评论 -
通过java反射技术获取泛型的真实类型并对其实例化
public DaoBaseInterfaceImpl() { // 反射得到T的真实类型 ParameterizedType ptype = (ParameterizedType) this.getClass().getGenericSuperclass();// 获取当前new的对象的泛型的父类的类型 this.clazz = (Class) ptype.getActualTyp原创 2015-11-09 15:16:27 · 6558 阅读 · 2 评论 -
Java使用HttpURLConnection请求异常:java.net.SocketException: Software caused connection abort: recv failed
java.net.SocketException: Software caused connection abort: recv failed根据异常信息来看是SocketException,我搜了下这个异常信息的解决方案,几乎没有能解决我遇到的这个问题的方案,主要的方案都是说,要使用一个while(true)的循环,在循环内部,进行判断,如果当前的inputStream的available()方原创 2016-04-21 12:18:36 · 120255 阅读 · 16 评论 -
TOMCAT内存溢出问题Exception in thread ""http-bio-8080"-exec-6等等
Tomcat启动之后会出现http-bio-8080"-exec-6等等的异常,但是显然的提示信息当中不是程序的问题,那么就应该想到是环境的问题 Tomcat7启动后,后台抛出如下异常,前台一直无法登陆Exception in thread ""http-bio-8080"-exec-6" java.lang.OutOfMemoryError: PermGen spaceExcep原创 2015-11-10 08:09:29 · 65072 阅读 · 3 评论 -
JBPM4.4业务流程管理框架详细解读
1. 什么是JBPM4.4业务流程管理框架?JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。相关概念:a: 从一个节点到另一个节点==>流转。b:程序预先设定的行为==>活动。2. JBPM工作流的特点2.1 直观描述业务流程采用原创 2015-11-24 20:51:21 · 15191 阅读 · 12 评论 -
Java中基于HTTP协议网络编程
java中为我们的网络支持提供了java.net包,能够使我们以编程的方式来访问Web服务功能,这篇博客,就跟大家分享一下,Java中的网络编程的知识,主要是学习下该java.net包下的API。 URI——>URL URI:表示的是统一的资源标识,它是以某种统一的方式标识资源的简单字符串。这种字符串以scheme开头。 URL:表示统一的资源定位器的任务,UR转载 2015-12-11 17:40:09 · 8195 阅读 · 0 评论 -
Java 的Integer、int与new Integer到底怎么回事?
先做一些总结,询问了些经验比较多的师傅,在这里表示感谢,然后自己总结下,今天的收获分享给大家:1. int 和Integer在进行比较的时候,Integer会进行拆箱,转为int值与int进行比较。2. Integer与Integer比较的时候,由于直接赋值的时候会进行自动的装箱,那么这里就需要注意两个问题,一个是-1283. new Integer(1) 和Integer a = 1原创 2016-09-22 16:27:41 · 23464 阅读 · 16 评论 -
Java源码侦探--异常体系解读Throwable
Throwable类是整个异常体系类的父级类,当然最终追根溯源到底的父类当然要归于Object类。Throwable类实现了Serializable接口,表示Throwable可以进行序列化,继承自Object类,他的子类主要是Error和Exception类还有一个StackRecorder类(不是很常见)。那么这里有几个问题要思考:1. 为什么序列化?2. 源码中并没有看到继承Object这个原创 2016-12-02 21:21:37 · 3317 阅读 · 0 评论 -
Java源码侦探-Integer方法解读
看到Integer中有这样的一个方法把int转为Unsigned类型的字符串,但是有几个点不是很清楚,经过查询资料弄懂了,解读如下: /** * Convert the integer to an unsigned number. */ private static String toUnsignedString(int i, int shift) { c原创 2016-12-10 22:41:44 · 1593 阅读 · 0 评论 -
java注解解析
java元注解元注解作用是负责注解其他注解,java5.0定义了四个标准的元注解。包括:@Target、@Documented、@Retention、@Inherit。@Target注解:它用于描述注解可以修饰的类型。可以修饰的类型为:TYPE(类、接口、枚举)、FIELD、METHOD(方法声明)、PARAMETER(参数)、CONSTRUCTOR(构造方法)、LOCAL_VARIABLE(本地变原创 2017-02-16 19:44:52 · 1468 阅读 · 4 评论 -
java源码management包解读
management包中提供了比较全面的监控和管理工具,包括JVM的监管API、监管API日志等等。管理接口PlatformManagementObject接口:所有的管理接口都要继承该接口,这个接口是从1.7才出现的,从其文档的注释中可以看到其存在的价值是为以后平台的扩展而设计的,而不是为了应用程序。 BufferPoolMXBean接口:缓冲池管理接口包括direct和mapped类型的缓冲池原创 2017-02-17 20:32:28 · 1244 阅读 · 0 评论 -
java日期转换隐式异常
最近在做项目的时候遇到这样的一个问题,目的是查出最近的一个月的时间范围,截止日期从库中获取的,开始日期在程序中计算得出,但是,当测试写好的一段代码时出现了问题。日期转换之后反而比转换之前的截止日期还靠后了。SimpleDateFormat dateForm = new SimpleDateFormat("yyyy-MM-dd"); try { Date dat原创 2017-02-23 14:48:39 · 1943 阅读 · 2 评论 -
Java集合删除元素ArrayList为例子分析
AbstractCollection集合类中有一个remove方法,该方法为了适配多种不同的集合,允许删除空的元素,看这部分代码的时候产生了疑问,为什么这里直接用it.remove()就直接删除了? public boolean remove(Object o) { Iterator<E> it = iterator(); if (o==null) {原创 2017-02-24 16:15:05 · 1194 阅读 · 0 评论 -
Java内部类、本地类、匿名类、文件类解读
1. 文件类package com.wy.jdkclass;public class ClassTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ClassTest classTest = new ClassTe原创 2015-09-29 19:34:02 · 2892 阅读 · 4 评论