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

原创 自旋锁
1.自旋锁定义: 实际就是while/do...while+CAS尝试获取锁的线程不会立即阻塞,而是采用循环的方法尝试获取锁 这样的好处是减少线程上下文切换的消耗,缺点是循环会消耗CPU2.代码描述:public class SpinLockDemo { AtomicReference<Thread> atomicReference=new AtomicRefer...
2019-10-15 12:02:57
885

原创 Redis持久化之AOF(二)
1.AOF(Append Only File)持久化方式:以日志的形式来记录每个写操作,将Redis执行的所有写指令记录下来,只允许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据;换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作(1).解读Redis的配置文件redis.conf的APPEND ONLY MODE模块:AO...
2019-09-14 13:43:29
202

原创 Redis持久化之RDB(一)
Redis Persistence(持久化):Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候再次加载可以使用,也就是说内存中的数据不持久化断电就会丢失1.RDB(Redis DataBase) 持久化方式:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是snapshotting快照,它恢复时是将快照文件直接读到内存; Redis会单独创建(fork)一个子进...
2019-09-14 08:57:52
249

原创 SpringBoot整合rabbitmq整合_接受数据自动的转换为Json
1.默认代码: @Autowired RabbitTemplate rabbitTemplate; @Test public void contextLoads() { Map<String,Object> map=new HashMap<>(); map.put("msg","这是一个消息"); ...
2019-09-10 22:33:46
2457
2

原创 解决win10系统下VMware的虚拟机桥接模式不可用问题
关于vmvare的虚拟机使用桥接模式不能用,连不上网问题,搜罗各大网站,总结博文,得出以下结论,如有问题,敬请指正;问题描述:无法将网络更改为桥接状态;没有未桥接的主机网络适配器;解决办法:第一步:打开网络和Internet设置——点击更改适配器选项——如果你是用的有线就选择本地连接或者你是用的无线选WLAN,右击属性,确保VMvare Bridge Protocol是打开的(支持...
2019-09-07 14:35:50
10066
9

原创 IDEA版MyBatis使用MBG逆向生成代码和配置文件
1.概述MyBatis的逆向工程是:Mybatis Generator:它是一个专门为Mybatis框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件,接口,以及bean类。支持基本的增删改查,以及QBC风格的条件查询官方文档地址2. 使用项目结构如下:导入依赖<dependency><groupId>org.mybatis....
2019-08-28 23:10:58
1003
1

原创 查看宝塔Linux下Tomcat运行日志
第一步:使用Xshell 6 进入Tomcat路径下的/www/server/tomcat/logs cd/www/server/tomcat/logs第二步:tail -f catalina-daemon.out这样运行时候就可以查看运行日志了退出tail命令是Ctrl+c。...
2019-07-23 10:33:27
3727

原创 宝塔Linux的安装详解
宝塔Linux管理面板是一个功能强大且终身免费的Linux服务器管理软件,让使用者可以更加简便的使用服务器。使用的前提条件:需要买一个服务器例如,在阿里云购买一个云服务器ECS,ECS服务器的预装环境需要为Centos系统进入你的控制台,会在实例列表显示一个实例:2.安装一个终端连接工具,我用的是Xshell 6 X shell6安装网址...
2019-07-21 15:46:56
1046

原创 宝塔Linux部署JavaWeb项目
如何使用宝塔Linux部署JavaWeb项目索隆爱娜美 2019年7月20日 20:50:59首先使用终端连接工具Xshell 6进入Linux进入宝塔官网点击立即安装根据自己的需求选择安装版本,例如centos7.3 在Xshell 6中输入命令 yum install -y wget && wget -O install.sh http:/...
2019-07-21 10:08:01
3092
4
原创 Join从句
引用两个数据库举例说明:1.内连接select a.name,a.do,b.name,b.dofrom person a INNER JOIN friend bon a.name = b.name;2.全连接select a.name,a.do,b.name,b.dofrom person a LEFT JOIN friend bon a.name = b.nameUNION ALL...
2021-11-07 19:59:00
366
原创 死锁编码与分析
死锁产生的主要原因:两个或两个以上进程在执行过程中,因争夺资源而造成的一种循环等待现象,若无外力干涉它们将无法推进下去 编码 class HoldLockThread implements Runnable{ private String lockA; private String lockB; public HoldLockThread(String lock...
2019-10-15 22:39:51
333
原创 线程池
1.为什么用线程池?优势?线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等其他线程执行完毕,再从队列中取出任务来执行主要特点:线程复用,控制最大并发数,管理线程2.创建线程池? 实现类:ExecutorService 底层:ThreadPoolExecutor三种方...
2019-10-15 21:25:38
231
原创 一个初始值为0的变量,两个线程对其交替操作,一个加1一个减1,来5轮
题目:一个初始值为0的变量,两个线程对其交替操作,一个加1一个减1,来5轮class ShareData{ private int number=0; private Lock lock=new ReentrantLock(); /** * 1.一个Condition的实例必须与一个Lock绑定,Condition一般都是作为Lock的内部实现 *...
2019-10-15 16:04:55
1157
原创 阻塞队列——SynchronousQueue
要求:每一个put操作必须要等待一个take操作,否则不能继续添加元素,反之亦然可知SynchronousQueue是BlockingQueue接口的实现类,是一个不存储元素的阻塞队列,也即单个元素的队列(有且只有一个)public class SynchronousQueueDemo { public static void main(String[] args) { ...
2019-10-15 15:56:19
225
原创 信号灯Semaphore
信号灯主要用于两个目的,一个是用于多个共享资源的互斥使用,另一个是用于并发线程数的控制示例代码:举例:争抢车位问题public class SemaphoreDemo { public static void main(String[] args) { Semaphore semaphore=new Semaphore(3); //模拟3个停车位 ...
2019-10-15 15:11:15
229
原创 并发修改异常
并发修改(ConcurrentModificationException)异常问题分析?public class ContainerNotSafeDemo { public static void main(String[] args) { listNotSafe();} private static void listNotSafe() { List...
2019-10-15 11:33:50
318
原创 ABA问题
引出ABA问题?CAS算法实现的一个重要前提就是需要取出内存中某时刻的数据并在当下时刻比较并替换,那么在这个时间差内可能会导致数据的变化,尽管线程CAS操作成功,但并不代表整个过程就是没有问题的只在乎开头和结尾,不重过程演示ABA问题?public class ABADemo { //ABA问题解决 //普通原子引用 static AtomicReference&l...
2019-10-15 10:47:04
306
原创 单例模式DCL
DCL(DOUBLE CHECK LOCK):双端检锁机制单线程环境下:public class SingletonDemo { private static SingletonDemo instance=null; //正常情况,只new一份,就只打印一次 private SingletonDemo(){ System.out.println(Th...
2019-10-15 09:38:38
284
原创 堆,栈,方法区——case
public class Exam5 { static int s; //成员变量,类变量 int i; //成员变量 int j; //成员变量 //<init> { int i = 1; //非静态代码块中的局部变量i i++; j++; s++; } public void test(int j){ //形参,局部变量 j j++; i...
2019-10-12 22:31:57
152
原创 栈——case.
public class Test { public static void main(String[] args) { int i=1; //第一步 i=i++; //第二步 int j=i++; //第三步 int k=i+ ++i*i++; //第四步 ...
2019-10-12 22:01:51
145
原创 Idea远程调试
1.Edit Configurations -- + --Remote:2.remote里面的配置3.调用startup.sh时会调用catalina.sh里面的脚本,这个catalina.sh主要是调优虚拟机在catalina.sh里面添加# debug 告诉tomcat开启一个端口支持别人远程调试CATALINA_OPTS="-Xdebug -Xrunj...
2019-09-27 11:33:49
119
原创 Idea之maven管理的web项目打包上传阿里云
1.先说这个项目打包,网上的各种解答快把我坑坏了,踩了不少雷,后来才知道.....根本不需要额外打包,项目运行的时候target目录下就已经生成了...2.数据库配置文件 不会配置数据库可以看我这一篇博客宝塔Linux部署JavaWeb项目下面这个用户名和密码是啥子呢?3.好了,剩下的问题可以参考我的其他博客了!!!晒一下页面访问效果:...
2019-09-25 16:42:37
347
原创 Docker使用阿里云镜像加速
1.登陆阿里云,产品与服务--容器镜像服务按照第二步配置镜像加速器,这一套组合拳下来,速度绝对提升了!!!2.举例以elasticsearch为例:docker pullelasticsearch速度绝对赞!!!!...
2019-09-11 10:13:49
169
原创 docker安装mysql以及mysql使用
docker是什么?开源的应用容器引擎;docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像,docker仓库就是用来保存各种打包好的软件镜像1.下载docker命令:yum install docker 启动docker:systemctl start docker2.安装mysqldocker searc...
2019-09-08 15:18:31
1052
原创 EmbeddedServletContainerCustomizer被替代
SpringBoot 2.0以上就不再使用EmbeddedServletContainerCustomizer,取而代之的是WebServerFactoryCustomizer,通过它同样可以修改Servlet容器的相关配置 @Bean public WebServerFactoryCustomizer<ConfigurableWebServerFactory> myWe...
2019-09-06 14:33:17
767
原创 线程按需交替
编写一个程序,开启 3 个线程,这三个线程的 ID 分别为 A、B、C,每个线程将自己的 ID 在屏幕上打印 20遍,要求输出的结果必须按顺序显示。如:ABCABCABC…… 依次递归分析:为A,B,C三类线程创建三个方法,方法保证每一遍执行的效果为“ABC”;设置一个当前正在执行线程的标记;使用Condition保证各个线程通信执行效果:代码实现class Alternat...
2019-09-01 19:28:35
116
原创 IDEA版SSM框架
1.概述SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容),常作为数据源较简单的web项目的框架。Spring(业务层):核心思想是IOC(控制反转),即不再需要显式地 'new' 一个对象,而是让Spring框架帮你来完成这一切。 SpringMVC(控制层&&...
2019-08-29 10:53:51
322
原创 Java中的动态代理
动态代理的作用是,在不修改源码的基础上对方法增强。在Java中,实现动态代理的方式主要有两种,一种是利用JDK反射机制生成代理(基于接口的动态代理),另外一种是使用cglib代理(基于子类的动态代理),第一种必须要提供接口,而cglib则不需要,可以直接代理类,下面将举例说明两种代理类:1.基于接口的动态代理下面这样一个例子,生成生产厂家的代理对象(经销商)接口类IProducer...
2019-08-14 10:13:03
165
原创 Spring框架中的注解
1.用于创建对象的注解 作用与在配置文件 applicationContext.xml 中编写一个<bean></bean>标签实现的功能一样Component:用于把当前类对象存入spring容器中;value属性:用于指定bean的id。当我们不写时,它的默认值是当前类名,且首字母改小写。 Controller:一般用在表现层 Service:...
2019-08-13 11:12:52
894
原创 SpringMVC之跨服务器上传文件
1.准备工作:首先准备两个tomcat服务器,创建两个Maven管理的JavaWeb项目,分别将这个两个项目部署到Tomcat服务器上,在Tomcat服务器的web.xml中加入以下配置,使接收文件的目标服务器可以支持写入操作导入开发需要的jar包 <!--跨服务器文件上传所需jar包--> <dependency> <groupId...
2019-08-05 15:21:19
266
原创 IntelliJ IDEA安装以及基础设置
1.安装根据步骤一步步来就完事了,IntelliJ IDEA官网Ultimate即为旗舰版,功能全面,插件丰富,但是收费,按年收费。 Community即为社区版,免费试用,功能相对而言不是很丰富。建议使用Ultimate版2.基本配置1.安装完成,进入界面如下,选择Configure-Settings,进行基础设置设置字体大小 Editor-font,Color Sc...
2019-08-02 17:18:16
263
原创 JSON解析和生成(二) ——GSON
GSON是一个可用于将Java对象转换为JSON表示的Java库。它还可以用于将JSON字符串转换为等效的Java对象。提供简单的toJson()和fromJson()方法,将Java对象转换为JSON,反之亦然。GSON源码GSON使用:Maven项目: <dependency> <groupId>com.google.code.gson</...
2019-08-02 11:18:24
174
原创 JSON解析和生成(一)
1.JSON是什么与开发语言无关的,轻量级的数据交换格式。全称是Java Script Object Notation; <K,V>存储模式,是一种标准的文件格式; 它使用文本将数据对象与数组数据类型通信,这种表示法使应用程序很容易解析和生成文件;标准的Json数据表示:数据结构:Object;Array; 基本类型:string,number,true,false,n...
2019-08-02 09:43:07
404
原创 抓包工具Fiddler总结
1.抓包工具Fiddler简介Fiddle可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。也可以用来检测网络安全,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据。Fiddler的官方网站: www.fiddler2.comFiddler官方网站提供了大量的帮助文档和视频教程, 这是学习Fiddler的最好资料。2....
2019-07-27 21:27:58
557
原创 Fiddler__AutoResponder使用
先举一个简单例子:设置一个简单的规则,用来匹配字符串,凡是请求带有“hello”的,返回的是本地的一张图片,设置完成,看浏览器效果浏览器输入:ss.hello;xiaoming.hello; 返回的都是预先设置的本地图片 love.jpg使用AutoResponder改变指定网页的响应效果以百度为例,修改http://www.baidu.com/的响应效果选择...
2019-07-27 21:07:09
279
原创 https详解+密钥交换算法+公钥与私钥
1.https的简单介绍https(超文本传输安全协议),它是一个安全通信通道,简单讲就是http的安全版。它使用安全套接字层(SSL)进行信息交换,在http下加入SSL层,https的安全基础是SSL,因此加密的详细内容就需要SSL,它的目的主要是安全的数据传送。实际上应用了安全套接层(SSL)作为http应用层的子层。 https的作用主要可以分为两种:一种是建立一个信息安全通道,来...
2019-07-26 09:55:57
4853
1
原创 Linux+部署JawaWeb+mysql+phpMyadmin 合体!!
在Linux上部署一个简单的JavaWeb项目,我的前一篇文章已经提到(宝塔Linux部署JavaWeb项目),当涉及到数据库操作时该怎么办呢??相信大家对部署JavaWeb项目的流程已经不陌生,那就直奔主题!!!1.准备一个的JavaWeb项目(最好已经在win上跑出来了),我的项目目录结构如下:代码展示如下:index.jsp:<body> <fo...
2019-07-23 21:10:41
443
原创 域名解析详解
1.什么是域名解析?Internet上的计算机是通过IP地址来定位的,给出一个IP地址,就可以找到Internet上的某台主机。而因为IP地址难于记忆,又发明了域名来代替IP地址,但通过域名并不能直接找到要访问的主机,中间要加一个从域名查找IP地址的过程,这个过程就是域名解析。换句话说,域名解析就是把域名指向网站空间IP,让人们通过注册的域名可以方便的访问到网站的一种服务。域名解析实际上...
2019-07-22 11:36:57
11018
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人