自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springcloud-Eureka注册与服务创建(单群)

Eureka注册与发现

2022-08-09 16:33:53 194

原创 【无标题】自定义健康端点

1.扩展健康端点:编写一个类继承AbstarctHealthIndicator,重写其中的doHealthcheck方法,主要代码如下:2.完全自定义健康端点:访问:localhost:端口号:/autuator/myEndpoint

2022-08-07 16:35:30 262

原创 spring boot项目读取配置文件的三种方式

3.通过@ConfigurationProperties配置类,再通过自动注入,去调用配置类的相关get方法获取参数。(2)自动装配调用相关API。

2022-08-07 16:24:29 576

原创 idea创建springboot 项目的两种方式

2)在主启动类上加入以下的注解:@SpringBootApplication。2.使用ideal自带的springinit,根据项目的需要添加相关的依赖。1.创建一个maven工程或者java工程.

2022-08-07 16:15:14 171

原创 Java集合

定义:用于存放对象的引用的容器。 分类:Set(列),List(集),Map(映射)。 与数组的区别:(1)数组在定义的时候需声明长度,集合的长度可动态增长;(2)数组只能存放基本数据类型,也可存放引用数据类型,集合只能存放引用数据类型;(3)数组存放的元素必须为同一数据类型,集合存放的对象可不为同一数据类型。 Collection接口:Set接口(HashSet(数组+链表(红黑树),线程安全),LinkedHashSet(Hash表+链表),TreeSet(红黑树)..)和List接口(Array

2021-10-17 22:05:51 69

原创 thymeleaf

基本语法表达式 语法 用途 变量取值 ${} 获取请求域值 选择变量 *{} 获取上下文对象值 片段选取 ~{} 类似于jsp:include 消息 #{} 获取国际消息等 链接 @{} 生产链接 2、字面量 文本值: 'one text' , 'Another one!' ,…数字: 0 , 34 , 3.0 , 12.3 ,…布尔值: true , false 空值: n...

2021-10-16 21:37:39 161

原创 mybatis编写自定义类型转化器

1.导入相关的jar包坐标 <dependencies> <!--mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version>

2021-09-15 09:33:31 308

原创 mybatis快速入门

1.导入相关的jar包坐标<dependencies> <!-- mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version>

2021-09-14 23:05:51 56

原创 spring事务声明基于注解

1.导入相关jar坐标 <dependencies> <!--spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.

2021-09-14 17:48:57 70

原创 spring基于事务配置(xml配置)

1.导入相关的jar坐标<dependencies> <!--spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.

2021-09-14 17:26:56 287

原创 spring-aop快速开发(基于注解)

1.导入相关jar包坐标 <dependencies> <!-- spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>

2021-09-14 11:15:52 76

原创 spring-aop快速入门(xml配置)

1导入相关jar包的坐标 <dependencies> <!--spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5

2021-09-14 10:46:02 110

原创 spring注解开发快速入门

1.编写配置类//SpringConifg@Configuration //表名配置类,在容器创建时加载@ComponentScan("com") //扫描com包下所有组件@Import(DataSourceConfig.class) //导入其他配置类public class SpringConfig {}//DataSourceConfig.class@Configuration@PropertySource("classpath:jdbc.properties"

2021-09-12 15:05:56 96

原创 spring配置数据源步骤

1.先导入数据源的相关包坐标和驱动库包坐标 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <!-

2021-09-12 13:41:38 111

原创 SpringBean对象配置的三种方法

1.构造方法<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://w

2021-09-12 13:05:25 76

原创 Spring快速入门

1.开发步骤(1)导入spring开发的基础jar包beans,context,core和SpEL(expression)//默认导入核心包的一个,其他会联动导入 <dependencies> <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>

2021-09-11 21:41:19 66

原创 CountDownLatch应用之实现多线程等待

public class countdownlatchApplication { public static void main(String[] args) throws InterruptedException { CountDownLatch countDownLatch=new CountDownLatch(10); ExecutorService pool= Executors.newFixedThreadPool(10); String .

2021-09-09 22:14:06 82

原创 Semaphore(信号量)

1作用:用于限制能同时访问共享资源的线程数量,无法限制资源的数量。2.示例public class TestSemaphore { public static void main(String[] args) { Semaphore semaphore=new Semaphore(3); for (int i = 0; i <10 ; i++) { int temp=i; new Thread(()-&g

2021-09-09 21:34:33 56

原创 Stamped读写锁

在加读锁之前,先尝试进行乐观读,根据获取的戳进行校验,若通过,则数据合法安全,否则升级锁为读锁,再进行相关操作。相关代码如下:public class TestLock { public static void main(String[] args) { DataContainer<Long>dataContainer=new DataContainer<>(1000L); new Thread(()->{

2021-09-09 20:49:00 92

原创 读写锁实现缓存应用

1.pom配置<dependencies> <!-- https://mvnrepository.com/artifact/com.mchange/mchange-commons-java --> <dependency> <groupId>com.mchange</groupId> <artifactId>mchange-commons-java&l

2021-09-09 16:52:51 68

原创 AQS之读写锁

public class ReaderWriterLock { public static void main(String[] args) { DataContainer<String> dataContainer=new DataContainer<>(); new Thread(()->{ try { Thread.sleep(1000); } catch (I.

2021-09-08 22:42:59 200

原创 自定义不可重入锁代码

public class TestAQS { public static void main(String[] args) { MyLock myLock=new MyLock(); new Thread(()->{ myLock.lock(); try{ System.out.println("locking..."); }finally { .

2021-09-08 20:58:53 118

原创 线程池fork/join使用

1求1+到n的结果用fork/join线程池实现(未优化版)public class TestFortJoin { public static void main(String[] args) { ForkJoinPool forkJoinPool=new ForkJoinPool(4); System.out.println(forkJoinPool.invoke(new Task(5))); //根据需要修改5的值 }}class Task e

2021-09-08 16:37:29 187

原创 线程池应用之定时任务

public class Test { @org.junit.Test public void timing(){ //获取当前时间 LocalDateTime dateTime=LocalDateTime.now(); System.out.println(dateTime); //获取下周四9点时间 LocalDateTime will=dateTime.withHour(9).withMinute(0)..

2021-09-08 15:24:43 87

原创 自定义线程池代码

public class TestPool { public static void main(String[] args) { Pools pools=new Pools(2,1000,TimeUnit.MILLISECONDS,2, ((queue, task) -> { //死等 // queue.put(task); //.

2021-09-08 15:24:09 113

原创 定时之Timer的缺点

1.由于只有一个线程进行任务的调度,给个任务之间是串行的,所以在执行是有所延迟,相关例子如下//延时 public static void main(String[] args) { TimerTask Task1=new TimerTask(){ @SneakyThrows @Override public void run() { System.out.println(.

2021-09-08 15:19:12 253

原创 Unsafe对象的相关操作

public class get_unsafe { public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException { //利用反射获取对象theUnSafe Field theUnsafe= Unsafe.class.getDeclaredField("theUnsafe"); //设置允许通过反射获取对象unsafe the.

2021-09-07 08:11:23 98

原创 JUC之原子数组

public class updater { public static void main(String[] args) { Student stu=new Student(); AtomicIntegerFieldUpdater fieldUpdater=AtomicIntegerFieldUpdater.newUpdater(Student.class,"age"); AtomicReferenceFieldUpdater referenceF.

2021-09-06 22:30:12 80

原创 线程之原子数组(AtomicIntegerArray)

/*函数式接口:Supplier:()->返回值 function: (参数)->返回值 Bifunction: (参数1 ,参数2)->返回值 BiConsumer: (参数1,参数2)->void Consumer: (参数1)->void*/public class test { private static <T> void demon( Supplier<T> arraySupplier, .

2021-09-06 22:03:33 106

原创 原子引用(AtomicReference)

1.AtomicReference:原子引用,可以用于乐观锁,避免线程上下文的切换,提升系统的运行效率。相关的“ABA”问题的代码如下:static AtomicReference<String>ref=new AtomicReference<>("A"); public static void main(String[] args) throws InterruptedException { System.out.println("start..")

2021-09-06 21:27:00 1032

原创 线程设计模式

1.固定运行顺序(1)wait-notifypublic class Asyn { //1,2 static Object obj=new Object(); static int flag=0; public static void main(String[] args) throws InterruptedException { Thread t1= new Thread(()->{ synchronized (obj

2021-09-06 15:54:34 128

原创 单例模式的编写

1.饿汉式模式public final class hungry implements Serializable { private static hungry single=new hungry(); public hungry() { } public static hungry getSingle(){ return single; } //实现了Serializable接口,防止序列化破话单例 public Object

2021-09-06 15:45:50 35

原创 JUC设计模式之保护性暂停(代码)

package com.mode;import java.util.Hashtable;import java.util.Map;import java.util.Set;public class suspension { public static void main(String[] args) throws InterruptedException { for (int i = 0; i <3 ; i++) { reciver t =n.

2021-09-02 16:52:36 149

原创 线程并发(三)

1.两阶段终止模式正确思想:sleep+interruptpublic class twoPhaseTermitation { public static void main(String[] args) throws InterruptedException { twoPhaseTermination tpt = new twoPhaseTermination(); tpt.start(); Thread.sleep(3500); .

2021-09-02 15:36:07 54

原创 线程并发(二)

2021-09-02 15:22:46 61

原创 线程并发 与创建方式

2021-09-02 15:15:34 76

原创 解释器和JIT编译器

解释器1.初衷:单纯的实现Java程序的跨平台,避免采用静态编译将其转化为机器指令,运行时采用逐行解释字节码并执行程序。2.工作机制(1)担任翻译者,将字节码文件中的内容翻译为机器指令并执行(2) 每执行完一条指令后,便根据pc程序计数器执行下一条指令3.分类两套解释执行器为古老的字节码解释器和模板解释器。字节码解释器:执行时通过纯软件代码模拟字节码的执行,效率低下模板解释器:执行时将每一条字节码和一个模板函数相关联,模板函数直接产生这条字节码的机器指令,提高解释器的性能。

2021-07-28 10:11:58 359

原创 机器码,指令,汇编语言

指令1.机器码由0和1组成的二进制序列,其可读性差,但运行速度快,为方便阅读,人们发明了指令。2.指令就是把机器码中特定的0和1序列简化为对应的指令,一般为英文缩写。如jmp,add,mov等。3.不同平台对应的同一操作的机器码可能不同。指令集1.不同平台所支持的指令有所差异,把每个平台所支持的指令,称为该平台对应的指令集2常见的指令集x86指令集,对应的是x86框架的平台ARM指令集,······汇编语言1.在提高指令阅读性的基础上,又发明了汇编语言2....

2021-07-28 09:29:16 779

空空如也

空空如也

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

TA关注的人

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