- 博客(41)
- 收藏
- 关注
原创 全网最火SpringCloud2020全家桶教程
教程介绍教程重点讲解了SpringCloud各种组件停止更新进入维护阶段后,后续技术组件的升级和替换策略及方案选型,既有传统Eureka、Ribbon、OpenFeign、Hystrix、Config等技术的升级讲解,又有Consul、Gateway、Bus、Stream、Sleuth、zipkin和阿里巴巴最新的Nacos、Sentinel、Seata等技术,分享了服务降级、服务熔断、服务限流、hotkey控制、分布式统一配置管理、分布式全局事务控制、RabbitMQ与Stream整合、Nacos和Ng
2020-06-04 23:35:05 1099
原创 谷粒学院项目分享(源码+资料+课件)全部齐全
谷粒学院项目GitHub 源码下载谷粒学院教育系统项目项目资料和笔记后端技术系统后端接口部分,使用目前流行的SpringBoot+SpringCloud进行微服务架构,使用Feign、Gateway、Hystrix,以及阿里巴巴的Nacos等组件搭建了项目的基础环境。项目中还使用MyBatisPlus进行持久层的操作,使用了OAuth2+JWT实现了分布式的访问,项目中整合了SpringSecurity进行了权限控制。除此之外,项目中使用...
2020-05-17 22:41:51 12782 8
原创 这一次彻底掌握Intellij IDEA中Debug的使用
一、Idea Debug 介绍以Debug模式启动服务,左边的一个按钮则是以Run模式启动。在开发中,一般会直接启动Debug模式,方便随时调试代码。 断点:在左边行号栏单击左键,或者快捷键Ctrl+F8 打上/取消断点,断点行的颜色可自己去设置。 Debug窗口:访问请求到达第一个断点后,会自动激活Debug窗口。如果没有自动激活,可以去设置里设置,如图1.2。 调试按钮:一共有8个...
2019-07-31 18:53:46 866
转载 技术人如何快速融入职场,必须具备的“结构化思维”?
那么到底是什么是结构化思维呢?简单来说,结构化思维的定义就是:逻辑 + 套路。所谓逻辑是指结构之间必须是有逻辑关系的。即顺序符合逻辑、内容符合逻辑。想让内容有逻辑关系,需要学会四种组织思想的逻辑关系:演绎(因果)顺序:“大前提、小前提、结论”的演绎推理方式就是演绎顺序。时间(步骤)顺序:如“首先、然后、再者”,很多的时间顺序同时也是因果顺序。空间(结构)顺序:“前端、后端、数据”,化整为...
2019-07-28 21:24:51 241
原创 Intellij IDEA开发提升效率必备的10大快捷键
Idea中很多快捷键,可以快速提高效率,你常用的有哪些呢1.查找打开快捷键(个人开发经常用)Idea的Ctrl+N/Ctrl+Shift+N可以打开类或资源。新版本的IDEA还加入了Search Everywhere功能,只需按Shift+Shift即可在一个弹出框中搜索任何东西,包括类、资源、配置项、方法等等。类的继承关系则可用Ctrl+H打开类层次窗口,在继承层次上跳转则用Ctrl+B/...
2019-07-28 13:54:42 1519
原创 一次性搞清楚java8的新特性之StreamAPI
- java8有两大最为重要的改变。第一个是Lambda表达式;另一个则是StreamAPI(java.util.stream.*) - Stream是java 8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤、和映射数据等。 - 使用StreamAPI对集合数据进行操作,就类似于使用SQL执行的数据库操作。也可以使用StreamAPI来并行执行操作。简而言之,StreamAPI提供了一种高效且易于使用的处理数据的方式。...
2019-07-24 20:06:06 757 1
原创 一次性搞清楚Java8的新特性之lambda表达式
一、为什么要使用lambda表达式?Lambda 是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使java的语言表达能力得到了提升。二、Lambda表达式从匿名类到Lambda的转换public class LambdaTest { //从匿名类到Lambda的转换...
2019-07-21 16:42:34 394
原创 如何高效学习
01 | 端正的学习态度为什么需要端正的学习态度没有端正的学习态度,学习可能是一件得不偿失的事情,事倍功半,很难获得真正的收获时间容易被没有营养的事情占据,快速、简单、轻松的事情给人带来的快感更强烈快餐文化盛行,绝大多数人都急于速成,心态比较浮燥,对事物不求甚解,“什么都懂,依然过不好这一生”学习是逆人性的事情,需要持续付出,让人感到痛苦,随时想要放弃什么是端正的学习态度有目标、方向有方法、技能有行动、坚持贯穿着不断思考探索实践目标、方向找到方法学习是为了找到通往答案的
2021-03-19 10:19:51 194
原创 JVM性能调优监控工具
JVM性能调优监控工具Jps以显示当前系统中所有java进程![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvNDQwMjQ3LzE1ODg2NDc2Mzg5MjctYWI0ZTNhOTEtNDgzNy00YTQ5LTg1YjEtZGIzOWM3ODMxMTdjLnBuZw?x-oss-process=image/format,png#align=left&am
2020-05-18 07:59:31 803
原创 类加载机制
类加载机制Java运行时编译源码(.java)成字节码,由jre运行。jre由java虚拟机实现。JVM分析字节码,后解释并执行![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvNDQwMjQ3LzE1ODgwNjg4OTk4MTktYTAyODRkMTctOGYzZS00MGUyLTg5ZjItNTBiMDRiM2UyMDU3LnBuZw?x-oss-proces
2020-05-18 07:58:15 188
原创 JVM内存结构
JVM的基本内存结构JVM由三个主要的子系统组成![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvNDQwMjQ3LzE1ODc5NTYwMTQwMjYtZTgyODhmYTItNGI2NC00NGRkLTk4NjQtYmE0MjM2OGQwZTBmLnBuZw?x-oss-process=image/format,png#align=left&displ.
2020-05-18 07:57:31 136
原创 谷粒学院项目分享(源码+资料+课件)全部齐全
谷粒学院项目GitHub 源码下载谷粒学院教育系统项目 项目资料和笔记![image.png](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jZG4ubmxhcmsuY29tL3l1cXVlLzAvMjAyMC9wbmcvNDQwMjQ3LzE1ODkxMDUxNzQwMzQtMmZkNTQzY2ItNmVkNS00Y2IxLWI1YmUtZjQ4N2VjZmNmYjA5LnBuZw?x-oss-process=image/format,png#align=
2020-05-17 22:39:51 13920 1
原创 多线程相关面试题详解
1.为什么用多线程?有时候,系统需要处理非常多的执行时间很短的需求,如果每一个请求都开启一个新线程的话,系统就要不断的进行线程的创建和销毁,有时花在创建和销毁线程上的时间会比线程真正执行的时间还长。而且线程数量太多时,系统不一定能受得了。使用线程池主要为了解决一下几个问题:通过重用线程池中的线程,来减少每个线程创建和销毁的性能开销。对线程进行一些维护和管理,比如定时开始,周期执行,并发数控制...
2020-04-22 16:09:46 790
原创 用优雅的姿势使用和理解线程池
一.线程池的定义管理一组工作线程,通过线程池复用线程。核心的思想就是把宝贵的资源放到一个池子中,每次使用线程都从线程池中获取,用完之后又放回线程池中供其它线程使用。使用线程池的好处降低资源消耗通过重复利用已创建的线程来降低创建和销毁造成的消耗。提高响应速度当任务到达时,任务可以不需要等待线程创建就能立即执行。提高线程的可管理性线程是稀缺资源,如果无限制的创建...
2020-03-30 17:56:48 213
原创 并发编程之AQS的原理
一.AQS原理AQS全称为AbstractQueuedSynchronizer,它提供了一个FIFO队列,可以看成是一个用来实现锁以及其它涉及到同步功能的核心组件,常见的有:ReenTrantLock、CountDownLatch等。AQS是一个抽象类,主要是通过继承的方式来使用,它本身没有实现任何的同步接口,仅仅是定义了同步状态的获取以及释放的方法来提供自定义的同步组件。AQS的主要字段...
2020-03-30 14:30:26 341
原创 并发编程之CAS的原理
一.什么是CAS?CAS(compare And Swap),中文叫比较交换,是一种无锁原子算法。过程是这样:它包含3个参数CAS (V,E,N),V 表示要更新变量的值,E表示预期值,,N表示新值。仅当V值等于E值时,才会将V的值设为N,如果V值和E值不同,则说明已经有其它线程做了更新,则当前线程则什么都不做,最后,CAS返回当前V的真实值。CAS操作时抱着乐观的态度进行的,它总是认为自...
2020-03-16 11:39:32 466
原创 深入理解单例模式
深入理解单例模式模式是脱离语言的。一、单例的模式由来多线程要操作同一个对象,保证对象的唯一性。如何解决?实例化过程只实例化一次。单例模式的四大原则1.构造方法私有化2.以静态方法或者枚举返回实例3.确保实例只有一个,尤其是多线程环境4.确保反序列化时,不会重新构建对象我们常见的单例模式有:饿汉模式懒汉模式双重检索模式静态内部类模式枚举模式二、单例模...
2020-03-15 13:00:59 175
原创 Java并发-volatile 关键字实现原理
一、认识volatile关键字程序举例用一个线程读数据,一个线程改数据public class ReaderAndUpdater { public static int MAX = 50; static volatile int initValue = 0; public static void main(String[] args) { new...
2020-03-09 16:04:14 169
原创 Java并发-Synchronized关键字实现原理
模拟并发叫号程序:public class TicketDemo extends Thread{ private static int index = 1; private static final int MAX = 50000; @Override public void run() { while(index<=MAX){...
2019-12-29 14:41:51 371
原创 Java并发-JMM内存模型
1.线程与JVM2.JVM内存模型与Java内存模型的区别3.硬件内存架构与Java内存模型4.Java内存模型对并发特征的保证一、基本概念程序:代码,完成某一件任务,代码序列(静态的概念)进程:程序的一次运行(动态的概念)线程:一个进程可能包含一个或多个线程(cpu分配资源的独立单位)二、JVM与线程JVM什么时候启动?答: java类被调用时JVM线程 --> 其...
2019-12-14 20:58:28 188 1
原创 MySQL 性能优化总结
一、影响mysql的性能因素io: 磁盘IO、随机IO、网络IO扫描行数内存、临时表、key cache、query cachecpu:排序、分组查询、distinct查询事务导致的表锁等一条慢sql查询消耗的性能 > 1000条快查询消耗的性能。性能优化归根结底就是查询语句的优化,如何写出高效的查询语句呢?对mysql的索引结构要有一定深度的了解,才能更好的写出高效的查询...
2019-10-26 10:59:30 296
原创 理财入门笔记(1课-12课)
理财入门笔记(1课-12课)一、改变穷人思维穷爸爸富爸爸作者罗伯特清崎,财务自由思想在90年代掀起了浪潮,真的是说出了穷富的秘密,大家务必认真看认知很重要:富人思维揭秘学习理财的目的1.聪明消费,摆脱月光,增加结余2.建立正确的金钱观、理财观,初步形成富人思维3.了解各种理财工具并为自己所用,赚取非工资收入学习理财不能帮助你一夜暴富,但是能够帮你梳理财务管理上的漏洞,弄清楚自己的财务...
2019-10-18 21:55:16 3070
原创 MySQL 性能优化总结
1.1 MySQL逻辑架构第一层:客户端通过连接服务,将要执行的sql指令传输过来第二层:分析器和优化器解析并优化sql,生成最终的执行计划由执行器执行第三层:存储引擎,负责数据的储存和提取1.2 锁数据库通过锁机制来解决并发场景-共享锁(读锁)和排他锁(写锁)。读锁是不阻塞的,多个客户端可以在同一时刻读取同一个资源。写锁是排他的,并且会阻塞其他的读锁和写锁。简单提下乐观锁和悲观...
2019-10-17 11:39:29 148
原创 深度分析ArrayList源码(JDK1.8版本)
1.简介ArrayList是我们开发中最常用的数据存储容器之一,其底层是数组实现的,我们可以在集合中存储任意类型的数据,ArrayList是线程不安全的,非常适用于对元素进行查找,效率非常高。2.继承体系ArrayList实现List、RandomAccess、Cloneable、Serializable等接口。1.Arraylist实现List,提供了基础的添加、删除、遍历等操作。2...
2019-07-29 20:09:09 437 1
转载 MySQL一条SQL更新语句是如何执行的?
本文是整理个人订阅的极客时间《Mysql实战45将》的笔记。之前你可能经常听DBA同事说,MySQL可以恢复到半个月内任意一秒的状态,惊叹的同时,你是不是心中也会不免会好奇,这是怎样做到的呢?我们还是从一个表的一条更新语句说起,下面是这个表的创建语句,这个表有一个主键ID和一个整型字段c:mysql> create table T(ID int primary key, c int);...
2019-07-27 10:08:19 179
原创 Java容器类分析总结
1.为什么需要容器?通过,程序总是在运行时才能确定要创建对象的数量,甚至是对象的类型。为了解决这个问题,需要在任意时刻位置创建任意数量的对象。大多数语言都提供某种方法来解决这个问题,java使用容器来解决这个问题。容器也称集合类,基本的类型是List,Set,Queue,Map,但由于Java类库中使用了Collection关键字作接口。所以一般用容器来称呼这些集合类。java容...
2019-07-26 18:23:34 245
转载 MySQL一条SQL语句查询语句是怎么执行的?
一、MySQL一条SQL语句查询语句是怎么执行的?本文是整理个人订阅的极客时间专栏丁奇《mysql实战45讲》的笔记。我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于MySQL的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个ID字段,在执行下面这个查询语句时:mysql>:...
2019-07-26 10:31:09 339
原创 微服务架构介绍
单体架构单体架构也称之为单体系统或者是单体应用,就是一种把系统中所有的功能、模块耦合在一个应用中的架构方式。单体架构的特点1.打包成一个独立的单元(导成一个唯一的jar包或者是war包)2.会以一个进程的方式来运行单体架构的优点及缺点优点1.项目容易管理2.部署简单缺点1.测试成本高2.可伸缩性差3.可靠性差4.迭代困难5.跨语言程度差6.团队协作困难 微服...
2019-07-05 08:52:26 520
原创 Java面向对象的本质OOP
1.什么是面向对象?简单来说就是以类的形式组织代码,以对象的形式封装数据。2.什么是抽象?简单来说将多个物体共同点归纳出来,抽象出来像的部分。3.总结从认识的角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象。从代码的角度考虑是先有类后有对象。类是对象的模板。4.示例代码package com.ls.oop;public class Student {...
2019-07-04 21:14:35 270
原创 SpringBoot快速入门第二章,访问静态资源 (小白都能看得懂)
主要内容springboot访问静态资源一、SpringBoot从classpath/static的目录注意目录名称必须是static二、ServletContext根目录下SpringBoot入门项目地址下载: GitHub...
2019-04-22 13:15:58 196
原创 SpringBoot快速入门第二章,文件上传 (小白都能看得懂)
主要内容springboot的文件上传操作一、编写文件上传的html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>文件上传</title></head>&
2019-03-04 22:00:48 183
原创 SpringBoot快速入门第二章,整合Listener (小白都能看得懂)
主要内容整合Listener一、整合Listener1.1 编写Listener通过注解扫描完成Filter组件的注册/** * springboot整合listener方式一 * * 之前的配置方式 * <listener> * <listener-class>com.ls.springboot.listener.FirstListene...
2019-02-25 22:48:52 130
原创 SpringBoot快速入门第二章,整合Filter (小白都能看得懂)
主要内容整合Filter一、整合Filter1.1 编写Filter通过注解扫描完成Filter组件的注册/** *SpringBoot整合Filter 方式一 *<filter> * <filter-name>FirstFilter</filter-name> * <filter-class>com.bjsxt.filter...
2019-02-25 01:10:15 256
原创 SpringBoot快速入门第二章,整合Servlet (小白都能看得懂)
主要内容整合Servlet一、整合Servlet1.1 编写Servlet/** * 之前的配置方式 * <servlet> * <servlet-name>FirstServlet</servlet-name> * <servlet-class>com.ls.springboot.servlet.First...
2019-02-25 00:52:46 126
原创 SpringBoot 快速入门第一章(小白都能看得懂)
主要内容1. SpringBoot介绍2. 构建SpringBoot项目及启动器讲解3. Springboot入门及HelloWorld一、SpringBoot介绍如果使用Spring开发一个&amp;amp;quot;HelloWorld&amp;amp;quot;的Web应用1.创建一个web项目并且导入相关的jar包,SpringMVC,Servlet2.创建一个Web.xml3.编写一个控制类(Controller)4....
2019-02-23 22:52:01 316
原创 第一天 HTML的介绍
HTML的介绍1、什么是HTML?超文本标记语言: 超文本:比普通文本功能更加强大 标记语言:使用一组标签对内容进行描述的一门语言,他不是编程语言。2、HTML怎么使用?语法和规范: 1.所有的html文件后缀名都是以.html或者.htm结尾的, 建议使用html结尾。 2.整个html文件分别由头部分和体部分组成 3.html标签都是有j标签和结束标签...
2018-03-08 20:56:11 206
原创 java坦克大战0.3(画出代表坦克的实心圆)
版本0.3:画出代表坦克的是实心圆 a.功能:画出代表坦克的实心圆 b.掌握:如何重写paint方法 c.注意 : 不要改变原来的前景色,先取出来,用完之后再恢复 d.回顾: 1.x轴、y轴的方向(横向的w,纵向的h),这里是所画出的正方形的内切圆 2.paint(Graphics)方法,不需要显示地调用,在
2017-11-10 16:55:50 800 1
原创 java坦克大战0.2(添加关闭窗口的事件处理)
版本0.2:添加关闭窗口的事件处理 1.功能: 添加关闭窗口的事件处理 不允许窗口的大小改动 2.匿名类的应用场合4务逻辑 1.2:一个关闭窗口的匿名类: this.addWindowListener(new WindowAdapter(){ public void wind
2017-11-10 16:13:22 392
原创 Java坦克大战0.1(产生一个窗口)
import java.awt.*;/** * * 定义一个坦克客户端类 * @author liushuai * */public class TankClient extends Frame{ /** * 重写启动窗口方法 * 设置窗口大小为800*600 * 窗口出现的位置400*300(距离屏幕左上角点的位置)
2017-11-10 15:48:15 618
原创 解决给定一个含有n个元素的整型数组a例如{1,1,1,2,4,3,3} ,如果某些元素出现 *的次数为奇数次,则将其输出:例如1,2,4
package com.ls1501.homework; /** *该类是解决给定一个含有n个元素的整型数组a例如{1,1,1,2,4,3,3} ,如果某些元素出现 *的次数为奇数次,则将其输出:例如1,2,4 * * @author jike1501刘帅 * */ public class Homework10 {public static void main(Str
2017-10-28 10:51:18 6084
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人