![](https://img-blog.csdnimg.cn/20210205224807320.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
以实战为线索,基础到进阶,逐步深入,穿插语法易错点及JDK特性,进一步优化程序性能。
Kylee Kello
不一定每个人都会失败,但也不一定每个人都运气好。怎么做是你的自由。
展开
-
Java - 【入门】8种基本类型(120分测试题)
Java基本数据类型Java基本类型有几种? (10分)Java每种基本类型各占用几个字节?(10分)你是如何知道基本类型各占几个字节的?(证明之)(10分)↓ 根据问题三,引出后续所有问题 ↓简要介绍对象内存布局(10分)简要介绍对象初始化的过程(10分)简要介绍类加载子系统(10分)类的加载器有几种?(10分)简要介绍内存泄漏,Java中存在内存泄漏吗?(10分)分析final、finally和finalize的区别?(10分)finalize会造成对象的复活,了解过吗?.原创 2020-11-10 22:03:41 · 315 阅读 · 0 评论 -
Java - 【基础篇】目录
目录阻塞队列阻塞队列JDK1.5开始出现:java.util.concurrentBlockingQueue(JDK1.5)BlockingDeque(JDK1.6)原创 2020-06-01 01:49:16 · 608 阅读 · 1 评论 -
Java - 【设计模式】目录
目录单例 工厂 装饰器 适配器原创 2020-06-02 22:05:26 · 218 阅读 · 0 评论 -
Java - 【IDE】Eclipse、IDEA珍藏版教程
Eclipse_4.8 (64位免安装版)链接:https://pan.baidu.com/s/1wZNEDJvsl0ucbOaGjbciEg提取码:041a<一> Eclipse初始配置1> 关闭新闻轮询提示2> 取消自动生成代码的注释部分<二> Eclipse快捷键Alt: Alt+/ (自动补全) Alt+上下 (...原创 2020-04-04 17:18:44 · 348 阅读 · 0 评论 -
Java - 两种判断闰年的方法
🤔️判断一个年份是否是闰年的常规方法是遵循以下规则原创 2023-08-06 12:42:41 · 1385 阅读 · 0 评论 -
Java - [再遇fastjson2] Key自动将属性首字母转小写?
🤔️问题场景:fastjson2中转JSON字符串时,key会自动将属性首字母转小写?原创 2023-08-02 20:19:58 · 630 阅读 · 0 评论 -
Java - 为什么要用BigDecimal?
🤔️为什么要用BigDecimal?原创 2023-07-29 21:06:16 · 279 阅读 · 0 评论 -
Java - 有内鬼!每次写完代码,我的Steam游戏库就不见了?
有内鬼!每次写完代码,我的Steam游戏库就不见了?原创 2023-01-30 14:40:14 · 224 阅读 · 0 评论 -
Java - 面向接口编程,为什么要这么做?
为什么更多人使用 List al = new ArrayList();而不是 ArrayList al = new ArrayList();原创 2023-01-04 20:01:59 · 148 阅读 · 0 评论 -
Java - Gson和Fastjson如何选择?
gson和fastjson2如何选择?原创 2022-11-24 17:37:33 · 1493 阅读 · 0 评论 -
Java - Java8中字符串拼接效率问题
Java8中字符串拼接效率问题问题来源测试方法与测试用例JMH测试结果分析完整测试程序一:问题来源在某开源框架中自定义了StringUtils类,其中的getUUID很惹人注目:public static String getUUID(){ String s = UUID.randomUUID().toString(); return s.substring(0,8) + s.substring(9,13) + s.substring(14,18) + s.substri原创 2021-08-03 23:00:52 · 273 阅读 · 0 评论 -
SpringBoot系列教程(一):后台开发规约
SpringBoot - 后台开发规约/问题一:Controller用什么参数接收值?二:一行代码太长,换行问题三:@RequestParam相关问题一:Controller用什么参数接收值?1> 形参名和传入参数名保持一致2> 使用Map<String,Object>接收(开发一时爽,维护火葬场)3> 同时使用Map<String,Object>和基本类型接收4> 使用DTO:为CRUD分别创建四种DTO,传入的参数使用相应DT原创 2021-07-31 21:57:02 · 394 阅读 · 0 评论 -
Java - Java8中使用Stream对Map排序效率问题
Java - Java8中使用Stream对Map排序效率问题普通项目中时间测试SpringBoot中时间测试Collectors.toMap(1,2,3,4)详解一:普通项目中时间测试1> 测试用例/** * @author XuX * @date 2021/7/26 21:19 * @desc */public class T01_SortMap { public static void main(String[] args) { test01原创 2021-07-26 21:40:32 · 427 阅读 · 0 评论 -
Java - Lombok中@Slf4j单独使用
Java - Lombok中@Slf4j单独使用依赖配置文件示例一:依赖<dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.30</version> </depen原创 2021-04-03 16:21:29 · 751 阅读 · 1 评论 -
Java - JSONAware(com.alibaba.fastjson.JSONAware)
com.alibaba.fastjson.JSONAware配合 com.alibaba.fastjson.JSONObject 使用使用描述:JSONObject的put方法传入的值为JSONAware实现类时,会自动使用toJSONString()解析具体使用:三:测试一:JSONAware接口(源码)package com.alibaba.fastjson;public interface JSONAware { String toJSONString();}二原创 2021-03-27 14:51:20 · 897 阅读 · 0 评论 -
Java - 数组与List转换(测试用例)
package com.xux.test;import com.xux.test.bean.Student;import org.apache.commons.lang3.ArrayUtils;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;/** * 测试Array和List之间互相转换 * * @author x原创 2020-12-30 22:26:15 · 330 阅读 · 0 评论 -
Java - 【JDBC】事务
上一篇:Java - 【JDBC】入门篇事务(Transaction/Tx)事务的定义事务的提交与回滚事务的四大特性Java实现事务操作(编程式事务操作——正确提交,错误回滚)事务隔离级别MySQL事务隔离级别查看与更改Java操作MySQL事务隔离等级一:事务的定义事务是一系列逻辑操作的集合,只有两个状态,全部执行后的成功状态与执行前的状态;二:事务的提交与回滚commitrollback只能回滚到上一次commit的地方三:事务的四大特性原子性(Ato原创 2020-11-18 18:17:42 · 207 阅读 · 0 评论 -
Java - 【JDBC】封装再优化与实际测试
上一篇:Java - 【JDBC】针对事务再封装封装再优化与实际测试获取父类注解类型ClassBaseDao建表并创建对应Bean实际测试一:获取父类注解类型Classprivate Class<T> requiredType;{ // 获取父类的Class // Class<?> superclass = this.getClass().getSuperclass(); // 获取泛型父类Type Type ge原创 2020-11-18 12:50:15 · 265 阅读 · 0 评论 -
Java - 【JDBC】针对事务再封装
上一篇:Java - 【JDBC】入门篇针对事务再封装封装通用增删改操作 v2.0封装通用查询单条数据操作 v2.0封装通用查询多条数据操作 v2.0封装查询单个值操作(入门篇补充内容)一:封装通用增删改操作 v2.0 /** * 通用更新操作(支持事务) * @param sql * @param args */ public void update(Connection conn, String sql, Object... a原创 2020-11-18 12:42:09 · 310 阅读 · 0 评论 -
Java - 【JDBC】操作Blob类型数据
Blob测试Blob类型数据的四种类型创建一张测试表向其中添加1000000条数据测试添加Blob字段数据复习BufferedInputStream的API测试获取Blob字段,下载到本地一:Blob类型数据的四种类型TINYBLOB (255B)BLOB (65KB)MEDIUMBLOB (16MB)LONGBLOB (4GB)二:创建一张测试表# 创建一个User表CREATE TABLE USER( uid INT(11) PRIMARY KEY, uname原创 2020-11-17 19:51:40 · 1174 阅读 · 1 评论 -
Java - 【JDBC】入门篇
目录JDBC连接测试使用PreparedStatement执行增删改语句自定义JDBCUtils工具类封装获取连接与连接关闭public static Connection getConnection()public static void closeResource(Connection conn, PreparedStatement ps)public static void closeResource(Connection conn, PreparedStatement ps, Res原创 2020-11-17 11:54:07 · 197 阅读 · 0 评论 -
Java - 【反射】Reflect开发手册(一)
Java_Reflect_开发手册(一)获取Class对象的几种方式从Class中获取当前类中方法检测某对象的Class是否是当前Class的实例(instance)获取Parameter相关信息Java8获取参数名称(MyBatis参数获取底层实现之一)获取函数参数的注解(Annotations)一:获取Class对象的几种方式类名.class对象名.getClass()Class.forName(类名全路径)包装类Integer.classnew Integer(10原创 2020-11-10 20:33:43 · 232 阅读 · 0 评论 -
Java - 【集合框架二:List】Collections
Collections工具类拷贝(浅拷贝)copyList的addAll也是浅拷贝如何实现深拷贝呢? → 序列化倒置reverse排序sort交换swap乱序shuffle二分查找binarySearch一:测试用例import java.io.*;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator原创 2020-11-05 15:34:54 · 722 阅读 · 0 评论 -
Java - 【设计模式】动态代理
动态代理(Dynamic Proxy)→ 实际使用场合import java.lang.reflect.Proxy;/** * 动态代理主测试类 */public class DynamicProxyTest { public static void main(String[] args) { // 1. 创建一个学生 Student s1 = new Student(); // 2. 准备调用学生的eat方法,但是eat方法功能不够原创 2020-10-29 20:19:51 · 176 阅读 · 0 评论 -
Java -【BeanUtils】Map与Bean的映射
Apache BeanUtils深拷贝与浅拷贝Apache BeanUtils常用的三个方法copyProperties(Object to, Object from):voiddeacribe(Object bean):Map<String, String>populate(Object bean, Map<String, ? extends Object>):void一:深拷贝与浅拷贝相关文章:Java - 【序列化】序列化与克隆测试用例:impo原创 2020-10-27 19:50:09 · 989 阅读 · 0 评论 -
Java - 【集合框架三:Map】增删改查
MapMap的常用三个实现类Map常用API增putKV:V删removeKV:VremoveKVV:boolean改putKV:VreplaceKV:VreplaceKVV:booleanreplaceAllBiConsumer查containsKeyK:booleancontainsValueV:booleankeySet:Setvalues:Collection一:Map的常用三个实现类二:Map常用APIHashtabl原创 2020-10-19 09:45:08 · 489 阅读 · 0 评论 -
Java - 【lombok】@Data注解使用
lombok → @Data注解下载lombok官方jar包IDEA配置lombok插件了解lombok提供的常用注解一:下载lombok官方jar包→ Maven仓库:https://mvnrepository.com/二:IDEA安装lombok插件三:了解lombok提供的常用注解import lombok.*;@Data@RequiredArgsConstructor // 无参构造函数@AllArgsConstructor // 全参构造函原创 2020-10-18 19:05:37 · 1100 阅读 · 2 评论 -
Java - 【集合框架二:List】增删改查
ListList常用的三个实现类List常用API增*4删*4 + 清空改查查大小查值查索引查存在排序切片一:List常用的三个实现类二:List常用APIimport java.util.ArrayList;import java.util.Collections;import java.util.List;/** * 测试List中的常用方法 */public class T01_List { public static void原创 2020-10-18 09:23:24 · 368 阅读 · 2 评论 -
Java - 【集合框架一:概述】List、Map、Set
List、Map、SetListList部分方法的简单测试ArrayList数组自动扩容算法LinkedListVectorMapHashMapSetHashSetTreeSet一:List1> ArrayListArrayList采用的扩容机制(默认取0,add时自动取10,1.5倍扩容)测试该扩容机制/** * >> 有符号右移 * >>> 无符号右移 */public clas原创 2020-10-17 21:35:33 · 340 阅读 · 4 评论 -
Java - 【JDK8】闭包
闭包(Clocure)存储没有返回值的函数ConsumerBiConsumer<T,U>存储有返回值的函数Function<T,R>BiFunction<T,U,R>静态方法不需要指定第一个参数为类对象非静态方法需要指定第一个参数为类对象应用forEach遍历List启动线程一:概览二:存储没有返回值的函数import java.util.function.BiConsumer;import java.原创 2020-10-17 19:50:19 · 467 阅读 · 0 评论 -
Java - 【UML】IDEA查看/保存UML类图
UML(IDEA)快捷键Ctrl+Shift+Alt+UCtrl+TCtrl+A一:快捷键原创 2020-10-17 12:40:05 · 1431 阅读 · 0 评论 -
Java - 【ThreadLocal】线程本地变量
ThreadLocalThreadLocal是什么?是用来干什么的?Thread底层是如何实现的(底层原理是什么)?ThreadLocal会造成内存泄漏,你了解吗?什么是内存泄漏?举几个Java中内存泄漏的例子一:ThreadLocal是什么?是用来干什么的?ThreadLocal全程线程本地存储,ThreadLocal可以使得每个线程操作属于自己的全局变量而不是共享;二:ThreadLocal底层是如何实现的?...原创 2020-10-15 16:01:36 · 322 阅读 · 1 评论 -
Java - final、finally、finalize三者的区别
final、finally与finalize的区别一:finalfinal修饰变量,变量成为常量,不允许被修改;final修饰方法,当前方法不允许被重写;final修饰类,当前类不能被继承。二:finally用在异常处理语句中,用户回收资源三:finalizefinalize是Object类中的一个方法,在对象被GC之前会由Finalizer调用该方法执行;finalize一般不由用户手动进行调用且不进行重写,因为有造成内存泄漏的可能性;finalize使对象复活原创 2020-10-15 09:44:35 · 242 阅读 · 0 评论 -
Java - 【缓存行】CacheLine
缓存行(Cache Line)CPU三级缓存CPU直接操作内部寄存器中的数据速度比直接操作内存中的数据快百倍,为了减少这种差距,出现了缓存(Cache),现在缓存一般被封装进入CPU,分为三级缓存L1(1ns)L2(3ns)L3(15ns)x86架构64位CPU,内存缓存行大小64B(Talk is cheap, show me the code),如何在使用Java程序进行验证?复习:CountDownLatch与Semaphoreimport java.util.concur原创 2020-10-13 20:08:59 · 877 阅读 · 0 评论 -
Java - 【synchronized】锁
synchronized 锁无锁 → 偏向锁(BiasedLocking) → 轻量级锁(自旋锁CAS) → 重量级锁重量级锁轻量级锁偏向锁启动关闭偏向锁(JVM参数调优)+UseBiasedLocking偏向锁的启动延迟(JVM参数调优)BiasedLockingStartupDelay=4000JOL查看对象的内存布局(分析锁类型)一:重量级锁Java中采用1:1线程模型,重量级锁在JVM对线程加锁时会将锁的使用交给操作系统进行调度;Java程序运行在JV原创 2020-10-13 10:59:25 · 260 阅读 · 0 评论 -
Java - 【笔记】StringBuffer常用方法
StringBufferpackage xyz.xx.test;/** * 列举StringBuffer常用API */public class T01_StringBufferTest { public static void main(String[] args) { StringBuffer testSB = new StringBuffer("hello,world!"); String s = "welcome!"; //原创 2020-10-12 17:44:42 · 280 阅读 · 0 评论 -
Java - 【注解】Annotation
注解引入常见注解自定义注解注解的使用一:引入a’nno’tate vt.给…注释a’nno‘tation n.注释Java注解:可以被Java解释使用指定标记的注释Java元注解:修饰注解的注解RetentionTarget二:常见注解@Override@Target(ElementType.METHOD)@Retention(RetentionPolicy.SOURCE)public @interface Override {}@De原创 2020-10-11 19:43:27 · 162 阅读 · 0 评论 -
Java - 【枚举】Enum与enum
枚举引入自定义枚举类使用enum定义枚举类枚举类实现接口自定义枚举类实现接口enum枚举类实现接口一:引入e’nu’me’rate vt.枚举enumeration n.枚举enum n.枚举JDK5之前,使用枚举类需要自定义,由于自定义的枚举类代码冗余性太强,所以JDK5开始提供enum关键字用于定义枚举类,大大减少代码量并提供了对枚举类丰富的操作API二:自定义枚举类私有常量化成员属性私有化构造函数公开常量静态化枚原创 2020-10-11 09:46:22 · 346 阅读 · 0 评论 -
Java - 【时间类】Date、Instant与LocalDateTime
时间类JDK8之前java.util.DateSimpleDateFormatparseformatabstartct Calendar(不介绍)JDK8及之后时区问题直接加8小时(TimeUnit.HOURS.toMillis(8))Instant默认时区UTC,比中国时间少8HLocalDateTime会取本地时区,和中国本地时间一致(√ )java.time.Instantjava.time.LocalDateTimejava.time.LocalDa原创 2020-10-10 15:22:09 · 3743 阅读 · 0 评论 -
Java - 【异常处理】try...catch...
异常处理常见异常java.lang.NullPointerExceptionjava.lang.ArrayIndexOutOfBoundsExceptionjava.io.NotSerializableExceptionjava.io.InvalidClassExceptionjava.lang.CloneNotSupportedException异常继承关系异常处理基本语法☆ 异常处理进阶语法自定义异常类☆ 异常处理与returnthrow与thro原创 2020-10-09 11:23:02 · 217 阅读 · 0 评论