自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 testa

testa。

2024-08-16 14:56:19 324

原创 Java单例

单例是一种设计模式,主要有两种:懒汉式:单例实例在第一次被使用时创建。即按需加载,保证资源的最大利用。饿汉式:单例实例在类装载时构建。 懒汉式实现:1,Public Class Single1{    private static Single1 instance;    public static Single1 getInstance(){        i...

2018-10-10 20:37:06 111

原创 线程安全随记

现下定义:首先说一下什么是线程安全,以方法的线程安全为例,当有多个线程访问这个方法时,无论这些线程以怎样调用方式或者执行顺序去执行这个方法,这个方法的执行结果都是我们设想的正确结果,就称该方法为线程安全的。 再说方法:保证线程安全的方法有:1,synchronized:当一个synchronized锁住了一个对象后,其他线程如果想要获取所对象,就必须要获取到锁的线程执行完释...

2018-09-26 16:23:01 92

原创 volatile关键字

java内存模型里面所有的变量都存储在主存当中,每个线程有自己的工作内存线程对变量的操作都在工作内存中执行。每个线程不能访问其他线程的工作内存,这就导致了可见性的问题。但是如果该变量被volatile修饰,它会将修改的值强制写入主存,会导致其他线程工作内存中的值无效,这样就保证了同步。...

2018-09-26 15:25:35 111

原创 Locks和synchronized

Locks的优势主要有两个:1,lock.tryLock()可以判断是否获取到锁,也可以设置等待的时间。防止死等。2,locks包下的ReadWriteLock接口将读和写分两个分两个锁分配给线程,所以提高了读的效率。 ...

2018-09-25 16:12:35 112

原创 jvm内存模型

堆:存放对象实例和数组方法区:它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。虚拟机栈:描述java方法执行的内存模型,方法执行的时候会在jvm栈里面创建一个栈帧,存放变量表,操作栈,方法出口。本地方法栈:用来执行本地方法。程序计数器:用来获取下一条指令。...

2018-09-25 15:22:13 112

原创 线程生命周期

1.线程的生命周期:新建(new),就绪(Runnable),运行(Running),阻塞(Blocked),死亡(Dead) 首先通过new关键字创建一个Thread对象,这个时候线程处于新建状态。当线程对象调用了start方法时启动该线程,才真正的在jvm中创建了一个线程,jvm为它创建方法调用栈和程序计数器。一旦runnable的线程获取到了cpu的时间片,就会进入到running状...

2018-09-25 14:41:53 148

原创 jvm 类加载机制

题记:WriteOnce,Run Anywhere 加载:1,通过类的全限定名获取此类的二进制字节流。2,将这个字节流代表的静态存储结构转化为方法区的运行时数据结构。3,在内存中生成一个代表这个类的Class对象作为方法区中这个类的各种数据的访问入口。 连接:a,验证:保证Class文件中的字节流符合jvm的要求b,准备:在方法区中为类变量设置内存并设置初始值。...

2018-09-24 22:35:05 106

原创 spring IOC

目录概念高层视图配置元数据注入方式(手动注入,自动注入)作用域bean的生命周期 概念:将对对象的创建,装配和销毁交给spring容器处理。高层视图:将bean的配置信息和依赖关系通过通过xml或者java注解经行配置,spirng启动时读取配置信息,在容器中生成一份bean配置注册表,然后根据这个注册表实例化bean并且装配好bean之间的依赖关系,最后将Be...

2018-09-24 21:54:29 85

原创 spring AOP

aop的概念:将程序中相对独立的非业务性功能比如日志,方法执行时长从应用中抽取出来,通过spring的配置文件将实现这些功能代码织入程序执行的某些特定的位置。 所谓切面,就是由切点和增强组合而成的,切点是程序执行的某些特定的位置,spring中只支持到方法的切点,所以只能将增强织入到方法的调用前,调用后,调用的前后和方法抛出异常 的时候。 一个类被aop织入了增强之后,就会产生一个...

2018-09-23 23:12:25 101

原创 hashmap hashtable concurrentmap 比较

hashmap和hashtable的简单区别:1,hashmap是非线程安全的,hashtable是线程安全的。它内部的方法大多被synchronized修饰。2,hashmap的键和值都允许null存在,但是hashtable的键和值都不能是空值。3,由于线程安全,哈希效率的问题,hashmap效率比hashtable要高。 hashmap简述:他的数据结构就是哈希表:它...

2018-09-22 23:57:12 121

翻译 通过Thread.Sleep暂停执行

Thread.sleep导致当前线程在指定期间暂停执行。这是一种有效的方法,可以让应用程序的其他线程或其他可能运行在计算机系统上的应用程序可以得到处理器的时间片。sleep方法也可以用来操作程序的延时执行(如下面的示例所示)并等待优先级更高的任务。我们有两个sleep的重载版本: 一种规定睡眠时间到毫秒,一种规定睡眠时间到纳秒。然而,这些睡眠时间并不能保证精确。因为它们受到底层操作系统提供的设施的...

2018-04-28 10:59:28 2092

翻译 定义并启动一个线程

创建线程实例的应用程序必须提供在该线程中运行的代码。有两种方法可以做到:1,提供一个Runnable对象。runnable接口只定义了一个run方法用来包含在线程中执行的方法。Runnable对象被传递给Thread的构造函数,如下HelloRunnable示例:public class HelloRunnable implements Runnable { public void ru...

2018-04-27 11:17:57 548 2

空空如也

空空如也

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

TA关注的人

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