随笔分类 -  Java

摘要:一、RMI 1.1 概念 RMI是用Java在JDK1.2中实现的,它大大增强了Java开发分布式应用的能力,Java本身对RMI规范的实现默认使用的是JRMP协议。而在Weblogic中对RMI规范的实现使用T3协议 JRMP:Java Remote Message Protocol,Java远程 阅读全文
posted @ 2023-04-10 18:12 夏尔_717 阅读(206) 评论(0) 推荐(0) 编辑
摘要:一、概述 Stack是栈。它的特性是:先进后出(FILO, First In Last Out)。 java工具包中的Stack是继承于Vector(矢量队列)的,由于Vector是通过数组实现的,这就意味着,Stack也是通过数组实现的,而非链表。当然,我们也可以将LinkedList当作栈来使用 阅读全文
posted @ 2023-03-15 11:45 夏尔_717 阅读(41) 评论(0) 推荐(0) 编辑
摘要:一、概述 Hashtable是一个比较古老的Map实现类,从它的名称就可以看得出来,因为没有遵循Java的语言规范。它和HashMap很像,同属于散列表,有以下特性: 线程安全,这也估计算是唯一一个优于HashMap的特性了吧; Hashtable不允许key或者value为null; 自从JDK1 阅读全文
posted @ 2023-03-14 17:39 夏尔_717 阅读(43) 评论(0) 推荐(0) 编辑
摘要:一、概述 理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类。由于所有的类都继承在Object类,因此省略了extends Object关键字。 Object类属于java.lang包,此包下的所有类在使用时无需手动导入,系统会在程序编译期间自动导入。Objec 阅读全文
posted @ 2023-02-22 16:51 夏尔_717 阅读(66) 评论(0) 推荐(0) 编辑
摘要:一、概述 Collections工具类提供了大量针对Collection和Map的操作,都为静态(static)方法,总体可分为四类: 排序操作 查找、替换操作 同步控制 设置不可变(只读)集合 二、排序操作 Collections提供以下方法对List进行排序操作: void reverse(Li 阅读全文
posted @ 2023-02-17 16:42 夏尔_717 阅读(57) 评论(0) 推荐(0) 编辑
摘要:一、概述 String类的一个最大特性是不可修改性,而导致其不可修改的原因是在String内部定义了一个常量数组,因此每次对字符串的操作实际上都会另外分配分配一个新的常量数组空间。 二、创建字符串对象的方式 2.1 四种方式 方式一:直接赋值(常用) // 直接赋值方式创建对象是在方法区的常量池 S 阅读全文
posted @ 2023-02-09 18:58 夏尔_717 阅读(201) 评论(0) 推荐(0) 编辑
摘要:一、概述 SPI(Service Provider Interface),是JDK内置的一种服务注册与发现的机制,通过解耦服务提供者与服务使用者,实现了服务创建 & 服务使用的关注点分离。用来启用框架扩展和替换组件,这一机制为很多框架扩展提供了可能,比如在Dubbo、JDBC中都使用到了SPI机制。 阅读全文
posted @ 2023-02-02 14:00 夏尔_717 阅读(96) 评论(0) 推荐(0) 编辑
摘要:一、多线程概述 1.1 进程和线程概述 进程:操作系统中的应用程序,一个进程就是一个应用程序。进程A和进程B的内存独立不共享资源。 线程:CPU调度的最小单元,进程的一个执行流/指定单元,一个进程可以有多个线程。 PS:Java程序启动的时候,JVM就是一个进程,JVM会执行main方法,main方 阅读全文
posted @ 2023-01-05 21:51 夏尔_717 阅读(64) 评论(0) 推荐(0) 编辑
摘要:一、关键字汇总 访问控制:private、protected、public、default 修饰符:class、abstract、extends、implements、interface、final、strictfp、static、synchronized、transient、volatile、na 阅读全文
posted @ 2022-12-20 14:11 夏尔_717 阅读(207) 评论(0) 推荐(0) 编辑
摘要:# 一、概述 对于`Java`中的对象,我们只能使用基本运算符`==`、`!=`来判断一下地址是否相等,不能使用`>`、` 简单点说就是把比较器写在类的内部,一旦实现了`Comparable`接口,就说明这个类支持排序。 ## 2.2 compareTo方法 先看看`Comparable`接口,它的 阅读全文
posted @ 2022-12-15 18:57 夏尔_717 阅读(595) 评论(0) 推荐(0) 编辑
摘要:一、简述 Vector的操作单线安全,加入了同步代码块,多线程安全(但不绝对),可以看成线程安全版本的ArrayList(其实也不绝对,在使用还是会加锁操作)。 相比于ArrayList其效率低,因为加入了synchronized操作。 二、源码分析 2.1 成员变量 在Vector的源码中,其成员 阅读全文
posted @ 2022-10-08 16:40 夏尔_717 阅读(64) 评论(0) 推荐(0) 编辑
摘要:多线程以及多进程改善了系统资源的利用率并提高了系统的处理能力。然而,并发执行也带来了新的问题——死锁。 一、什么是死锁 死锁是指两个或两个以上的进程(线程)在运行过程中因争夺资源而造成的一种僵局(Deadly-Embrace),若无外力作用,这些进程(线程)都将无法向前推进。 下面我们通过一些实例来 阅读全文
posted @ 2022-06-12 21:31 夏尔_717 阅读(23) 评论(0) 推荐(0) 编辑
摘要:一、概述 EnumMap是一个用于存储key为枚举类型的map,底层使用数组实现(K,V双数组)。下面是其继承结构: public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> implements java.io.Ser 阅读全文
posted @ 2022-06-03 23:24 夏尔_717 阅读(52) 评论(0) 推荐(0) 编辑
摘要:一、概述 EnumSet是一个抽象类,不能直接使用,该类有两个子类,RegularEnumSet和JumboEnumSet。即枚举值的个数小于等于64时使用RegularEnumSet,大于64时使用JumboEnumSet。 这两个子类都是非public的,只能包内访问。 当EnumSet需要进行 阅读全文
posted @ 2022-06-03 23:23 夏尔_717 阅读(69) 评论(0) 推荐(0) 编辑
摘要:一、概述 RegularEnumSet适用于枚举值个数小于等于64的EnumSet,RegularEnumSet定义了一个私有的long类型变量elements,long类型一共64位,如果某一位为1则表示该位对应的值对应的枚举值已经添加到RegularEnumSet中了,具体细节参考下面的源码分析 阅读全文
posted @ 2022-06-02 22:37 夏尔_717 阅读(84) 评论(0) 推荐(0) 编辑
摘要:一、概述 StringJoiner是java.util包下的一个工具类,是JDK 1.8引入的字符串拼接器。 作用是在构造字符串时,可以自动添加前缀、后缀及分隔符,而不需要自己去实现这些添加字符的逻辑。 虽然这也可以在StringBuilder类的帮助下在每个字符串之后附加分隔符,但StringJo 阅读全文
posted @ 2022-06-02 22:37 夏尔_717 阅读(160) 评论(0) 推荐(0) 编辑
摘要:一、概述 JumboEnumSet适用于枚举值个数大于64个的枚举类,其底层实现跟RegularEnumSet一样都是根据位是否为1来判断该枚举值是否添加到了Set中,不过因为枚举值个数大于64个,无法用64位的long类型来记录所有的枚举值,所以将RegularEnumSet中long类型的ele 阅读全文
posted @ 2022-06-02 22:37 夏尔_717 阅读(116) 评论(0) 推荐(1) 编辑
摘要:一、简介 LinkedHashMap内部维护了一个双向链表,能保证元素按插入的顺序访问,也能以访问顺序访问,可以用来实现LRU缓存策略。 LinkedHashMap可以看成是LinkedList + HashMap。 二、继承体系 LinkedHashMap继承HashMap,拥有HashMap的所 阅读全文
posted @ 2022-05-29 14:03 夏尔_717 阅读(66) 评论(0) 推荐(0) 编辑
摘要:一、概述 Enum的全写是Enumeration,这个词的翻译是列举、逐条陈述、细目。在程序语言中,枚举类型是一种特殊的数据类型(常用的数据类型比如字符串、整型),这种数据类型的变量值限定在固定的范围,比如季节只有春夏秋冬,月份是12个。 枚举类型是JDK 5之后引进的一种非常重要的引用类型,可以用 阅读全文
posted @ 2022-05-23 20:14 夏尔_717 阅读(450) 评论(0) 推荐(0) 编辑
摘要:一、Date类 Data·类表示特定的瞬间,精确到毫秒,它是java.util·包下的类,用之前需要先导包 1.1 时区 GMT(Greenwich Mean Time)代表格林尼治标准时间,而CST却同时可以代表如下4个不同的时区: Central Standard Time (USA) UT-6 阅读全文
posted @ 2022-05-23 20:14 夏尔_717 阅读(708) 评论(0) 推荐(0) 编辑

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