Java基础
文章平均质量分 82
沸羊羊_
如果不想成为一个碌碌无为的人,除了对浩渺星空的无穷向往,还必须具备对平庸生活的憎恶。.....
展开
-
终于搞懂 BIO,NIO,AIO 了
前言I/O,通常指数据在内部存储器(内存)和外部存储器(磁盘)之间的输入和输出。在 Java 中提供了一些 API,可以供开发者来读写外部数据或文件,称这些 API 为 Java IO,随着 Java的发展,目前有三种IO:BIO,NIO,AIO,下面对这三种 IO 进行介绍。在讲述BIO,NIO,AIO前,先来弄清楚四个概念:同步异步,阻塞非阻塞。同步/异步同步/异步关注的是消息通信机制。同步(Synchronous) 是指发起一个调用后,调用方必须等待此调用返回结果后才能继续执行。异原创 2021-08-02 16:39:12 · 1568 阅读 · 3 评论 -
serialVersionUID到底有何用?
文章目录概念为什么要序列化 / 反序列化?序列化ID的作用实例概念序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。引用百度百科的定义,为什么要序列化 / 反序列化?序列化ID的作用实例...原创 2021-05-17 21:43:45 · 1898 阅读 · 1 评论 -
UML六种关系在代码中的体现你真的清楚吗?
文章目录前言继承实现组合聚合关联依赖总结前言本文章的内容本着有据可循的观点输出,读者如赞同请给小编点赞以做支持,如有其他观点也可一起交流探讨。继承实现组合聚合关联依赖总结...原创 2021-02-19 14:34:23 · 3313 阅读 · 34 评论 -
集群高并发情况下如何保证分布式唯一全局id生成?
文章目录问题描述通用解决方案及其问题UUID数据库自增主键基于 Redis生成全局id雪花算法(SnowFlake)问题描述在分布式系统中,往往需要对大量数据和消息进行唯一标识。并且保证生成的id是全局唯一的。ID生成规则要求:全局唯一趋势递增单调递增信息安全含时间戳ID生成系统的可用性要求:高可用低延迟高QPS通用解决方案及其问题UUID无序的UUID会导致入库性能变差,为什么呢?无序,无法预测他的生成顺序,不能生成递增有序的数字id过长,一般分布式id都会作为原创 2021-02-03 14:42:30 · 1043 阅读 · 1 评论 -
那些年long与varchar碰撞的火花
事情是这个样子的,听我娓娓道来:最近项目中数据库主键类型为 varchar,而项目中实体字段类型为 Long,项目中的id 是雪花算法生成的,众所周知,雪花算法生成的id一般是19位,这就导致了后续根据主键id查询的时候,结果集异常的情况(根据一个主键id查询数据,结果集是多条数据),这是什么原因导致的?事情正解:由于 varchar 对应的 Java 类型为 String,而项目中是 Long 类型,这就导致了 Long 类型的 id 和 库中的 varchar 类型作对比时,类型不匹配问题。当字符原创 2021-01-29 15:54:06 · 2005 阅读 · 6 评论 -
关于时间格式的大小写
文章目录YYYY-MM-dd 与 yyyy-MM-ddyyyy-MM-dd 中的MM为什么是大写?yyyy-M-d H : m : syyyyy/yyy/yy/yMMMM/MMM/MM/Mdddd/ddd/dd/dHH/H/hh/hYYYY-MM-dd 与 yyyy-MM-ddCalendar calendar = Calendar.getInstance();calendar.set(2019, Calendar.DECEMBER, 31);Date testDate = calendar.ge原创 2020-12-30 20:36:42 · 4500 阅读 · 0 评论 -
彻底搞懂JDBC连接数据库
写在前面:我是「沸羊羊_」,昵称来自于姓名的缩写 fyy ,之前呕心沥血经营的博客因手残意外注销,现经营此账号。本人是个小菜,正向着全栈工程师的方向努力着,文章可能并不高产,也很基础,但每写一篇都在用心总结,请大佬勿喷。如果您对编程有兴趣,请关注我的动态,一起学习研究。感谢每位读者!JDBC简介Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。J.原创 2020-07-17 13:40:27 · 2142 阅读 · 2 评论 -
Java项目连数据库 Unknown initial character set index 255 received from server
Java项目连接数据库报 SQLException先来看看报错提示信息:从服务器收到的未知初始字符集索引’255’,可以通过“字符编码”属性强制初始客户端字符集。解决方案:在URL后添加 ?characterEncoding=utf-8 即可。//url"jdbc:mysql://zqq:3306/cooperatesystem?characterEncoding=utf-8"...原创 2020-05-17 10:03:48 · 934 阅读 · 2 评论 -
最简单易懂的Java反射机制
Java反射机制是肥肠重要的概念,它的原理以及如何使用,一起来探讨吧!Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。上面说的是反射的官方概念,其意思也就是,正常实例化对象的方式是:1、首先引入需要的包 2、new实例化 3、取得实例化...原创 2020-04-14 21:20:18 · 290 阅读 · 2 评论 -
Java中Collection与Map等集合(超全详解)
前言Java中常用的集合很多,在使用的时候我相信很多人都无从下手,不知道使用哪个集合更适合。为了能让我自己和更多人清晰的了解它们,并且能在一定情况下使用最适合的集合,有了本篇文章。如有错误或遗漏,还请大神指出,感激不尽!数组与集合的区别长度是否可变存储数据类型数组否,长度固定只可以存放同类型元素,可以是基本数据类型,也可以是引用类型集合是,长度可变可存放不...原创 2020-04-08 09:27:25 · 1044 阅读 · 2 评论 -
java线程wait()与sleep()异同
一、在了解wait()与sleep()前,先来了解一下线程都有哪些状态,各个状态之间是如何转换的?新建(初始)状态(New):线程对象被创建后进入了新建状态, Thread t = new Thread();就绪(Runnable):称为:“可执行状态”,当线程被new出来后,其他的线程调用了该对象的start()方法,即thread.start(),此时线程位于“可运行线程池”中,只等待获...原创 2020-02-15 11:40:36 · 274 阅读 · 2 评论 -
Java基本数据类型转换
基本数据类型八种基本类型:booleancharbyteshortintlongdoublefloat基本数据类型占用存储空间与取值范围:基本数据类型转换数据类型容量排序byte,short,char,->int->long->float->double数据类型转换规则(混合运算中):boolean类型不可以转换为其他数据类型;byt...原创 2020-01-22 21:15:12 · 289 阅读 · 7 评论