自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【学习笔记】VUE

一:vue概述vue是MVVM(Module View ViewModel)模式的View与ViewModel是双向绑定的(可以实现元素值的动态刷新(不用刷新页面的那种)),然后ViewModel从后端中拿Module(开发时也可以自己模拟),这样就完美实现了前后端分离二:idea安装vue1:安装插件2:添加vue component 模板二:vue的基础语法1:获取vue对象中data的值(1) 直接使用【{{}}】来获取(2) 在标签中使用【v-bind】来获取(注:v-bing

2021-12-18 15:32:27 273

原创 遇到的一些不错的Java极客程序

1:java代码30行实现用我爱你重绘女朋友美照(我对你的爱,在每一个字里行间)2:抖音上很火的时钟屏保,被我改造完用来表白

2021-11-18 01:14:14 120

原创 将jar包打成exe文件

准备工作一:安装exe4j链接:https://pan.baidu.com/s/1ekGbx_34JPXwEx1TnEFjfg提取码:qnq6注册码:L-g782dn2d-1f1yqxx1rv1sqd二:激活exe4j如果不激活的话,在exe程序启动的时候,会有一个软件官方的广告弹窗开始一:选择类型二:配置程序输出地址三:配置程序相应的信息四:添加jar包五:添加jre六:接下来全部默认就可以了...

2021-11-17 22:04:10 273

原创 idea打jar包

1:

2021-11-17 21:41:50 87

原创 JavaScript:学习记录

学习JavaScript这一篇就够了2021.11.07:2.11、函数

2021-11-07 07:47:22 583

原创 前端的一些概念:JavaScript、Node.js、Ajax

一:JavaScript一种脚本语言,解释型语言二:Node.js 是一种运行环境,里面包含了v8引擎 使用Node.js这种环境可以使用JavaScript脱离浏览器运行,从而可以编写服务端的功能三:Ajax 其全称是 Asynchronous JavaScript + XML (异步JavaScript和XML) 不是一种语言,也不是什么框架,只是一个在2005年被提出来的新术语 本质上是一种概念,由多种技术集合而成,粗浅的理解,只要是用JavaScript实现了异步请求达到页面无

2021-11-07 06:23:51 501

原创 java爬虫:HttpClient的简单使用

一:常用的类库有HttpClientJsoup(通常用来解析返回的html页面)二:常用的框架有WebMajic三:HttpClient的使用1:依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> &l

2021-10-17 22:23:07 133

原创 GitHub图片

2021-09-22 21:03:17 52

原创 设计模式:动态代理

代理模式的本质:创建一个代理类替代业务类,将非业务代码写在代理类中,保留业务类的纯净,同时增加代码的可扩展性文章目录一:动态代理的本质二:优点三:主要用到的类1:Proxy2:InvocationHandler三:例子1:结构2:Send 业务接口3:Host 业务类4:SelfInvocationHandler 通用代理类5:Client 调用者6:执行结果一:动态代理的本质创建一个通用代理类(调用处理类),通过反射动态创建需要的代理类二:优点1:保留业务类的纯净2:增加代码的可扩展性3:一

2021-08-24 23:49:16 84

原创 设计模式:静态代理

代理模式的本质:创建一个代理类替代业务类,将非业务代码写在代理类中,保留业务类的纯净,同时增加代码的可扩展性文章目录一:静态代理的本质二:优点三:缺点四:例子一:静态代理的本质创建一个代理类替代业务类二:优点1:保留业务类的纯净2:增加代码的可扩展性三:缺点使用静态代理,意味着每一个业务类都需要另外单独写一个代理类,这极大地增加了代码量四:例子1:结构2:Send接口package test8.proxy1;public interface Send { void se

2021-08-24 17:32:29 70

原创 设计模式:工厂模式

文章目录一:简单工厂模式二:工厂方法模式三:抽象工厂模式四:应用场景工厂模式【实现了创建者与调用者的分离】,其分为三种:一:简单工厂模式一个工厂,可以生产很多个产品优点:实现简单缺点:当增加一个产品的时候,需要修改工厂里的代码(不符合开闭原则)二:工厂方法模式一个产品对应一个工厂优点:当增加一个产品的时候,不需要修改其他工厂的代码(符合开闭原则)缺点:每一个产品都要一个工厂,代码量太大三:抽象工厂模式产品族:一整套产品(如:衣服、裤子、鞋子)抽象工厂规定了产品族的涵盖范围,抽象工

2021-08-16 22:30:28 67

原创 设计模式:单例模式

菜鸟总结的贼好:https://www.runoob.com/design-pattern/singleton-pattern.html----------------------------------------------------分割线----------------------------------------------------文章目录一:什么是单例模式二:单例模式的几种实现方式1:懒汉式(线程不安全)2:懒汉式(线程安全)3:饿汉式4:双重校验锁(double-checked l

2021-08-08 17:01:25 102

原创 设计模式:简介

一:什么是设计模式设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。二:设计模式的类型三:设计模式的几个原则1:易于扩展2:任何基类可以出现的地方,子类一定可以出现3:针对接口编程,依赖于抽象而不是具体4:使用多个相互隔离的接口更好5:系统模块相对独立6:使用合成/聚合的方式,而不是使用继承总体来说

2021-08-08 15:09:48 66

原创 JUC:分支合并(ForkJoin框架)

文章目录一:算法思想二:相关接口、类1:ForkJoinPool类2:ForkJoinTask类三:示例1:示例2:解析Ps:只要是一整套问题的解决方案,都可以称之为框架;ForkJoinPool提供了“大任务分割解决”的方案,所以将其涉及的一系列接口、类称之为ForkJoin框架与spring等框架的概念不同,这里的“框架”,“体量”显然要小得多一:算法思想分治法:把一个大任务分解成多个子任务,子任务可以再分,直到最后一个子任务可解,然后再把子任务的解合并成大任务的解分治法的算法思想和二分法、

2021-08-07 15:37:58 154

原创 JUC:线程池(ThreadPoolExecutor)

一:为什么要使用线程池1:线程池的特点线程复用;控制最大并发数;管理线程降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的销耗。提高响应速度。当任务到达时,任务可以不需要等待线程创建就能立即执行。提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会销耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。2:使用的接口/类Java中的线程池是通过Executor接口、Executors类实现的,主要的相关接口/类有:Executor,Executor

2021-08-04 16:51:47 533

原创 JUC:阻塞队列(BlockingQueue)

1:其在集合中的位置2:BlockingQueue的七个实现类3:BlockingQueue的主要方法add()/remove() 会抛出异常offer()/poll 返回Boolean值put()/take() 会一直让线程阻塞offer(e,time,unit)/poll(time,unit) 指定线程阻塞的时间第二种比第一种好用,第四种比第三种好用...

2021-08-03 16:22:46 85

原创 JUC:三个强大的线程辅助类:CountDownLatch、CyclicBarrier、Semaphore

文章目录一:CountDownLatch1:问题2:解决3:知识点二:CountDownLatch1:问题2:解决3:知识点三:CountDownLatch1:问题2:解决3:知识点一:CountDownLatch1:问题public class Test14 { public static void main(String[] args) { for (int i = 0; i < 6; i++) { new Thread(() -> {

2021-07-28 11:18:05 143

原创 JUC:集合类不安全

文章目录一:ArrayList集合不安全**1:现象****2:原因****3:解决方法**二:HashSet集合不安全**1:现象****2:原因****3:解决方法**三:HashMap集合不安全**1:现象****2:原因****3:解决方法**四:相关链接与图文在多线程环境下,Java中的ArrayList、HashSet、HashMap是线程不安全的一:ArrayList集合不安全1:现象public class Test09 { public static void main(S

2021-07-26 23:06:02 161

原创 CSDN小技巧

1:文章加目录@[toc]2:使图片缩小在图片的末尾加上:#pic_center =80%x80%

2021-07-26 22:14:48 66

原创 JUC:生产者消费者模式

文章目录虚假唤醒(spurious wakeup)生产者与消费者模板生产者与消费者模式:synchronized虚假唤醒(spurious wakeup)当需要条件判断使用wait()方法时,应该使用循环,而不是if,否则就可能会出现虚假唤醒(spurious wakeup)的情况简单点理解,虚假唤醒就是除了理应被唤醒的线程之外,还另外唤醒了其它的线程,导致的数据的错误虚假唤醒的原理:例:public class Test10 { public static void main(Stri

2021-07-26 21:15:54 132

原创 JUC:Lock中的Condition

文章目录为什么要使用condition什么叫 “ condition对象能够绑定指定的线程 ”为什么要使用conditionsynchronized中可以使用wait()、notify()方法来实现线程的等待与唤醒在Lock中,我们使用condition对象来代替wait()、notify()方法实现线程的等待与唤醒功能;同时,相比于wait()、notify()方法,condition对象还能够绑定指定的线程,提供了更为强大的功能什么叫 “ condition对象能够绑定指定的线程 ”1:我们知

2021-07-19 23:51:33 94

原创 JUC:Lock与ReadWriteLock锁

synchronized的优缺点优点:1:发生异常自动释放锁2:书写简单缺点:1:无法使等待中的线程中断等待2:无法得知线程是否成功为资源加锁了3:无法使读操作并发进行由此引入了Lock与ReadWriteLock接口Lock1:加锁的错误写法public class Test01 { public static void main(String[] args) { Test01 test01 = new Test01(); new Thre.

2021-07-09 20:01:54 79

原创 JUC:synchronized同步锁

synchronized是Java中的关键字,是一种同步锁,主要有以下四种用法:用于修饰代码块:作用对象是实例,作用范围是{}中的代码块,或者某个指定的资源用于修饰方法:作用对象是实例,作用范围是其修饰的方法用于修饰静态方法:作用对象是类,作用范围是该类下的所有对象用于修饰类:作用对象是类,作用范围是该类下的所有对象修饰一个代码块1:synchronized的()中使用thispublic class Test09 implements Runnable{ @Override

2021-07-06 22:49:57 296

原创 JUC:创建线程的三种方式

Java中创建线程主要有三种方式一、继承Thread类创建线程类覆盖run()方法,该方法是线程的执行体创建Thread实例,并调用其start()方法开启线程public class Test03 extends Thread{ @Override public void run() { for (int i = 0; i < 5; i++) { System.out.println(this.getName()+" "+i);

2021-07-05 22:42:55 152

空空如也

空空如也

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

TA关注的人

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