- 博客(26)
- 收藏
- 关注
原创 volatile的可见性保证
volatile 是 JVM 提供的轻量级的同步机制,volatile具有两个特性:可见性,有序性。不保证并发情况下的原子性。
2023-10-27 15:08:08 650
原创 多模块Maven项目下,引入公共模块依赖后,出现的can‘t find sympol问题(刨根问底)
在开发中,无论是在微服务架构下还是单体架构下,我们经常使用到多模块开发,其中必然有抽取公共模块,将重复的依赖和重复的工具类整合的一个过程。但在我们打包时,我们经常会莫名其妙地出现can't find sympol的问题。明明在java类的import语句中正常导入了正确路径的类,也没有爆红,为什么会找不到类呢?这主要是由于我们在对common模块打包时jar包的属性以及结构导致的原因。
2023-07-09 22:49:06 2267 2
原创 乐观锁在实战中的实现
/其实可以匹配完成之后,在修改时版本号直接+1,但如果担心这样做会使版本号溢出,则可以选择上面的方式。2)在实体类上添加@Version注解,开启乐观锁。1)添加乐观锁的全局配置。下面是逻辑模拟,实现一种简单的并发效果。
2023-05-02 14:29:03 209
原创 Maven在复杂项目下的依赖冲突,版本换绑方案
一、maven项目基础规范在maven项目中,较常用的规范是: 1.使用父工程进行依赖版本管理2.将公用依赖抽取到common模块下;service相关依赖抽取到common子模块service中,而将例如log4j,lombok,javacsv等公用扩展依赖抽取到common子模块utils中,同时将其utils方法封装到utils源文件中。 3.所有服务引入service,utils的依赖。服务单独需要的各种
2023-04-22 22:13:52 1777
原创 InnoDB双写机制-redo log执行过程详解,以及宕机处理
服务器接受到请求后,先经过SQL接口,在经过解析器,在经过词法分析和语法分析后生成语法树,进入优化器,优化后得到执行方案,进入执行器,执行器调引擎层处理请求,以上过程比较简单请自行查阅其他资料。
2023-04-06 22:51:55 1044
原创 Springboot 在设置静态资源访问前缀的前提下,保证欢迎页(index.html)支持生效
Springboot 在设置静态资源访问前缀的前提下,保证欢迎页(index.html)支持生效
2022-09-23 21:49:02 951
原创 JDBC技术
把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。2)持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。java.sql.Driver接口是所有JDBC驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现。在程序中不需要直接去访问实现了DriverDriver实现Oracle的驱动。...
2022-07-29 17:09:14 779
原创 JavaSE 第 15 章 Java反射机制
在运行时判断任意一个对象所属的类在运行时构造任意一个类的对象在运行时判断任意一个类所具有的成员变量和方法在运行时获取泛型信息在运行时调用任意一个对象的成员变量和方法在运行时处理注解生成动态代理。...
2022-07-29 16:59:17 162
原创 JavaSE 第 13 章 IO流
将一个字节的输入流转换为字符的输入流将一个字节的输出流转换为字符的输出流属于字符流要想一个java对象时可序列化的,需要满足相应的要求1.如果需要让某个对象支持序列化机制,则必须让对象所属的类及其属性是可序列化的,为了让某个类是可序列化的,该类必须实现如下两个接口之一。否则,会抛出NotSerializableException异常即2.设置serialVersionUID版本号3.除了当前Person类需要实现Serializable接口之外,其内部的所有属性也必须时可序列化。...
2022-07-29 16:58:12 108
原创 JavaSE 第 15 章 Java反射机制
在运行时判断任意一个对象所属的类在运行时构造任意一个类的对象在运行时判断任意一个类所具有的成员变量和方法在运行时获取泛型信息在运行时调用任意一个对象的成员变量和方法在运行时处理注解生成动态代理。......
2022-07-29 16:48:57 165
原创 JavaSE 第 12 章 泛型
泛型类、泛型接口;泛型方法/***@author张丁野56*自定义泛型类*///类的内部结构,就可以使用类的泛型}}}}}}}}1.如果定义了泛型类,实例化没有指明类的类型,则认为此泛型类型为Object类型要求如果大家定义了类时带泛型的,建议在实例化时要指明类的泛型@Test//如果定义了泛型类,实例化没有指明类的类型,则认为此泛型类型为Object类型//要求//如下的方法都不是泛型方法;}......
2022-07-29 16:45:35 131
原创 JavaSE 第 14 章 网络编程
1.如何准确地定位网络上一台或多台主机;定位主机上的特定的应用2.找到主机后如何可靠高效地进行数据传输二、网络编程中的两个要素1.对应问题一IP和端口号2.对应问题二提供网络通信协议TCP/IP参考模型(应用层、传输层、网络层、物理+数据链路层)......
2022-07-29 16:43:12 535
原创 JavaSE 第 13 章 IO流
1.File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)2.File类声明在java.io包下3.File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法。并未涉及到写入或读取文件内容的操作。如果需要读取或写入文件内容,必须使用IO流来完成。4.后续File类的对象常会作为参数传递到流的构造器中,指明读取或写入的1)构造器public File(String pathname) 以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果 pathname
2022-07-04 21:46:47 207
原创 JavaSE 第 11 章 集合
1.集合、数组都是对多个数据进行存储操作的结构,简称Java容器。说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中)2.1数组在存储多个数据方面的特点:>一旦初始化以后,其长度就确定了>一旦定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了比如:String[] arr;int[] arr1;Object[] arr2;2.2数组在存储多个数据方面的缺点:>一旦初始化以后,其长度就不可修改。>数组中提供的方法非常有限,对于添加、删除、插入
2022-06-05 23:59:25 142
原创 JavaSE 第 10 章 枚举类与注解
1.类的对象只有有限个,确定的2.当需要定义一组常量时,强烈建议使用枚举类3.如果枚举类中只有一个对象,则可以当作单例模式的实现方式一:jdk5.0之前,自定义枚举类方式二: 可以使用enum关键字定义枚举类package com.atguigu.java;/** * @author 张丁野 * @version v1.0 * @time 2022-04-12-9:24 * @Description */public class SeasonTest { public stat
2022-06-01 09:15:40 99
原创 JavaSE 第 9 章 常用类
1.String声明为final的,不可被继承2.String实现了Serializable接口(可序列化接口):表示字符串是支持序列化的。String实现了Comparable接口:String可以比较大小3.String在内部定义了final char[] value用于存储字符串数据4.String:代表不可变的字符序列。简称:不可变性。体现:1、当字符串重新赋值时,需要重新指定内存区域赋值,不能使用原有的内存区域赋值2、当对现有的字符串进行连接操作时,也需要指定内存区域赋值,不能对原有的内存区域赋值
2022-05-31 22:17:40 172
原创 JavaSE 第 8 章 多线程
8 - 1 程序、线程、进程一、对于进程和线程的理解1.线程与进程的内存分配每个进程都会分配一块内存每个线程都有一份虚拟机栈和程序计数器,但所有进程都共享一个公共的方法区和堆以及本地方法栈。这就意味着多个线程都可以对堆中的实例变量等进行修改。2..并行与并发3.多线程的优点4.多线程应用场景8 - 2 线程的创建和使用一、线程的创建(一)1.创建一个Thread类的子类2.重写....
2022-04-12 09:06:27 293
原创 JavaSE 第 7 章 异常处理
7 - 1 异常概述与异常体系结构7 - 2 常见异常一、Error一般不编写针对性代码进行处理package com.atguigu.java;public class ErrorTest { public static void main(String[] args) { //1.栈溢出:java.lang.StackOverflowError// main(args); //2.堆溢出:java.lang.Out......
2022-03-30 20:07:59 105
原创 JavaSE 第 6 章 面向对象(下)
6.1 关键字 static一、关键字的使用1.static说明1)静态的2)static 可以用来修饰:属性、方法、代码块、内部类2.使用static修饰属性(静态变量)(类变量)3.1属性:按是否使用static修饰,又分为:静态属性 vs 非静态属性(实例变量)实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性。当修改一个对象中的非静态属性时,不会导致其他对象中同样的属性值的修改。静态变量:我们创建了类...
2022-03-28 19:45:57 199
原创 JavaSE 第 5 章 面向对象编程(中)
5 - 1 面向对象特征之二:继承性1.继承性的优点1)减少了代码的冗余,提高了代码的副用性2)便于功能的扩展3)为之后多态性的使用,提供了前提2.继承性的格式:class A extends B{}A: 子类、派生类、subclassB: 父类、超类、基类、superclass2.1体现:一旦子类A继承父类B后,子类A中就获取了父类B中声明的结构:属性、方法特别的:父类中声明为private的属性或方法,子类继承父类以后,仍然
2022-03-27 10:09:51 441
原创 JavaSE 第 4 章 面向对象编程(上)
*.学习面向对象(OOP)内容的三条主线1.java类及类的成员类和对象是java的两大要素类的成员:属性、方法、构造器;代码块、内部类2.面向对象的三大特征封装性、继承性、多态性(抽象性)3.其他关键字this/super/stataic/final/abstract/interface/package/import4 - 1 面向过程(POP)和面向对象(OOP)面向过程以函数为基本单位:考虑怎么做;面向对象以类/对
2022-03-27 10:06:41 163
原创 JavaSE 第 3 章 数组
1.一维数组的使用1)一维数组的声明和初始化2)如何调用数组的指定位置的元素3)如何获取数组的长度4)如何遍历数组public class ArrayTest { public static void main(String[] args) { //一维数组的声明和初始化; int[] ids; ids = new int[]{1001,1002,1003,1004};//1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行...
2022-03-27 10:05:22 627
原创 JavaSE 第 2 章 基本语法
2-1 关键字与保留字1.关键字:被java语言赋予了特殊含义,用作专门用途的字符串特点:关键字中所有字母都为小写2.JAVA保留字:现有java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字goto/const2-2 标识符(Identifier)1.标识符Java对各种变量、方法和类等要素命名时使用的字符序列成为标识符(可以自己起名字的地方)2.标识符的命名规则:1)由26给英文字母大小写,0-9,_或$组成
2022-03-27 10:04:13 299
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人