Java 基础知识
文章平均质量分 64
日常java基础知识总结
苍老流年
对未来的不确定与焦虑保持独立的判断与认知
展开
-
Java HashMap 删除元素时报错:java.util.ConcurrentModificationException
进入循环体后,map.remove()方法实际上调用了父类HashMap的removeNode方法,在该方法中modCount会自增,而expectedModCount不变。继续循环,在nextNode()方法中,由于modCount!迭代器自己封装的remove方法,最后一步多了一个操作 expectedModCount = modCount。第一次进入循环,由于modCount和expectedModCount相等,第一次循环获取了对象Entry。根据报错信息找到源代码位置,由于modCount!原创 2023-04-20 14:23:26 · 573 阅读 · 0 评论 -
Idea如何远程调试
背景分布式系统中日志是定位各种线上问题的重要手段,但是日志不能完全反映程序运行时的所有信息。下面介绍一种重量级的手段-远程调试,JVM远程调试通过JDWP协议。JDWP 是 Java Debug Wire Protocol 的缩写,它定义了调试器(debugger)和目标虚拟机(target vm)之间的通信协议。Target vm 中运行着我们要调试的 Java 程序,它与一般运行的 JVM 没有什么区别,只是在启动时加载了 JDWP Agent 从而具备了调试功能。而 debugger 就是我们本地原创 2020-05-27 17:56:10 · 294 阅读 · 0 评论 -
==与equals到底有啥不一样
基础原创 2020-04-15 11:34:19 · 151 阅读 · 0 评论 -
String,StringBuilder和StringBuffer有啥不一样
对比原创 2020-04-17 11:05:04 · 126 阅读 · 0 评论 -
java包装类自动拆装箱tips(-128到127缓存问题)
-128到127缓存问题java包装类很多同学在日常的工作中都会大量使用,它将基本类型封装成对象后使其也能像普通对象一样具有面向对象的特性,但是也有一些tips需要注意。java包装类中Integer和Long对-128到127的对象会先创建一个缓存池,在使用这个范围内的对象valueOf方法会直接返回缓存池中的对象,只有不在这个范围内的对象才重新创建。以Integer的源代码为例,具体实现...原创 2020-04-16 10:47:54 · 301 阅读 · 0 评论 -
抽象类与接口的区别
https://dongchuan.gitbooks.io/java-interview-question/linux/list_file.html原创 2018-06-13 16:20:03 · 96 阅读 · 0 评论 -
Java异常知识总结
1.为什么需要异常在没有异常机制的时候我们对错误处理一般是这样实现的:通过函数的返回值来判断是否发生了异常(这个返回值通常是已经约定好了的),调用该函数的程序负责检查并且分析返回值。虽然可以解决异常问题,但是这样做存在以下缺陷:标准不统一。返回值的约定依赖于实现者个人,可能造成标准不一致。代码可读性与可维护性降低。将异常处理代码和程序代码混淆在一起不方便阅读,更不利于后期维护。为...原创 2018-06-15 16:44:14 · 327 阅读 · 0 评论 -
BufferedReader读取中文文本乱码
https://my.oschina.net/u/2391658/blog/859874原创 2019-03-04 16:13:43 · 11207 阅读 · 6 评论 -
Comparable和Comparator有啥不一样
Comparable 是排序接口,若一个类实现了Comparable接口,就意味着“该类支持排序”,这时调用集合的排序方法时就可以实现排序。Comparable 定义Comparable位于java.lang包下。具体定义如下:public interface Comparable<T> { /** ** 返回值: 0 => this对象与对象o相等 大于0...原创 2020-04-14 16:19:17 · 122 阅读 · 0 评论 -
java反射中Class.forName和classloader差异对比
https://blog.csdn.net/ibliplus/article/details/81175537原创 2020-04-17 10:23:14 · 289 阅读 · 0 评论