![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
爱吃荔枝de圆滚滚
语言是交流工具,技术是交流手段。业务的转换和需求的理解是重点。但 没有技术拿什么交流?
展开
-
JAVA-String、StringBuffer、StringBuilder的区别
字符串是java开发过程中最常用的。总结一下大概的区别。具体如下:1、变与不变 String字符串一旦定义 则其中对象不可改变,具体原因可以查看JDK源码 因为有“final”修饰符,所以可以知道string对象是不可变的。 private final char value[]; StringBuffer和StringBuilder都是继承自AbstractStr...原创 2017-11-01 10:48:59 · 197 阅读 · 0 评论 -
JAVA-集合类关系
1. Interface Iterable迭代器接口,这是Collection类的父接口。实现这个Iterable接口的对象允许使用foreach进行遍历,也就是说,所有的Collection集合对象都具有"foreach可遍历性"。这个Iterable接口只有一个方法: iterator()。它返回一个代表当前集合对象的泛型<T>迭代器,用于之后的遍历操作1.1 Collection...原创 2017-11-16 14:15:52 · 331 阅读 · 0 评论 -
执行iterator.remove()方法时出现java.lang.IllegalStateException
Q: 迭代器是开发中很常用的 但是他的remove()不怎么常用 偶尔测试发现他的用法如果直接执行itertor.remove() 会出现java.lang.IllegalStateException 如下: A: 查看源代码发现执行reomve如下 而lastRet默认为-1 (源代码中定义)所以会出现这个异常 而在iterator.next...原创 2017-11-02 17:19:32 · 1544 阅读 · 2 评论 -
ThreadLocal引起内存泄露总结
我们都知道ThreadLocal能给每一个线程创建一个副本,确保多个线程访问资源的安全性。但是ThreadLocal使用不当会造成内存泄漏。首先分析一下ThreadLocal内存泄漏原理。 ThreadLocal底层其实是一个ThreadLocalMap,是以<key, value>形式存储变量副本的。但是由于key对象使用的是弱引用,所以JVM每次GC都会回收key对...原创 2018-11-14 16:07:03 · 309 阅读 · 0 评论 -
栈源码分析
栈底层实现是一个数组,可以做到先进后出原则。入栈和出栈都操作栈顶元素 package stack.init; public class MyStack { /** * 栈最大长度 */ private int size; /** * 栈底层实现 数组 */ private int[] arrays; /** ...原创 2018-12-12 15:10:38 · 315 阅读 · 0 评论 -
数组简单源码
数组简单源码实现,做一个笔记。 package arrays.init; /** * 数组初始化 */ public class MyArrays { /** * 定义一个数组 */ private int[] intArrays; /** * 定义数组的实际长度 */ private int elems; ...原创 2018-12-11 15:50:00 · 374 阅读 · 0 评论 -
数组简单排序
java对数组排序进行封装Arrays.sort() 里面进行了快速排序。手动实现一下数组的简单排序 冒泡排序 插入排序 选择排序 package arrays.simples.sort; public class SimpleSort { /** * 数组冒泡排序 */ public static int[] bubbleSort(int[] arr...原创 2018-12-12 10:32:47 · 285 阅读 · 0 评论