java
AM4:00
这个作者很懒,什么都没留下…
展开
-
Java笔记:SpringAOP 前置通知、后置通知等通知
@AspectJ支持的5种通知:—@Before:前置通知在方法执行前执行//明该方法为一个前置通知:在目标方法开始之前执行—@After:后置通知,在方法执行后执行//后置通知,就是在目标方法执行之后(无论是否发生异常)执行的通知//后置通知中不能访问目标方法的返回结果—@AfterReturning:返回通知,在方法返回结果之后执行 //返回通知,在方法正常结束之后执行的...原创 2019-08-23 23:14:39 · 640 阅读 · 0 评论 -
Spring Cloud 笔记一
Spring Cloud 核心组件,在微服务架构中,分别扮演的角色:Eureka:各个服务启动时,Eureka Client 都会将服务注册到 Eureka Server,并且 Eureka Client 还可以反过来从 Eureka Server 拉取注册表,从而知道其他服务在哪里。Ribbon:服务间发起请求的时候,基于 Ribbon 做负载均衡,从一个服务的多台机器中选择一台。Feig...原创 2019-09-02 10:41:57 · 98 阅读 · 0 评论 -
Java多线程学习:线程类的一些常用方法
线程类的一些常用方法:sleep(): 强迫一个线程睡眠N毫秒。isAlive(): 判断一个线程是否存活。join(): 等待线程终止。activeCount(): 程序中活跃的线程数。enumerate(): 枚举程序中的线程。currentThread(): 得到当前线程。isDaemon(): 一个线程是否为守护线程。setDaemon(): 设置一个线程为守护线程。(用户...原创 2019-08-22 17:03:13 · 88 阅读 · 0 评论 -
Java多线程学习:wait和sleep区别
共同点:他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数,并返回。wait()和sleep()都可以通过interrupt()方法 打断线程的暂停状态 ,从而使线程立刻抛出InterruptedException。如果线程A希望立即结束线程B,则可以对线程B对应的Thread实例调用interrupt方法。如果此刻线程B正在wait/sleep /join,则线程B会立...原创 2019-08-22 17:01:32 · 211 阅读 · 0 评论 -
Java多线程学习:同步和异步的区别和联系
所谓同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到返回的值或消息后才往下执行其它的命令。异步,执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接收到返回 值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程。同步在一定程度上可以看做是单线程,这个线程请求一个方法后就待这个方法给他回复,否...原创 2019-08-22 16:58:57 · 269 阅读 · 0 评论 -
Java:类的加载机制
jvm 一行代码是怎么运行的:首先,java代码会被编译成字节码,字节码就是java虚拟机定义的一种编码格式,需要java虚拟机才能够解析,java虚拟机需要将字节码转换成机器码才能在cpu上执行。jvm如何加载一个类:第一步:加载,双亲委派:启动类加载器(jre/lib),系统扩展类加载器(ext/lib),应用类加载器(classpath),前者为c++编写,所以系统加载器的parent...原创 2019-08-22 16:55:31 · 230 阅读 · 0 评论 -
Java:indexOf取第二个某字符(串)出现的位置
str = str.subString(str.indexOf("/",str.indexOf("/")+1), str.length()-1);//str.indexOf("/")+1,是获得第一个"/“索引之后的索引,相当于”/aaa/bbb/"中的第一个a所在的索引1...原创 2019-08-22 09:56:19 · 7193 阅读 · 0 评论 -
Java :mkdir 与mkdirs
Java File类 的mkdir方法的实现中,不能同时创建多层目录,如果是多层,可以调mkdirs!原创 2019-08-22 09:53:49 · 146 阅读 · 0 评论 -
input输入框自动补全与联想 (jq autocomplete)
1 下载 jq autocomplete链接: link.2 如何使用//输入框联想$('#query').autocomplete({serviceUrl: "ajax接口地址",type:'POST',deferRequestBy:500});接口返回的json数据格式为:{"query": "word", //要查询的值"suggestions": ["valu...原创 2019-08-22 09:51:09 · 2999 阅读 · 0 评论 -
RabbitMQ的四种交换器类型
最新版本的RabbitMQ有四种交换机类型,分别是Direct exchange、Fanout exchange、Topic exchange、Headers exchange。1.Direct exchange(默认模式) : 它会把消息路由到那些BindingKey和RoutingKey完全匹配的队列中。2.Fanout exchange(广播模式) : fanout 它会把所有发送到该交...原创 2019-08-22 09:42:51 · 431 阅读 · 0 评论 -
RabbitMQ的消息持久化处理以及ack确认机制
管理界面中:队列中设置 autoDelete :ture 的意思是当所有消费者客户端断开连接后,是否删除队列 (交换器也是同个意思)ready:显示当前有多少消息没有被消费ack机制:如果忘记了ack反馈,而处理消息出现异常,那么后果很严重,会出现内存泄露。解决方法: 1 try catch 捕获异常进行处理2 配置中添加开启重试次数 :springboot.rabbitmq.list...原创 2019-08-22 09:40:02 · 393 阅读 · 0 评论 -
Java五种线程池
1 newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。这种类型的线程池特点是:工作线程的创建数量几乎没有限制(其实也有限制的,数目为Interger. MAX_VALUE), 这样可灵活的往线程池中添加线程。如果长时间没有往线程池中提交任务,即如果工作线程空闲了指定的时间(默认为1分钟),则该工作线程将自动终...原创 2019-08-22 09:37:34 · 156 阅读 · 0 评论 -
Java多线程Synchronized静态方法和非静态方法区别
1.普通方法和普通代码块锁住的是当前实例对象,同个对象调用是同步效果2.静态方法和以synchronized(class){}的方式锁代码块,锁住的是当前类的class对象,在同个类内,所属线程独占类锁,其他线程阻塞。...原创 2019-08-20 17:29:58 · 455 阅读 · 0 评论 -
理解Java字符串常量池
理解Java字符串常量池(1) 字面量创建字符串(String a=“a”)会先在字符串池中找,看是否有相等的对象,没有的话就在堆中创建,把地址驻留在字符串池;有的话则直接用池中的引用,避免重复创建对象。(2) new关键字创建时,前面的操作和字面量创建一样,只不过最后在运行时会创建一个新对象,变量所引用的都是这个新对象的地址。...原创 2019-08-20 17:26:03 · 80 阅读 · 0 评论 -
Java可重入锁和不可重入锁概念和区别学习笔记
可重入锁就是一个类的A、B两个方法,A、B都有获得统一把锁,当A方法调用时,获得锁,在A方法的锁还没有被释放时,调用B方法时,B方法也获得该锁。这种情景,可以是不同的线程分别调用这个两个方法。也可是同一个线程,A方法中调用B方法,这个线程调用A方法。synchronized和java.util.concurrent.locks.ReentrantLock是可重入锁不可重入锁就是一个类的A、B...原创 2019-09-02 16:28:46 · 535 阅读 · 0 评论