Java 知识小集 第 4 期

1. 锁的两种主要特性:

  • 互斥:同一时间只允许一个线程持有某个特定的锁。线程持有该锁相当于令牌去访问线程共享的数据。
  • 可见性:线程释放锁之前对共享数据做出的更改对于随后获得该锁的另一个线程是可见的。

2. 什么是原子性?

原子性是对操作而言的,原子操作就是不可再分的操作。所谓不可再分就是,操作一旦开始,就一直运行到结束,中间不会有任何 context switch(切换到另一个线程)。

3. 为什么一个字节是 8 位?

在计算机的发展历史上,IBM 为 System/360 (IBM 于 1964 年推出的大型电脑)设计了一套 8 位 EBCDIC 编码,涵盖了数字、大小写字母和大部分常用符号,同时兼容广泛用于打孔卡的 6 位 BCDIC 编码。System/360 在商业上的成功奠定了字符存储以 8 位即一个字节为单位的基础。

4. 类加载器的代理模式

类加载器在查找某个类的字节码并定义它时,首先会代理给父类加载器,由父类加载器尝试加载这个类,如果加载失败再让父类加载器的父类加载。使用代理模式保证了 Java 核心库的类的加载工作都是由引导类加载器来统一完成,保证了所有 Java 应用所使用的都是同一个版本的 Java 核心库的类。

5. 加载类的过程

类加载器首先会代理给父类加载器来尝试加载某个类,真正完成类加载工作的类加载器通过调用 defineClass 来实现,这个类加载器被称定义加载器。启动类的加载过程的类加载器通过调用 loadClass 来实现,这个类加载器称为初始加载器。
类加载器在成功加载某个类之后,会把得到的 java.lang.Class 类的实例缓存起来,下次加载该类时,类加载器会直接使用缓存中的类的实例。

6. URL 省略文件名

例如 http://www.example.com/dir/,以“/”结尾代表 /dir/ 后面本来应该有的文件名被省略了,在这种情况下服务器会访问事先设置好的默认文件名,大多数情况下是 index.html 或者 default.htm。

7.什么是 URI (Uniform Resource Identifier)

统一资源标志符,URI 的内容是一个存放网页数据的文件名或者是一个 CGI 程序的文件名。

8.集线器和路由器的区别

集线器根据以太网的规则,在子网中将网络包传输到下一个路由器. 路由器根据 IP 规则判断下一个路由器的位置然后传输网络包.

9.什么是套接字(Socket)

套接字是网络通信过程中端点的抽象表示.如果把网络通信理解为一根水管,那么套接字就是水管的两个端点.套接字包含了网络通信必须的五种信息:连接使用的协议,本地主机的 IP 地址,本地进程的协议端口,远地主机的 IP 地址,远地进程的协议端口.这里的远地就是网络通信的另一端.
通过 TCP 头部中的发送方和接收放端口号可以找到要连接的套接字.
创建套接字时,首先分配一个套接字所需的内存空间,然后向其中写入初始状态.

10.什么是 ACK 号

ACK 号是 TCP 头中的 32 位数据,在网络传输中,接收方用来告知发送方接收方已经收到了所有数据的第几个字节

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,372评论 11 349
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,482评论 25 708
  • 几天前专门跑回了姥姥家一趟,急急忙忙放下手里的活,就是为了去参加一场表姐的婚礼。 尽管姥姥家离家有...
    七幸子阅读 295评论 0 0
  • 清晨, 当太阳自东边升起,四散的星子便被耀眼的阳光遮蔽了光辉,只看得到天空,白茫茫一片。窗外有鸟啼,在天蒙蒙亮的时...
    逸云探鱼阅读 124评论 0 0
  • 今天这篇教程的灵感来自圈内一位朋友的头像,看看,是不是显得很有逼格! 这种逼格的图片,专业叫法是“二重曝光”或“双...
    欢乐PPT阅读 3,844评论 18 129