2018年04月的内容

JAVA

JAVA 动态代理原理和实现

herman 6年前 (2018-04-30) 2119浏览 0评论

在 Java 中动态代理和代理都很常见,几乎是所有主流框架都用到过的知识。在面试中也是经常被提到的话题,于是便总结了本文。 Java动态代理的基本原理为:被代理对象需要实现某个接口(这是前提),代理对象会拦截对被代理对象的方法调用,在其中可...

JAVA

JVM 进程、线程

herman 6年前 (2018-04-29) 3476浏览 0评论

很多程序员对于线程和进程还不是很清楚。尤其是在面试官问到 Redis 的知识的时候,很容易掉进面试陷阱。 其实我在 3 年前也写过一篇《线程和进程》。现在还有很多网友问起我,我这里再做一篇分享。 进程 我们都知道计算机的核心是C...

JAVA

Threadlocal 和 ThreadLocalMap 原理解析

herman 6年前 (2018-04-29) 4692浏览 0评论

java 中提供了两个线程安全的操作方式,一个是 Threadlocal ,一个是ThreadLocalMap。本文介绍他们的区别和实现原理。 Threadlocal Threadlocal 的属性包括 threadLocalHash...

JAVA

JAVA 反射机制

herman 6年前 (2018-04-29) 2182浏览 0评论

Calss文件由类装载器转载后,在JVM中形成一份描述Class结构的元信息对象,通过该元信息反射对象可以获知Class的结构信息:构造函数、属性和方法。 JAVA反射对象允许程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员...

JAVA

Java ClassLoader 实现原理和加载机制

herman 6年前 (2018-04-29) 5808浏览 0评论

Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中,JVM在加载类的时候,都是通过ClassLoader的loadClass()方法来加载class的,l...

JAVA

Spring AOP 面试难点总结

herman 6年前 (2018-04-29) 11769浏览 0评论

Spring AOP 经常是各大面试官必提的知识点。我这里总结了 AOP 的各种关键知识点,希望能帮助到大家。 AOP 它能做什么:事务、安全、日志、缓存. 以前都是OOP的思想下编程模型,一切都是面向对象,显得井然有序,但某一...

JAVA

ByteBuffer 的编码和解码

herman 6年前 (2018-04-24) 9541浏览 0评论

数据传输中我们使用的是ByteBuffer对象作为缓冲区,如果在通道两端我们通信的内容是文本数据,这就涉及到ByteBuffer与CharBuffer的转换。我们可以使用Charset类实现这个转换的功能。 解码示例 ByteBuff...

JAVA

ByteBuffer 直接缓冲区和非直接缓冲区

herman 6年前 (2018-04-24) 10880浏览 0评论

ByteBuffer 在平时工作中可能用到的不多,但是面试中经常会被问到。本文总结了一些关于 ByteBuffer 的用法和相关 API 介绍。 下面是创建ByteBuffer对象的几种方式: static ...

业余杂谈

为什么需要单元测试

herman 6年前 (2018-04-24) 8968浏览 0评论

我们很多人对:测试驱动开发(TDD:Test-Driven Development)、单元测试、持续集成等并不陌生,但是他们很可能不明白我们为什么需要单元测试?本文将告诉你我们为什么需要单元测试! 为什么需要单元测试 谁都不敢保证...

JAVA

java8 Stream 教程

herman 6年前 (2018-04-24) 8340浏览 0评论

在jdk中有许多集合类数据结构,提供了丰富的集合api,但是它们对一些复杂的转换处理上依然显得笨重与繁琐,且这些容器对数据处理上并没有提供一些直观便捷的操作,于是后来commons、guava诞生了,他们为方便迭代并处理集合数据而生,但是若期望对...

JAVA

解决 maven 项目 idea 无法导入问题

herman 6年前 (2018-04-24) 11927浏览 0评论

idea无法识别导入的maven项目,刚导入还好好的,后来突然发现maven无法现在依赖,无法识别项目了。最近发现了原因,并总结如下: 删除项目的 .idea *.iml 文件,然后重新导入 若上述步骤不行,清除项目缓存,再重...

JAVA

什么是编码

herman 6年前 (2018-04-24) 4967浏览 0评论

编码就是将可读的字符翻译成对应的字节,以前ASCII编码仅仅对英文字母及有限的特殊字符编码,那么127个坑位即一个字节(排列组合)是够了的,但是后来出现了诸多国家语言,127个坑位明显不过了,就需要拓展编码单位长度来容纳这些更多的字符,以下就是各...

JAVA

java 序列化教程

herman 6年前 (2018-04-24) 5413浏览 0评论

序列化是将对象的状态信息转换为可存储或可传输的形式的过程,简而言之,把对象转换为字节数组的过程称之为对象的序列化。反序列化即序列化的逆过程。把字节数组恢复为对象的过程称为对象的反序列化。 序列化使用场景 通过将对象序列化为字节数组...