随笔分类 -  Java 基础

1 2 3 4 下一页

IDEA - .puml文件是什么?PlantUML基础使用教程
摘要:.puml文件是什么? 是根据PlantUML插件生成的一个类图格式。如果需要查看,也必须在插件的帮助下,查看类图 PlantUML基础使用教程 一、下载idea插件 idea从 FIle-->Settings-->Plugins-->Marketplace 进入到插件下载界面,搜索PlantUML 阅读全文

posted @ 2024-03-12 15:26 frank_cui 阅读(2473) 评论(0) 推荐(0) 编辑

设计模式 - Immutable 模式(Java不变集合类 vs Google Guava不变集合类)
摘要:总结 JDK中的unmodifiableList的构造函数是对原始集合的浅拷贝, 而Guava.ImmutableList.copyOf是对原始集合的深拷贝 public class ImmutableDemo { public static void main(String[] args) { L 阅读全文

posted @ 2023-11-10 16:49 frank_cui 阅读(20) 评论(0) 推荐(0) 编辑

Java 基础 - 多态(动态绑定)的底层原理:虚函数表
摘要:为了实现Java方法调用的动态绑定,HotSpot使用了与C++虚函数类似的机制,同时为了避免每个对象都维护一个虚函数表,就是设计了Oop-Klass模型,用Klass类保存类的元数据和虚函数表。 多态的理解 从java语言层面看,多态是指在编译期间不确定实际类型,在运行期间才根据实际类型调用具体的 阅读全文

posted @ 2023-11-02 17:41 frank_cui 阅读(208) 评论(0) 推荐(0) 编辑

Java 基础 - javaagent原理及实践
摘要:Java Agent是什么? java agent本质上可以理解为一个jar包插件,这个jar包通过JVMTI(JVM Tool Interface)完成加载,最终借助JPLISAgent(Java Programming Language Instrumentation Services Agen 阅读全文

posted @ 2023-02-02 13:25 frank_cui 阅读(410) 评论(0) 推荐(0) 编辑

Java 基础 - 正则表达式
摘要:一、正则表达式 正则表达式是Java中一门独立的语言,用于检测特定字符串是否符合规则。正则表达式就是用来定义匹配的规则的。 1.1 规则定义 1.2 用法 System.out.println("aaabbb".matches("(a|b)*"));//只能是a或b位数任意 System.out.p 阅读全文

posted @ 2022-08-26 15:49 frank_cui 阅读(129) 评论(0) 推荐(0) 编辑

Java 基础 - 优雅初始化
摘要:List优雅初始化 List<String> ukAttribute = Arrays.asList("bookName","bookProp","asOfDate","displayType","displaySubType","calcDataSource","summaryType"); Ha 阅读全文

posted @ 2022-03-25 10:39 frank_cui 阅读(64) 评论(0) 推荐(0) 编辑

Java - Relative Path 相对路径
摘要: 阅读全文

posted @ 2021-12-02 16:44 frank_cui 阅读(55) 评论(0) 推荐(0) 编辑

Java 基础 - 错误码规范
摘要:B站课程谷粒商城的范例: 阿里巴巴的案例: 阅读全文

posted @ 2021-10-17 23:32 frank_cui 阅读(275) 评论(0) 推荐(0) 编辑

Java 基础 - 自定义枚举类
摘要: 阅读全文

posted @ 2021-10-17 23:13 frank_cui 阅读(26) 评论(0) 推荐(0) 编辑

Java 基础 - Java8 Stream常用函数及使用说明
摘要:1. 什么是Stream? Stream作为java8中增加的一个非常重要特性,为我们提供了对集合的一系列操作,简化了对集合元素的操作复杂度,让我们可以更加专注与业务逻辑的实现,stream的操作一般需要和Lambda表达式进行结合使用,达到简便的操作及清晰的代码。 Stream的使用主要分两部分: 阅读全文

posted @ 2021-08-27 23:36 frank_cui 阅读(608) 评论(0) 推荐(0) 编辑

Java 基础 - 同一个String多次调用hashcode,返回值始终相等么?
摘要:总结 答案:不一定。不同的策略,hashcode返回值会不一样。 1-根据Object.hashcode()的注释,说明hashCode返回值与对象内存地址有一定关系。但只是其中一种策略而已。 2-根据c++ native hashcode()的源码,通过一个JVM启动参数-XX:hashCode, 阅读全文

posted @ 2021-02-05 00:56 frank_cui 阅读(415) 评论(0) 推荐(0) 编辑

Java 基础 - 既然泛型被擦除了,为什么调用<T>get()不需要进行强制转换?
摘要:因为类型擦除的问题,所有的泛型类型变量最后都会被替换为原始类型。 既然都被替换为原始类型,那么为什么我们在获取的时候,不需要进行强制类型转换呢? 看下ArrayList.get()方法: public E get(int index) { RangeCheck(index); return (E) 阅读全文

posted @ 2021-02-04 17:55 frank_cui 阅读(468) 评论(0) 推荐(0) 编辑

Java 基础 - Java为什么要类型擦除?
摘要:总结 一句话:为了兼容JDK 5 之前(有泛型功能之前)的项目,否则有大量代码修改的工作。 1-“真泛型”是怎么操作的? 若 Java 语言实现"真泛型",对泛型类型(泛型类、泛型接口)、泛型方法的名字使用特别的编码,例如将 Factory<T> 类生成为一个名为 “Factory@@T” 的类,这 阅读全文

posted @ 2021-02-04 17:25 frank_cui 阅读(774) 评论(0) 推荐(0) 编辑

Java 基础 - 什么是类型擦除Type Erasure?
摘要:类型擦除 对于泛型,只是允许程序员在编译时检测到非法的类型而已。 但是在运行期时,其中的泛型标志会变化为 Object 类型。 1 List<Integer> list = new ArrayList<>(); 2 list.add(12); 3 list.add("a"); //编译时,泛型起作用 阅读全文

posted @ 2021-02-04 16:36 frank_cui 阅读(164) 评论(0) 推荐(0) 编辑

Java 基础 - 如何实现对象克隆?
摘要:方法1:实现 Cloneable 接口,重写 clone() 方法 实现 Cloneable 接口,重写 clone() 方法 --> 一般重写,就是调用super.clone() ...就是Object的native方法clone() 易错: 如果调用某个对象的clone(),但是该类没有实现 C 阅读全文

posted @ 2021-01-27 01:25 frank_cui 阅读(346) 评论(0) 推荐(0) 编辑

Java 基础 - @Override 在重写抽象方法/接口方法是必要的么?
摘要:总结 不是必要的!有@Override注解,IDE会检查,重载是否规范,是否符合要求!否则会给出错误提示!没有@Override注解,要自己注意是否实现了所有的方法,方法签名是否正确等信息,很容易出错。 /** * Annotation type used to mark methods that 阅读全文

posted @ 2021-01-25 21:14 frank_cui 阅读(754) 评论(0) 推荐(0) 编辑

Java 基础 - 序列化 与 transient关键字
摘要:transient总结 当有些属性不希望序列化时,transient关键字为我们提供了便利。你只需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中。 transient关键字只能修饰变量,而不能修饰方法和类 阅读全文

posted @ 2021-01-25 01:50 frank_cui 阅读(113) 评论(0) 推荐(0) 编辑

Java 基础 - String的字符串拘留
摘要:String的字符串拘留 String s="abcd" String s="abcd"是一种非常特殊的形式,和new 有本质的区别。它是java中唯一不需要new 就可以产生对象的途径。以String s="abcd";形式赋值在java中叫直接量,它是在常量池中而不是象new一样放在压缩堆中。  阅读全文

posted @ 2021-01-24 22:23 frank_cui 阅读(156) 评论(0) 推荐(1) 编辑

Java 基础 - 方法的调用(静态调用 vs 动态调用)?
摘要:总结 编译期间 确定 类的静态方法,构造方法,私有方法 方法的重载 运行期间 确定 方法的重写,重载 解析 编译期间就确定了。类的静态方法,构造方法,私有方法。 调用目标在程序代码写好、编译器进行编译时就必须确定下来。这类方法的调用称为解析。在Java语言中符合“编译期可知,运行期不可变”这个要求的 阅读全文

posted @ 2021-01-24 22:03 frank_cui 阅读(1084) 评论(0) 推荐(0) 编辑

Java 基础 - 包装类valueOf()的缓存
摘要:总结 1-valueOf()缓存使用到设计模式:享元模式 单例模式和享元模式都是为了避免重复创建对象,但是其本质是不一样的: 其实现方式不一样,单例是一个类只有一个唯一的实例,而享元可以有多个实例,只是通过一个共享容器来存储不同的对象。 其使用场景不一样, 单例是强调减少实例化提升性能,因此一般用于 阅读全文

posted @ 2021-01-24 13:55 frank_cui 阅读(286) 评论(0) 推荐(0) 编辑

1 2 3 4 下一页
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

导航

统计

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