JavaSE
文章平均质量分 87
Imadone
人生如戏唱,还有谁登场
展开
-
JAVA JDK动态代理图解
JAVA的动态代理是一个非常重要的实现技术,在jdk以及spring,hibernate等框架中大量应用。为什么动态代理这么重要呢?首先,什么是动态,什么是代理?动态是相对静态而言,如java是先编译后运行,那么其代码是静态方式被读取和编译的,也可以说java是静态的语言,如果你想在一个java程序在编译之后的运行时期再去临时编译某个类从而获得实例对象,通常情况下是不能实现的,例如:new原创 2017-09-27 02:52:58 · 2734 阅读 · 2 评论 -
JVM工作原理简述
JAVA之所以跨平台,是因为有JVM这么一个编译和运行机器,它令对于系统的操作对于用户而言是黑盒的,使得开发人员更快速和更注重软件功能的实现。然而,也因为jvm是黑盒,所以内部和底层具有不确定性,如果用状态机来表示jvm,那么jvm就是一种现役复制不确定的状态机,因为它的状态和表现跟系统、底层、硬件等等都有关系,从而状态是不确定,如果在分布式应用中,jvm一直以来兼容性都不是很好,这就是主要原因。...原创 2018-04-25 02:03:33 · 8855 阅读 · 1 评论 -
JAVA的泛型——如何获取参数化类型
泛型是一种元编程模式,如果这种语言具有元编程能力,就有可能使用泛型,如果这种语言的元编程对象可以是自己,即自我编写自我,那么就具有反射能力,结合反射可以极大的发挥元编程的价值。不同的语言的泛型实现方式不同,一个鲜明的对比就是C#的泛型跟JAVA的泛型,前者是独立类型模式,而后者则是静态共享模式,这导致了在开发过程中处理方式有很大不同。参数化类型,指的就是泛型的实际形式,即将类型以参数的方式进行传递...原创 2018-04-12 18:07:46 · 2321 阅读 · 0 评论 -
optional用法
java8的改进中一个非常有用的就是optional,一句话概括,optional允许使用一个不确定是否为null的对象并且在对象为null的时候采取一系列的应对措施而不必抛出nullpointerException。这项改进对于经常面对空指针异常的程序是个福音,因为按照以往的方式,要避免空指针异常,就必需进行null判断,如if(obj==null),另一种方式就是抛出异常并处理,然而这两种方式...原创 2018-04-03 04:57:38 · 5151 阅读 · 0 评论 -
this关键字使用注意事项
近日在开发过程中遇到不少问题,其中就是this引发的,发现自己对于模式的实现存在不少疑点,在此进行总结以巩固加深。this:java这个关键字作用是很大的,通过它来指向对象自身包括自身的内容,但是很多教程和书籍里面的描述都不够准确,我也被误导多年。确切的说,this指的是当前的调用者。因为调用者是动态的,因此this的文章就在这里。然而这可没那么简单,因为java是静态的,但是this关键字却很动...原创 2018-03-23 03:10:40 · 658 阅读 · 0 评论 -
通过控制台输出各种颜色的字符——ANSIConsole、JANSI
默认的jdk控制台只能跟随系统而定,在eclipse中可以定义各种来源的输出颜色,但是如果你想按照的app输出内容到控制台,只能按照前两者来定,而且默认只有黑和err的红,有时候开发中输出的日志信息较多,仅有这两种根本不能解决问题,因此如果可以让我们随心所欲的控制app输出的字符的颜色就最好不过了。目前有两种办法实现,一种是使用JANSI类库,一种是使用eclipse的ANSIcons原创 2018-01-06 23:27:57 · 21457 阅读 · 2 评论 -
Junit使用简明教程
junit在近十年以来一直是业界测试标准框架,作为一个java开发人员,你可以不知道hibernate或者spring,但是junit是必须知道的。要编写出质量良好的软件,测试是必不可少的,许多人从毕业或培训出来在工作中从事开发工作,但是甚少甚至不进行测试,这里指的就是单元测试,一方面是对软件测试没有一个正确的概念,另一方面是存粹的单元测试比较让人抗拒。junit解决了原始的单元测试麻烦却又没有技原创 2018-01-28 03:24:50 · 703 阅读 · 0 评论 -
Serializable接口的作用性质
提到Serializable,自然就会想到序列化,那么这里先说下序列化的作用。序列化是java持久化保存对象数据的一个过程,反序列化也就是将保存的对象数据恢复的过程。序列化主要作用包括:1、可永久保存对象状态2、将对象数据转为字节,方便网络传输,如socket通讯,分布式应用等3、序列化后需进行对应的反序列化恢复,所以具有更好的安全性。虽然字面上很简单,实际使用中有许多值得注意的地方。在实际应用中...原创 2017-10-14 22:36:21 · 2586 阅读 · 0 评论 -
MessageFormat使用时对单引号的处理方式
MessageFormat是text包中的一个常用类,有一次遇到了个问题,发现原来是单引号引起的,遂找了API,并整理一下。用途:MessageFormat常用将读取到的配置文件、国际化文件中标注的占位符解析,把参数对应的放入占位符的位置上,从而实现引用参数化。例子:读取到配置文件中的一条项目:sql = select * from user where user_type = {0} ,原创 2017-09-02 06:02:46 · 8438 阅读 · 0 评论 -
Java clone、浅复制、深复制、复制构造函数
在java中的对象重复利用通常有两种渠道:复制引用、克隆,不管何种方法,它们都是为了减少对象重复创建和赋值操作,一定程度上提高效率。这里就有关对象复用的几种方式和关系进行探讨。共识java中的对象分为两派:值类型和引用类型,这是因为他们的传递方式,一个是值传递,一个是引用传递。对于值类型,因为是值传递,所以在使用值类型的时候无须考引用类型存在一些问题,如:equals,hashcode,nullp...原创 2018-06-24 04:47:49 · 3414 阅读 · 0 评论