海盗船|字节内部Java技术岗‘面试真题’泄露,冒死发布!( 四 )

  • 命令行界面(英语:command-line interface , 缩写
    :CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面 , 它通常不支持鼠标 , 用户通过键盘输入指令 , 计算机接收到指令后 , 予以执行 。 也有人称之为字符用户界面(CUI) 。
  • 通常认为 , 命令行界面(CLI)没有图形用户界面(GUI)那么方便用户操作 。 因为 , 命令行界面的软件通常需要用户记忆操作的命令 , 但是 , 由于其本身的特点 , 命令行界面要较图形用户界面节约计算机系统的资源 。 在熟记命令的前提下 , 使用命令行界面往往要较使用图形用户界面的操作速度要快 。 所以 , 图形用户界面的操作系统中 , 都保留着可选的命令行界面 。
  • 2、 什么是硬链接和软链接?
    3、Error 和 Exception 区别是什么?
    4、 什么是LILO?
    5、 请问当用户反馈网站访问慢 , 你会如何处理?
    6、 简单 Linux 文件系统?
    7、 Linux的基本组件是什么?
    8、包装异常时不要抛弃原始的异常
    9、 BASH和DOS之间的基本区别是什么?
    10、什么是TreeMap 简介
    11、什么是Linux
    12、什么是红黑树
    13、 Windows和Linux的区别
    14、如何决定使用 HashMap 还是 TreeMap?
    15、不要忽略异常
    16、Unix和Linux有什么区别
    17、 基本命令
    18、 Linux 使用的进程间通信方式?
    19、 一台 Linux 系统初始化环境后需要做一些什么安全工作?
    20、 什么是BASH?
    V.Git命令
    1、删除远端仓库
    2、基于当前分支创建新分支
    3、删除已合并到 master 分支的所有本地分支
    4、临时任务处理完后继续之前的工作
    5、将仓库内所有变更都加入到暂存区
    6、新建带备注标签
    7、查看本地和远端分支
    8、用图示显示所有分支的历史
    9、将 A 分支合入到 B 分支中且为 merge 创建 commit
    10、查看所有 stash
    11、将指定文件添加到暂存区
    12、某文件各行最后修改对应的 commit 以及作者
    13、查看变更情况
    14、当前仓库配置
    15、比较某文件工作区和 HEAD 的差异
    16、将 A 分支基于 B 分支做 rebase , 以便将 B 分支合入到 A 分支
    17、将当前目录及其子目录下所有变更都加入到暂存区
    18、比较暂存区和 HEAD 的所有差异
    19、比较工作区和暂存区的所有差异
    20、基于某个 commit 创建分支
    VI.设计模式
    1、在 Java 中 , 为什么不允许从静态方法中访问非静态变量?
    2、Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式
    3、什么是设计模式?你是否在你的代码里面使用过任何设计模式?
    4、在 Java 中 , 什么叫观察者设计模式(observer design pattern)?
    5、设计一个 ATM 机 , 请说出你的设计思路?
    6、在 Java 中 , 什么时候用重载 , 什么时候用重写?
    7、请列举出在 JDK 中几个常用的设计模式?
    8、举一个用 Java 实现的装饰模式(decorator design pattern)?它是作用于对象层次还是类层次?
    9、使用工厂模式最主要的好处是什么?在哪里使用?
    10、举例说明什么情况下会更倾向于使用抽象类而不是接口?
    VII.网络编程
    4、为什么要对网络协议分层
    5、计算机网络体系结构
    6、 什么是TCP/IP和UDP
    7、 TCP与UDP区别:
    8、 TCP和UDP的应用场景:
    9、 形容一下TCP和UDP
    10、 运行在TCP 或UDP的应用层协议分析
    11、什么是ARP协议 (Address Resolution Protocol)?
    12、什么是NAT (Network Address Translation 网络地址转换)?
    13、从输入址到获得页面的过程?
    14、 TCP的三次握手
    15、 用现实理解三次握手的具体细节