自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 XStream使用注解方式解析和生成XML

目录Maven引入XStream依赖XStream常用注解xml格式及对应的java对象xmlMessage.javaDataSet.javaData.javaItem.javaCondition.javaxml->Java对象java对象->xml日常开发中和外部系统交互方式基本上会选择json格式,但是也不可避免xml格式的交...

2018-04-20 17:44:13 2378

原创 树的高度,深度,层数

申明:本文高度,深度基数为1,但是在《数据结构与算法分析:java语言描述》这本书上,高度,深度的基数为0;两种记法都没有错,都可以用来描述树的性质,只需要标注(>0)或者(>=0)做一个区分和解释即可节点n的高度 : n节点到叶子节点所有路径上包含节点个数的最大值。叶子节点的高度为1,往上节点的高度依次递增。节点n的深度 : 从根节点到节点n唯一的路径的长,根节点深度为1层数:根节点为第一层,往

2017-09-17 17:33:50 25200 2

原创 设置线程池的大小

设置线程池的大小需要考虑3个因素:计算环境(CPU的个数?内存多大?…)资源预算(准备给线程池多少资源?)任务类型(任务是cpu密集型还是I/O密集型?) cpu密集型任务线程池大小:Nthreads=Ncpu+1 即使cpu密集型任务偶尔因为页缺失故障或其他原因而暂停时,额外的线程也能保证cpu时钟周期不会浪费对于I/O密集型任务或者阻塞操作的任务,必须估算任务的等待时间和计算时间

2017-07-25 23:31:30 620

原创 Java线程安全性总结

最近在思考一些线程安全性相关的问题,发现线程安全性的一些相关的概念都比较琐碎,如果不能联系起来成为一个体系特别容易混乱,抽时间画了思维导图,觉得思路清晰了很多,在此分享出来,有什么不对的的地方烦请指出。java线程安全性.xmind

2017-07-19 16:27:26 255

原创 ==,equals(),hashCode()三者的区别和联系

==的作用对于基本数据类型,比较两个值是否相等 对于引用数据类型,比较两个引用所指向的内存地址是否相等 程序无法控制比较的结果,比较的结果完全由内存地址决定equals()的作用==的程序可控制版本,比较的结果可以通过对象equals()方法中的代码决定。 如果不重写对象的equals()方法,==和equals()结果等价。 可以根据业务逻辑重写equals()方法,例如学生

2017-07-18 23:14:58 334

原创 面向对象设计的原则

面向对象设计有5大原则(SOLID):单一职责原则(S):一个对象只负责单一的功能,不和其他对象的功能牵扯到一块开闭原则(O):对扩展开放,对修改关闭里氏替换原则(L):子类能够替代其超类被使用,即针对接口编程,而不是针对实现编程接口隔离原则(I):多个分门别类的接口好于一个大而全的接口依赖倒置原则(D):下文详细解释依赖倒置原则定义:依赖倒置是指一种特定的解耦形式,使得高层次模块不依赖

2017-07-03 11:28:46 290

原创 数字证书和数字签名概念小结

数字签名数字签名一般简称签名,数字签名是使用私钥签名得到的字符串,RSA公开密钥体系中:公钥加密,私钥解密;私钥签名,公钥验证签名。数字证书数字证书一般简称证书,其实就是实体证书的数字化抽象,举例毕业证书说明:毕业证书上有姓名、性别、照片、毕业证号还有教育局印章等,可以归为两类:被颁发人的信息(姓名等)和颁发者信息的证明(印章),数字证书也是如此,数字证书包含用户的信息、用户的公钥和C

2017-06-14 00:25:05 609

原创 Java反射

Java反射什么是反射Oracle官方解释: Reflection is commonly used by programs which require the ability to examine or modify the runtime behavior of applications running in the Java virtual machine. 反射通常被

2017-01-21 15:02:56 327

原创 Java 并发编程之设计线程安全类

1.设计线程安全类设计线程安全的类的步骤:找出构成对象状态的所有变量找出约束状态变量的先验条件,后验条件,不变性条件建立对象状态的并发访问策略2.实例封闭封装简化了线程安全类的实现过程,提供了一种实例封闭的机制。当一个对象被封装到另一个对象中时,能够访问被封装对象的所有代码路径都是已知的。通过将封装机制和合适的加锁机制结合起来,可以确保以线程安全的方式来使用非线程安全的

2017-01-10 18:06:50 358

原创 java线程中断思考

Java没有提供任何机制来安全的终止线程。但是它提供了中断这种协作机制,能够使一个线程终止另一个线程的当前工作。也就是说Java的中断机制是协同式的,而不是抢占式的。调用线程的interrupt()方法并不意味着立即停止目标线程正在进行的工作,而只是传递了请求中断的消息。对中断正确的理解是:它并不会真正的中断一个正在运行的线程,而是发出了中断的请求,将线程的中断状态设置成true,让线程在合适

2016-12-26 22:24:14 274

原创 synchronized关键字的实现原理

在java语言规范中,synchronized的功能是通过monitor实现的,什么是monitor?A monitor is mechanism to control concurrent access to an object. monitor是一种机制,控制多线程对一个对象的并发访问。java中除了null之外的所有对象都有一个对应monitor,我们知道进入synchro

2016-12-08 15:34:29 739

原创 Java并发编程之线程安全性

最近恰好有点时间看《Java并发编程实践》,以前没有写过博客,顺手写一下笔记和自己的感悟。目录目录简介并发简史线程的优势线程的风险线程安全性什么是线程安全性简介并发简史在操作系统出现之前,早期的计算机只能从头到尾执行一个独占所有计算机资源的程序,不仅很难编写和运行程序,而且每次只能运行一个程序, 这对昂贵和稀有的计算机资源是一

2016-11-30 22:16:12 437

java线程安全性总结

用思维导图将Java线程安全性相关基本概念联系起来

2017-07-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除