- 博客(16)
- 资源 (5)
- 收藏
- 关注
原创 23种设计模式01--简单工厂
一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者
2016-05-29 21:02:21 604
原创 String.format()用法
package junit.test; import java.util.Date;import java.util.Locale; import org.junit.Test; public class StringFormat { /*String.format()用法 1、转换符%s: 字符串类型,如:"ljq"%b: 布尔类型,如:true%d: 整数类型(十
2016-05-29 19:46:02 994
原创 BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)
一、简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统
2016-05-29 14:52:47 201026 4
原创 Java将科学计数法数据转为字符串
有些项目可能会涉及到从Excel导入数据,但如果Excel里单元格类型为数值,但内容数据太长时(如银行账号),导入时,会默认读取为科学计数法,用以下代码便轻松解决。BigDecimal bd = new BigDecimal("3.40256010353E11"); System.out.println(bd.toPlainString());
2016-05-24 11:26:39 7779 1
原创 Java反射机制详解
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。1、关于Class 1、Class是一个类,一个描述类的类(也就是描述类本身),封装了描述方法的Method,描述字段的Filed,描述构造器的Constructor等属
2016-05-22 11:52:58 11957 4
原创 字符与字节
字符与字节ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。如一个ASCII码就是一个字节。UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。
2016-05-19 20:48:05 749
原创 JVM深入理解
堆中几乎存放着Java世界中所有的对象实例,垃圾收集器在对堆回收之前,第一件事情就是要确定这些对象哪些还“存活”着,哪些对象已经“死去”(即不可能再被任何途径使用的对象)1、引用计数算法(Reference Counting) 很多教科书判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器减1;任何时刻计数器都为0的对
2016-05-14 17:56:06 10636 2
原创 深入理解JVM02--Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
1、Java堆溢出 Java堆用于存储对象实例,只要不断地创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么在对象数量到达最大堆的容量限制后就会产生内存溢出异常。//Java堆溢出异常测试public class HeapOOM { static class OOMObject {} public static void m
2016-05-14 13:09:06 3322
原创 Java程序优化细节
下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方。 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步来控制资源的并发访问; 第二,控制实例的产生,以达到节约资源的目的; 第三,控制数据共享,在不建立直接关
2016-05-13 11:45:03 4930 3
原创 Java面试题--只提出了问题
Java IO 和 NIO 的面试题IO 是 Java 面试中一个非常重要的点。你应该很好掌握 Java IO,NIO,NIO2 以及与操作系统,磁盘 IO 相关的基础知识。下面是 Java IO 中经常问的问题。66)在我 Java 程序中,我有三个 socket,我需要多少个线程来处理?67)Java 中怎么创建 ByteBuffer?68)Java 中,怎么读写 ByteBu
2016-05-12 15:51:13 4500
原创 Java面试题--关于 OOP 和设计模式
这部分包含 Java 面试过程中关于 SOLID 的设计原则,OOP 基础,如类,对象,接口,继承,多态,封装,抽象以及更高级的一些概念,如组合、聚合及关联。也包含了 GOF 设计模式的问题。103)接口是什么?为什么要使用接口而不是直接使用具体类?接口用于定义 API。它定义了类必须得遵循的规则。同时,它提供了一种抽象,因为客户端只使用接口,这样可以有多重实现,如 List 接口,你可以
2016-05-12 15:38:32 6632
原创 Java多线程编程6--单例模式与多线程--单例模式设计详解1
在标准的23个设计模式中,单例设计模式在应用中是比较常见的。但在常规的该模式教学资料介绍中,多数并没有结合多线程技术作为参考,这就造成在使用多线程技术的单例模式时会出现一些意想不到的情况,这样的代码如果在生产环境中出现异常,有可能造成灾难性的后果。1、立即加载/“饿汉模式” 什么是立即加载?立即加载也称为“饿汉模式”,就是使用类的时候已经将对象创建完毕,常见的实现办法就是直接
2016-05-09 10:49:13 1376
原创 Java多线程编程5--定时器Timer的使用
定时/计划功能在移动开发领域使用较多,比如Android技术。定时计划任务功能在Java中主要使用的就是Timer对象,它在内部使用多线程的方式进行处理,所以它和线程技术还是有非常大的关联的。 在JDK库中Timer类主要负责计划任务的功能,也就是在指定的时间开始执行某一个任务。 Timer类的主要作用就是设置计划任务,但封装任务的类却是TimerTask类 执行计划
2016-05-08 21:28:54 2304
原创 Java多线程编程4--Lock的实例--顺序打印
使用Condition对象可以对线程执行的业务进行排序规划public class Run { private volatile static int nextPrintWho = 1; private static ReentrantLock lock = new ReentrantLock(); private final static Condition c
2016-05-08 10:14:56 761
原创 Java多线程编程4--Lock的实例--实现生产者/消费者模式:一对一、多对多交替打印
1、实现生产者/消费者模式:一对一交替打印public class MyService { private ReentrantLock lock= new ReentrantLock(); private Condition condition = lock.newCondition(); private boolean hasValue = false; p
2016-05-07 22:46:00 2528
《Maven实战》完整高清版
2016-09-06
Java多线程编程核心技术_完整版
2016-07-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人