- 博客(21)
- 收藏
- 关注
原创 在事务管理中的传播机制(Propagation)
如果当前有事务,则创建一个嵌套事务(Nested Transaction)。无论当前是否有事务,都创建一个新的事务。如果已经有事务存在,当前事务会被挂起,直到新的事务完成。无论当前是否存在事务,该方法总是在非事务环境下执行。如果存在事务,则会被挂起,直到该方法完成。如果当前已经存在事务,则加入当前事务。如果没有事务,则创建一个新的事务。如果当前有事务,则该方法加入该事务;适合不希望某些操作在事务中执行的场景,通常是对事务不友好的操作。适用于强制要求在事务中执行的操作,如果没有事务就是不合法的。
2024-10-15 21:45:52
476
原创 Java_集合_双列集合_Map
Set<String> stringPropertyNames() -> 获取所有的key,存储到set集合中,类似于keySet。Set<Map.Entry<K,V>> entrySet()->获取Map集合中的键值对,转存到Set集合中。Set<Map.Entry<K,V>> entrySet()->获取Map集合中的键值对,转存到Set集合中。Set<K> keySet()->将Map中的key获取出来,转存到Set集合中。V get(Object key) -> 根据key获取value。
2024-09-28 21:28:44
992
原创 Java_集合_单列集合Collection
boolean add(E e) : 将给定的元素添加到当前集合中(我们一般调add时,不用boolean接收,因为add一定会成功)extends E> c) :将另一个集合元素添加到当前集合中 (集合合并)boolean contains(Object o) :判断当前集合中是否包含指定的元素。boolean isEmpty() : 判断当前集合中是否有元素->判断集合是否为空。boolean remove(Object o):将指定的元素从集合中删除。int size() :返回集合中的元素个数。
2024-09-27 21:28:59
341
原创 Lambda表达式
Lambda格式:()->{}a.():重写方法的参数位置b.->:指的是传递->将重写方法的参数传递到方法体中c.{}:重写方法的方法体/*new Thread不能省略,如果省略了,没法创建线程对象了@OverrideSystem.out.println("我执行了");new Runnable的目的是啥?重写run方法,设置线程任务所以,按照函数式编程思想的角度来分析,new Runnable就是过程目的是重写run方法,设置线程任务所以new Runnable可以省略了。
2024-09-18 18:58:25
516
原创 Java多线程-(线程的创建,线程安全,线程状态)
1.定义一个自定义线程类继承Thread2.重写run方法(run方法是用于设置线程任务的)3.创建自定义线程类对象4.调用Thread类中的start方法(start方法:开启线程,jvm自动执行run方法)
2024-09-13 19:16:04
1749
原创 Java时间类(Date,Calendar,LocalDate,Period,Duration)
时间原点: 1970年1月1日0时0分0秒构造:Date() 根据当前系统时间创建Date对象Date(long time) 根据指定的时间创建Date对象,传递的是毫秒值1.void setTime(long time) 设置时间,传递毫秒值2.long getTime() 获取时间对应的毫秒值。
2024-09-11 19:52:59
1098
原创 Java常用API(Math,BigInteger,BigDecimal,System,Arrays,包装类)
1.描述:将来我们肯定会操作超大的整数,这个整数已经超出了int以及long的范围了,我们跟这样的整数叫做"对象"2.作用:处理超大整数的开发不要用double或者float直接做运算,否则很容易出现精度损失问题,所以我们一般都是用BigDecimal去进行小数运算作用:处理float或者double直接做运算出现的精度损失问题。
2024-09-11 19:02:47
964
原创 String && StringBuilder
String拼接字符串每拼接一次都会产生一个新的字符串对象,如果拼接次数多了,太占用内存了,而且效率比较低,所以我们要学StringBuilder来拼接字符串StringBuilder的特点:a.StringBuilder底层是一个没有被final修饰的byte数组,数组的地址值可以改变的b.StringBuilder底层默认自带长度为16的缓冲区(数组),字符串拼接之后会自动放到这个缓冲区中,不会随意产生新对象。
2024-09-10 19:37:25
2090
原创 Java-内部类
当一个事物的内部,还有一个部分需要完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使用内部类当一个类内部的成员也需要用属性和行为描述时,就可以定义成内部类了在java中允许一个类的定义位于另外一个类内部,前者就称之为内部类,后者称之为外部类class A{class B{A就是B的外部类B就是A的内部类分类:成员内部类(静态,非静态)局部内部类匿名内部类(重点) -> 匿名内部类属于局部内部类一种。
2024-09-09 21:27:50
877
原创 Lombok&&Junit
1.概述:第三方工具(oracle属于第一方,我们自己属于第二方,除此之外都是第三方)2.作用:简化javabean3.使用:想要使用第三方的工具,需要导入第三方提供给咱们得jar包(jar是一个压缩包,需要将jar导入到我们的模块下,解压才能使用里面的工具类)a.在当前模块下创建文件夹,取名为lib或者libsb.将lombok的jar包,复制到lib下c.将jar包在当前位置解压:对着要解压的jar包,或者对着lib文件夹,右键-> add as library -> ok。
2024-09-07 22:31:06
580
原创 Java面向对象之--多态
对象名 instanceof 类型 -> 判断关键字前面的对象是否属于关键字后面的类型。父类类型 对象名 = new 子类对象() -> 好比是 double b = 10。a.好处:既能调用重写的,还能调用子类特有的,还能调用继承的。1.概述:向下转型其实就是强转,实质上就是将父类类型转成子类类型。b.必须有方法的重写(没有方法的重写多态没有意义)父类引用指向子类对象 -> 向上转型 -> 多态默认的。b.不能直接调用子类特有功能,c.创建对象,调用重写的方法。a.创建子类,继承父类。
2024-09-06 19:20:03
547
原创 Java继承之--super和this关键字
除了调用父类构造方法需要在子类的构造中写,其他的都应该在子类的方法中去使用super调用父类其他成员。1.概述:代表的是当前对象-> 哪个对象调用的this所在的方法,this代表哪个对象。2.原因:子类构造中(子类所有构造)第一行默认会有一个super(),不写也有。2.作用:在子类中调用父类成员(构造,成员变量,非静态成员方法)this(实参):调用当前对象的有参构造。this():调用当前对象的无参构造。3.super():代表的是父类无参构造。a.调用父类构造:在子类构造中写。
2024-09-06 11:15:00
664
原创 Java面向对象之--继承
1.父类怎么形成的:不想在每个类中都重复写一写代码,我们就定义一个父类,将这些类重复的代码抽取到父类中,其他的类想使用父类中抽取的成员,直接继承即可2.格式:子类 extends 父类3.注意:a.子类可以继承父类中私有和非私有成员但是不能使用父类私有成员b.构造方法不能被继承c.静态方法能继承但是不能被重写。
2024-09-05 16:55:02
593
原创 static关键字
a.修饰一个成员变量static 数据类型 变量名b.修饰一个方法修饰符 static 返回值类型 方法名(形参){方法体return 结果a.静态成员属于类的成员,非静态成员属于对象的成员b.静态成员会随着类的加载而加载c.静态成员会优先于对象成员产生d.凡是根据static成员所在的类创建出来的对象,都可以共享这个静态成员。
2024-09-05 11:21:13
336
原创 Java面向对象之--封装
java中的封装:将一段代码打包装起来,外界不能直接使用这段代码,但是需要对外提供一个公共的接口,供外界间接使用这段封装起来的代码就是将细节隐藏起来(不让外界直接访问),对外提供公共的接口(让外界通过接口间接访问封装起来的代码)封装体现: a.将一段代码放到方法内部 -> 方法名就是对外提供的公共接口 b.将成员变量,方法 ->用 private修饰private关键字: a.概述:代表的是私有权限,是一个权限修饰符 b.作用:被private修饰的成员,只能在本类中使用,在别的类中使用不
2024-09-05 10:43:47
985
原创 04异常throws & try...catch
针对于GC清理不掉的对象,我们只能自己手动清理,那么这些对象只要是new出来了后续是否使用了,或者使用的过程中是否有异常了,不管异常是否捕获到了,最后我们都应该手动清理。表现形式为:代码编写的时候没有语法错误,但是调用了某个方法,而这个方法底层抛出了一 个编译时期异常,导致我们的代码一用就爆红了。处理异常的代码 -> 打印异常信息 -> 将来都是将异常信息放到日志文件中。处理异常,并不是将有异常的代码变成没有异常了,而是将编译时期异常出现的红线给消除掉。
2024-09-04 19:23:42
1134
原创 02位运算符
运算规则:对应位只要有1即为1,相当于符号前后只要有一个为true,结果就是true。运算规则:往右移动后,左边空出来的位直接补0,不管最高位是0还是1空出来的都拿0补。当左移的位数n超过该数据类型的总位数时,相当于左移(n-总位数)位。运算规则:对应位一样的为0,不一样的为1。1 ^ 1 结果为0 false。8>>>34位->相当于移动2位。1 ^ 0 结果为1 true。0 ^ 1 结果为1 true。相当于:-2*(2的2次方)相当于:2*(2的2次方)1 & 1 结果为1。
2024-08-22 17:13:02
200
1
原创 01强制类型转换
1.取值范围小的数据类型 变量名 = 取值范围大的数据类型 -> 报错,需要手动强转 取值范围小的数据类型 变量名 = (取值范围小的数据类型)取值范围大的数据类型2.注意事项a.不要故意写成需要强转的格式,除非没有办法,会出现精度损失和数据溢出现象b.byte和short如果等号右边是字面值,不超出byte和short的范围,不用我们自己转,jvm自动为我们强转 c. byte和short如果等号右边是变量参与,结果再重新赋值给byte或
2024-08-22 11:57:04
412
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人