java面试题

标题

线程:线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针,程序技术器),但代码区是共享的,即不同的线程可以执行同样的函数.
多线程:多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是允许单个线程创建多个并行执行的线程来完成各自的任务.
冒泡法的排序原理:冒泡法的思想是将相邻的两个位置的数据进行比较,如果前面的位置的数据大于后面的位置的数据,则将两位置的数据进行交换,未排序元素中最大的数便会像一个气泡一样一路向后冒,最后将其放在末排序数据的末尾,使其已排序数据的首位,时间复杂度o(n^2)空间复杂度0(1).
将a下所有的目录的文件复制到b: cp -r a b

  1. JRE:java Runtime Environment
  2. JRE是java的运行环境,包含了java虚拟机,java基础类库,使用java语言编写的程序的运行环境
  3. JDK:java Development Kit JDK包含了JRE同时还包含了编译java程序所需的开发工具包,是提供程序员使用的还有javac,等
  4. java的跨平台:java的源程序先经过javac编译期编译成.class文件,然后运行在jvm上,java解释器会将其解释成对应平台的机器执行,所谓java跨平台就是在不同的平台安装了不同的jvm,而不同的平台生成的.class是一样的而.class文件再由对应的平台的jvm解释成对应的平台机器码执行
  5. 都是Throwable的子类 1Exception(异常)是程序本身可以处理的异常. 2Error (错误)是程序无法处理的错误,这些错误表示故障发生在虚拟机自身,或者发生在虚拟机执行应用时,一般不需要程序处理. 3,执行异常:除了ERRor ,RuntimeException及其子类,其他的exception类及其子类都属于检查异常,这种异常的特点java编译器会检查它,也就是,当程序中可能出现这类异常,要么用try -catch语句捕获它要么用throws字句声明抛出他,否则编译不会通过. 4非检查异常:包括运行时异常和错误.
  6. 在这里插入图片描述
  7. 线程的可用状态:
    (1)新建(new) 新创建了一个线程对象
    (2)可运行(runnable):线程对象创建后,其他线程调用了该对象的start()方法,该状态的线程位于可以运行的线程池中,等待被线程调度选中,获取cpu的使用权.
    (3)运行(running):可运行状态(runnable)的线程获取了cpu的时间篇(timeslice),执行程序代码.
    (4)阻塞(block):阻塞状态是指线程因为某一种原因放弃了cpu的使用权,也即让出了cpu timeslice,暂停运行,直到线程进入可以运行(runnable)状态,才有机会获得cpu tiimeslce转到运行(running)状态,阻塞情况分为三种:
    (1)等待阻塞:运行的线程执行o.wait方法,jvm会把线程放入等待序列(waitting queue)中
    (2)同步阻塞:运行的线程获取对象的同步锁时,若该同步锁被别的线程占用,则jvm会把线程放入锁池中
    (3)其他阻塞:运行(running)线程执行Thread.sleep或t.join方法,或者发出了I/O请求,jvm会把该线程为阻塞状态.当sleep()状态超时,join()等待线程终止或者超时,或者I/o处理完毕时,线程进入可以运行的(runnable)状态
    5.死亡(dead)线程run(),main()方法执行结束后,或者异常推出了run()方法则改线程结束生命周期,死亡的线程不会再次复生.
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值