自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【十六】redis

什么是redis?Redis 是一个基于内存的高性能key-value数据库。一、启动方式:①前端启动 ./redis-server②后端启动 ./redis-server redis.conf关闭:./redis-cli shutdownredis自带客户端: ./redis-cli -h 127.0.0.1 -p 6379(默认不需要密码认证,如果需要认证,那么接...

2019-02-28 18:31:24 204

原创 【十五】Spring

目录一、IOC与DI二、AOPAspectJ的AOP与Spring的区别三、事务的传播行为四、Spring 声明式事务和编程式事务五、@Autowire和@Resource的区别一、IOC与DIIOC和DI是一个概念,依赖注入,即当某个角色需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在spring中,创建被调用者的工作不再...

2019-02-28 18:24:11 158

原创 【十四】struts2与spring mvc的工作原理及区别

目录一、Struts2的工作原理二、Spring MVC的工作原理1)整体流程2)核心流程三、Struts2与Spring的区别一、Struts2的工作原理1、客户端(HttpServletRequest)发送请求2、请求经过过滤器((可选过滤器)-->StrutsPrepareAndExecuteFilter(核心过滤器,struts1的核心过滤器是Fi...

2019-02-28 18:10:47 311

原创 【十三】Java SE中的一些常见问题

目录一、异常处理二、comparable与comparator1、实现Comparable:2、实现Comparator接口:三、Java编译时与运行时四、hashCode()与equals()方法五、finalize方法六、面向对象、面向接口编程七、String、StringBuffer、StringBuilder一、异常处理Error是程序无...

2019-02-28 17:57:45 409

原创 【十二】NIO

目录一、NIO与IO的区别二、NIO的缓冲区1、缓冲区(Buffer):2、缓冲区存取数据的两个核心方法:3、缓冲区中的四个核心属性:4、直接缓冲区与非直接缓冲区:5、常用的一些方法:三、NIO的通道四、NIO的阻塞式与非阻塞式1、阻塞式:1)例1:2)例2:2、非阻塞式:五、总结一、NIO与IO的区别NIO面向缓冲区的、基于通道(...

2019-02-28 11:28:26 226

原创 【十一】常见容器

目录一、hashMap,hashTable,ConcurrentHashMap,hashSet1、HashTable2、HashMap3、ConcurrentHashMap4、hashSet二、TreeMap与TreeSet比较三、ArrayList LinkedList Vector的区别四、使用迭代器遍历ArrayList的时候修改List报Concurren...

2019-02-28 11:09:26 424

原创 【十】与线程相关的一些其他问题

一、创建执行线程的三种方法①继承Thread类并且重写run()方法②实现Runnable接口并且重写run()方法③实现Callable接口并且重写run()方法执行 Callable 方式,需要 FutureTask 实现类的支持,用于接收运算结果。FutureTask 是Future 接口的实现类eg:public class TestCallable {...

2019-02-28 10:53:19 158

原创 【九】线程副本ThreadLocal,及WeakHashMap

实现多线程安全的三种方法,1. 使用锁机制 synchronize、lock方式:为资源加锁,可参考我前面文章。2. 使用 java.util.concurrent 下面的类库:有JDK提供的线程安全的集合类:AtomicInteger、AtomicStampedReference、ConcurrentHashMap、CopyOnWriteArrayList、ReentrantLock,F...

2019-02-28 10:41:16 769

原创 【八】java.util.concurrent包下的一些类

一、同步锁lock、及其一些常用实现类同步锁lock,注意(与synchronized不同点):1)使用lock无论如何都要手动释放锁(否则会发生死锁),所以将其放在finally块中,而synchronized离开块后会自动释放锁,一般不会发生死锁2)Lock可以让等待锁的线程响应中断,在持有锁的线程长时间不释放锁时,可以中断等待锁的线程去干别的事(通过lock.lockInterr...

2019-02-28 10:25:50 284

原创 【七】线程及线程池

一、线程的生命周期:*start()开启一个新的线程,只能调用一次,run()方法不会开启一个新的线程,只是简单的调用方法。* currentThread()获取当前的线程* getName()获取线程的名称* setName()设置线程的名称* yield()调用此方法的线程释放当前的CPU执行权,注意:但是当前线程可能还会抢占到CPU资源* join()在A线...

2019-02-28 10:05:58 155

原创 【六】可见性及原子性

一、可见性问题:前一篇文章大概解释了JMM,此时若有两个线程A,B,A读取了变量x的值,同时线程B对主内存中的变量x进行修改,B需要先将其读入自己的工作内存,在自己的工作内存中对变量x进行修改之后,再写入到主内存中,若此时cpu一直处于占用状态,那么修改的x变量对于A是不可见的(每个线程有自己的工作内存),此时就出现了可见性问题。可以使用volatile关键字解决。volatile 关键字...

2019-02-27 18:16:51 197

原创 【五】Java内存模型(JMM)

Java Memory Model (JAVA 内存模型)描述线程之间如何通过内存(memory)来进行交互。 具体说来, JVM中存在一个主存区(Main Memory或Java Heap Memory),对于所有线程进行共享,而每个线程又有自己的工作内存(Working Memory),工作内存中保存的是主存中某些变量的拷贝,线程对所有变量的操作并非发生在主存区,而是发生在工作内存中,而线程之...

2019-02-27 17:21:13 203

原创 【三】JVM垃圾回收机制

目录一、触发对象回收的条件二、垃圾对象的判定:1、引用计数器算法2、根搜索算法三、引用类型1、强引用:2、软引用:3、弱引用(weak reference):4、虚引用(PhantomReference):四、垃圾回收算法:1、标记—清除算法:2、复制算法3、标记/整理算法:4、以上三种算法比较5、分代收集算法(大部分的回收都是针对...

2019-02-27 17:05:18 268

原创 【二】ClassLoader及双亲委托机制

1、Java语言系统自带有三个类加载器:- Bootstrap ClassLoader 最顶层的加载类,主要加载核心类库,%JRE_HOME%\lib下的rt.jar、resources.jar、charsets.jar和class等。另外需要注意的是可以通过启动jvm时指定-Xbootclasspath和路径来改变Bootstrap ClassLoader的加载目录。比如java -Xboo...

2019-02-27 16:53:51 226

原创 【一】类的生命周期

java类的生命周期就是指一个class文件(java源文件编译后的文件)从加载到卸载的全过程。目录1.加载2.连接(1)验证:(2)准备:(3)解析:3.初始化4.使用(1)对象实例化:(2)垃圾收集:(3)对象的终结:5.类卸载1.加载我们编写一个java的源文件,经过编译后生成一个后缀名为.class的文件,这结合四字节...

2019-02-27 16:47:18 722 2

空空如也

空空如也

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

TA关注的人

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