java多线程基础

java多线程基础生命周期新建状态(NEW)当程序使用new关键字创建了一个线程之后,该线程就处于新建状态,此时仅由jvm为其分配内存,并初始化其成员变量的值就绪状态(RUNNABLE)当线程对象调用了start()方法之后,该线程处于就绪状态。java虚拟机会为其创建方法调用栈和程序计数器,等待调     阅读全文
丁起男's avatar
丁起男 10月 23,2020

java-juc

java-juc线程的创建继承Thread类Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例。启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法里有一个native方法,它将启动一个新线程,并执行run()方法。实现Runnable接口     阅读全文
丁起男's avatar
丁起男 09月 29,2020

java集合

java集合集合类存放于java.util包种,主要有:set(集)、list(列表)、map(映射)Listjava的List是非常常用的数据类型。List是有序的Collection。一共有三个实现类:ArrayList、Vector、LinkedListArrayList(数组)ArrayLi     阅读全文
丁起男's avatar
丁起男 09月 22,2020

java复制

java复制直接赋值赋值直接赋值,在java中,A a1 = a2,我们需要理解的是这实际上复制的是引用,也就是说a1和a2指向的是同一个对象。因此,当a1变化的时候,a2里面的成员变量也会跟着变化浅复制复制引用但不复制引用的对象创建一个新对象,然后将当前对象的非静态字段复制到该新对象,如果字段是基     阅读全文
丁起男's avatar
丁起男 09月 21,2020

java泛型

java泛型泛型提供了编译时类型安全检查机制,该机制可以让程序员在编译时检测到非法类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。比如我们要写一个排序方法,能够对整形数组,字符串数组甚至其它任何类型的数组进行排序,我们就可以使用java泛型泛型方法泛型方法在调用时可以接收不同     阅读全文
丁起男's avatar
丁起男 09月 21,2020

java内部类

java内部类java类中不仅可以定义变量和方法,还可以定义类,这样定义在类内部的类就被称为内部类。根据定义的方式不同,内部类分为静态内部类、成员内部类、局部内部类、匿名内部类静态内部类定义在类内部的静态类,就是静态内部类静态内部类可以访问外部类的所有静态变量和方法,即使是private的也可以静态     阅读全文
丁起男's avatar
丁起男 09月 21,2020

spring mvc 九大组件

spring mvc 九大组件组件作用MultipartResolver文件上传解析器,主要用来处理文件上传的请求LocaleResolver区域解析器,用于支持国际化ThemeResolver主题解析器,用于支持不同的主题HandlerMappinghandler映射器,根据请求携带的url信息查     阅读全文
丁起男's avatar
丁起男 09月 15,2020

栈帧

栈帧一个栈中可用有多个栈帧,栈帧随着方法的调用而创建,随着方法的结束而消亡栈又名堆栈,它是一种操作受限的线性表。只允许在一端进行插入和删除操作,这一端被称为栈顶,另一端称为栈底,特性:先进后出栈是线程私有的,生命周期和线程相同方法参数列表中的变量,方法体中的基本数据类型的变量和引用数据类型的引用都存     阅读全文
丁起男's avatar
丁起男 09月 14,2020

jvm内存模型

jvm内存模型堆定义堆也叫堆内存(Heap)是垃圾收集的主要区域,所以也叫GC堆作用存放java对象实例特点jvm内存中最大线程共享抛出异常OutOfMemoryError异常:堆中没有足够的内存空间完成对象实例的分配,且堆无法扩展虚拟机栈定义虚拟机栈也叫栈内存(Stack)方法执行的内存区域作用存     阅读全文
丁起男's avatar
丁起男 09月 11,2020

NIO

NIObio的面向流的io,它建立的通道都是单向的,所以输入和输出流的通道不相同,必须建立2个通道,通道内都是传输的字节数组nio中,不再是面向流的io了,而是面向缓冲区,它会建立一个通道(Channel),而通道上会有一个缓冲区(Buffer)用于存储真正的数据通道只是作为运输数据的一个连接资源,     阅读全文
丁起男's avatar
丁起男 09月 08,2020