- 博客(30)
- 问答 (2)
- 收藏
- 关注
原创 java并发中的原子类
什么是原子类 java并法包中提供很多了几种原子类,如AtomicInteger、AtomicLong、AtomicReference等。原子类可以保证操作的不可分割,要么都操作完,要么都不操作。以AtomicInteger为例讲解源码 主要成员变量:private volatile long value;操作的成员变量,包括对其获得与修改 这个成员变量被volatile修饰,说明原子类的实
2017-10-30 21:33:22 369
原创 Linux服务器上搭建FTP服务
安装 VSFTPD0 使用 yum 安装 vsftpdyum install vsftpd -y启动 VSFTPD0 安装完成后,启动 FTP 服务:service vsftpd start启动后,可以看到系统已经监听了 21 端口: netstat -nltp | grep 21修改配置文件 vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件: vsftp
2017-10-28 20:33:21 424
原创 Thread.join()的使用
用法 如果一个线程t1在另外一个线程t2上调用join方法,那么t1将被挂起,直到t2结束,t1才会执行任务。一个简单例子public class TestJoin implements Runnable { public static void main(String[] args) throws InterruptedException { Thread t = new
2017-10-28 18:53:21 303
原创 java并发中的interrupt
interrupt用来干嘛 终止被阻塞的任务。当抛出异常或该任务调用Thread.interrupted()时,中断状态将被复位。阻塞状态 1)调用sleep()进入睡眠状态 2)调用wait()将线程挂起 3)任务在等待某个输入输出的完成 4)任务试图在某个对象上调用其同步控制方法。但是对象锁不可用。因为另外一个任务已经获得这个锁 3)、4)两种情形将不会被中断简单Demopublic
2017-10-28 14:57:40 356
原创 String和StringBuffer
1:String对象的重载”+”操作小例子:public class TestString { public static void main(String[] args){ String a="a"; String s="a"+"b"+"c"+1; System.out.println("s: "+s); }}查看字节
2017-10-28 12:22:12 237
原创 java中接口和抽象类的区别
抽象类:1.用abstract表示2.里面有一个或多个抽象方法,在方法前加abstract,抽象类中也可以没有抽象方法3.抽象类用extends继承,并且必须重写抽象方法接口1.用implement表示2.接口是极度抽象的类,所有方法都是抽象的,都需要进行重写接口的作用:解决java中的单继承问题,一个类可以实现多个接口,但只能有一个父类共同点:都不能被实例化
2017-10-28 12:16:37 325
原创 深入理解HashSet
HashSet简介 HashSet实现了Set接口,Set接口是一种不包括重复元素的Collection,并且是无序的,为了提高访问速度。底层实现是HashMap源码分析 1)主要成员变量: private transient HashMap< E,Object > map; private static final Object PRESENT = new Obje
2017-10-28 10:31:21 270
原创 jdk1.8HashMap源码实现分析
**HashMap介绍 HashMap实现了Map接口,以key-value的形式存储。所以当需要以键值对存储的时候会选用HashMapHashMap源码分析 1)构造函数: HashMap共有三个构造函数public HashMap(int initialCapacity, float loadFactor) { if (initialCapacity < 0)
2017-10-27 09:06:05 476
原创 Java中System.arraycopy()和Arrays.copyOf()的区别
**System.arraycopy()**这是一个由java标准库提供的方法。用它进行复制数组比用for循环要快的多。arraycopy()需要的参数有:源数组,从源数组中的什么位置开始复制的偏移量,目标数组,从目标数组中的什么位置开始复制的偏移量,需要复制的元素个数
2017-10-25 22:28:54 812
原创 深入理解ArrayList
1.ArrayList介绍 List有序地。ArrayList是实现了List的接口的动态数组。底层的是实现是数组,插入和移除元素的效率较慢 2.源码分析 1)成员变量 private static final int DEFAULT_CAPACITY = 10; private static final Object[] EMPTY_ELEMENTDATA = {}; private s
2017-10-25 22:00:38 265
原创 Linux切换用户
Linux切换用户普通用户缺少一些权限,有些命令不能进行操作,这时候我们就需要拿到root权限才可以,拿到root权限有两种方式*- 方式一:使用su - 或者su 此时就会提示你输入密码,输入密码成功以后就能以root权限操作,变成root以后会从$变成#su- 和su 虽然都能切换到root权限,但两者还是有区别的使用su切换到root身份,读取的变量设置方式为non-login shell的方式,
2017-10-22 14:58:45 598
原创 SpringCloud API网关服务(Spring Cloud Zuul)
- API网关用来做什么 API网关有点像微服务架构体系中的门面,所有外部客户端访问都需要经过它来进行跳读和过滤。API网关可以实现请求路由、负载平衡、校验过滤等功能,还能聚合服务治理框架、熔断机制、服务等- 路由规则与服务实例的维护 Spring Cloud Zuul通过与Spring Cloud Eureka进行整合,将自身注册为Eureka服务治理下的应用,同时从Eureka中获得所有其他
2017-10-16 19:05:54 647
原创 SpringCloud使用Feign进行服务调用
Spring Cloud使用Feign进行服务调用- Spring Cloud Feign简介 Spring Cloud Feign也是一个基础工具类,它整合了Spring Cloud Ribbon和Spring Cloud Hystrix,除了提供这两者的强大功能以外,它还提供了一种声明式的Web服务客户端定义方式。使用它可以进行服务的消费,但是它的客户端负载平衡仍是通过Ribbon实现的
2017-10-16 13:28:59 16760 4
原创 SpringCloud断路器(Hystrix)
- SpringCloud断路器出现的原因 在微服务架构中,存在着很多服务单元,若一个单元出现故障,调用这个服务就会出现阻塞,由于存在依赖关系,又会引起调用该服务的线程阻塞,从而导致故障的蔓延-断路器的作用 当某个服务单元发生故障之后,通过断路器的故障监控,向调用方返回一个错误响应,而不是长时间的等待。这样就不会使得线程因为调用故障服务被长时间占用不是放,避免了故障在分布式系统中的蔓延- 实现断
2017-10-15 19:41:28 299
原创 SpringCloud服务的注册与发现(Eureka)
SpringCloud服务管理- 服务治理的概念 服务治理是微服务架构中最为核心和基础的模块,主要用来实现各个微服务实列的自动化注册与发现。微服务实例可以是一个简单的SpringBoot程序- 如何实现服务注册与服务发现 在程序中服务提供方需要显示的将服务注册到注册中心去。在注册登记中心登记在自己提供的服务,主机。端口号,版本号,通信协议等等。注册中心通过服务名进行管理
2017-10-14 22:12:48 610
原创 阿里云服务器上部署war包
阿里云服务器上部署war包1 :购买阿里云服务器,学生还能优惠,因为觉得自己对Linux不是特别熟,又怕自己搞不定它失去学习兴趣,所以我选择了windows版本的,开始部署以后就贼后悔2 :服务器就相当于另外的一台电脑,想要部署war包其实就和在自己的电脑上部署一样,但是它缺少很多应用,然后就是一言不合下了很多应用,mysql,navicat,jdk,tomcat,再是对它们的环境进行一个配置3:部署war包
2017-10-12 23:39:55 2513
原创 SpringBoot整合MyBatis
SpringBoot整合MyBatis- 数据库配置文件 SpringBoot将数据库的配置写在application.properties中,启动应用程序时会自动加载spring.datasource.*相关配置,数据源就会自动注入到sqlSessionFactory中,sqlSessionFactory会自动注入到Mapper中
2017-10-07 18:14:04 269
原创 druid查看统计的监控信息
直接开门见山如何配置 在web.xml中加入 <servlet> <servlet-name>DruidStatView</servlet-name> <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class> <init-param> <!-- 允许清空统计数据
2017-10-06 22:44:13 2884
原创 druid连接池的简单使用
druid连接池- druid连接池介绍 为监控而生的数据库连接池,它是阿里巴巴开源平台上的一个项目。Druid是Java语言中最好的数据库连接池,Druid能够提供强大的监控和扩展功能(黄婆卖瓜,自卖自夸哈哈)。它可以替换DBCP和C3P0连接池。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。它与其他数据库连接池的不同是因为 1.其可以监控数据库访问性能,Druid内置提供了一个功能强大的St
2017-10-06 21:11:05 2413
原创 SpringBoot入门学习(含代码)
SpringBoot入门学习(含代码)- SpringBoot是什么: 是什么并没有具体概念,自我理解像是一种工具,帮助开发者更容易的创建基于Spring的应用程序和服务,简化了开发过程。
2017-10-05 13:42:17 455
原创 java并发中的ReentrantReadWriteLock
java并发中的ReentrantReadWriteLock- ReadWriteLock: ReadWriteLock是一个接口,在它里面只定义了两个方法: public interface ReadWriteLock { Lock readLock(); Lock writeLock(); }ReentrantReadWriteLock是ReadWrite的唯一的实现
2017-10-03 21:38:09 276
原创 java并发中的ReentrantLock
java并发中的ReentrantLock什么是ReentrantLock: 可重入的互斥锁,基本等同于synchronized的使用
2017-10-03 17:58:43 332
原创 java并发中的BlockingQueue
java并发中的BlockingQueue 在生产者-消费者模型中,它会对当前线程产生阻塞,如果一个线程从一个空的阻塞队列中取元素,此时线程会被阻塞直到阻塞队列中有了元素。当队列中有元素后,被阻塞的线程会自动被唤醒(不需要我们编写代码去唤醒)。这样提供了极大的方便性。而非阻塞队列则需要我们实现额外的同步策略,调用wait()和notify()方法。
2017-10-03 13:17:29 243
原创 java.lang.IllegalMonitorStateException
为什么会报java.lang.IllegalMonitorStateException错误 违法的监控状态异常。当某个线程试图等待一个自己并不拥有的对象(O)的监控器或者通知其他线程等待该对象(O)的监控器时,抛出该异常。
2017-10-02 13:24:01 716
原创 java并发中的wait(),notify(),notifyAll()方法和Condition接口
java并发中的wait(),notify(),notifyAll()方法和Condition接口
2017-10-02 13:10:23 448
空空如也
InnoDB存储引擎如何分索引和数据文件
2017-11-18
Druid数据库连接池使用一段时间进行报错
2017-10-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人