JAVA EE
文章平均质量分 90
JAVA EE
小 王
这个作者很懒,什么都没留下…
展开
-
多线程进阶
锁的粒度,也就是锁的范围,也就是sychronized包裹代码的多少,包的越多粒度就越粗,包的越少粒度就越细,对于多个连续的任务,如果每个任务都加一把锁,这个过程就会产生频繁的锁竞争,JVM就会把锁的范围增大到整个任务的开始与结束,减少锁竞争的次数来提高效率。sychronized是程序员自己手动加的获取锁的逻辑,什么时候加,加在哪个代码块,JVM管不了,但是在编译和运行的时候,JVM可以知道程序是读变量,还是写变量。如果一个操作是读操作,当前也是读锁,那么就直接读了,不产生锁竞争,从而节省了资源。原创 2023-10-24 19:29:02 · 68 阅读 · 0 评论 -
springboot+redis+阿里云短信实现手机号登录
测试,可以打开test测试一下是否可以发送成功,直接复制到IDEA中,修改部分参数即可进行测试。以上便是一个简单的短信验证码的发送实现,注意一定一定一定要保护好自己的。创建Springboot项目这里jdk版本为1.8,添加以下依赖即可。由于没有前端页面,我们借助postman工具来进行发送验证码功能。以上仅供参考学习,其中还有许多需要改进的功能,看完留下一个三连吧。如果是开始学习的话建议安装到自己本机环境下,测试通过后就可以进行业务层的实现了。此时手机上收到的验证码。原创 2023-09-23 15:49:17 · 946 阅读 · 6 评论 -
多线程应用——线程池
一次创建多个线程,放在一个池子(集合类),用的时候拿一个,用完了之后就放回这个池子就可以了。原创 2023-09-06 18:01:31 · 824 阅读 · 9 评论 -
多线程应用——阻塞队列
(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则是不等前一个任务结束就执行,所以程序的执行顺序与任务的排列顺序是不一致的、异步的。高内聚:业务强相关的功能或代码组织在一起,不要在这个类里一个方法,那个类里一个方法,为了后续维护方便,设计与组织的一种方式。低耦合:不强相关的代码,或是重复代码,尽量抽象成其他的接口,在各个方法中调用就可以了。擀皮的那个人是生产者,其他包饺子的人是消费者,放饺子皮的地方是交易场所。异步指的是每一个任务有一个或多个。原创 2023-09-02 20:14:40 · 504 阅读 · 2 评论 -
多线程应用——单例模式
单例模式(Singleton Pattern)顾名思义,在程序中一个类只有一个对象实例。例如我们在JDBC编程中,我们创建了一个简单类DataSource,只要从DataSource中获取数据库连接即可,不用创建多个DataSource对象。单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供了一个全局访问点来访问该实例。原创 2023-08-30 19:28:36 · 2072 阅读 · 7 评论 -
线程安全——Synchronized
synchronized的几种用法修饰普通方法,相当于锁实例对象对代码块进行加锁,相当于锁当前调用方法的对象(也是实例对象)对静态方法进行加锁,相当于锁类对象。原创 2023-03-28 17:01:29 · 916 阅读 · 12 评论 -
多线程初阶——线程安全
场景:用两个线程同时对一个变量进行5万次自增操作,预期结果是自增10万次。i < num;i < num;count ++;} }结果如下和我们预期的结果10000不一样,因此这种现象称为线程不安全。线程安全产生的原因线程在CPU上是抢占式执行,抢占CPU资源是没有顺序的(程序猿无法处理)多个线程修改了同一变量的值指令执行没有保证原子性修改变量时没有保证内存可见性程序在编译时,可能会存在指令重排序。原创 2023-03-26 17:36:15 · 1414 阅读 · 7 评论 -
CSS基础
css基础原创 2023-03-10 00:24:10 · 827 阅读 · 4 评论 -
HTML基础
html常见的标签原创 2023-03-08 01:48:20 · 1300 阅读 · 9 评论 -
Java IO流
前面我们介绍了Java中对文件的操作以及file类的了解,但是file类只能对文件信息进行操作,创建,获取,删除,列表,重命名。无法进行文件的读取和写入。在Java中I/O操作是指对文件进行输入Input/输出Output操作。Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。Java中针对Input和Output提供了2个抽象类。原创 2023-03-07 00:51:58 · 1521 阅读 · 12 评论 -
JAVA文件操作
Java文件操作原创 2023-02-18 13:17:24 · 779 阅读 · 11 评论 -
多线程初阶——线程状态
在Java线程分为6种状态1. NEW:创建好了一个Java的Thread对象,并安排好了任务,没有调用start()方法之前,和PCB没有关系2. RUNNABLE:运行+就绪状态,在执行任务时的一个常态之一3. TIMED_WAITING:指定了一个时间的阻塞队列,过时不候4. WAITING :没有指定时间的等待,一直死等5. BLOCK:等待锁的状态6. TERMINATED :结束,完成状态,PCB已经被销毁了,但是Java对象还在原创 2023-02-04 00:51:53 · 755 阅读 · 11 评论 -
多线程(初阶)——多线程基础
这个方法让JVM去操作申请一个真实的PCB,这就与操作系统扯上关系了,操作系统就能执行我们自己定义的这个线程任务了。原创 2023-01-27 00:41:13 · 529 阅读 · 15 评论 -
多线程初阶——进程调度的基本过程
通常我们使用的.exe程序不使用时,会静静的躺在我们的硬盘里,双击程序后,这时程序文件就被系统从硬盘中读取,加载到内存中,这时系统就会创建一个和这个程序对应的进程,这时这个程序就运行起来了。简单来说进程是动态的可执行程序。原创 2023-01-08 22:03:50 · 676 阅读 · 5 评论