- 博客(68)
- 收藏
- 关注
原创 【面试准备01】SpringBoot一些基础问题
1.谈谈你对Spring Boot的理解?配置变的简单,不像原先spring繁琐,使用.yml 和.properties 如果要使用xml 可以使用@ImportResource注解jar包,可以支持独立运行自动配置 @EnableAutoConfigration读取配置(@ConfigrationProperties) @Value@Service@Repostroy@Component2. 开启SpringBoot特性的两种方式(1)继承spring-boot-starter-pare
2022-03-08 16:06:58
218
原创 上下文切换
引题:为什么有时候线程越多反而耗时越多即便是单核处理器,也是支持多线程执行代码的,CPU会给每个线程分配CPU的时间片来实现。时间片就是CPU分给线程的时间,因为时间片非常短,所以CPU通过不断的切换线程,来让我们觉得多线程是同时进行的那么耗时出现在哪里了,就是上下文切换过多,引起的时间消耗,当然包括线程的创建和销毁具体的概念:当前任务执行一个时间片后会切换到下一个时间片,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态。所以任务从保存到再加载的过程就是一次上下文切
2021-07-17 16:44:37
177
原创 dubbo学习(入门了解)
概述Apache Dubbo 是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。Registry:注册中心,用于服务的注册和发现Provider:服务提供者,向Registry注册服务Consumer:服务消费者,通过从Registry发现服务,后续直接调用Provider,无需经过RegistryMonitor:监控中心,统计服务的调用次数和时间Container:服务运行的容器调用关系说明0:服
2021-06-08 17:10:35
155
原创 实现一个简单的redis分布式锁
使用setNX 若key存在则不放入value,key不存在则放入value。给key设置加锁时间,以免发生死锁。这里可能有问题,如果执行时间太长,下一个请求来了,然后上一个请求执行finally会把其他锁的key删掉,待解决// redis keyString key = ....; try { Boolean isExist = jimClient.setNX(key, new Date().toString()); jimClie
2020-11-22 10:45:50
162
原创 Es简单查询
1. select * from abcPost abc/_search{ "query": { "match_all": {} }}2.select * from abc where a=1 and b=2Post abc/_search{ "query": { "bool": { "filter": [{ "term": { "a": 1 } }, { "term": { "b": 2 }
2020-11-10 20:30:30
367
原创 Rpc调别人接口进行数据库操作,同时更改自己数据库,如何保证事务性
场景描述:目前有个活动,活动里面包含促销,活动是存在我们的数据库中,促销是别人的数据库。然后对活动进行停止,顺便RPC调促销停止接口,如何保证事务性。目前的解决办法,在停止活动前,对促销进行幂等校验,调促销的查询接口,进行查询,如果促销存在,调停止接口,然后进行活动停止。如果促销不存在,直接进行活动停止,但是这样还是保证不了事务性。目前没有更好的解决办法了...
2020-09-23 18:13:38
945
1
原创 java.lang.NoSuchMethodError: *** (Ljava/lang/Long;)V
这个问题困扰了很久,一直得不到好的解决方法!!!!!!花了很久还是没解决,求帮助
2020-07-22 15:26:34
1924
原创 数据库表异构到es的一些感悟
通过消息的方式实现一个topic完成很多事情代码优雅,入参简单,可增加枚举进行辨识场景很多,要确保代码复用,减少冗余代码原先错误例子:消息入参为es参数,这样解决不了ABA问题而且代码复用性很差改进后,在处理消息解决,而且扩展性好,代码的复用性也强中途ABA问题,因为用的队列是乱序,效率好,入参以一个主要参数,在消费时进行查询数据库,这样可以完美解决ABA。...
2020-07-09 18:00:00
514
原创 ReentrantLock介绍和简单使用
1.简介reentrantLock和synchronized比较(1)reentrantLock和synchronized都是独占锁,前者需要主动的加锁和释放锁,后者加锁解锁的过程会自动进行。(2)reentrantLock和synchronized都是可重入的,前者加锁和释放锁的次数必须一致,否则会一直进入等待,后者不必担心最后是否释放了锁。(3)reentranLock可以响应中断,synchronized不能响应中断,一个线程获取不到锁就一直等待。(4)reentrantLock可以实现公平
2020-05-17 22:56:21
347
原创 用stream处理List嵌套List取第一个
List<T> name= list.stream(). map(item -> item.getList().get(0)). collect(Collectors.toList());若有问题,及时留言回复
2020-05-04 15:03:13
6118
原创 入职京东4个月历程
秋招时,拿到了自己满意的offer。也由于自己时间比较多,在拿到offer后,也在当时实习公司离职,也很感谢当时公司对我的培养,因为自己大三就出来实习,在当时公司也已经实习了5个月左右,拿到offer后就开始准备离职,准备入职JD实习。直到现在,已经入职了整整四个月了,在这个大部门中,小组成员都非常nice,对我也非常照顾,我也很幸运的遇到他们,四个月内,学习了很多很多之前没有学习到的东西,对我...
2020-04-12 22:44:07
640
2
原创 静态代码块和代码块
1.静态代码块随着类加载,静态代码块只会加载一次静态代码块相当于类初始化的,构造函数是对象初始化一个类中可以有多个静态代码块public class Test { static { System.out.println("静态代码块"); } public static void main(String[] args) { Test ...
2020-04-12 18:58:34
127
原创 List集合转String并附带分隔符
首先对集合进行判断,是否为null如果不为null则进行转换String a = null != list? String.join(",", list.stream() .map(storeId -> String.valueOf(storeId)).collect(Collectors.toList())) : null...
2020-04-02 20:35:33
373
原创 数组转List,Set
项目之前遇到总结下来同类型String[] stringArray= String.split(COMMA_SEPARATOR);List<String> a = Arrays.asList(stringArray);不必在意COMMA_SEPARATOR,只是一个在代码中定义的一个分隔符。先将String类型通过分隔符转换成数组,然后再转List;String数组转Li...
2020-04-01 21:54:44
459
原创 List中交集,并集,差集
1.并集A:[1,2,3] B:[2,4,5]A.addAll(B)A:[1,2,3,2,4,5]实则意思为将B中的数据全部放入A中,类型必须一致,可以有重复2.差集A:[1,2,3] B:[2,4,5]A.removeAll(B)A:[1,3]3.交集A:[1,2,3] B:[2,4,5]A.retainAll(B)A:[2]...
2020-03-31 18:42:49
147
原创 Optional类的用法
只是我自己的理解!!Optional类of(),如果传入值为null,则报空指针异常。ofNullable(),传入值为null,不会抛异常,和orElse一起使用。orElse(),传入为null,则使用orElse里的值,不为null,依旧会调用方法(值),但不使用。orElseGet,传入为null,提供一个和传入值同对象的函数式接口。...
2020-02-23 21:00:40
190
原创 《学习多线程04》关键字synchronized
1. 为什么要用Synchronizedsynchronized是并发编程中不可缺少的一部分,可以保证在同一时刻,只会有一个线程执行方法或代码块。2. Synchronized能做什么(1)修饰普通方法,锁的是当前方法,要进入需要先获得该方法的锁。(2)修饰静态方法,锁的是当前Class对象,进入需要获取Class的锁。(3)修饰代码块,锁的是括号里的对象,进入需要获取对象的锁。字面...
2020-01-20 20:49:22
93
原创 《我的实习》一次懵逼让我了解到了业务的重要性
“ 在一个阳光明媚的早餐,吃完早饭的我,向师傅询问任务。”我:“师傅,今天有什么任务?”师傅:“你今天看一下XX的代码,看完了给我说。”我:“Ok”此刻,看完代码的我内心十分膨胀我:“师傅,我看完了!”师傅:“行,一会先吃饭,午休结束后回来给我说说你看的。”我看着我师傅矫健的身姿走过来,我的心情十分忐忑。师傅:“来,你给我说说你看的。”我:"…(此处省略无数的代码逻辑)"“想着...
2020-01-15 14:25:32
220
原创 Springboot项目启动后自动弹出页面
启动Application,容器加载完毕,自动弹出页面@Componentpublic class RunHomePage implements CommandLineRunner { public void run(String... args) throws Exception { try { Runtime.getRuntime().ex...
2020-01-14 16:51:36
4541
原创 《学习多线程03》关键字volatile
volatile的基础知识1.可见性,保证不同线程操作该变量的可见性,即一个线程修改该变量,这个新的值对其他线程来说是立刻知道的2.禁止进行指令重排序(虚拟机层面,有自己的规则,对代码进行排序),有序性3.volatile只能保证单次读/写的原子性。i++这种不能保证简单实战1.volatile定义的值改变,其他线程能否查看(可见性)public class VolatileTestO...
2020-01-13 16:19:06
102
原创 《学习多线程02》线程池的概念和使用
核心线程类ThreadPoolExecutorpublic ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, T...
2020-01-09 09:33:45
104
原创 《学习多线程01》创建多线程
1.实现Runnable接口public class ThreadDemo implements Runnable { private volatile String threadName; ThreadDemo( String name) { threadName = name; System.out.println("Creating " +...
2020-01-07 15:10:07
65
原创 《程序人生》 关于自己近期的状态
实习来了4个星期左右了,目前已经开始接触项目,并进行开发,能感受到规范的重要性,实习主要还是以学习为主,不望自己能做很多很多的业务,只希望能在这些业务中学到只是,让自己成就感满足,并且能感受到一天的充实而不是荒废。发现学习的东西没有刚开始来学的多,可能越来越深入,有些东西潜移默化的就接触学习到了,开始有些自大,业务的重要性也是很高的,代码谁都会写,对业务的了解还需要深入。(接触业务了,学习的东...
2020-01-06 18:36:53
105
原创 实现一个简单的策略模式
这里我打算用三种方式来实现,分别是正常写法匿名类写法Lambda写法先说明一下场景,我想筛选苹果,按照苹果的重量和颜色,可能按照重量,也可能按照颜色,也可能是颜色和重量。正常写法Aapple实体类@Datapublic class Apple { private String color; private int weight; private Long...
2019-12-31 10:15:47
186
原创 设计模式之策略模式
策略模式,是一种行为型模式,行为型模式即为一个类的行为或其算法可以在运行时更改。简单的看一段代码List<Apple> applesFilteredOne = filterApples(apples, new AppleWeightPredicate());public static List<Apple> filterApples(List<Apple>...
2019-12-31 09:34:18
68
原创 《我的实习》实习期我的时间规划是怎么样的?
工作日7.30起,洗漱,喂猫,大概7.50左右出门坐地铁,抵达公司楼下,买早餐,抵达工位8.40左右上厕所,吃饭,看书,到9.30开始板砖的早晨!!!!!11.30之后开始吃饭,吃完回来,看会手机,午休到13.30开始板砖的下午!!!!!19.00 准备下班!!!可以在看会书籍 一般19.30回家做饭,吃饭,到21点左右if(老婆有问题){给老婆解决问题。}else{打开...
2019-12-26 19:02:32
484
1
原创 HashMap遍历
只写效率高的,效率低的遍历就不写了!!先创建HashMap Map<String,String> mapOne = new HashMap<>(); mapOne.put("name","wyp"); mapOne.put("sex","男");一.使用Iterator Iterator<Map.Entry<String...
2019-12-26 09:42:37
104
原创 关于stream()和lambda使用
这几天看项目用到了这些,总结学习一下先生成测试数据List<Student> students = new ArrayList<Student>();students.add(Student.builder().name("wyp").id(1L).age(21).sex("男").build());students.add(Student.builder().na...
2019-12-20 14:14:26
155
1
原创 Error:java: Compilation failed: internal java compiler error
新建了项目,写测试类报了此错误。解决方法:在Idea中File->Setting->Build->Compiler->Java Compiler里Module版本改成java版本,我是java1.8所以改成8。成功启动!!!...
2019-12-20 10:43:38
182
原创 springboot项目图片上传,不能立即回显问题(已解决)
问题如下当上传一个图片,是这样显示的。我的解决方案1.将springboot配置成热部署(后来发现其实不需要)pom.xml加入<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</ar...
2019-11-15 15:11:03
2645
3
原创 封装、抽象、继承、多态
1.封装特性封装也叫作信息隐藏或者数据访问保护。类通过暴露有限的访问接口,授权外部能够通过类提供的方式来访问内部信息或者数据。它需要编程语言提供权限访问控制语法来支持,例如Java:private,public,protected。封装存在的意义,一方面保护数据不被随意的修改,提高代码的可维护性;另一方面仅暴露有限的必要接口,提高类的易用性。2.抽象特性抽象主要讲如何隐藏方法的具体实现,让使...
2019-11-13 10:36:39
105
原创 了解空间复杂度分析
表示算法的存储空间与数据规模之间的增长关系void print(int n) { int i = 0; int[] a = new int[n]; for (i; i <n; ++i) { a[i] = i * i; } for (i = n-1; i >= 0; --i){ print out a[i] } }...
2019-11-08 10:14:35
310
原创 了解时间复杂度分析
以例子来说 更好的理解先了解一下大O表示法 int cal(int n) { int sum = 0; int i = 1; for (; i <= n; ++i) { sum = sum + i; } return sum; }读数据-运算-写数据。尽管每行代码对应的 CPU 执行的个数、执行的时间都不一样,但是,我们这里只是粗略估计,所以...
2019-11-08 10:04:21
195
原创 java.io.IOException: java.io.FileNotFoundException: *******(系统找不到指定的路径。)
在做图片上传遇到了一个问题执行file.transferTo(newFile);出现找不到路径得问题看之前得代码在下面rootPath需要添加否则就会报错,路径需写明白。
2019-11-04 15:15:19
3673
原创 关于Unknown column '***' in 'field list'其中一个问题
问题如下但是我的表里面有这个字段fabulous为int类型用到``这个符号,然后不知道为什么自动换行2行如下然后就查询出来了
2019-11-01 10:58:06
283
1
原创 CountDownLatch类源码解释
想直接使用,知道是干什么可以看下面这个。https://blog.csdn.net/baxxdwyp/article/details/101015499直接看代码!1.public CountDownLatch(int count) 定义初始化,可以理解倒计时count个数,或者一个门上有count把锁,锁全部打开,门才可以打开。public CountDownLatch(int cou...
2019-10-28 14:54:34
79
原创 Semaphore类源码解释
自己英文比较渣,结合百度翻译,来对Semaphore类的一个解释认识,若有不对的地方请指出。从头开始1.创建给定的信号许可证(可以理解为规定的线程数量)和非公平性设置源码有两个构造,默认就是第一个,也就是实现非公平性// (一)public Semaphore(int permits) { sync = new NonfairSync(permits);}// (二)pub...
2019-10-25 13:33:23
151
原创 springboot+es查询为空问题(已解决)
!!!!注意定义的实体类,一定要和es上的一样看了一天终于解决了,网上没有,可能也是自己太low了还是字段的问题!!实体类不能aaBb 得aabb改了之后正确了!!!要一致!!!!...
2019-10-24 15:25:32
1125
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人