
javase
文章平均质量分 83
屌丝男士zkc
别让梦想,只是想想
展开
-
字节码操作 javaassist
JAVA 字节码操作利器javassist hudashi 2016-03-14 14原文链接1、简介javassist是一个开源的分析、编辑和创建java字节码的类库。不需要了解虚拟机指令,就能动态生成类或者改变类的结构。官网首页www.javassist.org2、下载(1)下载链接http://www.csg.ci.i.u-tokyo.转载 2016-09-13 08:53:38 · 646 阅读 · 0 评论 -
Junit入门
序言 大学刚学Java的时候就听说过JUnit了,单元测试框架,很好用的测试框架,JUnit测试框架将测试更加便捷和容易,编写测试代码也是简单、明了,功能强大。今天我给大家简单分享一下最新JUnit4的使用,几分钟入门!导入jar包 在集成开发环境中导入相应jar包:junit-4.12.jar、hamcrest-core-1.3.rc2.jar、hamc转载 2016-11-17 22:43:36 · 244 阅读 · 0 评论 -
40个多线程问题总结
前言Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作转载 2016-10-20 20:21:32 · 301 阅读 · 0 评论 -
JVM其实并不难
在阅读本文之前,先向大家强烈推荐一下周志明的《深入理解Java虚拟机》这本书。前些天面试了阿里的实习生,问到关于Dalvik虚拟机能不能执行class文件,我当时的回答是不能,但是它执行的是class转换的dex文件。当面试官继续问,为什么不能执行class文件时,我却只能回答Dalvik虚拟机内部的优化原因,却不能正确回答具体的原因。其实周志明的这本书就有回答:Dakvik并不是一个Ja转载 2016-10-30 08:17:16 · 293 阅读 · 0 评论 -
泛型 (下) - 细节和局限性
35节介绍了泛型的基本概念和原理,上节介绍了泛型中的通配符,本节来介绍泛型中的一些细节和局限性。这些局限性主要与Java的实现机制有关,Java中,泛型是通过类型擦除来实现的,类型参数在编译时会被替换为Object,运行时Java虚拟机不知道泛型这回事,这带来了很多局限性,其中有的部分是比较容易理解的,有的则是非常违反直觉的。一项技术,往往只有理解了其局转载 2016-10-28 18:39:10 · 265 阅读 · 0 评论 -
泛型 (中) - 解析通配符:
上节我们介绍了泛型的基本概念和原理,本节继续讨论泛型,主要讨论泛型中的通配符概念。通配符有着令人费解和混淆的语法,但通配符大量应用于Java容器类中,它到底是什么?本节,让我们逐步来解析。更简洁的参数类型限定在上节最后,我们提到一个例子,为了将Integer对象添加到Number容器中,我们的类型参数使用了其他类型参数作为上界,代码是:public转载 2016-10-28 18:35:58 · 443 阅读 · 0 评论 -
泛型 (上) - 基本概念和原理
之前章节中我们多次提到过泛型这个概念,从本节开始,我们就来详细讨论Java中的泛型,虽然泛型的基本思维和概念是比较简单的,但它有一些非常令人费解的语法、细节、以及局限性,内容比较多。所以我们分为三节,逐步来讨论,本节我们主要来介绍泛型的基本概念和原理,下节我们重点讨论令人费解的通配符,最后一节,我们讨论一些细节和泛型的局限性。后续章节我们会介绍各种容器类,容器类可以说是日常程序开发转载 2016-10-28 18:32:13 · 612 阅读 · 1 评论 -
java 自动装箱和拆箱应注意的问题
自动装箱和自动拆箱不是什么复杂的技术,自动装箱就是基本类型(int,long)数据可以先自动转换为对应的封装类(Integer,Long)对象,而自动拆箱相反。在本文中,笔者向大家介绍下Java中一个非常重要也非常有趣的特性,就是自动装箱与拆箱,并从源码中解读自动装箱与拆箱的原理,同时这种特性也留有一个陷阱。开发者如果不注意,就会很容易跌入这个陷阱。自动装箱(Autobox转载 2016-10-02 22:28:45 · 484 阅读 · 0 评论 -
Java集合干货系列-(三)HashMap源码解析
前言今天来介绍下HashMap,之前的List,讲了ArrayList、LinkedList,就前两者而言,反映的是两种思想:ArrayList以数组形式实现,顺序插入、查找快,插入、删除较慢LinkedList以链表形式实现,顺序插入、查找较慢,插入、删除方便那么是否有一种数据结构能够结合上面两种的优点呢?有,答案就是HashMap。它是基于哈希表的 Map 接口的实现,以key转载 2016-10-25 12:11:52 · 310 阅读 · 0 评论 -
详解泛型擦除
Why ——引入泛型机制的原因假如我们想要实现一个String数组,并且要求它可以动态改变大小,这时我们都会想到用ArrayList来聚合String对象。然而,过了一阵,我们想要实现一个大小可以改变的Date对象数组,这时我们当然希望能够重用之前写过的那个针对String对象的ArrayList实现。在Java 5之前,ArrayList的实现大致如下:1 public转载 2016-11-02 23:05:30 · 466 阅读 · 0 评论 -
动态代理的两种实现方式
AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执行。不同的切入时机对应不同的Interceptor的种类,如BeforeAdviseInterceptor,AfterAdviseInterceptor以及ThrowsAdviseIntercepto转载 2016-09-23 22:59:33 · 3016 阅读 · 0 评论 -
深入分析动态代理
彻底理解JAVA动态代理代理设计模式定义:为其他对象提供一种代理以控制对这个对象的访问。代理模式的结构如下图所示。动态代理使用java动态代理机制以巧妙的方式实现了代理模式的设计理念。代理模式示例代码public interface Subject { public void doSomething(); } public c转载 2016-09-23 22:57:29 · 214 阅读 · 0 评论 -
getclass()与getsuperclass() (2)
今日遇到this.getClass()和super.getClass()的返回值感到疑惑,经过探索豁然开朗。 getClass()是java中Object类的一个方法,其原型为: public final Class getClass() 返回值为转载 2016-09-23 19:29:26 · 281 阅读 · 0 评论 -
getclass与getsuperclass (1)
Java代码 import Java.util.Date; public class Test extends Date{ public static void main(String[] args) { new Test().test(); } public void test()转载 2016-09-23 19:28:13 · 273 阅读 · 0 评论 -
Instanceof和isInstance的区别
[java] view plain copyclass A{ } class B extends A { } class C extends B { } public class tt { /** * @param原创 2016-09-23 19:15:11 · 304 阅读 · 0 评论 -
Map.entry详解
Map.entrySet() 这个方法返回的是一个Set>,Map.Entry 是Map中的一个接口,他的用途是表示一个映射项(里面有Key和Value),而Set>表示一个映射项的Set。Map.Entry里有相应的getKey和getValue方法,即JavaBean,让我们能够从一个项中取出Key和Value。下面是遍历Map的四种方法:public static void原创 2016-10-09 19:00:40 · 48119 阅读 · 5 评论 -
深入剖析装箱与拆箱机制
深入剖析Java中的装箱和拆箱 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。 以下是本文的目录大纲: 一.什么是装箱?什么是拆箱? 二.装箱和拆箱是如何实现的 三.面试中相关的问题 若有不正之处,请转载 2016-09-16 09:59:51 · 273 阅读 · 0 评论 -
Junit4由浅入深
JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。先简单解释一下什么是Annotation,这个单词一般是翻译成元数据。元数据是什么?元数据就是描述数据的数据。也就是说,这个东西在Java里面可以用来和public、static等关键字一样来修饰类名、方法名、变量名。修饰的作用描述这个数据是做什么用的,差不多和publ转载 2016-11-17 22:45:22 · 291 阅读 · 0 评论