- 博客(99)
- 问答 (1)
- 收藏
- 关注
原创 阿里云服务器活动
https://www.aliyun.com/daily-act/ecs/activity_share?userCode=9t3vbnkvhttps://www.aliyun.com/daily-act/ecs/activity_selection?userCode=9t3vbnkvhttps://yqh.aliyun.com/live/cdncarnival?userCode=9t3vbnkv
2023-05-21 13:29:11 139
原创 Java线程池
构建一个线程开销很大,如果程序中涉及到大量临时线程,就不应该将业务逻辑单独放入一个线程中,而应该使用线程池。线程池中包含许多准备运行的线程,为线程池提供一个Runnable,就会有一个线程调用run方法。当run方法退出时,这个线程不会死亡,而是留在池中准备为下一个请求提供服务。使用executorService.submit提交任务,会得到一个Future的返回值。使用executorService.execute提交任务,是不会有返回值的。Executors 提供了三种快速创建线程池的方式。
2023-05-02 19:44:56 155
原创 JUC的使用
CyclicBarrier可以重置,重新使用,但是CountDownLatch的值等于0时,就不可重复用了。CyclicBarrier只能够唤醒一个任务,CountDownLatch可以唤起多个任务。juc一般是指jdk中java.util .concurrent工具包。计数信号量,实现限流操作,限制可以访问某些资源的线程数量。await():计数器停止,唤醒其他线程。Semaphore 只有 3 个操作。countDown():计数器减一。
2023-05-02 16:53:39 178
原创 Java的同步
AtomicInteger、AtomicIntegerArray、AtomicLongArray等都可以解决多线程同步问题。ReentrantLock还可以控制锁的时间,而synchronized 不行。ArrayBlockingQueue、ConcurrentHashMap等。同步可以防止并发访问代码块,使多个线程共享某一个资源(代码块)同时用锁时要注意别造成死锁的情况,死锁会造成系统堵塞。volatile修饰变量,可以让变量在多个线程同步。
2023-05-02 15:22:16 603
原创 Java 实现多线程的三种方式
1、继承Thread类2、实现Runnable接口3、实现Callable接口1、增强程序的健壮性,将业务逻辑与线程调度分离2、线程池只能放入实现Runable或Callable类线程,不能直接放入继承Thread的类。
2023-05-02 00:20:44 1072
原创 数据库设计三大范式
但是如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等多个部分进行存储,这样在对地址中某一部分操作的时候将非常方便。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。**.第三范式(确保每列都和主键列直接相关,而不是间接相关)****.第二范式(确保表中的每列都和主键相关)****.第一范式(确保每列保持原子性)**
2023-04-29 21:06:36 63
原创 spring 声明式事务管理
不会回滚,需我们指定方式来让事务回滚要想所有异常都回滚,要加上 @Transactional( rollbackFor={Exception.class,其它异常}) .如果让运行时异常不回滚: @Transactional(notRollbackFor=RunTimeException.class)上面的例子中,其实正是元素的出现开启了事务行为。noRollbackForClassName 该属性用于设置不需要进行回滚的异常类名称数组,当方法中抛出指定异常名称数组中的异常时,不进行事务回滚。
2023-04-29 14:53:36 938
原创 数据库的事务
多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non-repeatable read)、幻读(phantom read)的问题,为了解决这些问题,就有了“隔离级别”的概念。当事务被提交给了数据库管理系统(DBMS),则 DBMS 需要确保该事务中的所有操作都成功完成且其结果被永久保存在数据库中,如果事务中有的操作没有成功完成,则事务中的所有操作都需要回滚,回到事务执行前的状态;同时,该事务对数据库或者其他事务的执行无影响,所有的事务都好像在独立的运行。
2023-04-29 14:28:48 993
原创 Docker入门
一键安装配置daemon.json文件docker默认是没有这一文件的,需要手动创建 默认路径为 /etc/docker/daemon.json配置好后需要重启配置和重启docker。
2023-04-24 09:00:00 747
原创 Java的集合(一)
集合类是Java数据结构的实现。Java的集合类是java.util包中的重要内容,它允许以各种方式将元素分组,并定义了各种使这些元素更容易操作的方法。Java集合类是Java将一些基本的和使用频率极高的基础类进行封装和增强后再以一个类的形式提供。
2023-04-22 09:00:00 415
原创 Redis入门篇(一)
Redis因其丰富的数据结构、极快的速度、齐全的功能而为人所知,它是目前内存数据库方面的事实标准,在互联网上有非常广泛的应用,微博、Twitter、GitHub、Stack Overflow、知乎等国内外公司都大量地使用了Redis。Redis提供了字符串(Strings)、列表(lists)、集合(sets)、散列(hashes)、有序集合(sorted sets)、流(streams)、HyperLogLog、位图(bitmaps)、地理坐标(Geospatial)等一系列丰富的数据结构。
2023-04-20 10:00:00 372
原创 Elasticsearch 入门篇(一)
Google,百度类的网站搜索,大型的电商网站它们都是根据网页中的关键字生成索引,我们在搜索的时候输入关键字,它们会将该关键字即索引匹配到的所有网页返回;为了解决结构化数据搜索和非结构化数据搜索性能问题,我们就需要专业,健壮,强大的全文搜索引擎这里说到的全文搜索引擎指的是目前广泛应用的主流搜索引擎。它的工作原理是计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。
2023-04-19 10:00:00 376
原创 java使用阿里云oss上传文件
OSS将数据文件以对象/文件(Object)的形式上传到存储空间(Bucket)中。OSS提供的是一个Key-Value键值对形式的对象存储服务。相较传统建服务器存储而言,OSS在可靠性、安全性、成本和数据处理能力方面都有着突出的优势。使用OSS,您可以通过网络随时存储和调用包括文本、图片和视频等在内的各种非结构化数据文件。OSS是阿里云对象存储服务(Object Storage Service)的一个简称,它是阿里云提供的海量、安全、低成本、高可靠的云存储服务。我用的是阿里的oss服务。
2023-04-18 09:00:00 1119
原创 使用File System Access API 让浏览器可以操作文件
File System Access API 是一项 Web API,允许 Web 应用程序从用户设备的本地文件系统中读取和写入文件。它提供了一种简单且安全的方法,让用户在不离开 Web 应用的情况下,从本地文件系统中操作文件。这项 API 为 Web 应用程序提供了更多的灵活性和功能,使其更接近于本地应用程序的体验。
2023-04-17 09:00:00 411
原创 springboot使用 spring-retry 解决重试
若不需要重试失败后的处理方法,则不写回调方法,重试耗尽后抛出异常。@Recover 注解来开启重试失败后调用的方法(注意,需跟重处理方法在同一个类中),此注解注释的方法参数一定要是 @Retryable 抛出的异常,否则无法识别,可以在该方法中进行日志处理。value,可重试的异常类型。默认为空(如果excludes也为空,则重试所有异常)如果重试失败需要给 @Recover 注解的方法做后续处理,那这个重试的方法不能有返回值,只能是 void。默认为空(如果excludes也为空,则重试所有异常)
2023-04-16 10:00:00 364
原创 springboot调用外部接口常用的方式
RestTemplate 的功能较为复杂,需要手动实现请求体、请求头、响应体、响应头等自定义配置,因此需要一定的编程经验和技能。Feign 的功能较为复杂,需要手动实现请求拦截、响应拦截、请求体拦截、响应体拦截、验证和认证等功能,因此需要一定的编程经验。RestTemplate 可以处理 HTTP 请求和响应,实现对 HTTP 请求和响应的拦截、代理、拦截等功能。Feign 可以实现自定义的请求拦截、响应拦截、请求体拦截、响应体拦截等功能,因此可以更好地满足业务需求。
2023-04-16 09:00:00 1910
原创 后端程序员必须学会的编辑器vim
Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs在文本编辑方面都是非常优秀的。
2023-04-15 10:00:00 686 1
原创 dart常用方法与属性总结
方法作用parse将String转换为数字类型:数字类型.parse(字符串)toString将数字类型转换为字符串。
2023-04-14 18:00:00 346
原创 flutter开发小技巧以及注意点
16.接口,dart里面没有专门的抽象类,只能用普通类或抽象类当成接口使用,使用关键字来实现接口。在属性或方法名前面加_(下划线)
2023-04-14 18:00:00 386
原创 spring mvc中注解@RequestParam与注解@PathVariable的区别
spring mvc中注解@RequestParam与注解@PathVariable的区别
2022-07-28 23:52:22 136
空空如也
Android11上运行出现问题
2021-07-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人