• Java学习---Java面试基础考核·


    Java中sleep和wait的区别

    ① 这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。
    
    sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。
    
    ② 锁: 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。
    
    sleep不出让系统资源;wait是进入线程等待池等待,出让系统资源,其他线程可以占用CPU。一般wait不会加时间限制,因为如果wait线程的运行资源不够,再出来也没用,要等待其他线程调用notify/notifyAll唤醒等待池中的所有线程,才会进入就绪队列等待OS分配系统资源。sleep(milliseconds)可以用时间指定使它自动唤醒过来,如果时间不到只能调用interrupt()强行打断。
    
    Thread.sleep(0)的作用是“触发操作系统立刻重新进行一次CPU竞争”。
    
    ③ 使用范围:wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用。
    
       synchronized(x){ 
    
          x.notify() 
    
         //或者wait() 
    
       }
    
    

    Java中HashMap和HashTable的区别

    ① 历史原因: Hashtable是给予陈旧的Dictonary类的,  HashMap是Java1.2引进的Map接口的一个实现
    
    ② HashMap允许空的键值对, 而HashTable不允许
    
    ③ HashTable同步,而HashMap非同步,效率上比HashTable要高
    
    

    3. 请简述在异常当中,throw和throws有什么区别

    ① throw代表动作,表示抛出一个异常的动作;throws代表一种状态,代表方法可能有异常抛出
    ② throw用在方法实现中,而throws用在方法声明中
    ③ throw只能用于抛出一种异常,而throws可以抛出多个异常

    4. forward和redirect的区别

    forward:    A -> B -> C
    redirect:   A -> B A -> C
    1.从地址栏显示来说 
    	forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
    	redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.
    2.从数据共享来说 
    	forward:转发页面和转发到的页面可以共享request里面的数据.
    	redirect:不能共享数据.
    3.从运用地方来说 
    	forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
    	redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
    4.从效率来说 
    	forward:高.
    	redirect:低. 

    5. 关于内存溢出的小结

    内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。
    内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。
    memory leak会最终会导致out of memory!内存泄漏是指你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也不能再次将它分配给需要的程序。

    6. 关于枚举的小结

    枚举类型的那些事:https://www.cnblogs.com/hyl8218/p/5088287.html

    枚举类型符合通用模式 Class Enum<E extends Enum<E>>,而 E 表示枚举类型的名称。枚举类型的每一个值都将映射到 protected Enum(String name, int ordinal) 构造函数中,在这里,每个值的名称都被转换成一个字符串,并且序数设置表示了此设置被创建的顺序。

    image

    7. HTTP返回码分析

    301:- 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
    302:- 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI

    304:- 如果客户端发送了一个带条件的GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个304状态码..
    403:- 代表客户端错误,指的是服务器端有能力处理该请求,但是拒绝授权访问。
    404:- 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
    500:- 服务器内部错误,无法完成请求

    
    
  • 相关阅读:
    通过《 The Linux Command Line》入门linux命令行
    译文-Teach Yourself Computer Science-自学计算机科学
    如何使用vps
    优达学城《计算机科学导论》小结
    [置顶] 新博客
    读书笔记-计算机组成结构化方法
    读书笔记-穿越计算机的迷雾
    基本雷达测高工具箱BRAT(Basic Radar Altimetry Toolbox)的API
    linux c++ 服务器学习
    重力场模型下载
  • 原文地址:https://www.cnblogs.com/ftl1012/p/9404300.html
Copyright © 2020-2023  润新知