- 博客(13)
- 收藏
- 关注
原创 java后端实现国际化翻译功能的工具类
throw new ErrorException(400, testi18n.I18nUtil.t("获取业务参数失败"));I18nUtil的get方法,就是在map找到对应key的value,map由调用接口而来,并使用了缓存。如在抛出异常时,返回英文信息。在需要翻译的地方调用方法。
2024-07-03 00:52:26
293
原创 算法(补充)
今天笔试遇到了两道算法题,刚好都不会做,所以补充一道链表题,链表涉及结点的删除就是指针的变化。就知道一个头结点head,他的值为head.val classSolution{publicListNodedeleteNode(ListNodehead,intval){if(head.val==val)returnhead.next;//判断第一个结点就是要删除的点,避免循环了ListNodecur=head.next...
2022-04-13 17:50:17
120
原创 Spring
学了很久的spring一直没有学明白,这次下定决心一定要全部搞懂!作为新手,核心就是要弄懂两个东西:IOC和AOP,因为简单点说:Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。1. 组成Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式 .核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。B
2021-12-13 15:59:49
1022
原创 JVM-垃圾回收机制
垃圾回收概述垃圾:内存中不再被使用到(没有指向和引用)的内存空间就是垃圾怎么判断?怎么回收?什么时候回收?判断引用计数法:给对象添加一个引用计数器,有访问就加一,引用失效就减一。实现简单,但需要额外的空间和处理,且不能解决对象之间循环引用的问题 根搜索算法(主流):可达性分析算法。从根(GC Roots)节点向下搜索对象节点,从搜索走过的径称为引用链,当一个对象到根之间没有联通的话,则该对象不可用(ppt有图)可作为GC Roots的对象包括:虚拟机栈(栈帧局部变量)中引用的对象、方
2021-09-28 14:30:20
164
原创 JVM-对象
对象的创建JVM遇到字节码new指令----》检查指令参数是否在常量池中定位到一个类的符号引用----》加载----》为新对象分配内存(指针碰撞)----》将分配到的内存空间(不包括对象头)初始化为0,设置对象----》虚拟机角度的对象构造完成,程序角度还没有执行构造函数指针碰撞:加入java堆内存是绝对规整的,使用过和空闲的内存间放着一个指针用来作为分界点,并且可以移动调节相应的大小对象的内存布局(HotSpot虚拟机为例)分为:对象头、实例数据和对齐填充对象头:Mark word
2021-09-28 13:50:16
56
原创 JVM-类连接看,初始化与内存分布
当类被加载之后,系统为之生成一个对应的Class对象,接着将会进入连接阶段,连接阶段负责把类的。验证:类文件结构检查:验证字节流是否合规等;元数据验证:对字节码描述的信息进行语义分析(是否有父类,是否允许继承等);字节码验证:通过数据流和控制流分析确保程序的语义是合法的,主要对方法体进行校验(比如运行时操作数栈的类型和压栈的数据类型匹配等);符号引用验证:对类自身以外的信息(常量池的各种符号引用)准备:为类的静态变量来分配内存,并初始化解析:把常量池中的符号引用转换成直接引用的过程,主要针对
2021-09-28 13:47:15
109
原创 MySQL(二)Schema与数据类型优化
在数据库中,schema(发音 “skee-muh” 或者“skee-mah”,中文叫模式)是数据库的组织和结构,schemas和schemata都可以作为复数形式。模式中包含了schema对象,可以是表(table)、列(column)、数据类型(data type)、视图(view)、存储过程(stored procedures)、关系(relationships)、主键(primary key)、外键(foreign key)等。数据库模式可以用一个可视化的图来表示,它显示了数据库对象及其相互之间的.
2021-09-16 15:55:23
885
原创 MySQL (一)MySQL架构
1. MySQL逻辑架构如图所示:2. 并发控制多个查询同时在同一时刻修改数据就会产生并发控制问题。在邮箱投递问题中(两个进程同一时刻对同一个邮箱进行投递,读邮件和删邮件同时发生等),通过实现一个由两种类型的锁组成的锁系统来解决问题——共享锁(读锁)和排他锁(写锁)。用户在修改数据时,MySQL会通过锁来防止其他用户读取同一数据。2.1 锁粒度一种提高共享资源并发性的方式就是让锁对象更有选择性。所谓的锁策略就是在数据的安全性和开销上追求一个平衡,一般都是在表上施加...
2021-09-15 15:12:41
94
原创 JVM-双亲委派模型
JVM中的ClassLoader通常采用双亲委派模型,要求除了启动类加载器外,其余的类加载器都应该有自己的父级加载器。这里的父子关系是组合而不是继承(如自定义加载器的父级是app加载器,app加载器的父级是平台加载器,平台类加载器的父级是启动类加载器),这里的父级指的是几个加载器组合在一起。工作流程如下:类加载器接收到类加载请求后,首先搜索他的内建夹杂其定义的所有“具体模块”; 找到合适的模块定义后,将会使用该加载器来加载; 如果class没有在加载器定义的具体模块中找到,会委托给父级加载器,直
2021-09-14 16:57:10
99
原创 JVM-类加载
类加载机制:class文件加载到JVM中,并形成class对象的机制生命周期如图所示:类加载完成的功能通过类的全限定名(不同包中可以有同名类,所以要全限定)来获取类的二进制字节流,放到java虚拟机外部实现。 把二进制字节流转换成方法区(类文件加载后存储到这)的运行时数据结构。 堆上创建一个java.lang.class对象(.getclass方法),用来封装类再方法区内的数据结构,并向外提供了访问方法区内数据结构的接口。加载类的方式本地文件系统加载、jar等归档文..
2021-09-08 14:10:12
54
原创 JVM-规范主要内容
1. 字节码指令集:相当于中央处理器cpu:Class文件本质上就是16进制编码,由于16进制编码理解成本过大,因此有指令集和16进制编码一一对应,方便用户去理解因此对于Class文件的可视问题,程序员是看指令集,JVM是看16进制编码(指令集 == 16进制编码)。2. Class文件格式(class文件本义就是16进制编码)在eclipise的bin文件-》jvm中可以查看class代码,也可以使用16进制编辑器打开(原始文件)也可以用javap输出出来。分为两种类型:无符号数和表.
2021-09-08 13:58:08
254
原创 JVM学习-简单基础知识
JVM概述:全名: Java Virtual Machine 虚拟机:通过软件模拟的具有完整硬件系统功能的,运行在一个完全隔离环境中的计算机系统。JVM通过软件来模拟字节码的指令集,是java程序的运行环境。JVM的主要功能:ClassLoader 解释字节码成为指令并执行 运行期分配内存和垃圾回收 提供和硬件交互的平台:程序本身和硬件无关java虚拟机时平台无关的保障,将Java源程序 通过javac编译class文件(开发过程,平台无关),装入进虚拟机,虚拟机向程序...
2021-09-08 11:25:44
92
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人