Java
漠翊歌
喜欢写写博客,记录自己的学习过程
展开
-
模拟jdk1.7HashMap多线程下扩容死循环问题
引发死循环的原因主要在transfer函数上 void transfer(Entry[] newTable, boolean rehash) { int newCapacity = newTable.length; for (Entry<K,V> e : table) { while(null != e) { Entry<K,V> next = e.next;原创 2020-12-01 18:54:34 · 467 阅读 · 0 评论 -
objc[9000]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0
objc[9000]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin/java (0x1074a44c0) and /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x10751e4e0).原创 2020-12-01 15:39:36 · 225 阅读 · 0 评论 -
java abstract关键字
/** * abstract可以修饰class,interface,方法, * 不可以修饰静态方法,final方法,构造方法 * 1.abstract修饰class,变成抽象类: * 抽象类不可以实例化,但是可以有非抽象的构造函数给子类使用; * 抽象类可以定义成员变量; * 抽象类可以拥有0到多个抽象方法。有抽象方法的类一定是一个抽象类; * 抽象类实现接口的时候不必实现所有抽象方法; * 抽象类中所有字段和方法都是protected或者p原创 2020-11-20 12:20:26 · 144 阅读 · 0 评论 -
String,StringBuilder,StringBuffer三者的区别
String,StringBuilder,StringBuffer三者的区别,发现自己确实对这方面的知识不是很了解.所以学习了一下做个笔记.StringString 类是一个常量,String类本身和其中存储字符的数组都是用final关键字修饰的,所以不能被继承 /** The value is used for character storage. */ private final char value[];String str="hello world"和String str原创 2020-11-20 12:26:59 · 138 阅读 · 1 评论 -
java finally关键字
java finally关键字finally是配合try/catch一起使用的关键字,语法如下: try { } catch (Exception e) { e.printStackTrace(); } finally { }其中try所包围的代码是可能出现异常的代码块,catch用来捕获发生的异常并作处理。不管有没有异常出现,finally所包围的代码是一定会被执行的,所以finally常用于来关闭资源,防止资源原创 2020-07-07 09:50:04 · 461 阅读 · 0 评论 -
java final关键字
java final关键字final关键字基本用法final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。修饰类当用final修饰一个类的时候,表示这个类不能被继承。final类中的成员变量可以根据需要设置为final,并且final类中的所有的方法都会被隐式的指定为final方法不能被重写。修饰方法Final修饰的方法不能被重写,但是子类可以用父类中final修饰的方法;修饰变量final成员变量表示常量,只能被赋值一次,赋值后不再改变。当final修饰一个基本数据类型,基本原创 2020-07-07 09:49:08 · 102 阅读 · 0 评论 -
两个数组的equals是否会遍历每个元素进行比较
两个数组用Object 里equals方法比较时,会逐个遍历其中的元素,对每个元素进行比较今天在刷java基础题时出现一个题目,两个数组用Object 里equals方法比较时,会逐个遍历其中的元素,对每个元素进行比较。做了个测试/** * @Author: caicai * @Date: 2020/6/28 * @Description: * 测试 两个数组的equal */public class ArrayTest { public static void main(Strin原创 2020-06-28 22:16:55 · 1231 阅读 · 0 评论 -
ArrayList源码分析
ArrayListArrayList简介ArrayList就是动态数组,是Array的复杂版本。List 接口的大小可变数组的实现,位于API文档的java.util.ArrayList。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于 Vector 类,除了此类是不同步的)。A...原创 2020-05-08 13:38:36 · 127 阅读 · 0 评论 -
HashMap源码分析
HashMap源码分析HashMap简介基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代 ...原创 2020-05-08 10:01:17 · 191 阅读 · 0 评论 -
Java多线程详解
Java多线程并发和并行并发:多个不同的事务在同一时间间隔执行。并行:多个不同的事务在同一时间点上执行。举一个通俗的例子,假设你是一个厨师,因为太忙了,所以你不得不一下子开两个火同时炒两个菜。你的面前是两个锅,如果你技术高超,一只手负责炒一个锅的菜,左右手同时开工,那么这就是并行,因为你同时在执行这两个任务。而如果你的技术不够高超,先炒一边,然后炒几下又迅速跑到另一边再翻炒几下,这样快速的...原创 2020-05-08 09:59:13 · 339 阅读 · 2 评论 -
设计模式之策略模式
策略模式概念策略模式的思想是针对一组算法,将每种算法都封装到具有共同接口的独立的类中,从而使他们可以互相替换。策略模式的最大特点是使算法可以在不影响客户端的情况下发生变化,从而改变不同的功能。特点策略模式体现了面向对象程序设计中的非常重要的两个原则:1.封装变化的概念。2.编程中使用接口,而不是使用的是具体的实现类(面向接口编程)。策略模式的应用在正式应用策略模式之前,我们先讲一个...原创 2020-05-08 09:56:47 · 988 阅读 · 0 评论