java基础
文章平均质量分 78
秀聚
学无止境
展开
-
Java的SpringMVC自定义校验注解的编写,可以使用@Validated自动校验,中国车牌号校验注解示例。
自定义校验注解,需要新建注解,注解中必须包含必须的基础字段:message、groups、payload。然后可以添加自己自定义的字段。所以也就还需要一个规则校验的类。工具包的话,可以使用自定义的正则规则校验车牌号。然后在想要限制的的字段上使用注解即可。用来判断是否符合规则,校验通过返回。其中,如果项目中没有使用。方法做一些初始化操作,示例:车牌号校验注解。原创 2023-05-12 11:30:54 · 361 阅读 · 1 评论 -
6.线程池中有多少线程合适?
如何确定线程池中指定多少线程合适?线程池确实可以减少线程创建和销毁的开销,提高效率,可以复用线程。但是一个线程池中应该指定多少线程合适呢?指定多少核心线程,最大线程数设置为多少合适呢?其实具体的线程数量需要根据不同的服务器和不同的使用场景确定的,脱离了场景去说线程池指定多少线程合适是没有意义的。1. 常见场景一般情况下,我们的实际场景跳不出这个三个场景:1. IO密集型线程池中的大多数任务都是执行IO操作的。IO操作时需要比较长时间的等待的,对于CPU的利用率并不高。所以这时候可以适当的多指定原创 2022-03-07 21:51:22 · 2695 阅读 · 0 评论 -
5. 线程池
文章目录1. 线程池的好处2. 线程池的标准创建方式核心线程数最大线程数空闲时间 与 空闲时间单位1. 线程池的好处在Java中创建线程是需要调度操作系统去完成的,而且系统创建线程和销毁线程的过程也是比较耗时和消耗资源的,如果频繁的创建和销毁线程,那么系统的资源可能都花费在线程的创建和销毁上了,执行真正有效的逻辑的时间和资源就会大幅减少,如果线程可以复用的话,效果可能会比较好一些。所以线程池就出现了。好处:操作简单:不需要再自己去一个一个的创建线程去执行任务,将任务交给线程池执行,线程池会帮你创原创 2022-03-07 20:51:09 · 393 阅读 · 0 评论 -
4. Java线程的一些基本信息:名称、状态、join、yield等
文章目录1. 线程名称2. 线程的sleep操作3. interrupt操作4. join操作5. yield操作6. daemon操作守护线程与用户线程要点7. 线程状态总结1. 线程名称线程的名称线程名称一般在启动前设置,但也允许为运行的线程设置名称线程名称不能为null允许两个线程有相同的名称,但是应该避免这种情况如果没有为线程指定名称,系统会自动为线程设置名称,名称为Thread-编号的形式为线程指定名称的方法有:通过构造方法通过setName()方法接下来看一下部分源原创 2022-03-06 17:35:01 · 526 阅读 · 0 评论 -
3.Java线程的一些性质:线程状态,线程调度等
文章目录1. Java线程的调度和管理2. 线程的调度与时间片1. CPU时间片2. 线程的调度1. 分时调度2. 抢占式调度1. Java线程的调度和管理现在的操作系统已经提供了非常强大的线程管理能力,Java不需要再进行独立的线程管理和调度,而是将线程的调度和管理的工作交给了操作系统去完成。2. 线程的调度与时间片1. CPU时间片现在的CPU的算力已经很快了,2Ghz每秒就可以运行20亿次计算。所以可以将CPU的时间从毫秒级别进行分段,每一段被叫做一个CPU时间片。对于不同的操作系统,不同原创 2022-03-06 10:00:29 · 368 阅读 · 0 评论 -
1. 进程与线程
1. 进程与线程文章目录1. 进程与线程1. 进程2. Java程序的进程3. 线程4. 小结1. 进程进程是程序的一次启动执行。程序是存放在硬盘中的可执行文件,主要包括代码指令和数据。一个进程是一个程序的一次启动和执行,是系统将程序加载到内存,分配需要的资源,并开始运行程序的指令进程-百度百科进程大概有以下几个部分构成:编辑添加图片注释,不超过 140 字(可选)程序段:就是代码段数据段:进程操作的内存数据进程控制块:包含进程的描述信息和控制信息,是进程存在的唯一标志2. J原创 2022-03-05 09:30:40 · 173 阅读 · 0 评论 -
4. 线程池的7种创建方式
线程池有7种创建方式:这里先列出来,稍后逐一演示:1. newSingleThreadExecutor(); // 单一线程池2. newFixedThreadPool(); // 固定数量线程池3. newCachedThreadPool(); // 缓冲线程池,任务多的时候动态增加线程,理论无上限4. newScheduledThreadPool(); // 周期线程池,可以进行定时或周期性的工作调度5. newSingleThreadScheduledExecutor(); // 单个周期原创 2021-01-04 19:39:46 · 259 阅读 · 1 评论 -
3.确保一个集合不能被修改
可以使用 Collections.unmodifiableCollection(Collection c) 方法创建一个只读集合。新的集合不能被修改,操作新集合的时候都会抛出 java.lang.UnsupportedOperationException 异常。代码:List<Integer> list = new ArrayList<>();Collection<Integer> integers = Collections.unmodifiableCollect原创 2020-12-30 16:22:28 · 94 阅读 · 0 评论 -
2. 迭代器 Iterator
文章目录1. 迭代器 Iterator 是什么?2. 如何使用3. 小结1. 迭代器 Iterator 是什么?Iterator 接口提供遍历任何 Collection 的接口,我们可以从一个 Collection 中使用迭代器方法来获取迭代器的实例。代码:// List 获取迭代器List<Integer> list = new ArrayList<>();Iterator<Integer> i1 = list.iterator();// Set 获取迭代原创 2020-12-30 16:01:11 · 113 阅读 · 1 评论 -
1. 反转字符串
反转字符串可以使用StringBuilder 或者原创 2020-12-30 14:41:18 · 73 阅读 · 0 评论