后端
文章平均质量分 64
一颗知足的心
这个作者很懒,什么都没留下…
展开
-
并发?听我对你“锁”
本文主要讲解Java中的锁和syncnized的一些知识,从我踏入社会开始,所接触的人都明确给我表示了项目中不能用syncnized,用syncnized都是外行诸如此类的话,那么syncnized到底能不能用?我的回答是可以用的,因为从jdk5以后,HotSpot虚拟机开发团队在这个版本上花费了大量的资源去实现各种锁优化技术,如适应性自旋、锁消除、锁膨胀、轻量级锁、偏向锁等。其实Java中的锁,大体上可以分为两种。原创 2024-08-21 17:11:39 · 621 阅读 · 0 评论 -
Java线上监控诊断产品Arthas
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。原创 2023-04-14 15:22:55 · 1132 阅读 · 0 评论 -
浅谈java 的位运算符号<< ,>> ,<<<,>>>
java的位运算符,如果喜欢研究一些源码的朋友,相信都经常见到,我就拿HashMap做一个简单的代码举例: /** * The default initial capacity - MUST be a power of two. */ static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 /** * The maximum capacity, used if a hig原创 2022-03-06 23:39:30 · 501 阅读 · 0 评论 -
浅谈JPA
上周跳槽到了一家新公司,数据持久化层用的不是mybatis,而是用的JPA,由于以前都没有用过,所以周末学习了一下,并且做一下记录,方便以后查看。先说说jpa是什么?我们来看看官方回答:其实说白了,你可以把它当做hibernate、mybatis的同类。学习了之后,我更觉得这是mybatis-plus的前身,提供了很多写好的crud的接口,后面总结的时候我再做一下对比。先看看主要代码,文末会附上完整项目链接,欢迎大家下载。1.pom.xml文件 <dependencies>原创 2022-03-06 17:57:02 · 460 阅读 · 3 评论 -
java接入百度翻译
实现这个功能,需要先去百度翻译开放平台注册成开发者,我注册的是个人版官网:https://fanyi-api.baidu.com/注册流程我就不说了,说一个重点,其中有一步有一个ip地址的输入框,如果是自己用的话就不要填,不然翻译不出来,如果是上线的项目,就填项目的ip地址注册完之后查看自己的APPID和秘钥,这个是要在代码中使用的然后下图显示了官方给出的demo为了方便,我直接把代码贴出来,大家就不用去下载了TransApi.javapublic class TransApi {原创 2021-06-26 11:11:51 · 1804 阅读 · 1 评论 -
Mac使用Charles抓包并且解决中文乱码
最近喜欢上了爬虫,网页上爬了不过瘾,想转战手机APP,以前用的抓包工具Fiddler4,但是这个工具对Mac不友好,所以换成Charles,下面是一些基本安装操作1.安装软件直接去官网下载,这里就不多比比了。2.激活下载好之后打开界面,点击help->register输入下面这个,如果不能使用再百度一下,多得很Registered Name: https://zhile.ioLicense Key: 48891cf209c6d32bf43.解决乱码问题:Proxy->SSL原创 2021-05-28 10:45:22 · 8976 阅读 · 3 评论 -
Linux部署springBoot项目no main manifest attribute
SpringBoot项目用maven打好jar包,放到linux上执行报错 java -jar xxx.jar报错no main manifest attribute,原因是没有放入build的配置在pom.xml中放入下面这段代码<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-原创 2021-03-29 10:52:00 · 370 阅读 · 0 评论 -
项目经理问我,你还在用switch/case?面向接口编程,彻底告别switch/case,高逼格
今天撸代码的时候,遇到一个根据type不一样,作很多处理的事情功能,我的第一想法就是if/else,或者switch/case来解决,项目经理看了我的代码,很不屑的问了一句:“你还在用switch/case?”。看着我迷离的眼神,项目经理提笔写下了如下代码。今天要说的是用接口的方式来取代switch/case,扩展性高,可读性高,关键是逼格高,我的观念就是:做人可以没有逼格,写的代码一定是要有逼格的。先简单描述一下功能,一个类有10个type,前端传一个type过来,我们根据type来做不同的处理。原创 2021-03-18 12:04:16 · 462 阅读 · 3 评论 -
SpringBoot AOP 超简单实现超详细讲解
我们都知道Spring的核心IOC和AOP,今天说的就是经常接触的AOP。AOP,面向切面编程,百度一下都知道,但是没啥luan用,啥是切面?啥叫面向切面编程?怎么使用都不知道,那你还说你知道AOP?不过不知道不要紧,看完我的文章就懂了。我会用很简洁的语言来描述这个东西,并且加上简单的代码实现辅助理解。我们首先想象这么一个场景,我做一个网页,Controller里面有10个接口需要用户登录才能请求,怎么实现?1.普通人的做法:就是在10个接口里面分别取到用户信息,然后判断用户是否登录,否则直接返回或原创 2021-02-02 12:11:46 · 6383 阅读 · 0 评论 -
java8采用stream对集合的常用操作
记录一下java8采用stream对集合的常用操作User :{ id, name, age}1.对象集合的分组(有两种形式)示例:List userList,根据id分组,可以分组成为两种格式的map(1)Map<id,User>Map<id,User> map = userList.stream().collect(Collectors.toMap(User::getId, Function.identity()));(2)Map<id,List&g原创 2020-12-09 12:33:08 · 281 阅读 · 0 评论 -
常见的4种线程池
原文:http://blog.csdn.net/seu_calvin/article/details/52415337使用线程池可以给我们带来很多好处,首先通过线程池中线程的重用,减少创建和销毁线程的性能开销。其次,能控制线程池中的并发数,否则会因为大量的线程争夺CPU资源造成阻塞。最后,线程池能够对线程进行管理,比如使用ScheduledThreadPool来设置延迟N秒后执行任务,并且每隔M秒循环执行一次。下面会通过介绍线程池中的真正实现者——ThreadPoolExecutor来引出Android转载 2020-08-10 20:29:16 · 804 阅读 · 0 评论 -
一句话让你读懂BeanUtils.copyProperties
java对象的值的复制,要求两个对象的字段一样。BeanUtils.copyProperties(“被copy的类”, “copy后的类”)。原创 2020-06-29 11:24:41 · 175 阅读 · 0 评论 -
spring boot读取resources下面的文件图片
spring boot读取resources下面的文件图片下面的代码是为了保证在打成jar包的情况下依然能够有效读取到文件。先看项目目录结构:我是想读取resources下面的图片,下面放上代码: Random random = new Random(); int num = random.nextInt(picNum)+1; ClassPathResource classPathResource = new ClassPathResource("/static/code/"+num+".jp原创 2020-06-10 14:17:26 · 9228 阅读 · 4 评论 -
spring boot整合谷歌zxing生成二维码带图片
spring boot整合谷歌zxing生成二维码带图片刚写完点击验证码,又来数字验证码,现在再来个二维码,前阵子被poi全家桶坑了,现在又来码,不过谷歌还是牛皮,现成的直接拿来用。引入依赖:<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.3</version>原创 2020-06-07 17:51:09 · 915 阅读 · 0 评论 -
spring boot集成谷歌Kaptcha验证码
spring boot集成谷歌验证码前阵子做了个SSM的点击验证码,比较麻烦,为了偷懒,记录一下谷歌的验证码生成过程,非常简单。下面的代码都直接粘贴可用。添加依赖 <dependency> <groupId>com.google.code.kaptcha</groupId> <artifactId>kaptcha</artifactId> <version>2.3</version> &原创 2020-06-07 17:35:23 · 425 阅读 · 0 评论 -
java 8 筛选过滤集合中的数据
java可以让我们用filter来过滤不需要的数据,这里记录一下:mapList 可以为List<Map<String,Object>>,也可以为List<Bean>,java bean对象。filter箭头后面就是判断条件,符合条件的就会留下,下面的例子就是去除List<Map<String,Object>>中map的name为“小明”的人,留下名字为“小明”的人mapList = mapList.stream().filter(i-&g原创 2020-05-13 20:40:22 · 2333 阅读 · 0 评论 -
poi实现对树形结构数据导出excel并合并表格
poi实现对树形结构数据导出excel并合并表格最近好像得罪了poi,遇到的都是导出word、Excel、pdf的问题。下面我记录一下poi对树形结构的处理,前面先梳理整体思路,文章末尾会贴上完整代码。首先我们看一下模板和效果图吧:怎么样,效果还行吧,有没有达到你心目中的标准?如果你也遇到了这样的问题,那么请静下心来花费几分钟时间,我会详细的梳理出自己的思路,希望能够帮助到你。现在开始...原创 2020-04-04 10:19:34 · 6755 阅读 · 13 评论 -
java 8list去重
java 8list去重 根据对象字段,一行代码搞定,记录一下userList = userList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(User :: getUserid))), Array...原创 2020-03-13 15:22:51 · 305 阅读 · 0 评论 -
Java Calendar对象获取本月或者上月的第一天和最后一天
有些sql查询的需要。直接上代码: public static void main(String[] args) { //获取前月的最后一天 Calendar cale1= Calendar.getInstance(); cale1.add(Calendar.MONTH, -1); cale1.set(Calendar.DA...原创 2019-12-26 18:03:08 · 912 阅读 · 0 评论 -
SSM框架实现登录等点击文字验证码的简单实现
文字点击验证码我们在登录或者其他有隐私的操作情况下,往往会输入验证码的情况,你还在用123456789abcd做循环输出? 这太捞了,今天我分享一个文字点击验证码的实现。 先看看生成效果图,有没有达到你想要的程度。 {图片}采用的主要方式是运用BufferedImage来绘制图片和文字。直接上代码吧:由于某些原因不能上代码,只能发图片,请谅解,图片是从头到尾整个类的。一、生成验...原创 2019-12-23 16:49:35 · 841 阅读 · 3 评论