自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 收藏
  • 关注

原创 mp中的乐观锁

创建一个包config,包中创建一个配置类 MpConfig,添加Configuration注解,把启动类中的mapperScan注解也可移到配置类中来。执行更新时, set version = newVersion where version = oldVersion。(2) 对应实体类添加version字段,即版本号属性,在实体类版本号属性添加注解。(1)数据库表中添加version字段,作为乐观锁版本号。当要更新一条记录的时候,希望这条记录没有被别人更新。更新时,带上这个version。

2024-01-19 11:44:18 484

原创 线程通信wait()、notify()

一、线程通信(线程交互):当多个线程完成某些特定任务的时候,线程之间有时也需要一定的通信,即线程通信例如:模拟银行账户,用户A不断往该账户中存钱,最多存储10000元,若账户己满,需要通知用户B取钱用户B不断从该账户中取钱,若余额不足时,需要通知用户A存钱使用两个线程打印1-100,线程1、线程2 交替打印二、在java.Long.Object类中【等待唤醒机制】wait():使当前"同步监视器"上的线程进入等待状态,同时释放锁notify()/notifyAll():唤醒当前"同步监视器

2023-01-17 20:13:20 197

原创 线 程 同 步、线程的死锁问题

线程同步:模拟售票程序出现问题: 当多个线程同时访问共享数据时,产生无序、重复、超额售票等多线程安全问题解决:将多个线程需要访问的共享数据,包装起来视为一个整体,确保一次只有一个线程执行流访问共享数据Java为上述问题提供了相应的解决办法: 1、同步代码块 synchronized(同步监视器){ //多个线程需要访问的共享数据 } 同步监视器:俗称“锁” ,可以使用任意类型的对象充当。但是必

2023-01-17 16:08:04 812

原创 线程的优先级

线程的优先级(1-10):默认的优先级为:5;优先级高并不意味着线程一定会优先执行,优先级高可以更高概率的获取cpu的资源setPriority():设置线程优先级getPriority():获取线程优先级MAX_PRIORITY : 10MIN_PRIORITY : 1NORM_PRIORITY :5

2023-01-15 21:45:27 466

原创 线程的生命周期

线程的生命周期

2023-01-15 21:29:05 68

原创 线程的控制

线程的控制sleep(Long millis):使当前线程进入睡眠状态(是一个静态方法)join() / join(Long millis):是当前线程进入阻塞状态(是一个实例方法)interrupt():中断阻塞状态的线程isAlive():判断当前线程是否处于存活状态yield():线程让步

2023-01-15 20:18:15 138

原创 结束线程---使用通知的方式

结束线程:采用通知的方式,通常在线程执行体中写一些持续执行的语句,比如说循环,因此,控制住循环,就可以控制住当前的线程在main方法中创建并后动两个线程·第一个线程循环随机打印1oo以内的整数﹐直到第二个线程从键盘读取了Q命令·

2023-01-15 18:48:24 232

原创 多线程---创建执行线程的方式之二

一、创建执行线程的方式二:①声明一个类实现Runnable 接口②实现接口中的run()方法,同时编写线程执行体③创建该实现类的实例④创建Thread类的实例⑤将实现类的实例作为参数传递给Thread的构造器⑥调用Thread的start()方法启动线程,默认调用run()方法二、创建执行线程的两种方式的区别?①实现Runnable接口的方式解决了Java中单继承的局限性②若多个线程需要访问共享数据时,首选使用 实现Runnable接口的方式

2023-01-14 12:11:35 72

原创 多线程原理及创建方式之一

一、进程:为了完成某项特定的任务,使用某种语言,编写一组指令的集合进程:正在进行中的程序线程:在一个进程中,执行的一套功能流程,称为线程 在一个进程中,执行的多套功能流程,成为多线程二、为什么使用多线程?抢占式策略系统:系统会为每个执行任务的线程分配一个很小的时间段﹐当该时间段用完后﹐系统会强制剥夺其 cpu 的执行权交给其他线程完成任务1、提高效率:尽可能的利用cpu的资源2、增强用户体验JVM:多线程main方法称为主线程三、线程的常用方法currentThread

2023-01-14 10:34:05 61

原创 java.io.File类

file1.renameTo(file2):file1必须存在,file2必须不存在。如果目录里面有文件删除目录返回false,没有则返回true。该方法获取的是该目录中所有的文件和目录的列表名(名称)renameTo(File newName):重命名。若hello.txt不存在则返回false。若删除的是目录,则需要将目录中所有的内容清空。mkdirs:不管存不存在,直接创建目录。若两个路径都存在也返回false。前提是所见目录的上级目录存在。获取该目录下文件的对象。

2023-01-10 00:14:02 287

原创 IO流_转换流与编码解码

【代码】IO流_转换流与编码解码。

2023-01-09 20:23:16 102

原创 IO流(控制台IO与打印流)

标准输入流:System.in是单例的:IO流(控制台IO与打印流)

2023-01-09 10:06:06 68

原创 对象的序列化

对象流:ObjectInputStream & ObjectOutputStream1、对象的序列化:将内存中的对象永久的以二进制形式保存到磁盘中①创建节点流对象②(可选)创建缓冲流包装对应节点流,用于提高效率③创建对象流包装对应的缓冲流,用于完成序列化④通过writeXxx()方法完成序列化⑤需要序列化对象的类必须实现java.io.Serializable接口⑥提供序列号private static final Long SerialVersionUID=(long型的id)L;2、

2023-01-07 23:56:21 270

原创 IO流的包装与链接、缓冲流

缓冲流

2023-01-06 23:32:42 100

原创 IO流、文本文件和非文本文件的读、写、复制

②:按数据类型不同:字节流、字符流(字符流用于操作文本文件:txt .java)(字节流用于操作非文本文件 .avi .jpg .mp3)①:按流向不同:输入流、输出流(以程序为主体)抽象基类 节点流。③:按角色不同:节点流、处理流。二、IO流的体系结构。

2023-01-05 20:56:42 139

原创 Collections工具类

操作集合的工具类:CollectionsEnumeration:(了解)古老的集合和古老的迭代器。Vector:是一个古老的实现,是线程安全的,因此效率低。操作集合的工具类:Collections。junit4默认不接收键盘输入。

2023-01-03 22:07:54 58

原创 操作properties属性文件

操作properties属性文件

2023-01-03 19:07:05 90

原创 遍历Map的三种方式

Map的遍历方式一、获取Map中所有的key组成的set;需用到的方法:keySet()方法Map的遍历方式二、获取Map中所有的value组成的Collection;需用到的方法:values()方法Map的遍历方式三、获取Map中所有的Entry(是Map的内部类,一个Entry对应着一个key和一个value)组成的Set ;用到的方法:entrySet()

2023-01-03 10:34:21 235

原创 Map系列映射集合

Map系列映射集合、Map常用方法

2023-01-01 23:09:58 106

原创 集合的遍历

1、增强for循环 for(被遍历集合中元素的数据类型 变量名 : 被遍历的集合){ }2、使用Iterator迭代器①、获取当前集合的迭代器②、通过hasNext()、next()方法配合遍历集合

2023-01-01 16:12:52 68

原创 Comparator定制排序

【代码】Comparator定制排序。Comparator:定制排序 ①声明一个类实现Comparator接口 ②实现接口中的抽象方法compare(Object o1,Object o2) ③将该实现类的实例作为参数传递给TreeSet的构造器

2022-12-30 23:23:26 181

原创 TreeSet

①需要添加到TreeSet 集合中对象的类,实现Comparable接口。②实现接口中的抽象方法compareTo(Object o)>Comparable:自然排序。TreeSet:拥有指定的排序方式。

2022-12-30 23:08:55 64

原创 LinkedHashSet

LinkedHashSet:是HashSet的子类,相似于HashSet多了链表维护元素的顺序,遍历效率高于HashSet 增删效率低于HashSet

2022-12-30 22:30:06 156

原创 HashSet

【代码】HashSet。

2022-12-30 18:32:51 100

原创 LinkedList常用方法

【代码】LinkedList常用方法。

2022-12-29 23:07:37 337

原创 List常用方法

Object set(int index, Object ele):将index索引位置的元素修改为ele。>int indexOf(Object obj):查找某个元素的索引位置,找到返回索引值,找不到返回-1。>void add(int index, Object ele):在index索引位置添加元素ele。>Object remove(int index):删除指定索引位置的元素。>Object get(int index):获取指定索引位置的对象。

2022-12-29 22:50:56 81

原创 集合Collection

Collection接口

2022-12-29 21:26:38 55

原创 hibernate中错误解决

-----------------------------------已解决--------------------------分割线----------------------------------------否则在运行时,会报出“xxxx doesn't have a default value”的错误。在进行Junit测试时,eclipse没有在数据库创建表格。所以报出表不存在的问题。最重要的是在数据库中的主键,要有设置成“自动递增”的一项。完成数据库的表创建后,进行JUnit测试,成功。

2022-11-16 00:35:50 290

原创 在n个球中,任意取出m个(不放回),求有多少种方法?

在n个球中,任意取出m个(不放回),求有多少种方法?

2022-10-09 22:37:35 161

原创 制造异常对象:throw

(5)nterger类的static方法parselInt(String s)将s转换成对应的int值。(若继承的是RuntimeException,则该异常为运行时异常,若继承的是Exception,则该异常为编译时异常)(1)在主类(EcmDef)中定义异常方法(ecm)完成两数相除功能。(3)在程序中,自定义对应输入负数的异常类(EcDef)。(2)在main()方法中使用异常处理语句进行异常处理。输入负数(EcDef自定义的异常)进行异常处理。①声明一个类继承一个异常类。

2022-09-04 22:17:55 378

原创 处理异常的方式之二:throws

throws是异常的处理方式之一,只不过处理的方式是将异常抛出,交给调用者做具体的处理。【补充】:子类重写方法抛出的异常类型范围不能大于父类被重写方法异常类型的范围。throws是异常的处理方式之一,使用在方法的声明处,后面跟异常的类型。异常的处理方式之一:throws。

2022-09-04 18:23:45 307

原创 finally执行语句的注意和小陷阱

finally 是可选的,一旦写上就一定执行的语句,即使过程中有return也一定执行。

2022-09-04 15:07:17 113

原创 异常的处理

--运行时异常(非受检异常unchecked):有时可以保证程序的正常运行,一旦发生异常,会在该代码处生成一个异常对象。/--编译时异常(受检异常 checked):编译时对其进行检查,若不处理,编译不能通过。会在该代码处生成一个异常对象,以堆栈形式抛出,若不对其处理,最终会导致程序终止。抛:一旦某句代码发生异常,会在该代码处生成一个异常对象,然后堆栈式抛出。抛:一旦某句代码发生异常,会在该代码处生成一个异常对象,然后堆栈式抛出。Java中的异常都是以对象的形式存在,一旦某句代码发生异常,

2022-09-04 14:43:56 245

原创 其他常用类

二、java.text.DateFormat类:用于格式化时间/日期,但是是一个抽象类(不能创建实例)int round(float f):返回最接近f的int型(四舍五入)double ceil(double d) :返回不小于d的最小整数。double floor(double d):返回不大于d的最大整数。Long round( double d):返回最接近d的Long型。一、java.util.Date类:表示一个特定的时间,精确到毫秒。double abs( double d):返回绝对值。..

2022-08-31 21:01:43 99

原创 StringBuffer、StringBuilder、String的区别

StringBuffer replace(int start,int end,String str):替换。③String substring(int start, int end):取子字符串序列,包含头不包含尾。④StringBuffer delete(int start, int end):删除一段字符串。StringBuffer insert(int offset,String str) :插入。②int indexof(String str) :返回子串的位置索引。...

2022-08-30 17:36:07 63

原创 字符串常见算法

字符串常见算法

2022-08-28 14:51:27 1468

原创 API_String的重要特性

①int indexOf(int ch) :获取指定字符在字符串中的位置,若没有指定的字符,返回int indexOf (int ch,int fromIndex)③boolean startsWith(String str)和boolean endsWith(String str):判断是否已指定字符串开始/结尾。String replace(String oldStr,String oldStr):替换字符串中字符串。①.String concat (String str):串接字符串。

2022-08-25 16:50:49 103

原创 API(包装类)、装箱与拆箱、基本数据类型、包装类与String之间的转换

API(包装类)、装箱与拆箱、基本数据类型、包装类与String之间的转换

2022-08-18 22:05:18 185

原创 java内置常用注解

@Deprecated:用于注解属性、方法、类。* @Deprecated:用于注解属性、方法、类。* 一、注解:jdk1.5后出的特性,是一个元数据,是一个代码级别的说明。* 一、注解:jdk1.5后出的特性,是一个元数据,是一个代码级别的说明。* @Override:用于注解方法,说明该方法必须是一个重写方法。* @Override:用于注解方法,说明该方法必须是一个重写方法。* 注解在java中都是以“@注解名”的形式呈现。* @Inherited:用于说明注解用于继承性。...

2022-08-17 22:28:30 366

原创 自定义枚举类

Integer.parseInt方法转换),分别代表星期一至星期日,打印该值对应的枚举值,然后以此枚举值调用printWeek方法输出中文星期。--简而言之:当确定一个类有几个对象,使用枚举。* 2.在TestWeek类中声明方法中printWeek(Week week),根。* 1.声明Week枚举类,其中包含星期一至星期日的定义;* 3.在main方法中从命令行接收一个1-7的整数(使用。优化:每个枚举类都去单独实现show方法。1、自定义枚举类(jdk1.5前)1、自定义枚举类(jdk1.5前)...

2022-08-17 17:50:15 885

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除