随笔分类 -  Java SE知识整理

摘要:获取class字节码文件常用的三种方法 Class clazz=Class.forName("包.类名称") //在源文件阶段获取class字节码文件 Class clazz=类名.Class //在编译阶段获取class字节码文件 Class clazz=类对象.getClass() //在运行阶 阅读全文
posted @ 2022-02-13 21:30 Lucky_龍 阅读(183) 评论(0) 推荐(0) 编辑
摘要:1.调用元素的hashCode()方法获取元素的哈希值 2.通过哈希值和数组长度获取元素的存储位置(底层是与运算,可以理解为取余) 3.如果该位置没有元素存在,元素唯一,将该元素存储在该位置 4.如果该位置有元素存在,遍历该位置链表的所有元素,和新存入的元素比较哈希值 5.哈希值都不相同,元素唯一, 阅读全文
posted @ 2022-02-13 21:06 Lucky_龍 阅读(192) 评论(0) 推荐(0) 编辑
摘要:垃圾回收机器(Garbage Collection),也叫GC,垃圾回收器主要有一下特点: 当对象不再被程序所使用的时候,垃圾回收器将会将其回收 垃圾回收是在后台运行的,我们无法命令垃圾回收器马上回收资源,但是我们可以告诉他可以尽快回收资源(System.gc()和Runtime.getRuntim 阅读全文
posted @ 2022-02-12 16:29 Lucky_龍 阅读(89) 评论(0) 推荐(0) 编辑
摘要:![](https://img2022.cnblogs.com/blog/2234027/202202/2234027-20220213185830533-1564508326.png) 阅读全文
posted @ 2022-02-12 09:46 Lucky_龍 阅读(29) 评论(0) 推荐(0) 编辑
摘要:在解决这个问题之前,我们首先需要知道什么是哈希冲突,而在了解哈希冲突之前我们还要知道什么是哈希才行;什么是哈希? Hash,一般翻译为“散列”,也有直接音译为“哈希”的,这就是把任意长度的输入通过散列算法,变换成固定长度的输出,该输出就是散列值(哈希值);这种转换是一种压缩映射,也就是,散列值的空间 阅读全文
posted @ 2022-01-23 14:46 Lucky_龍 阅读(169) 评论(0) 推荐(0) 编辑
摘要:①.判断键值对数组table[i]是否为空或为null,否则执行resize()进行扩容; ②.根据键值key计算hash值得到插入的数组索引i,如果table[i]==null,直接新建节点添加,转向⑥,如果table[i]不为空,转向③; ③.判断table[i]的首个元素是否和key一样,如果 阅读全文
posted @ 2022-01-23 14:30 Lucky_龍 阅读(243) 评论(0) 推荐(0) 编辑
摘要:![](https://img2022.cnblogs.com/blog/2234027/202201/2234027-20220120223036332-1420277083.png) 阅读全文
posted @ 2022-01-20 22:45 Lucky_龍 阅读(22) 评论(0) 推荐(0) 编辑
摘要:HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 HashMap的数据结构: 在Java编程语言中, 基本的结构就是两种,一个是数组,另外一个是模拟指针(引用 阅读全文
posted @ 2022-01-20 22:27 Lucky_龍 阅读(49) 评论(0) 推荐(0) 编辑
摘要:反射是框架设计的灵魂。 在平时的项目开发过程中,基本上很少会直接使用到反射机制,但这不能说明反射机制没有用,实际上有很多设计、开发都与反射机制有关,例如模块化的开发,通过反射去调用对应的字节码;动态代理设计模式也采用了反射机制,还有我们日常使用的 Spring/Hibernate 等框架也大量使用到 阅读全文
posted @ 2022-01-19 21:48 Lucky_龍 阅读(492) 评论(0) 推荐(0) 编辑
摘要:Java实现多态有三个必要条件:继承、重写、向上转型。 继承:在多态中必须存在有继承关系的子类和父类。 重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的 方法。 向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具 备技能调用父类的方法 和子类的方法。 子类引 阅读全文
posted @ 2022-01-17 21:31 Lucky_龍 阅读(53) 评论(0) 推荐(0) 编辑
摘要:相同点 synchronized和ReentrantLock都是加锁方式同步,而且都是阻塞式的同步。 不同点 synchronized竞争锁时会一直等待;ReentrantLock可以尝试获取锁,并得到获取结果。 synchronized无法设置获取锁的超时时间;ReentrantLock可以设置获 阅读全文
posted @ 2021-12-07 15:05 Lucky_龍 阅读(104) 评论(0) 推荐(0) 编辑
摘要:1、这两个方法来自不同的类分别是Thread和Object 2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。 3、wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用(使用范围) 4、 阅读全文
posted @ 2021-11-23 10:03 Lucky_龍 阅读(161) 评论(0) 推荐(0) 编辑
摘要:public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。 private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访 阅读全文
posted @ 2021-11-22 21:39 Lucky_龍 阅读(378) 评论(0) 推荐(0) 编辑
摘要:什么是死锁? 指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。 产生死锁的原因? 竞争资源 系统中的资源可以分为两类: 可剥夺资源,是指某进程在获得这类资源后,该资源可以再被其他进程或系统剥夺,CPU和主存均属于可剥夺性资源; 另一类 阅读全文
posted @ 2021-11-22 21:33 Lucky_龍 阅读(51) 评论(0) 推荐(0) 编辑
摘要:byte 1个字节 < chart 2个字节 < short 2个字节 < int 4个字节 < float 4个字节 < long 8个字节 < double 8个字节 boolean 没有规定具体字节数 阅读全文
posted @ 2021-11-05 19:36 Lucky_龍 阅读(220) 评论(0) 推荐(0) 编辑
摘要:常用API 1.Object类 Object类是所有类以及数组的顶层父类 a)toString方法:返回当前对象的字符串表示 Object类的toString方法,结果表示对象的内存地址,没有意义,需要重新打印对象的属性值 组成:getClass().getName() + '@' + Intege 阅读全文
posted @ 2021-08-11 22:11 Lucky_龍 阅读(74) 评论(0) 推荐(0) 编辑
摘要:1.线程相关的概念 1.程序(program):是一个静态的状态,一般存储在硬盘中 2.进程(process):一个正在运行的程序是一个动态的概念,一般存储在内存中。 3.线程(thread):一条独立的执行路径。多线程,在执行某个程序的时候,该程序可以有多个子任务,每个线程都可以独立的完成其中一个 阅读全文
posted @ 2021-08-11 19:07 Lucky_龍 阅读(32) 评论(0) 推荐(0) 编辑
摘要:定义:类的对象个数只有有限个,确定的 eg:星期:星期一、星期二、星期三......、星期天 ​ 性别:Man、Woman ​ 季节:Spring(春天).....Winter(冬天) ​ 线程状态:创建、就绪、运行、阻塞、死亡 ​ 支付方式:现金、微信、支付宝、银行卡、信用卡 当定义一组常量时,强 阅读全文
posted @ 2021-08-06 17:32 Lucky_龍 阅读(32) 评论(0) 推荐(0) 编辑
摘要:集合和数组的区别 数组:用来存储相同数据类型的一个容器,数组一旦确定,长度不可变 集合:用来存放对象引用的一个容器 区别 数组: 1)数组的长度是不可变的,集合的长度是可变的 2)数组可以存基本数据类型和引用数据类型 集合: 只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类 集合体系结构 阅读全文
posted @ 2021-08-03 19:57 Lucky_龍 阅读(68) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示