自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 kotlin高阶函数

泛型函数的定义:就是我们在写完一个函数后,只知道一个总的类型,而这个总的类型下有很多继承了这个总类型的类,在返回时我们不知道这个函数具体返回哪个子类,这时我们就可以在这个函数前面加一个泛型,泛型中放这些子类的基类,上面的filter方法也可以看作 Iterable的扩展方法。如果一个抽象类或者接口中只有一个方法,我们又不想实例化这个类的对象就想调用这个方法,而且也不想将这个类中的方法标记为静态的方法,就可以用匿名内部类的方式类写,但是这样写代码很不美观,所以就简化成Lambda表达式的方式来写。

2023-07-25 16:08:51 666

原创 Feign远程调用注解以及继承关系中的坑

二.@EnableFeignClients 注解的Clients属性,来配置只需要加载的Feign接口,这样的话就相当于一个精准加载标注了@FeignClient注解的类,这样就解决了有两个同样标注了@FeignClient注解的类之间存在继承关系会在spring上下文中加载同样路径问题。但是如果被调用的服务类没有注册到注册中心中,而是以jar,也就是被调用的服务类没有单独启动起来,也就是说是以依赖的方式就是。一.在启动类扫包时,不要把原始的Feign接口扫描进来.

2023-07-25 10:25:08 526

原创 spring三级缓存

单例的获取顺利是singletonObjects ——》earlySingletonObjects ——》singletonFactories 这样的三级层次。// 无法做出如下操作,因为map是被final修饰的。加了final修饰的map不能重新赋值引用。spring三级缓存其实就是三个map。

2023-06-20 16:49:17 84

原创 RPC框架的feign重试机制中的坑

对于重试,因为HTTP协议认为Get请求是数据查询操作,是无状态的,又考虑到网络出现丢包是比较常见的事情,有些HTTP客户端或代理服务器会自动重试Get/Head请求。若超时时间很长,在等待 Server 返回数据同时,Client 线程(通常为 Tomcat 线程)也在等待,当下游服务出现大量超时,程序可能也会受到拖累创建大量线程,最终崩溃。但面向用户响应的请求或是微服务平台的同步接口调用,并发量一般较大,应该设置一个较短的读取超时时间,以防止被下游服务拖慢,通常不会设置读取超时超过30s。

2023-06-20 12:47:35 508

原创 java创建临时文件

2.其次临时文件的删除方法是在虚拟机停止前调用,这也就是说如果我们的虚拟机一直处于启动状态,这些临时文件就无法删除,而且使用java提供的创建方式文件名后面会给我们补一个随机的码来确保不会重复创建问题,而且每个文件名是放入一个LinkedHashSet中来保证创建顺序与唯一性的,但是最终会放入一个arrlist中,下面放源码。1.保证文件被正确地清理和删除,避免了磁盘空间浪费和安全隐患。

2023-06-20 11:33:18 890

原创 Netty网络通信框架

3.将消息分为消息头和消息体,在消息头中包含表示消息总长度的字段,然后进行业务处理。1.消息定长,固定每个报文的大小,如果不够就补空格。2.在包尾部增加特殊字符进行分割,例如#

2023-05-08 17:26:30 146 1

原创 java 泛型 上下界流

java 上下界泛型

2022-03-04 15:29:46 197

原创 微服务数据源连接大概流程

1.nacos会将所有服务提供者与调用者的yml配置存在nacos配置中心,每当有新的服务启动时,会去nacos配置中心拉取,各自的配置文件,其中yml文件中会配置数据源与数据库连接池2.假如我们使用的是druid连接池,druid连接池默认情况下会去连接主数据源,如果我们配置了这个属性:query-ds-sql: select * from abc; 这个属性代表数据库连接池在连接数据库之后会去执行这条sql查询语句示例: query-ds-sql: 'select * from sys_ds_co

2022-03-02 16:23:35 1429

原创 java各锁的区别

synchronized : 1.可重入锁(同一个线程可申请同一把锁多次),当锁的对象是同一个时,多个方法可以相互调用 2.阻塞式锁,当线程A获取到锁时,且A线程此时进入睡眠状态,线程B会一直等待A线程释放锁,此时线程B会进入wait状态,此时进入wait状态的B线程不可打断wait状态.3.超出当前域会自动释放当前锁 4.重量级锁(锁内存总线方式) 5.原理为缓存一致性协议(MESI协议) : 当CPU写数据时,如果发现操作的变量是共享变量,即在其他CPU中也存在该变量的副本,会发出信号通知其他CPU将该

2021-08-31 11:53:49 680

原创 CAS自旋锁实现思想

什么是CAS比较并交换// 两个参数分别是:期望值与更新后的值,方法返回值为布尔类型,如果返回true,则进行交换public final boolean compareAndSet(int expect, int update) { return unsafe.compareAndSwapInt(this, valueOffset, expect, update); }Unsafe:rt.jar包下的jvm原生类 public final int getAndI

2020-09-23 12:22:46 181

原创 redis总结

cookie用户数据储存形式无需登录,无需查库,保存在游览端优点:性能好,访问块,没有和数据库交互缺点1:换电脑数据会丢失缺点2:非本人登录电脑,存在安全隐患问题Session形式储存登录后存储用户会话基于服务内存存储初期性能好,访问快缺点1:基于服务器内存,用户量庞大,影响服务器性能缺点2:只能存在当前会话,不适用于集群和分布式系统数据库形式存储用户登录后将数据存储进数据库优点:数据持久化,可在任何地点和时间段访问缺点:频繁读写数据库,造成数据库压力redis形式

2020-09-23 12:18:40 127

原创 Spark运行模式

Spark整合yarn执行流程备注:当使用yarn模式时,必须启动yarn集群和HdfsClient向yarn(资源调度器)里面的RM提交job任务RM会在随机一台NM上创建一个AM(应用管理器,主要负责数据的计算,一般是会将计算节点和AM分开)AM会想RM申请资源RM将资源列表返回给AMAM拿到资源后会在申请资源的节点NM的容器(Container)里面创建执行器Executor...

2020-01-12 17:23:22 128

原创 大数据技术选型

数据仓库的概念数据仓库的输入输出输入:1.1 日志采集系统1.2 业务系统数据库1.3 爬虫系统等输出:1.1.2 报表系统1.1.3 用户画像1.1.4 推荐系统1.1.5 机器学习1.1.6 风控系统项目的技术选型数据的采集传输: Flume Kafka Sqoop Logstash DataXFlume:可同时做为数据的生产者和消费者,主要用来作为日志的采集工...

2020-01-08 17:17:15 1677 1

原创 Scala

Scala重要特性: 1.运行在jvm上面的动态解释型语言 2.与java可以混编 3.类型自动推测 4.并发,分布式 5.接口与抽象类可结合,多实现,多继承 6.高阶函数(最重要特性):高灵活性,参数列表可传递除去java以外的函数 返回值也可为一个函数 7.模式匹配(分支语句,既能匹配值也可匹配字符串与引用类型)在Scala...

2019-12-24 21:08:41 89

原创 Spring Aop(面向切面编程)

代理模式设计原则1.代理类与委托类具有相似的行为(共同)2.代理类增强委托类的行为 静态代理代理角色是固定的,比如说我们有20个dao层,我们要想对这20个dao做代理,那我们就要写20个代理类,也就是说委托类和代理类只能一对一 动态代理在创建代理对象时更加灵活,根据需要通过反射机制在程序运行期动态的为目标对象创建代理对象,代理行为可以代...

2019-10-05 22:13:18 168

原创 bean的生命周期

#bean的生命周期在spring中Bean的生命周期包括:Bean的定义、Bean的初始化、Bean的使用与Bean的销毁四个阶段Bean的定义:通过需求自定义Bean的作用Bean的初始化:spring容器如何去创建Bean,创建bean的三种方式:##(1) 默认通过构造器创建(最常见的bean创建方式)##(2) 通过静态工厂的静态方法创建##(3) 通过实例化...

2019-10-02 17:48:26 122

原创 用户登录撞库与bean作用域问题

#什么叫做撞库假如我们现在在十个不同的网站都进行了注册,这种情况下我们可能使用的用户名与密码有可能都是同一个,如果说这其中某一个网站的数据库,设计的安全性比较低,被不法份子攻击了以后,拿到这个网站的数据库里的用户登录这张表中的用户名和密码信息以后,就会用这些登录信息去剩下的九个网站进行撞库,从而窃取剩下九个网站的用户信息,这就叫撞库 撞库是避免不了的 #bean作用...

2019-10-01 19:13:47 127

原创 Spring框架注解注入(@)

#注解的方式注入bean在spring.xml中一个命名空间要对应两个网址在spring.xml配置文件中使用` context:annotation-config/标签来开启注解注入##1. @Autowired这个注解由spring框架提供,要写在属性或者set方法上面默认通过bean的类型进行匹配在IOC容器里面一个类只有一个对象,因此由IOC容器创建的对象是单例的...

2019-10-01 10:50:20 235

原创 Spring依赖注入(DI)

#Dependency Injection备注我们在一个类中需要用到另一个类的对象,传统方法是在一个类中new一个另一个类的对象,但是我们通过Spring IOC容器将这个过程交给IOC容器来实现,然后通过注入的方式将这个对象注入到当前这个类里,我们就不用在通过手动new的方式来创建需要依赖类的对象了,这样会大大提升开发的效率; ##1.set注入 ...

2019-09-30 20:23:55 148

原创 Spring框架实例化 bean的三种方式

#IOC中实例化bean的三种方式 ## 1.构造器(多数情况下如果没有指定将使用默认构造器实例化)在使用默认构造器实例化bean时,必须存在空构造器,否则实例化失败备注:IDEA如果想使用别人的maven项目时 只要将别人spring项目中的.idea 和.iml还有target文件删除 然后在自己的IDEA编译器中打开就可以了(这三个文件会再次自动生成) ...

2019-09-29 21:34:21 300

原创 http协议

要了解数据的传输就首先要了解数据传输的协议 一 http协议特点: 1. 支持客户端和服务器模式 2. 简单快速,通常的请求方式有GET和POST方式,在金融系统存在一个接口有多种协议的方式 3. 灵活:可传输任意类型数据 4. HTTP1.1支持持续连接 5. 无状态:即每次连接都会重新传输新数据,上一次的数据将不会被保存,只能从上到下一次连接,服...

2019-08-12 00:12:48 77

原创 javaScript概述

一般将javaScript简称为js,通常我们在使用js时一般是配合html一起来使用js作用:是对事件的反应,一般我们使用html和css写出的页面是静态的,如果我们想使我们的网页有一些动态效果,这时我们就要结合js一起使用.一 js的引入放置位置:1.行内js代码 将中的js代码3.放置在后的js代码 备注:一般我们将js代码放置在代码的最后面,因为这样可以使我们的代码看起来更加清晰,...

2019-08-01 22:59:14 108

原创 JAVA 容器

package collection02;import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;import java.util.HashSet;import java.util.Iterator;import javax.swing.text.html.HTMLDocument.H...

2019-07-04 00:25:43 127

原创 jquery基础选择器

基础选择器

2019-07-01 11:08:25 129

原创 jquery

1 首先要引入引入Jquery的核心JS文件,要放在我们编译器同包的项目中,这里要注意src的路径问题,要是路径有问题在运行的时候会提示引入失败,一般同包下新建一个文件目录用来专门存放我们引入的JQ文件,同包下的路径为相对路径.2 如果script标签设置了src属性,则在script双标签中写的js代码无效3 代码部分: <body> <div id="myd...

2019-07-01 09:51:00 80

原创 JDBC

package Test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/*JDBC加载步骤1 加载驱动器(选择数据库)2 获取连接(与数据库连接上...

2019-06-27 21:28:53 74

原创 JAVA容器

容器就是集合Collection 接口:java中没直接继承Collection的类,只提供了两个实现这个几口的子接口list和set;List接口:有索引可重复有序性备注:方便查询Set接口:无索引唯一性(不可重复,存入元素自动去重)无序性备注:方便增删List和Set的区别:1 Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类...

2019-06-27 11:03:17 60

原创 JAVA IO输入输出流

package Test;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream...

2019-06-26 23:20:21 79

原创 JAVA File文件类

package Test;import java.io.File;import java.io.IOException;import java.util.Arrays;/*File 文件和目录路径名的抽象表现形式;无论是否真实存在都可以创建File对象;*/public class TestFileDome {public static void main(String...

2019-06-24 21:25:51 106

原创 Python

python中的函数1 什么是函数:函数就是python语言底层中封装好的功能,在java中我们将函数称之为方法2 每个函数都有对应的功能3 函数的写法:函数名(参数)4 例如:print(“我爱python”) 这里的print函数的功能就是在控制台打印输出小括号里的参数5 参数:就是为这个函数准备的输入的数...

2019-06-21 08:25:39 62

原创 JAVA接口多继承

/***@author Monk*/public class TestInterface {public static void main(String[] args){/*注意!!!这里很重要!!!c引用前面我们写C1那么我们就只能调用接口C1重写的方法fly();而不能调用run();*因为c引用前面的类型是一个范围!!!*如果我们写成这样*Object c=new M...

2019-06-20 23:22:14 154

原创 JAVA接口

/*接口里面所有的方法都是抽象方法,接口相当于一个程序的中方法的规范,我们也可以把把程序看成是面向接口的编程,通过两个类对同一个接口的实现,会让程序变得更加稳定换句话说会提高程序的解耦性,接口可以实现多继承(也就是说一个接口可以继承其它多个接口,而类是单继承)接口是稳定的,故而在接口中我们不能定义变量,可以定义常量.接口里面不存在私有的(private修饰词修饰的);接口如果不去实现就...

2019-06-20 23:20:00 54

原创 oracle数据库92语法

–多表连接 *****–92语法–99语法–笛卡尔积select * from dept,emp;–等值连接 如果使用多个表相同的字段,注意指明字段的出处 ,等值连接的时候两个表中的字段类型必须相同,字段名可以不同– 查询所有员工的信息以及所在部门的信息–数据:员工信息,部门信息–数据的来源:emp,deptselect empno,ename,dept.deptno,dna...

2019-06-20 19:46:54 241

原创 JAVA匿名内部类与Lambda表达式

package Work;/***@author Monk*注意Lambda表达式是jdk1.8的新特性;*目的是简化匿名内部类*语法:*() -> {}*(小括号):表示抽象方法参数列表*->:Lambda符号,箭头操作符*{}:抽象方法的方法体实现*函数式接口:只有一个抽象方法的接口;*Lambda表达式使用前提:函数式接口;*检测函数式接口:@Fun...

2019-06-20 00:00:26 680

原创 JAVA数组的遍历

package mon;import java.util.Arrays;/**数组的三个基本特点:1 数组的长度是确定的一旦创建一个数组,它的大小是不可改变的 例如: type arr_a[]=new type[10];,这个数组的长度为10;2 数组变量属于引用类型,数组本来就是对象,数组中的每个元素相当于该对象的成员变量;3 声明的数组是什么类型,里面只能放什么类型的元素;4...

2019-06-19 22:39:41 302

原创 JAVA数组初始化

package mon;/**数组的初始化方式:1 静态初始化2 动态初始化3 默认初始化*/public class TestArr02 {public static void main(String[] args) {//静态初始化;int a[]={2,3,4,5,6};User[] b={new User(1005,“吱吱琦”),new User(1006...

2019-06-19 22:15:01 497

原创 JAVA数组

package mon;import java.util.Arrays;/**数组的三个基本特点:1 数组的长度是确定的一旦创建一个数组,它的大小是不可改变的 例如: type arr_a[]=new type[10];,这个数组的长度为10;2 数组变量属于引用类型,数组本来就是对象,数组中的每个元素相当于该对象的成员变量;3 声明的数组是什么类型,里面只能放什么类型的元素;4...

2019-06-19 21:08:42 121

原创 oracle 数据库

oracleXE安装1 去官网下载安装包,官网地址(https://www.oracle.com/cn/downloads/)2 安装服务端 (双击setup.exe),进行安装3 等待检查4 安装向导5 同意协议6 安装目录7 填写密码8 安装9 安装完成(在最后一步安装步骤中,需要我们等一会,这里不是程序卡了,在安装oracle...

2019-06-18 21:03:53 114

原创 JAVA反射

反射是发生在程序运行期的行为import java.util.Properties; 导入内存文件包;通过反射方式创建对象写法:Person p=(Person) Class.forName(pro.getProperty(“name”)).newInstance();p.test();java反射机制,可以实现以下功能:①在运行时判断任意一个对象所属的类;②在运行时构造任意一个类...

2019-06-17 21:21:25 97

原创 JAVA网络编程UDP与TCP与多线程

互联网三大基石:1 协议2 HTLM3 URL多线程:多个任务同时执行进程:一个任务就是一个进程,对于操作系统而言,就是不同的任务执行同时执行,每一个进程都有自己的代码块和运行空间,对于同步锁线程而言,对cpu消耗比较大,一个进程包含多个线程.线程:线程之间消耗比较小,一系列线程可以共享代码块和运行空间,线程是cpu调度的最小单位.多线程的开启方式:1 继承Thread类,重写ru...

2019-06-17 08:33:55 86

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除