- 博客(36)
- 收藏
- 关注
原创 Semaphore用法
Semaphore翻译成字面意思为 信号量,Semaphore可以控同时访问的线程个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。package com.juc;import java.util.concurrent.Semaphore;public class SemaphoreTest { public static void main(String[] args) { int N = 8; Semap
2021-07-03 22:46:00
371
原创 CyclicBarrier的用法
假若有若干个线程都要进行写数据操作,并且只有所有线程都完成写数据操作之后,这些线程才能继续做后面的事情,此时就可以利用CyclicBarrier了package com.juc;import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;public class CyclicBarrierTest { public static void main(String[
2021-07-03 22:18:59
172
原创 CountDownLatch的用法
概要:CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了**package com.juc;import java.util.concurrent.CountDownLatch;public class CountdownLatchTest { public static void main(String[] a
2021-07-03 15:44:48
169
原创 饿汉式单例
package com.singleTon;/** * 饿汉式单例模式 * 饿汉模式下什么时候触发初始化 * 只有在主动使用该类的时候才会初始化, * 例如:main方法在该类中,获取静态属性、使用静态方法、利用反射获取类、初始化一个类的子类 * */public class HangrySingleTon { private static HangrySingleTon instance = new HangrySingleTon(); private Hangry
2021-07-02 21:51:40
134
原创 线程安全的饿汉单例模式
/** * 双重检索的饿汉式单例 * 步骤:1、声明私有静态变量 * 2、私有构造器(目的是防止外部new) * 3、提供一个公有的静态方法 */public class LazySingleTon { //使用volatile的原因是:防止指令重排 private volatile static LazySingleTon instance; private LazySingleTon(){ } /** * new的执行过程:1、开辟空
2021-07-02 21:43:53
210
原创 IDEA中 Terminal面板 执行jps ‘jps‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
IDEA中 Terminal面板 执行jps ‘jps‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件1:查找winsows 环境变量中ComSpec的变量值。 C:\Windows\System32\cmd.exe这种写发IDEA不识别的%SystemRoot%\System32\cmd.exe 不要用2:IDEA配置中 File–>Settings–>Tools–>Teriminal修改Shell path 路径为 C:\Windows\System32\cmd
2021-05-16 19:17:56
689
1
原创 jps不是内部或外部命令
JPS不是内部或外部命令需要把Path环境变量中的JDK和JRE的bin分开原来:更改后:在这里插入图片描述终端可以使用jps命令:
2021-05-16 19:09:59
156
转载 idea中使用git
https://blog.youkuaiyun.com/weixin_39274753/article/details/79722522
2021-03-26 17:20:46
124
原创 创建对象的方式
创建对象的几种方式:1、使用new创建对象2、使用Class对象newInstance方法3、使用Constructor的newInstance方法4、采用clone//原始类public class Hello { public void sayWorld(){ System.out.println("Hello world!"); }}//1、使用new关键字public class TestHello { public static void
2021-03-06 22:17:30
226
原创 线程的创建方式及区别
线程的创建方式:1、继承Thread//线程类public class MyThread extends Thread { public void run(){ System.out.println("this is myThread mthod"); }}//测试public class ThreadModel { public static void main(String[] args) throws ExecutionException, Int
2021-03-06 21:35:09
216
原创 热部署Devtools
1,工程中添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <version>XXX</version> <scope>runtime</scope
2021-01-31 15:27:22
116
原创 vue自定义全局指令
vue中除了使用固定的一些指令外,也可以自定义一些全局指令,使用Vue.directive()命令。自定义全局指令实例:使用实例:
2020-11-15 20:44:17
459
原创 vue中的过滤器的使用
vue中的过滤器分为全局过滤器和局部过滤器1、无参全局过滤器//第一个参数是过滤器的名称,function是过滤器要执行的方法,其中的msg参数是固定的, 即是你需要过滤的数据 Vue.filter('msgFormat', function(msg) { return msg.replace(/单纯/g, 'xxx') })使用案例 <div id="app"> <p>{{ msg | msgFormat}}<
2020-11-15 19:57:17
273
原创 vue中数组的相关方法
vue中数组的常用方法:push、pop、shift、unshift、splice、sort、reverse、filter、find、findIndex、some、every。1、push在数组的末尾增加一个元素,一次可以增加多个2、pop在数组末尾删除一个元素3、shift删除第一个元素4、unshift在数组头部增加一个元素或者多个5、splice删除、插入或者替换元素6、sort数组排序7、reverse 数组反转8、filter创建一个新数组,新数组中的元素是符合指定条
2020-11-15 19:16:31
4561
原创 vue父子组件传值
1、父子组件传值定义父组件//父组件//引入的add-widget组件//使用 v-bind 的缩写语法通常更简单:<add-widget :msg-val="msg"> //这里必须要用 - 代替驼峰// HTML 特性是不区分大小写的。所以,当使用的不是字符串模板,camelCased (驼峰式) 命名的 prop 需要转换为相对应的 kebab-case (短横线隔开式) 命名,当你使用的是字符串模板的时候,则没有这些限制 </add-widget>data()
2020-11-01 22:26:37
173
原创 SVN的安装与配置
SVN的安装与配置:https://www.cnblogs.com/liuxianan/p/linux_install_svn_server.html注意:阿里云安装时记得开放端口(默认端口3690)
2020-10-25 15:33:36
236
1
原创 mybaties调用存储过程
Mybaties调用存储过程1、创建实体类package com.po;public class User { private Integer id; private String name; private String sex; private Integer age; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String ge
2020-10-21 21:26:14
296
原创 redis的常见面试题
1、redis是什么redis是C语言开发的(遵从BSD协议)的高性能内存数据库。**优点:**数据在内存中,读写速度非常快,性能优越,支持并发10wQPS;支持多种数据类型(String,Set,List,Hash,ZSet);支持数据持久化;可以做缓存、数据库、消息中间件;主从复制、哨兵、高可用;可以做分布式锁。2、redis的5中数据类型Redis 内部使用一个 redis...
2020-03-02 17:17:35
411
原创 synchronized和Lock的区别
1、synchronized是JVM层面的锁,底层通过monitorEnter和monitorExit实现的,Lock是具体的类,是api层面的锁;2、synchronized是非公平锁,ReentrantLock默认是非公平锁,也可以是公平锁。3、synchronized不可中断执行,ReentrantLock可通过lock.lockInterruptibly()等方法中断执行;4、sy...
2020-02-18 13:46:56
131
原创 JAVA的线程状态
JAVA的线程状态:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED;要获取Java线程的状态可以使用 java.lang.Thread类中定义的 getState()方法,获取当前线程的状态就可以使用Thread.currentThread().getState()来获取。该方法返回的类型是一个枚举类型,是Thread内部的一个枚举...
2020-02-12 16:48:53
213
原创 JVM垃圾回收
如何确定对象是垃圾对象1、引用计数法:当对象被引用时加1,对象被释放后减1,至到减为0时,则该对象就是垃圾对象,就会被回收。引用计数法缺点:无法解决相互引用的问题。2、可达性分析:选取一个对象作为GC Root向下遍历所有引用链,当触发垃圾回收的时候,引用链下面有节点无法抵达GC Root了说明这些对象可以回收。可以作为GC Root的对象:1)虚拟机栈中栈帧中的对象引用;2)二八年底...
2020-02-12 15:17:51
200
原创 Java类加载器与双亲委派机制
Java的四种类加载器1)Bootstrap ClassLoader;2) Extention ClassLoader;3) Application ClassLoader;4) Custom ClassLader;加载器启动时的加载目录Bootstrap :加载JDK目录中\lib文件夹中的类;Extention :加载JDK目录中\lib\ext文件夹中的类;Applicati...
2020-02-12 13:10:54
206
原创 Spring的事物实现方式
Spring事务的实现方式主要有以下4种:1)编程式事务:代码中显式调用beginTransaction()、commit()、rollback()等事务管理相关的方法;2)基于 TransactionProxyFactoryBean的声明式事务管理;3)基于 @Transactional 的声明式事务管理;4)基于Aspectj AOP配置事务。举例说明事务的不同实现:说明:编程式事...
2020-02-11 18:31:37
1103
原创 kafka常见面试题
1、Kafka 中的 ISR(InSyncRepli)、OSR(OutSyncRepli)、AR(AllRepli)代表什么?AR:所有的分区副本;ISR:所有与leader保持同步的副本集合;OSR:被leader剔除ISR的集合;当副本在一定时间未与leader进行同步就会被提出ISR。2、Kafka 中的 HW、LEO 等分别代表什么?LEO:每个副本中最大的 offset;H...
2020-02-08 18:00:16
2315
原创 nginx的原理及参数配置优化
1、nginx的原理图2、解释nginx采用master-workers机制首先,对于每个 worker 进程来说,独立的进程,不需要加锁,所以省掉了锁带来的开销,同时在编程以及问题查找时,也会方便很多。其次,采用独立的进程,可以让互相之间不会影响,一个进程退出后,其它进程还在工作,服务不会中断,master 进程则很快启动新的worker 进程。当然,worker 进程的异常退出,肯定...
2019-10-19 20:16:43
243
原创 nginx动静分离
1、概述Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用 Nginx 处理静态页面,Tomcat 处理动态页面。2、实现方式:一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;另外一种方法就是动态跟静态文件混合在一起发布,通过 nginx 来分开;...
2019-10-19 20:06:12
176
原创 nginx负载均衡配置
nginx负载均衡的几种策略:1、轮询:每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除;2、weightweight 代表权,重默认为 1,权重越高被分配的客户端越多;指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。配置如图:3、ip_hash每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个...
2019-10-19 16:21:57
173
原创 nginx反向代理配置
1、访问www.123.com:8080跳转到127.0.0.1:8080配置文件如下:listen: 监听的端口server_name: 请求地址proxy_pass: 目标地址2、访问不同地址跳转不同服务器nginx 监听端口为 9001,访问 http://127.0.0.1:9001/edu/ 直接跳转到 127.0.0.1:8081访问 http://127.0.0....
2019-10-19 16:02:57
279
原创 nginx配置文件
本文主要对nginx的配置文件进行解释:进入nginx的安装目录,找到nginx.conf文件文件内容:worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx....
2019-10-19 13:34:27
183
原创 nginx安装及启动
nginx一般安装在linux系统上,本文以linux安装为例1、安装nginx准备工作:下载pcre、openssl、zlib、nginx1)安装pcre:使用命令:wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz解压命令:tar -zxvf pcre-8.37.tar.gz安...
2019-10-19 13:05:48
200
原创 nginx基本介绍
1、概述nginx是一款高性能的HTTP反向代理服务器。优点:支持高并发连接:官方测试Nginx能够支撑5万并发连接,实际生产环境中可以 支撑2~4万并发连接数;配置文件简洁;占用内存少;内部有健康检查功能;支持Rewrite重写:可根据不同的域名、URL将请求转发至后端不同的服务群;支持热部署;稳定性高。2、nginx的主要功能:正向代理与反向代理;负载均衡;动静分...
2019-10-14 21:57:17
448
原创 kafka概述
1、kafka定义kafka是一个分布式的基于发布/订阅的消息队列,大多数用于大数据处理领域。2、使用消息队列的好处(1)解耦:可以独立的扩展两边的处理过程并遵守同样的接口约束;(2)可恢复性:消息队列降低了进城之间的耦合性,所以即使一个处理消息的进城挂掉之后,加入队列的消息仍然可以被恢复后的进城处理;(3)缓冲:有效的解决和优化了消息生产者和消费者处理速度不一致的问题;(4)灵活性:...
2019-10-11 21:24:56
332
原创 设计模式之单例模式
单例模式的8种写法:1、实现单例模式的步骤1)构造器私有化;2)声明静态的私有变量;3)提供一个公有的静态方法,返回实例对象。1、饿汉模式:1)静态常量这是由静态常量实现的饿汉单例,优点:实现简单、在类装载的时候进行实例化可实现线程安全;缺点:类装载的时候进行实例化,没有实现懒加载,造成内存浪费;结论:不推荐使用该方式。2)静态代码块优缺点与上面一样。结论:不推荐使用...
2019-08-10 22:02:59
158
原创 JAVA设计模式的7个原则
1、设计模式的目的:1)代码重用性(相同功能的代码只需要编写一次);2)可读性;3)可扩展性(增加新的功能方便);4)可靠性(新增功能对原功能没有影响);5)使程序呈现高内聚,低耦合。2、设计模式的7大原则:1)单一职责原则;降低类的复杂度,一个类只负责一项职能;提高类的可读性;提高类的可扩展性,降低修改带来的风险;2)接口隔离原则;一个类对另一个类的依赖应建立在最小接口上...
2019-08-10 14:28:24
332
原创 Spring事务的特性、隔离级别、传播特性
本文主要介绍:Spring事务的特性、隔离级别、传播特性一、Spring的事务四大特性:1、原子性:强调事务的不可分割.;2、一致性:事务执行前后数据的完整性保持不变(事务执行前,A和B的总钱数为500,进行转账操作后,A和B的总钱数还应该是500);3、隔离性:不同事务之间是相互独立的;4、持久性:事务一旦执行提交操作就会持久化到数据库中。二、Spring的事务隔离级别:有4大隔离...
2019-06-09 20:58:27
1464
原创 windows10安装VMware Workstation 15 并安装Ubuntu 16.04
本文主要记载了自己安装VMware Workstation 15 并安装Ubuntu 16.04的过程。1、准备工作1)下载VMware Workstation 15并安装;附:百度云地址:链接:https://pan.baidu.com/s/1pCC-Rha8HefP1Q0zBuQ3Ew提取码:w9ji安装完成界面(安装完成后先不要创建虚拟机)2)下载Ubuntu 16.04镜像。...
2019-06-02 19:59:23
768
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人