Java错题本02

作者: 牡丹福 | 来源:发表于2018-05-14 08:46 被阅读0次

线程的生命周期

新建→就绪→运行→阻塞→死亡

New→Runnable→Running→Blocked→Dead

调用start进入就绪。

线程死亡:run或call方法执行完成

抛出未捕获的异常Exception或Error

调用线程的stop方法(不推荐,容易死锁)

isAlive()中间三种状态返回true

join方法让一个线程等待另一个线程完成

后台线程/守护线程/精灵线程 特征:前台线程全部死亡,后台就会自动死亡

如jvm的垃圾回收线程

O.setDaemon(true)设O对象为后台线程,

线程睡眠:sleep,让线程暂停,进入阻塞状态

线程让步:yield,让线程进入阻塞状态,有优先级的执行

setPriority()设置线程优先级

JVM终止:

程序正常结束

程序使用System.exit() Runtime.getRuntime().exit()

遇到为捕获的异常

程序所在平台强制结束Jvm进程

类加载或类初始化:加载→连接→初始化

类加载是指,将类的class读入内存,并为之创建一个java.lang.Class对象。当程序使用任何类都会创建这么一个对象。

类加载由类加载器完成,由JVM提供

类的连接:把类的二进制数据合并到JRE中

验证→准备→解析

验证内部结构是否正确,和其他类是否协调

准备:分配内存、设置初始值

解析:将类的二进制数据中的符号引用替换成直接引用

创建实例的方法:new、反射、反序列化

同一个类:全限定类名(包名、类名)JVM中靠全限定类名和加载器

JVM启动时,会形成由三个类加载器组成的初始类加载器的层次结构

Bootstrap ClassLoader:根类加载器

Extension ClassLoader:扩展类加载器:加载JRE扩展目录中JAR包的类

System ClassLoader:系统类加载器

JVM类加载机制

全盘负责:class所依赖的和引用的其他Class也由该类加载器负责载入

父类委托:先让父类加载器试图加载该Class

缓存机制:所有加载过的Class都会被缓存,若不在缓存区,系统会读取其二进制数据,并将其转换成Class对象。修改了Class必须重新启动JVM

通过反射创建对象两种方式

①使用Class对象的newInstance()方法来创建该Class对象对应类的实例

执行newInstance()方法实际是利用默认构造器来创建该类的实例

②先使用Class对象获取Constructor对象,再调用Constructor的newInstance方法来创建该Class对象对应的类的实例。

第一种方式比较常见

Public

进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程

IO

异常

检查异常需要手动抛出

集合

Static修饰的成员不能访问没有static修饰的成员,例如main方法要先创建对象,才能访问Sting、int之类的。通过实例可以访问类变量,因为类变量都在一块内存区里。

Static的真正作用:区分成员变量、方法、内部类、初始化块4

Java通过new调用构造器,构造器构造实例,构造器是类创建对象的根本途径。

构造器的返回值默认是隐式的。

方法名以英文动词开头,void用来声明方法没有返回值,否则有return

同一个对象里的一个成员可以直接调用另一个成员,即省略this

Java里的方法的参数传递方式只有一种:值传递

子类无法访问父类被覆盖的方法,但可通过super或父类类名来调用。子类和父类的private方法同名不是重写。

外部类访问权限只需要给同一个包和任何位置,所以public和 默认 。内部类可以使用四种访问权限。

JUC:

New Thread(new Runnable(){重写run方法}).start

两同:1)方法名2)形参列表两小:1)返回值类型比父类更小或相等2)异常比父类方法更小或相等一大:子类权限比父类大或相等

被覆盖的方法不能为private

命名合法:开头_、$ 、_1_

接口定义的成员变量默认public static final,所有成员方法为 public /abstract,只能被public和abstract修饰

构造方法无法被程序调用

初始化顺序:静态成员变量、成员变量、构造方法

按值传递不会改变实际参数的数值

按引用传递不会改变实际参数的参考地址,但能改变实际参数的内容

编译失败,方法体中的有static

线程和进程的区别

Java中可作为gc root 的对象有哪些?

1 、 虚拟机栈(栈帧中的本地变量表)中引用的对象。

2、 本地方法栈中JNI(即一般说的native方法)引用的对象。

3、 方法区中的静态变量和常量引用的对象。

-ha���W��k

相关文章

  • Java错题本02

    线程的生命周期 新建→就绪→运行→阻塞→死亡 New→Runnable→Running→Blocked→Dead ...

  • Java错题本01

    如何实现字符串的反转及替换? ArrayList和 Vector 都是使用数组方式存储数据 LinkedList使...

  • 敢于尝试是成功的开始——整理错题本

    看着孩子们交上来的错题本,有购买的正规错题本摘抄的错题;有把错题撕下来粘在课堂本上的;有把错题单独抄在课堂本上的;...

  • 错题本

    系统,连贯性,反映实际情况错题本错题本难的地方不在于整理错题,而在于复习错题,90%的孩子都有自己的错题本,但是只...

  • 【小敏聊学习】如何正确使用错题本——有选择的记录(一)

    对于错题本,大家并不陌生,许多学霸都拥有自己的错题本。可见让孩子为自己准备错题本是非常有必要的。 所谓的“错题本”...

  • 《Java程序设计》第02章在线测试

    《Java程序设计》第02章在线测试 《Java程序设计》第02章在线测试剩余时间:59:53 答题须知:1、本卷...

  • 考试前必用的一个工具,推荐给你!

    错题本到底该怎么整!!! 错题本的作用已经被吹爆了,你跟学霸的差距就差n个错题本,错题本真的重要吗? 同学甲:考过...

  • 2021-01-25 家庭教育之简洁的错题本

    【家庭教育之简洁的错题本】 简洁,是指不是全部的错题都要照搬到错题本上。 如果想着把所有做错的题目都一起放到错题本...

  • 【错题本】小错题 大智慧

    错题本 “错题本”,也叫"摘错本"、"纠错本"、"改错本",“错题集”。是指中小学学生在学习过程中,把自己做过的作...

  • 错题本

    如果家长把孩子的作业本当废品给买了,那对孩子的一生都是一个遗憾。 如果把三年的错题归纳到"错题本"上,那将是家长送...

网友评论

    本文标题:Java错题本02

    本文链接:https://www.haomeiwen.com/subject/atcddftx.html