自定义博客皮肤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)
  • 收藏
  • 关注

原创 【并发编程】线程创建和线程状态转换

目录 线程创建方式线程状态转换线程常用方法线程创建方式1.继承Thread类2.实现Runnable接口3.实现callable接口callable  创建有返回值的线程/** * @author zp * @Description: 创建可返回结果的线程 * 继承Runnable接口 或者 实现thread类 实现run方法 线程执行完之后并没有返...

2018-09-28 19:45:40 256 2

原创 volatile

volatile是什么volatile是 java提供的一种轻量级同步机制。volatile变量并不保证原子性,因此volatile并不保证线程安全。volatile关键字有两个作用1.禁止指令重排序2.保证可见性什么是指令重排jvm在编译代码时,或者cpu在执行jvm字节码时,会对现有指令进行重排序。重排序的目的,是在不影响执行结果的情况下,提高程序运行效率。但是这里的不...

2018-09-11 20:47:01 143

原创 Optional

Optional  可选的 。出现的目的 ,为了解决空指针异常 。1.是一个容器对象(相当于一个包装的概念),可能包含也可能不包含一个非空的值。如果一个值存在的话,那么isPresent()方法返回一个true,get()方法返回这个值本身。2.提供一些额外的方法  ,如 orElse() ,isPresent()等 3.是一个基于值得类,所以尽量避免一些hashCode,==等操作 ...

2018-08-21 17:37:46 809

原创 插入排序、选择排序

最近换工作,996,时间真挺少,写点简单的。直接上代码。选择排序/** * @author zp * @Description: 选择排序 * @date 2018/8/17 上午12:21 */public class SelectionSort { //思想:1.从一个数组中找到最小的放到第一个位置2.然后在剩下的元素中找到第二小的元素放到第二个位置 //3...

2018-08-17 00:46:45 135

原创 【JAVA SE】集合框架--HashMap原理深入理解(二)

数组扩容HashMap的容量是有限的。当经过多次元素插入,使得HashMap达到一定饱和度时,Key映射位置发生冲突的几率会逐渐提高。这时候,HashMap需要扩展它的长度,也就是进行Resize。影响发生Resize的因素有两个:1.CapacityHashMap的当前长度。上一期曾经说过,HashMap的长度是2的幂。2.LoadFactorHashMap负载因子,默认值为0.75f。衡量Ha...

2018-07-16 13:24:49 170

原创 【JAVA SE】内部类

内部类可以分为:成员内部类、静态内部类、局部内部类、匿名内部类。内部类可以降低命名空间的慌乱,定义在类的内部。1.静态内部类class StaticInner{ private static int a=4; public static class Inner{ public void test(){ Sy...

2018-07-15 17:07:24 162

原创 Mysql数据库事物级别

事物隔离级别1.未提交读。当其他事物未commit时,当前事物可以读取其他事物已修改的数据2.已提交读。当其他事物未commit时,当前事物不可以读取其他事物修改的数据读取到的是其他事物未开始之前的数据。如果A事物修改了某条数据,而当前事物B在A开始之前和Acommit之后分别读取该条数据结果必然不同。因此成为不可重复读。3.可重复读。mysql默认事物隔离级别。如果A事物修改了某条数据,而当前事...

2018-07-14 18:34:12 345

原创 【JAVA SE】代理模式(二)--JAVA动态代理

动态代理与静态代理的比较和静态代理一样,动态代理同样有三种角色:1.抽象角色(用于被代理类、被代理类共同实现的接口);2.被代理角色(被代理的类,是我们最终要引用的对象);3.代理角色(实现共同接口,代理被代理类完成工作,而且可以做一些额外的工作)。动态代理的抽象角色和被代理角色与静态代理完全相通,而动态代理的代理类是动态实现的。那么如何动态生成代理类呢?我们只需要实现InvovationHand...

2018-07-03 23:20:10 183

原创 【JAVA SE】代理模式(一)--静态代理

代理模式:为一个A对象提供一个代理对象B,以控制对A对象的访问。可以把代理对象B理解为一个中介。代理模式涉及到的校色:抽象校色:被代理对象和代理对象都要实现的接口被代理角色:代理角色代理的真实对象,是我们最终要引用的对象代理角色:代理对象内部有对被代理对象的引用(成员变量),从而可以操纵真是对象,代理对象提供和被代理对象相同的接口,从而在被调用时可以代替被代理对象实现功能;代理对象还可以实现一些被...

2018-07-03 21:45:00 101

原创 【JVM】类加载机制(一)

JAVA类加载分为三步: 加载、连接 、初始化。类加载的最终产物是位于heap(堆)中的类对象,Class对象封装了在方法区内的类的数据结构,提供了访问方法区类数据结构的接口(即反射接口)。class Singleton { private static Singleton singleton=new Singleton(); public static int counter1;...

2018-06-28 22:59:49 236

原创 【并发编程】并发容器ReentrantLock

 ReentrantLock  可重入锁 ,实现了Lock 接口 ,是AQS框架的具体实现 。支持重入,等待超时,响应中断,公平和非公平锁。 ReentrantLock 使用  例1public class ReentrantLockTest { //两个线程同时去跑同一个方法 ,模拟竞争场景 public static void main(Strin...

2018-06-26 00:45:24 534

原创 【JAVA SE】集合框架--HashMap原理深入理解(一)

HashMap结构HashMap底层维护一个数组,数组的每个元素是一个链表结构。声明:下文所有数组指的是HashMap底层的数组 ,链表指数组某个位置上的链表。基于数组和链表的实现原理先看源码:// HashMap声明的内部类。数组上每个位置存储一个 Entry<K,V>,每个 Entry<K,V>单向链接多个 Entry<K,V>  static class ...

2018-06-23 11:04:14 167

原创 【JAVA SE】集合框架--HashSet(一)

HashSet实现了Set接口。在实际开发中HashSet是Set的实现类里使用频率最高的类。既然实现了Set接口,所以HashSet必然是不能放入重复元素的。那么什么是“重复的元素”呢?先看下面的例子public static void main(String[] args) { HashSet set=new HashSet(); String str1=new String("...

2018-06-20 17:24:01 112

原创 【JAVA SE】集合框架--LinkedList

与ArrayList不同的是,LinkedList是基于链表实现的。所以这里要简单的说下数据结构,解释完数据结构LinkedList的源码实现看起来就很容易了。简单来说,一般将数据结构分为两类:线性数据结构和非线性数据结构。线性数据结构有:线性表、栈、队列、串、数组、和文件;非线性结构有树和图。线性表按存储结构可以分为顺序表和链表。顺序表是内存中地址连续存放的数据结构,而链表在内存地址中不是连续的...

2018-06-20 17:23:12 124

原创 【JAVA SE】集合框架--ArrayList

ArrayList继承了 AbstractList 类,实现了collection接口。ArrayList顾名思义 ,数组列表的意思。一.常用api使用1.add(Object obj);add方法用于向list中添加对象,将指定元素追加到list末尾 。接收参数类型为Object类型对象,所以可以向ArrayList中添加任意类型的对象,同一个list中可以放入不同类型的对象。但是list中不能...

2018-06-20 17:21:30 130

空空如也

空空如也

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

TA关注的人

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