本人小白,有不足或错误之处欢迎各位大佬指正,谢谢。
一、对于Jvm的理解
1、jvm初步理解
Java重要的特点时平台无关性,一次编译,到处运行。这个实现的关键时Java虚拟机,也就是jvm。Java程序经过一次编译后,将Java代码转化为字节码文件(.class文件),然后在不同的操作系统上依靠不同的jvm进行解释,最后转化为不同平台的机器码,最终得到执行。这样一来,要在不同平台上运行Java文件,只需安装不同平台的jvm即可。
2、jvm基本内存空间:方法区、本地方法栈、Java堆、Java栈。
方法区:各个线程共享的,存放类的代码信息,静态变量,静态方法,常量池。
Java堆:线程共享,存放类的实例(对象),包括对象的属性,方法。
Java栈:线程私有,每执行一个方法向Java栈中压入一个元素,这个元素就叫“栈帧”,栈帧中存放了方法的局部变量。
二、并发
1、创建线程:继承Thread类 实现Runnable接口
2、状态:
(1)新生-就绪-运行-阻塞-终止
(2)终止线程(a.线程体自然执行完毕 b.线程类中定义标识,线程体中使用该标识,提供对外方法该表该标识,外部调用该方法)
(3)阻塞:join(符合条件时其他线程阻塞) yield sleep
3、线程信息
(1)Thread.currentThread
4、同步:对同一份资源
多线程对同一份资源的访问造成资源不安全性,为了资源的准确、安全,加入同步
synchronized(引用类型变量|this|类.class){}
修饰符synchronized 方法的签名{
方法体
}
过多的同步可造成死锁
Java 面试基础知识
最新推荐文章于 2024-04-16 13:32:56 发布