Java基础
文章平均质量分 63
LOVE️YOU
我们与万物同行,星辰指引方向,云与光铺展成大地的模样
展开
-
UML类图
全局变量就是关联关系、局部变量就是依赖关系、“同生共死”就是组合关系、关联关系+依赖关系=聚合关系、Java中看到“extends”关键字就是泛化关系、Java中看到“implements”关键字就是实现关系原创 2023-06-19 15:17:28 · 456 阅读 · 1 评论 -
JDBC 中关于 ResultSet.getXXX( ) 方法的理解
最近在写orm框架,遇到了原生JDBC中的 getInt( )、getFloat( )、getDouble( )、getString( )、getObject( ) 等这类方法,发现与原先的理解有些偏差,特此记录一下这几个常用的方法参数在不同 sql 查询下的含义。总结:① 对于 'getXXX(int columnIndex) { } ' 重载形式,其中的columnIndex 表示的是我们写的 sql 语句中字段的索引,而不是数据库表中字段的索引。原创 2023-02-28 23:37:53 · 765 阅读 · 2 评论 -
map 和 flatMap 的区别
当我们需要将具有层级结构的数据展平时,也就是将多层数据转换为单层数据操作时,我们可以使用 flatMap 方法。如果我们只是简单的对流中的数据计算或者转换时,可以使用 map方法。举例:① 使用 flatMap:[a,b,c,d,[e,f [g,h,i]]] 转换为 [a,b,c,d,e,f,g,h,i]② 使用 map: [1,2,3,4,5,6] 转换为 [11,12,13,14,15,16]③ 使用 map: [a,b,c] 转换为 [A,B,C]原创 2023-02-08 22:54:31 · 27272 阅读 · 4 评论 -
Magic value如何解决?
最近在书写代码时,总是会产生弱警告,显示 Magic value,虽然不是什么大问题,但是肯定是因为编码不规范导致的,所以在此总结一下~Magic value:是指在代码中无故出现的数字。在我们看来,能够理解是什么含义,可是对于团队合作的人员来说,就需要阅读你代码的上下文,才能推断出是什么含义。这样就会给团队人员以及后期维护带来不便,所以我们要尽量的避免魔法值的出现。当别人阅读我们的代码时们就会产生疑惑,"0" 和 ”." 意味着什么,与上下文有着怎样的逻辑关系?该如何理解?原创 2022-12-05 10:50:12 · 718 阅读 · 2 评论 -
IDEA 常用快捷键
IDEA 常用快捷键原创 2022-11-27 20:42:00 · 756 阅读 · 2 评论 -
CPU 指令重排序
as-if-serial 和 happens-before 原则,都是为了保障,在 CPU 指令重排序时,不论是单线程还是多线程的情况下,最终指令重排序后的结果都应该与代码本身的应有结果保持一致。对于单线程,可能在重排序后不会产生什么问题,但是对于多线程,这个规则可能就会产生一些问题~CPU 指令重排序后,体现在代码层面的就是,写在后面的代码,可能在 CPU 重排序之后,就可能会先执行。原创 2022-10-08 13:48:13 · 1098 阅读 · 2 评论 -
HashMap 和 Hashtable 的区别
1)Hashtable 的 key 和 value 键值对是不允许值为 null,而对于 HashMap,key 和 value 都是可以值为 null2)实现方式不同,Hashtable 继承的是抽象类Dictionary,而 HashMap 继承的是抽类AbstractMap3)Hashtable 支持 Iterator 和 Enumeration 两种遍历方式,而 HashMap 只支持 Iterator 这一种遍历方式......原创 2022-10-04 21:45:07 · 579 阅读 · 2 评论 -
Java 设计模式 — 建造者模式(4)
建造者模式是将不同的简单类经过一系列操作,最终构建为一个复杂对象的过程。建造者模式更关注的时零件装配的过程。建造者模式通常使用在一些基础组件不改变,但是组合经常会发生变化的时候。原创 2022-10-04 12:41:59 · 681 阅读 · 2 评论 -
Java 设计模式 — 单例模式(3)
1. 在使用单例模式时,声明的对象,构造函数都需要私有化,防止外界的访问。2. 懒汉模式与饿汉模式的本质区别在于,懒汉模式在方法外只是声明对象,只有在调用方法时才会进行 new 对象,而饿汉模式则是直接声明创建对象。3. 不建议使用懒汉模式,建议使用饿汉模式来实现单例模式。4. 需要明确做到 Lazy loading时,可以使用登记式/静态内部类。5. 如果涉及反序列化创建对象时,可以使用枚举。6. 以上情况都不符合,可以考虑双重校验锁。原创 2022-10-03 18:00:36 · 440 阅读 · 2 评论 -
Java 设计模式 — 抽象工厂模式(2)
关于一个超级工厂创建其他工厂说到这里,可能就会有人有疑惑,那么这与工厂模式有什么区别呢?我们先来看看抽象工厂模式到底是什么再去进行比对~原创 2022-09-29 20:43:03 · 449 阅读 · 3 评论 -
Java 设计模式 — 工厂模式(1)
设计模式是我们在软件开发过程中遇到问题的一种解决方案,在项目中合理的使用不同的设计模式,可能会很好的解决我们所遇到的问题。设计模式可以使代码在编写上更加容易,保证了代码的可靠性,提高了代码的可拓展性,使代码的可读性增强。原创 2022-09-26 21:53:47 · 324 阅读 · 2 评论 -
IDEA无法识别Java文件解决办法
日常记录~IDEA无法识别Java文件,左下角显示橘色 解决办法 成功解决原创 2022-09-20 11:01:38 · 10912 阅读 · 8 评论 -
IDEA导入JDK
今天在加载项目时,External Libraries中没有JDK,简单记录一下如何导入~原创 2022-09-20 10:52:54 · 6147 阅读 · 2 评论 -
Java泛型中的通配符
今天我们来聊一聊Java中的通配符~由于严格的泛型类型让程序员使用起来并不是那么方便,Java设计者于是就设计了一种巧妙并且安全的解决方案——通配符原创 2022-09-17 17:37:26 · 837 阅读 · 1 评论 -
Java泛型之<T> T、 T、<T>用法
上面的样例测试中,我分别编写了两个类 Generic01 和 Generic02。Generic01类 编写的方法的返回值样式为。如果我们经常看源码,就能看到很多类似于T这种类型变量,简单介绍一下这些类型变量分别代表什么含义。了解完这些类型变量的含义后,我们回归正传, T 、T、 到底在用法上有什么区别?,比如Integer、Double、String、我们自定义的类等等一些类,Generic02类 编写的方法返回值的样式为 T。原创 2022-09-15 13:07:24 · 14760 阅读 · 7 评论 -
Lambda 表达式
从上述测试代码中,我们可以看到,我们经过层层递进,最终简化为Lambda表达式!原创 2022-09-10 14:41:01 · 258 阅读 · 1 评论 -
Java接口中的默认方法冲突
1. 如果在一个接口中提供了一个默认方法,在另一个接口中同样也提供了一个相同名称且参数类型也相同的默认方法,当一个类 implements 这两个接口并使用其默认方法时,就会产生歧义,所以要在 super.getName( ) 前加上接口名 ——中继承了相同的方法,在这种情况下,从运行结果中我们可以看出,子类会调用父类的方法,而不是接口中的默认方法,所以我们可以看出,在这种情况下接口中所有的默认方法都会被忽略,只会去调用父类中的方法,体现了。在Java中,我们可以为其接口中定义的方法提供一个默认的实现。原创 2022-09-05 17:17:44 · 366 阅读 · 2 评论 -
Java中的 == 与 equals 比较的究竟是什么?
Java中的 == 与 equals 比较的究竟是什么?到底是数值、地址,还是引用的类型?原创 2022-09-04 12:49:23 · 286 阅读 · 1 评论 -
IDEA创建Java项目时没有Java Class选项
IDEA创建Java项目时没有Java Class选项,可能是包名命名不规范导致的!原创 2022-08-16 14:33:59 · 3434 阅读 · 3 评论 -
对象与对象变量
Java构造对象过程的深入理解,加深对Java构造对象的认识原创 2022-07-01 13:51:49 · 477 阅读 · 3 评论