- 博客(35)
- 收藏
- 关注
原创 PowerDesigner学习笔记
① —张表跟自己的关系,是Reflexive (自反);② 一张表的主键和字段全部传递给另一张表,是Inheritance(继承);③ 一张表只把自己的主键传递给另一张表,是Relationship(关系)和Association(关联),其中,Relationship可以是一对一、一对多、多对多;Association只能是多对多;④ Mandatory(强制)选项,选中了,表示:一张表的主键传递给另一张表,作为后者的外键,并且不能为空﹔
2023-08-28 01:01:46
1296
原创 Mysql45讲学习笔记
这篇文章主要总结事务,锁、索引的一些知识点,然后分享一下自己学习小心得,我会从点到线在到面展开说说,对于学习任何知识,我们都应该藐其全貌,不要一开始就选入细节。
2023-08-26 23:20:27
410
1
原创 Java基础部分面试题(2023最新)
如果不同的话,就会重新散列到其他位置。基本数据类型中用来描述文本数据的是 char,但是它只能表示单个字符,如果要描述一段文本,就需要使用 char 类型数组,但是使用数组过于麻烦,所以就有了 String,String 底层就是一个 char 类型的数组,只是使用的时候开发者不需要直接操作底层数组,使用更加简便。的关键字,一般作用在try-catch-finally代码块中,在处理异常的时候,通常我们将一定要执行的代码放在finally代码块中,表示不管是否出现异常,该代码块都会执行,一般用来。
2023-04-24 22:05:13
1471
1
原创 07动态代理
try {//获取到当前生成器的类加载器 ClassLoader loader = getClassLoader();//当前类加载器对应的缓存 缓存key为类加载器,缓存的value为ClassLoaderData 这个类后面会再讲 Map < ClassLoader , ClassLoaderData > cache = CACHE;//先从缓存中获取下当前类加载器所有加载过的类 ClassLoaderData data = cache . get(loader);
2023-04-21 00:16:17
458
原创 Spring源码分析-Bean创建流程四
这篇文章主要是聊到以下几个比较重要的点1、Bean实例化构造器的选择2、BeanPostProcess四个实现中的哪里会用到3、实例化几种策略4、最后,聊一下@PostConstruct和@PreDestroy注解的原理小编熬夜写这篇文章写得比较急,就不做总结了,hhhhh。
2023-03-30 01:36:07
566
原创 Spring源码分析-Bean创建流程三
先上案例,通过现象,挖掘本质,@OverrideSystem.out.println("beanName:"+beanName+"----执行postProcessBeforeInstantiation方法");System.out.println("创建代理对象:"+beforeInstantiation);@Override。
2023-03-28 20:54:27
404
原创 Spring源码分析-Bean创建流程二
验证及准备覆盖的方法,lookup-method replace-method,当需要创建的bean对象中包含了lookup-method和replace-method标签的时候,会产生覆盖操作。spring中默认的对象都是单例的,spring会在一级缓存中持有该对象,方便下次直接获取,通过拦截器的方式每次需要的时候都去创建最新的对象,而不会把原型对象缓存起来,
2023-03-27 00:24:55
290
原创 动态代理原理
1,JAVA动态代理是使用java.lang.reflect包中的Proxy类与接口这两个来完成的。2,要使用JDK动态代理,委托必须要定义接口。3,JDK动态代理将会拦截所有pubic的方法(因为只能调用接口中定义的方法),这样即使在接口中增加了新的方法,不用修改代码也会被拦截。4,动态代理的最小单位是类(所有类中的方法都会被处理),如果只想拦截一部分方法,可以在invoke方法中对要执行的方法名进行判断。1、CGLIB可以生成委托类的子类,并重写父类非final修饰符的方法。2、
2023-03-26 21:08:48
389
1
原创 Spring源码分析-Bean创建流程一
1、合并的对象是什么?是当前对象和其以上父类(父Bean)的信息合并。2、为什么合并?① 子类继承父类,也继承了父类的公有属性② 当我们获取到Bean的初始化BeanDefinition时,并未进行创建,所以父类也没有加载③ 当我们获取到父类的BeanDefinition并将其丰富自身的BeanDefinition。这样后续在创建Bean的时候,就可以直接那合并后的BeanDefinition直接进行创建。3、什么时候进行合并的?
2023-03-20 22:29:31
294
原创 怎么搭建知识体系?
比如你对音乐有兴趣,你刚开始的问题也许只是怎么样才能把歌唱的好听,但你在解决这个问题的时候,发现需要训练节奏、音准、发声等,然后你往下探索发现需要学习乐理、乐器等方面的知识,而你不满足于此,还想在这个行业深耕,于是你就会往下深入,开始接触声学、美学、生理学、甚至数学、哲学。当然,你学了那么多东西,当然过不好这一生,你需要用出来才能过好这一生。,这个让你产生疑问和控制住你身体的意识就是元认知,而让你停下来,意识到自己下意识攻击冲动的是你身体的本能保护机制,并且这种机制是演化的需要,它是有问题的!
2023-03-19 16:16:28
1260
1
原创 关于ThreadLocal原理分析及其使用
ThreadLocal更像是对其他类型变量的一层包装,通过ThreadLocal的包装使得该变量可以在线程之间隔离和当前线程全局共享。线程的隔离性和变量的线程全局共享性得益于在每个Thread类中的threadlocals字段。(从类实例对象的角度抽象的去看Java中的线程!!!ThreadLocalMap中Entry的Key不管是否使用弱引用都有内存泄露的可能。引起内存泄露主要在于ThreadLocal对象和Entry中的Value对象,因此要确保每次使用完之后都remove掉Entry!
2023-03-19 11:59:54
436
原创 Hash源码解读
(2)构造器(3)put方法流程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NYuaZ1et-1665857551260)(C:/Users/Lenovo/Desktop/1699fb0ff779422299b9b117e14e0ec0.png)](5)获取Hash值(6)获取数组下标(7)把元素插到数组中(头插法)(8)扩容详解2、小结如果加载因子设置为1,空间利用率得到很大的满足,但很容易碰撞,产生链表->查询效率低如果加载因子设置为0.
2022-10-16 02:13:13
794
原创 集合框架面试题
h&(length-1)等效h%length操作,等效的前提就是length必须是2的整数倍减少Hash碰撞,尽量使Hash算法的结果均匀利于数组扩容这个算法应该如何设计呢?我们首先可能会想到采用%取余的操作来实现。但是,重点来了:“取余(%)操作中如果除数是2的幂次则等价于与其除数减一的与(&)操作(也就是说 hash%length==hash&(length-1)的前提是 length 是2的 n 次方;)。
2022-10-15 16:35:33
199
原创 如何使用Xshell连接VMware上的Linux虚拟机
第一步:检查Linux虚拟机的网络连接模式,确保它是NAT模式第二步:点击菜单栏上的【编辑】–>【虚拟网络编辑器】,打开下方的虚拟网络编辑器。选择VMnet8(NAT模式),取消勾选【使用本地DHCP服务…】(一图胜千言,其他不多说,跟我保持一致就行)第三步:用命令:vi /etc/sysconfig/network-scripts/ifcfg-ens* ,除了UUID用回原有的,其他可以都全部覆盖TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=n
2021-05-18 22:05:41
388
原创 数据库相关面试题
关系型数据库常考考点架构如何设计一个关系型数据库?1)程序实例:存储管理、缓存机制、SQL解析、权限划分、容灾机制、索引管理、锁管理2)存储:文件系统索引为什么要使用索引?1)为了加速数据表中行记录的检索的数据结构2)快速查询信息,避免全表扫描,减少IO操作次数什么信息能够成为索引?主键、唯一键等索引常用的数据结构?MySQL存储引擎使用较多的索引有Hash索引,B+树索引等而oracle存储引擎也用到位图索引(bitMap)InnoDB存储引擎的默认索引实现为:B+树索引B
2021-05-08 15:49:14
150
原创 在centos7上安装mysql
第一步:前置准备工作通过xshell工具把以下两个文件上传到linux服务器mysql-community-server-5.7.27-1.el7.x86_64.rpmmysql-community-client-5.7.31-1.el7.x86_64.rpm(如需要这两个安装包可以联系我)移除mariadbrpm -qa | grep mariadbrpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64(填写你自己那个)第二步:查看是否已安装mys
2021-05-07 00:58:33
409
原创 sql约束有哪些
非空约束(NOT NULL):指示某列不能存储 NULL 值。 唯一约束(UNIQUE) :保证某列的每行必须有唯一的值。 主键预约(PRIMARY KEY):NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。 外键约束(FOREIGN KEY)保证一个表中的数据匹配另一个表中的值的参照完整性。 检查约束(CHECK):保证列中的值符合指定的条件。 默认约束(DEFAULT) :规定没有给列赋值时的默认值。...
2020-09-29 15:06:04
2730
原创 MySQL的事物基本要素及四种事务隔离级别
一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。 3、隔离性(Isolation):同一时间,只允许一个事务请求同.
2020-09-29 11:36:42
307
原创 Java单例多例的线程安全问题
Java单例多例的线程安全问题1、成员变量是保存在堆中,所有线程都能访问;局部变量是保存在每条线程的各自的栈中,互不影响。2、单例模式下成员变量会有线程安全问题,因为每条线程都可能会访问到该成员变量。3、多例模式下则不会有这问题,不会有这问题的原因是 栈中的对象分别指向堆中属于自己的成员变量。...
2020-09-17 15:01:37
1280
原创 什么是Sprirng MVC及其工作原理?
一、什么是Sprirng MVC ?1、首先它是一个MVC框架,通过把Model(模型层),View(视图层),Controller(控制层)分离,把较为复杂的web应用分成逻辑清晰的几部分,是为了简化开发,减少出错。总之就是一种分层工作的办法2、简单来说,就是Controller层将你的Model层能在View中表示出来,其中Model包括了你的数据模型(pojo或bean之类的东西),Model是一种概念,而不是一种具体的参数或是其他的具体的体现。3、SpringMVC是Spring的一个子框架,
2020-09-16 10:15:00
218
原创 什么是聚集索引和非聚集索引及其两者区别?
聚集(clustered)索引,也叫聚簇索引 定义:数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个表中只能拥有一个聚集索引。 注:第一列的地址表示该行数据在磁盘中的物理地址,后面三列才是我们SQL里面用的表里的列,其中id是主键,建立了聚集索...
2020-09-14 01:32:43
22833
5
转载 控制语句和数组
1.三种控制结构 顺序 选择 循环2.Math.random()是令系统随机选取大于等于0.0且小于1.0的伪随机double值3.switch中的表达式的结果值必须是整数、字符、或枚举量值4.switch case语句:从匹配处顺序执行,直到遇到break或结束5.switch语句中,default可以不写6.循环结构模拟实现了现实世界中...
2019-06-26 17:52:36
220
1
转载 creating server tcp listening socket 127.0.0.1:6379: bind No error
window下安装redis报错:creating server tcp listening socket 127.0.0.1:6379: bind No error的解决方案如下按顺序输入如下命令就可以连接成功1.redis-cli.exe2.shutdown3.exit4. redis-server.exeredis.windows.conf参考连接:htt...
2019-06-05 10:22:04
163
转载 Git教程(完整)
1.Git简介Git是目前世界上最先进的分布式版本控制系统,在处理各种项目时都十分高效,而且非常的高大上。SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。而且集中式版本控制系统是必须联网才能工作。Git是分布式版本控制系统,它就没有中央服务器的,每...
2019-04-11 18:59:11
460
4
转载 基本数据类型
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。byte:byte 数据类型是8位、有符号的,以二进制补码表示的整数; 最小值是-128(-2^7); 最大值是127(2^7-1); 默认值是0; byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一; 例子:by...
2019-04-04 15:54:58
132
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人