- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 学妹觉得自己敲代码好慢,我用java8的新特性来帮助她
学妹:“学长,我现在好烦,每次要处理集合或map中数据的时候,总是要for循环先遍历一下,然后再去条件判断去过滤,最后又放到一个新集合,感觉代码好繁琐,学长有什么好的法子吗”学长(也就是屏幕前的各位):“当然有啦,学妹,学妹可曾听过lamda表达式?”学妹瞪着她的卡姿兰大眼睛,点了点头又摇了摇头:“我上次听你讲过,但是它能应用到这里吗” 学妹:“当然啦,学妹,且听我慢慢到来”
2021-09-19 18:42:54
190
1
原创 lambda表达式如何使用
lambda表达式Java Lambda表达式的一个重要用法是简化某些匿名内部类(Anonymous Classes)的写法。实际上Lambda表达式并不仅仅是匿名内部类的语法糖,JVM内部是通过invokedynamic指令来实现Lambda表达式的。无参函数的简写(新建线程)// JDK7 匿名内部类写法new Thread(new Runnable(){// 接口名 @Override public void run(){// 方法名 System.out.println("Threa
2021-08-11 21:24:11
351
原创 mac版Typora+uPic图床+gitee教程
mac版Typora+uPic图床+gitee教程想必大家作为程序员,都有写博客的习惯,写博客就离不开好用的工具,好用的工具Typora肯定在其中,简洁优雅,界面清爽,快捷键给力。但是当你把本地写好的.md文件直接上传到相关博客网站,你会发现网页根本就无法读取到本地文件,图片也显示不出来。如果把所有的图片都存到一个第三方服务器,后期通过对应的url去拿就好了。这便是图床的由来。gitee新建存储仓库首先在gitee上新建一个仓库 因为我已经上传过了,所以这样显示,关键的一点是需要公开获取
2021-04-04 00:20:03
458
1
原创 Java面试之处理器如何实现原子操作(你的女朋友都可以听懂的文章)
清晨,逆旅突然被一个女生的尖叫惊醒女生:“亲爱的,我好烦啊,啊啊啊啊啊”逆旅一把将女生拉过来搂在怀里,轻声说道:”怎么了,宝贝“女生:“我刚看懂了java中的原子操作,现在看处理器的原子操作我又一知半解了”逆旅指尖穿过她的发梢,耳边低沉到:“别急,宝贝,我来给你梳理一下”处理器如何实现原子操作首先得记住总线锁和缓存锁,因为处理器使用了缓存锁定和总线锁定两个机制来实现多处理器之前的原子操作。使用总线加锁在多处理器同时对共享变量进行读改写操作时,i=1,对i进行两次自增操作。我们期望..
2020-10-13 14:22:08
186
原创 java面试之对象结构(常问到的Mark Word)
对象头在同步的时候是获取对象的monitor,即获取到对象的锁。那么对象的锁怎么理解?无非就是类似对对象的一个标志,那么这个标志就是存放在Java对象的对象头。hotSpot虚拟机的对象头(Object Header)分为两部分信息,第一部分用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄(Generational GC Age)等,这部分数据的长度在32位和64位的虚拟机中分别为32个和64个Bits,官方称它为Mark Word,它是实现轻量级锁各偏向锁的关键。另外一部.
2020-10-09 19:09:24
916
1
原创 Java面试之synchronized的前世今生
synchronized原理上篇我们复习了volatile关键字,接下来我们来复习多线程并发中的元老级角色—synchronized,‘他’也是面试的一大重点synchronized如果要实现同步,先得具有一个基础:Java中的对象都可以作为锁。因为synchronized用的锁都是存在Java对象头的,它的应用场景有以下几种:简而言之,就是同步普通方法,锁的是当前对象。同步静态方法,锁的是当前 Class 对象。同步块,锁的是 () 中的对象。这里有一个面试题,问你获取对象锁和类
2020-10-09 09:47:42
580
1
原创 Java面试之volatile
volatile详解java语言规范第三版中有这样一句话:**java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应确保通过排他锁单独获得这个变量。**java语言提供了volatile,如果一个字段被声明为volatile,java线程内存模型确保所有线程看到这个变量的值是一致的。在某些情况下比锁更加方便,因为它比synchronized的使用和执行成本更低,不会引起线程上下文的切换和调度,所以它也可以被看作轻量级的synchronized。实现原理了解volatile实
2020-10-07 00:54:34
215
1
原创 消息队列知识整理
消息服务概述大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力消息服务中两个重要概念: 消息代理(message broker)和目的地(destination) 当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目 的地。消息队列主要有两种形式:队列(queue):点对点消息通信(point-to-point)主题(topic):发布(publish)/订阅(subscribe)消息通信消息服务常用在秒杀功能上:比如有10w个人,但“座位”只有1
2020-05-14 08:54:42
249
原创 链表设计
package dynamic;/** * @Author free-go * @Date Created in 19:18 2020/2/11 **/class MyLinkedList { ListNode head; ListNode last; int total; class ListNode { //成员内部类 ...
2020-02-11 20:04:07
281
原创 java多线程与并发总结
进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,即进程空间或(虚空间)。进程不依赖于线程而独立存在,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。(为了适应时代的发展,为并发执行实现可能,进程因运而生)线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,线程没有...
2019-12-19 15:03:03
1098
原创 springboot事务处理及三周总结
springboot事务使用需注意事项(1)如果对异常进行抛出,并且我们手动捕获了这个异常的话,这时候事物也不会起作用的(2)@Transaction注解只对方法名为pubic的才生效,其他事物不会生效。还有所注解的方法所在的类,须查看是否已经被注解@Service或@Component等(3)默认情况下,只有来自外部的方法调用才会被AOP代理捕获,也就是,类内部方法调用本类内部的其他方法...
2019-11-20 21:51:34
1330
原创 docker-compose一键安装redis+mysql+rabbitmq,妈妈再也不用担心我不会安装了
创建目录结构docker/docker-compose.ymldocker/mysql/datadocker/mysql/my.cnfdocker/redis/datadocker/redis/redis.conf编写my.cnf文件[client] port = 3306 socket = /var/lib/mysql/data/mysql.sock[mysqld]...
2019-10-25 20:49:28
2066
原创 19年8-10月遇到的坑
Integer one = 128;Integer one = 128;System.out.println(one = two);/*结果为false*/Integer one = 100;Integer one = 100;System.out.println(one = two);/*结果为true*/ava中如果Integer不是new出Integer对象,而是直接...
2019-10-20 21:25:34
1128
原创 Redis基础
主流应用架构熔断机制:当存储层无法提供服务的时候,可让客户端请求直接打在缓存层上,不管有没有提供数据都直接返回Redis简介Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。Redis优势性能极高 – Redis能读的速度是11...
2019-10-09 20:16:56
324
原创 springboot+jsoup实战——爬取并解析学校课程表
前言最近小程序需要具有查看课程表和成绩的功能,本来用python非常简单,但是python代码加到springboot里以后,出现各种错误,失败了几次,终究还是能力不行,于是转战springboot+jsoup,终究皇天不负有心人!实战导入依赖 <dependencies> <dependency> <groupId...
2019-07-22 10:39:48
2437
原创 Jsoup学习笔记
Jsoup介绍和主要功能jsoup介绍jsoup是一款java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM、CSS以及类似于JQuery的操作方法来取出和操作数据。jsoup的主要功能:1.从一个URL,文件或字符串中解析HTML2.使用DOM或CSS选择器来查找,取出数据3.可操作HTML元素、属性、文本直接用...
2019-07-08 11:07:55
1741
原创 Python3学习笔记:Request+正则表达式爬取猫眼电影Top100
首先分析目标网页:https://maoyan.com/board/4?offset=0图中可以看到第2页URL中的offset=10,第3页offset=20,所以是通过改变URL中的offset来改变电影的展示,所以可以利用for循环动态改变URL分析网页代码图中可以看到每一部电影都是一个<dd>的标签,图片是一个img标签,电影名称是一个超链接,主演是一个class标...
2019-02-17 15:00:33
1835
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人