![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
文章平均质量分 78
Java基础
unknown-null
这个作者很懒,什么都没留下…
展开
-
Java中的异常
1.异常的分类在Java中,通过Throwable及其子类描述各种不同的异常类型。ErrorError是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。 例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不 再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。Exception1)checked exception(受检异常.原创 2021-03-05 12:29:29 · 309 阅读 · 0 评论 -
Javassist 使用指南(一)
=======================本文转载自简书,感谢原作者!。原链接如下:https://www.jianshu.com/p/43424242846b=======================1. 读写字节码我们知道 Java 字节码以二进制的形式存储在 class 文件中,每一个 class 文件包含一个 Java 类或接口。Javaassist 就是一个用来处理 Java 字节码的类库。在 Javassist 中,类Javaassit.CtClass表示 c..转载 2021-03-10 17:10:32 · 519 阅读 · 1 评论 -
解析JDK动态代理实现原理
JDK动态代理使用实例代理模式的类图如上。关于静态代理的示例网上有很多,在这里就不讲了。因为本篇讲述要点是JDK动态代理的实现原理,直接从JDK动态代理实例开始。首先是Subject接口类。package proxy.pattern;public interface Subject { void request() throws Exception;}接着是RealSubject类。package proxy.pattern;public class RealSubje原创 2021-03-04 15:35:12 · 204 阅读 · 1 评论 -
Btrace使用入门
目录1.什么是BTrace2.BTrace使用场景BTrace可以做什么?3.使用限制4.使用方法及样例4.1使用方法4.2使用样例2.查看哪些方法调用了 System.gc() ,调用栈是怎样的3.打印某个类中某一方法的入参和返回值5.拦截方法定义定位方法拦截时机参考资料1.什么是BTraceBTrace是sun公司推出的一款Java 动态、安全追踪(监控)工具,可以在不用重启的情况下监控系统运行情况,方便的获取程序运行时的数据信息,如方法参数、原创 2021-03-04 15:32:32 · 575 阅读 · 1 评论 -
《Effective Java 2nd》第2章 创建和销毁对象
第1条:考虑使用静态工厂方法代替构造器通过使用静态工厂方法而不是使用构造器来创建类。举例:Boolean.valueOf(boolean)方法,将boolean转换为Boolean对象引用。有以下优势:1)静态工厂方法有名称,可以表示方法的意思2)不必在每次调用的时候都创建新对象(对象缓存能力)。不可变类可预先构建实例,缓存起来重复使用。3)可以返回原返回类型的任何子类型的对象4)在创建参数化类型的时候代码更简洁。//我们平时创建listList<String&原创 2021-03-04 15:30:31 · 80 阅读 · 1 评论 -
《Effective Java 2nd》第4章 类和接口
目录第13条: 使类和成员的可访问性最小化第14条:在公有类中使用访问方法而非公有域第15条:使可变性最小化第16条:复合优先于继承第17条:要么为继承而设计,并提供文档说明,要么就禁止继承第18条:接口优先于抽象类第19条:接口只用于定义类型第20条:类层次优于标签类第21条:用函数对象表示策略第22条:优先考虑静态成员类第13条: 使类和成员的可访问性最小化尽可能使每个类或者成员不被外界访问。提供尽可能小的访问级别。final维持字段不可变性,字段要么原创 2021-03-04 15:29:23 · 127 阅读 · 1 评论 -
同样的输入,为什么Objects.hash()方法返回的hash值每次不一样?
目录背景why最佳实践参考资料背景开发过程中发现一个问题,项目中用Set保存AopMethod对象用于去重,但是发现即使往set中添加相同内容的对象,每次也能够添加成功。AopMethod类的部分代码如下:public class AopMethod { private String methodName; private Class<?>[] parameterTypes = new Class<?>[]{}; //是否需要原创 2021-03-04 15:27:07 · 2140 阅读 · 1 评论 -
《Effective Java 2nd》第7章 方法
关注点:可用性、健壮性、灵活性第38条 检查参数的有效性在编写方法或者构造器的时候,应该考虑参数有哪些限制,并显式检查第39条 必要时进行保护性拷贝如果类具有从客户端得到或者返回到客户端的可变组件,为了维持不可变性,必要时进行保护性拷贝。否则,在文档中写明,不可修改此组件。举例:public final class Period { private final Date start; private final Date end; public Peri.原创 2021-03-04 15:21:36 · 82 阅读 · 1 评论 -
《Effective Java 2nd》第8章 通用程序设计
目录第45条 将局部变量的作用域最小化第46条 for-each循环优先于传统的for循环第47条 了解和使用类库第48条 如果需要精确的答案,避免使用float和double第49条 基本类型优先于装箱基本类型第50条 如果其他类型更适合,尽量避免使用字符串第51条 当心字符串连接的性能第52条 通过接口引用对象第53条 接口优先于反射机制第54条 谨慎地使用本地方法第55条 谨慎地进行优化第56条 遵守普遍接受的命名惯例第45条 将局部变量的作用域最小原创 2021-03-04 15:18:44 · 61 阅读 · 1 评论 -
Java注解
元注解转存失败重新上传取消转存失败重新上传取消元注解是什么意思呢?元注解是可以注解到注解上的注解,或者说元注解是一种基本注解,但是它能够应用到其它的注解上面。元标签有 @Retention、@Documented、@Target、@Inherited、@Repeatable 5 种。@RetentionRetention 的英文意为保留期的意思。当 @Retention 应用到一个注解上的时候,它解释说明了这个注解的的存活时间。它的取值如下:RetentionPolicy.原创 2021-03-04 15:14:39 · 75 阅读 · 0 评论 -
snappy-java两种压缩方式的区别
1.Snappy-java项目地址https://github.com/xerial/snappy-java2.Snappy-java两种压缩方式使用Snappy.compress进行压缩String dataString = "The quick brown fox jumps over the lazy dog";byte[] compressed = Snappy.compress(dataString.getBytes("UTF-8"));byte[] uncompressed原创 2021-03-04 14:59:35 · 2120 阅读 · 1 评论 -
JDK 1.7中HashMap死循环问题总结
针对HashMap的死循环问题,看了网上的多篇文章,明白了问题出现的原因,但网上的文章大都过于细节,后面回顾无法掌握重点。于是,写这篇文章,简要介绍下自己的理解,方面后面回顾。现象CPU使用率飙高,达100%。使用jstack看线程堆栈,会发现线程阻塞在hashMap的get()方法上。原因根本原因:JDK 1.7 HashMap,多线程并发扩容,导致链表构成了环。详细细节,在这篇文章中讲解的很清楚,疫苗:JAVA HASHMAP的死循环为什么会构成环?个人理解,其实就.原创 2021-01-08 12:03:58 · 400 阅读 · 0 评论 -
MYSQL获取自增主键【4种方法】
MYSQL获取自增主键【4种方法】转载 2015-05-22 20:51:18 · 600 阅读 · 0 评论 -
Java学习资源整理
Java多线程教程原创 2015-05-17 16:34:19 · 339 阅读 · 0 评论