- 博客(12)
- 资源 (2)
- 收藏
- 关注
原创 Java线程状态转换
Java语言定义了6种线程状态,在任意一个时间点,一个线程有且仅能有其中的一种状态,这6种状态分别如下:新建(New):创建后尚未启动的线程处于这种状态;运行(Runnable):Runnable包括了操作系统线程状态中的Running和Ready,也就是处于此状态的线程有可能正在运行,或者可能正在等待着CPU为它分配时间。无限期等待(Waiting):处于这种状态的线程不会被
2017-11-06 12:08:58 335
原创 Java虚拟机运行时内存配置
首先,Java的运行时内存包括:虚拟机栈、本地方法栈、堆、方法区和直接内存。-Xms:表示设置堆的最小容量;-Xmx:表示设置堆的最大容量。由于在HotSpot虚拟机中并不区分虚拟机栈和本地方法栈,因此,对于HotSpot来说,虽然-Xoss参数(设置本地方法栈大小)存在,但实际上是无效的,栈容量只由-Xss参数设定。可以通过-XX:PermSize和-XX:MaxPermSize限制方法
2017-10-31 15:19:53 591
原创 java多线程实现方式--Callable接口
java实现多线程的方式有:继承Thread类;实现Runnable接口;实现Callable接口;实现Callable接口,需要FutureTask类的支持,用于接收运算的结果,FutureTask类实现了Future接口和Runnable接口;Callable的任务执行后可以有返回值,并且可以抛出异常;import java.util.concurrent.Callable;import j
2017-09-29 21:44:33 500
原创 Java中调用对象方法的执行过程
编译器查看对象的声明类型和方法名。假设调用x.f(param),且隐式参数x声明为C类的对象。需要注意的是:有可能存在多个名字为f,但是参数类型不一样的方法。例如,可能存在f(int)和f(String)。编译器将会一一列举所有类C和其超类中访问属性为public且名为f的方法(超类的私有方法不可访问)。接下来,编译器将查看调用方法时提供的参数类型。如果在所有名为f的方法中存在一个与提供的参数类型
2017-09-25 20:09:08 6161 1
原创 java文件复制
要想实现文件的复制,可以通过java中的字节流:InputStream和OutputStream。import java.io.File;import java.io.InputStream;import java.io.FileInputStream;import java.io.OutputStream;import java.io.FileOutputStream;publi
2017-09-14 20:00:50 277
原创 JVM中类加载的全过程
JVM中类加载的全过程主要包括以下五个步骤:加载、验证、准备、解析、初始化;加载过程主要是将类的.class文件读入内存中,通常是创建一个字节数组来读入.class文件,然后产生与所加载类对应的Class对象。加载完成后,Class对象还不完整,所以此时的类还不能用。当类被加载后就进入连接阶段,这一阶段包括验证、准备(为静态变量分配内存并设置默认的初始值)和解析(将符号引用替换为直接引用)。最后对
2017-09-13 15:56:33 345
原创 Java中的栈、堆和方法区
栈是用来保存局部变量、对象的引用和方法调用的现场;堆是用来保存对象的实例,它也是垃圾收集器管理的主要区域,由于现在的垃圾收集器都是采用分代收集算法,所以堆空间还分为新生代和老年代,其中新生代又进一步分为Eden、Survivor,而Survivor分为from Survivor和to Survivor,老年代为Tenured;方法区主要用来存放类的信息、常量、静态变量。堆和方法区都是线程共享的,程
2017-09-12 20:28:55 311
原创 Java多线程的笔记
Java多线程笔记一、中断线程1、void interrupt()向线程发送中断请求。线程的中断状态将被设置为true。如果目前该线程被一个sleep调用阻塞,那么InterruptedException异常被抛出。2、static boolean interrupted()测试当前线程(即正在执行这一条命令的线程)是否被中断。注意,这是一个静态方法。这一调用会产生副作
2017-09-11 11:54:56 264
转载 关于ThreadLocal类的理解
1、首先在每个线程内部有一个ThreadLocal.ThreadLocalMap类型的成员变量threadLocals,这个threadLocals就是用来存储实际变量副本的,键值为当前ThreadLocal变量,value为变量副本。2、初始时,在Thread里面,threadLocals为空,当通过threadLocals变量调用get()方法或者set()方法,就会对Thre
2017-09-11 10:44:27 432
原创 Object类中各个方法的作用
1、取得对象的信息:public String toString()2、对象的比较:public boolean equals(Object obj)3、取得对象的编码:public int hashCode()4、线程等待:public void wait() throws InterruptedException5、唤醒第一个对待线程:public void notify()
2017-09-10 20:45:46 903
原创 Java类集框架--Collection接口
一、单值保存的最大父接口:Collection1、允许重复的子接口:List,拥有两个子类:ArrayList和VectorArrayList是JDK1.2推出,采用异步处理方式,性能较高,非线程安全,输出:Iterator,foreach,ListIteratorVector是JDK1.0推出,采用同步处理方式,性能相对较低,线程安全,输出:Iterator,foreach,List
2017-09-10 20:39:36 292
原创 LeetCode--反转链表
public class ListNode { public int value; public ListNode next; public ListNode(int value) { this.value = value; } } public ListNode reverse(ListNode head) { ListNode previous = null;
2017-09-09 11:20:53 271
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人