随笔分类 -  Java知识学习

摘要:在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。 快速失败迭代器会尽最大努力抛出 ConcurrentModificationException。 因此, 阅读全文
posted @ 2021-09-09 12:10 古兰精 阅读(307) 评论(0) 推荐(0) 编辑
摘要:一、项目实例问题背景 本身对 java 并不熟,听同事说的,所以研究了解一下这个问题,看了一下产生问题的代码长这样 // 筛选出users中email不在memberListAll的email的成员 for (WorkWxUserInfoVO workWxUserInfoVO : memberLis 阅读全文
posted @ 2021-09-08 22:29 古兰精 阅读(230) 评论(0) 推荐(0) 编辑
摘要:缓存由于其高并发和高性能的特性,已经在项目中被广泛使用,在缓存的使用中,通常会面临一个更新的问题,当数据源产生变化,如何去更新到数据库与缓存之中,并且尽量保证安全与性能。 你只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题? 更新缓 阅读全文
posted @ 2021-08-14 21:42 古兰精 阅读(860) 评论(0) 推荐(0) 编辑
摘要:一、Date.compareTo比较时间 DateFormat dateFormat = DateFormat.getDateInstance(); Date oldTime = dateFormat.parse("2021-04-07 19:50:11"); Date newTime = new 阅读全文
posted @ 2021-08-09 23:06 古兰精 阅读(5048) 评论(0) 推荐(0) 编辑
摘要:一、生成随机密码 public class CommonUtils { //随机密码生成 public static String makeRandomPassword(int len){ char charr[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM 阅读全文
posted @ 2021-08-09 22:10 古兰精 阅读(805) 评论(0) 推荐(0) 编辑
摘要:做一个需求在解析 token 时用到 Java 里正则匹配,所以决定把 Java 里的常用正则的工具类学习一下。 在解析 token 的时候还碰到了之前学习过的贪婪模式与非贪婪模式的区别。 Matcher m = Pattern.compile("&data=(.*)").matcher(query 阅读全文
posted @ 2021-08-06 22:24 古兰精 阅读(739) 评论(0) 推荐(0) 编辑
摘要:一、四种常见的线程池 CachedThreadPool:可缓存的线程池,该线程池中没有核心线程,非核心线程的数量为Integer.max_value,就是无限大,当有需要时创建线程来执行任务,没有需要时回收线程,适用于耗时少,任务量大的情况。 SecudleThreadPool:周期性执行任务的线程 阅读全文
posted @ 2021-07-27 22:30 古兰精 阅读(1176) 评论(0) 推荐(0) 编辑
摘要:一、线程池介绍 我们知道,线程的创建和销毁都需要映射到操作系统,因此其代价是比较高昂的。出于避免频繁创建、销毁线程以及方便线程管理的需要,线程池应运而生。 1、线程池优势 (1)降低资源消耗:线程池通常会维护一些线程(数量为 corePoolSize),这些线程被重复使用来执行不同的任务,任务完成后 阅读全文
posted @ 2021-07-27 18:59 古兰精 阅读(312) 评论(0) 推荐(0) 编辑
摘要:转载于:https://www.modb.pro/db/69232 java常见的http请求库有HttpURLConnection、httpclient、RestTemplate、OKhttp,更高层次封装的 feign、retrofit 一、HttpURLConnection HttpURLCo 阅读全文
posted @ 2021-07-20 21:58 古兰精 阅读(2496) 评论(0) 推荐(0) 编辑
摘要:除了 jnr-unixsocket,后来我发现有一个 Java Docker 的库使用还挺普遍的,就是 docker-java,github 有 2k 多star,使用也挺普遍的,一搜很多资料文章。 一、docker-java 配置 1、版本支持 <dependency> <groupId>com. 阅读全文
posted @ 2021-07-19 22:11 古兰精 阅读(4778) 评论(0) 推荐(0) 编辑
摘要:一、JSch 是什么及其作用 JSch 是SSH2的一个纯Java实现。它允许你连接到一个 sshd 服务器,使用端口转发,X11转发,文件传输等等。你可以将它的功能集成到你自己的程序中,同时该项目也提供一个J2ME版本用来在手机上直连SSHD服务器。 说白了就是以 Java 的方式通过 jsch 阅读全文
posted @ 2021-07-17 13:26 古兰精 阅读(16625) 评论(0) 推荐(0) 编辑
摘要:一、问题背景 报错信息:java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.RangeCheck(ArrayList. Exception in thread "main" java.lang.I 阅读全文
posted @ 2021-07-07 18:57 古兰精 阅读(2582) 评论(0) 推荐(0) 编辑
摘要:一、运行时数据区域 JVM在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。具体如下图所示: 二、程序计数器(Program Counter Re 阅读全文
posted @ 2021-06-28 23:03 古兰精 阅读(129) 评论(0) 推荐(0) 编辑
摘要:在实际工作中,经常由于设计不佳或者各种因素,导致类之间相互依赖。这些类可能单独使用时不会出问题,但是在使用Spring进行管理的时候可能就会抛出BeanCurrentlyInCreationException等异常 。当抛出这种异常时表示Spring解决不了该循环依赖,本文将简要说明循环依赖,以及S 阅读全文
posted @ 2021-06-26 23:10 古兰精 阅读(475) 评论(0) 推荐(0) 编辑
摘要:一、接口与抽象类的设计理念 不同点的意义:抽象类是对对象的抽象;接口是实现功能的封装。 其本身的设计目的就是不同的。下面引用至阿里新零售事业群CBU技术部招Java高级&专家,感觉说的很好。 大家讲的都很详细了,我说说我自己的一点浅薄的理解。 我一直认为,工科的知识有个很明显的特点:“以用为本”。在 阅读全文
posted @ 2021-06-25 17:01 古兰精 阅读(355) 评论(0) 推荐(0) 编辑
摘要:今天将从以下4个方面来系统的学习一下java注解:什么是注解、注解的用途、注解使用演示、注解的实现原理。 一、什么是注解 Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获 阅读全文
posted @ 2021-06-24 15:10 古兰精 阅读(1414) 评论(0) 推荐(0) 编辑
摘要:Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后将这个Bean对象交给Spring管理, 和xml配置中的bean标签的作用是一样的。 @Bean是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里,添加的bean的id 阅读全文
posted @ 2021-06-24 12:08 古兰精 阅读(2647) 评论(0) 推荐(0) 编辑
摘要:在 SpringSecurity 的自定义登录拦截中,使用了 jackson 去获取请求流解析成实体类实例对象。如: // 登录是否含手机号 User voUser = new ObjectMapper().readValue(req.getInputStream(), User.class); i 阅读全文
posted @ 2021-06-23 12:07 古兰精 阅读(9053) 评论(0) 推荐(0) 编辑
摘要:在接口开发的过程中,为了程序的健壮性,经常要考虑到代码执行的异常,并给前端一个友好的展示,这里就得用到自定义异常,继承RuntimeException类。那么这个RuntimeException和普通的Exception有什么区别呢。 1、Exception: 非运行时异常,在项目运行之前必须处理掉 阅读全文
posted @ 2021-06-19 14:40 古兰精 阅读(2703) 评论(0) 推荐(1) 编辑
摘要:一、String与Int互转 在 Java 中要将 String 类型转化为 int 类型时,需要使用 Integer 类中的 parseInt() 方法或者 valueOf() 方法进行转换。 String str = "123"; int a = Integer.parseInt(str); / 阅读全文
posted @ 2021-06-18 22:54 古兰精 阅读(2776) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示