• Home
  • 归档
文章检索 作品与友邻 关于我
暴君乔博客
Home 归档

Java面经_2018

发布于: 2018-08-05
更新于: 2023-07-09
文章目录
  1. 面试公司
    1. oracle
    2. 广东电信
    3. 一智通(SaaS)
    4. 高新兴

面试公司

按一些收集到的信息加自己的经验总结给大家

oracle

  • 笔试[网上]

    总体还是特别难的【全英文】在快速看题的过程中,如果有不会的单词或则会产生歧义的段落,就会导致真正做题时间很短,大概一分钟一道的感觉。

    • A a=new B()执行谁的?B的

    • 跨包无法调用protected标注的玩意

      附带权限的表格

    权限名 一个类 一个包 不同包的子类 不同包的非子类
    private ✌ 😭 😭 😭
    啥都不加(default) ✌ ✌ 😭 😭
    protected ✌ ✌ ✌ 😭
    public ✌ ✌ ✌ ✌
    • 抽象类

      有抽象方法就为抽象类,继承抽象类时必须实现所有的方法。接口其实就是更纯粹的抽象类,域默认final static,权限为default还有public两种,当然java8后接口里面就可以加点default方法,而不是只能干巴巴地放几个方法体定义在那了。

    • for(;;)可以塞方法进去吗?可以

      for (int i = 0; i < 10; System.out.println("hello")) {
        i++;
      }
      
    • treeSet和linkedHashSet的区别

      简略的说,以后再专门讲:treeSet有序,按树结构存储,LinkedHashSet链表的形式存储,用HashSet的形式

    • thread.run() .start()区别

      run()复写掉用来放要执行的事情,当你直接执行run()时就直接跑起来了,如果你跑start()则启动线程,而方法并不一定会马上运行。【这个部分后面会开个专题讲,Thread的源码还是有很多可以值得讨论的地方】

    • volatile

      使得这个变量在各线程间是可视的,比起synchronize性能好很多,又能起到避免冲突的问题,打个比方,Thread源码中有threadStatus,设为volatile让大家都能知道线程当前状态是怎样的。

      /*
       * Java thread status for tools, default indicates thread 'not yet started'
       */
      private volatile int threadStatus;
      
    • @Retention(RetentionPolicy.RUNTIME)

      决定标注的类型要执行怎样的保留政策【或者说持久化】

    • has-a 与 is-a的关系

      正方形是图形,正方形有四条边

广东电信

  • 笔试[网上]

    NAT

    Network Address Translation 专用网连接到Internet的路由器上加装NAT软件,当访问网络时,由本机地址转为全球IP地址

    • 解决IP不够、保护主机不受侵害,因为访问时是路由器上的全球IP
      • 静态转换【一对一】安全性较差,且对IP资源消耗大
      • 动态转换【一对多】安全性好,能满足多用户需求
      • 端口多路复用【Port Address Translation PAT】改变数据包外出时端口,所有主机都共享一个IP,且隐藏主机
  • 覆盖(重写)【Overriding】

  • HDFS【Hadoop分布式文件系统】
    以Block为存储单位,默认64MB

  • TELNET

    远程终端协议,明文传输协议,应用层(协议)

    • 建立tcp连接
    • 将用户名等等以(Net Virtual Terminal)形式发送
    • 回收响应
    • 撤销TCP连接
  • Linux常用命令

    • head 显示文件开头 head -n 5 hello.log
    • less 对文件、输出等进行分页显示 history | less
    • more 一次显示一屏文本 more -5 hello.log
    • nl 文本加上行号 nl hello.log
    • touch 修改文件访问时间【一直以为这是拿来创建文件的😄】
    • du 每个文件磁盘用量 du --max-depth=1
    • free 空闲内存
    • iostat io状态
    • vmstat 虚拟内存
    • df 文件系统信息 df -h【以人类形式显示】
    • chmod 文件模式修改
    • chown 文件所有者修改
    • find 查找 find . -regex
    • whereis 定位指令的二进制程序bin,源代码,man手册等
    • which 在path变量中找到命令所在位置,返回第一个
    • pwd 打印绝对路径
  • 语义网络

    用图表示知识的结构化方式

  • 虚拟化

    虚拟化的核心是在物理资源和应用之间加一层抽象,把一台机器拆成多套相互隔离的运行环境。

    常见的传统虚拟机是通过 Hypervisor【虚拟机监视器】模拟完整硬件栈,包括 CPU、内存、磁盘、网卡等资源,每个虚拟机里都可以运行自己的操作系统。像 VMware、VirtualBox、KVM 这类都属于这一类思路,好处是隔离性强,缺点是启动慢、资源开销相对大。

    另一类是容器这种轻量级虚拟化。容器不会再模拟一整套硬件和操作系统,而是共享宿主机内核,通过 namespace 做进程、网络、文件系统等隔离,再通过 cgroups 控制资源使用。Docker 就是典型代表,启动快、资源占用小,很适合服务部署和弹性扩缩容,但隔离边界弱于完整虚拟机。

  • 判断IP是不是为主机,子网划分

    An Internet Protocol address (IP address) is a numerical label assigned to each device connected to a computer network that uses the Internet Protocol for communication. An IP address serves two principal functions: host or network interface identification and location addressing. 【from wiki】

  > 简单翻译下就是ip地址是一串数字标识,用于标记设备连入计算机网络,同时也用于标记地址。

同时这里就只讲解ipv4的概念,因为现在ipv6目前也就在校园网上活跃而已。

一共32位的ip地址,为了更好地利用它们,将它大致分为了两部分网络标识部分以及主机标识部分。按照这个思路分法,就可以分出3种类型ABC地址,另外两种类型DE就不分网络和主机标识了。

种类 网络部分 主机部分 地址范围 私有地址 保留地址 优点 缺点
A 一个字节【0开头】 3个字节 1.0.0.1~126.255.255.254 10.0.0.0~10.255.255.255 127.x.x.x 每个网络可以分配到1600多万的计算机,毕竟三个字节用于表示主机部分 但ip地址太少,也就126个,仅少部分政府部门和公司能用的起,apple之类的
B 两个字节【10开头】 两个字节 128.0.0.1~191.255.255.254 172.16.0.0~172.31.255.255 169.254.x.x 网络数量增大了,且同时每个网络ip也能分配65534台计算机 即便比A少了很多,但依然很少能有公司或组织用满,对于平民用户而言又太浪费了
C 三个字节【110开头】 一个字节 192.0.0.1~223.255.255.254 192.168.0.0~192.168.255.255 —- 网络ip多了 不过导致主机ip减少了,不过通过子网掩码,这个问题其实现在也不大
D 不分网络主机【1110开头】 不分 224.0.0.0-224.0.0.255【用于广播】 239.0.0.0-239.255.255.255 【用于测试】 224.0.1.0-238.255.255.255【用于组播】 多点广播地址用来一次寻址一组计算机,标识共享同一协议的一组计算机 这个不太清楚
E 不分网络主机【11110开头】 不分 240.0.0.0~255.255.255.254 无 无 用于测试、实验用 不太清楚

子网掩码

子网掩码是一个32位地址,是与IP地址结合使用的一种技术。它的主要作用有两个,一是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。二是用于将一个大的IP网络划分为若干小的子网络。

面试题常有:A、B的IP是否在同一子网下【子网N:xxx】

R1=A&N=xxx;
R2=B&N=xxx;
若R1等于R2,则在同一子网

一智通(SaaS)

SpringBoot+SpringCloud+Docker

面试感触:对基础一定要牢,要有引导性地往自己熟悉的方面走,数据结构一定要了解,宁可说不会也不能说错的东西。

  • Java特性:继承,多态,抽象,封装。

    • 继承:父子关系,体现is-a关系,节省不必要的重复代码。
    • 多态:一个接口,有不同的实现方式。(重载重写)

      但是需要满足继承,复写,父类引用指向子类对象。

    • 抽象: 通过把类的共同特性抽象出来,减少开发时间。
    • 封装: 类的体现,我们通过对象的形式去调用它的行为(方法),而不必知道它的具体实现。
  • 栈,堆,图,队列····数据结构一定要扎实。

    • 栈:后入先出,保证出去的永远是最新的
    • 堆:也可命名为优先队列,是一棵树的数组体现,保证每次提取的是队列的第一个(最大,最小or其他设置)
  • SQL语句掌握

  • 应用发布,dependency如何分开war还是jar

  • springCloud

  • Docker

高新兴

  • hashmap与concurrentHashMap

    注意concurretntHashMap的两个版本,segement以及基于CAX方式的大数组Node<k,v>

  • redis与数据库如何实现一致化

  • restfult service

    就是@service接口

  • 多线程

  • 爬虫如何实现

  • 死锁

  • Java项目

Java面经_2018
/archives/eb87f5f/
作者
tyrantqiao
发布于
2018-08-05
更新于
2023-07-09
许可协议
CC BY-NC-SA 4.0
赏

蟹蟹大佬的打赏,大家一起进步

支付宝
微信
  • Java
  • 面经
  • java
  • 面经

扫一扫,分享到微信

微信分享二维码
git详解【使用以及原理】
算法系列之排序
© 2026 tyrantqiao 本站总访问量次 本站访客数人次 载入天数...载入时分秒...
  • 文章检索
  • 作品与友邻
  • 关于我

展开标签

  • 随笔
  • 旅行
  • Java
  • 面经
  • 源码
  • 计算机网络
  • 技术
  • 架构
  • Hadoop
  • IDEA
  • maven
  • JDK
  • Linux
  • MySQL
  • 性能
  • 数据库
  • Redis
  • MQ
  • Spring
  • SquirrelFin
  • 记账
  • Android
  • 个人财务
  • unity
  • TIDB
  • chatgpt
  • 前端
  • Vue
  • Git
  • Hexo
  • shadowsocks
  • 问题排查
  • 业务
  • JVM
  • 算法
  • nginx
  • ssh
  • Python
  • 爬虫
  • test
  • vim
  • 影视剧
  • 中间件
  • 事务
  • 表达
  • 运动
  • mybatis
  • AI
  • 产品
  • 家装
  • 土巴兔
  • 域名
  • github
  • 软件
  • 个人项目
  • Leaves
  • Chrome
  • 浏览器插件
  • 开源
  • Balance Voice
  • 穿搭
  • 幽默
  • 画画
  • 缓存
  • 摄影
  • c
  • 课程设计
  • 调酒
  • 设计模式
  • 数学

Collection

作品与友邻

我做的小工具、朋友的站点和一些长期值得回访的灵感来源。

  • 土 土巴兔 AI 导购交互演示 可点击体验用户导购、平台运营、装修公司、材料商及 AI 话术知识库的多端增长流程。 /demos/tubatu-ai-guide/
  • L Leaves 行程记录 我做的行程记录页面小工具,用来沉淀旅行路线、日程安排和途中的灵感。 https://leaves.tyrantqiao.com/
  • 本 本网站主题yilia设计者的主页 http://litten.me/
tyrantqiao的头像

tyrantqiao

github rss qq mail facebook linkedin

About

关于我

代码、海浪和持续折腾,都是生活的一部分。

<div class="aboutme-card"> <p class="aboutme-eyebrow">tyrantqiao</p> <h3>Java 全栈开发</h3> <p>常年和 Java、后端服务、前端工程、数据与部署打交道,喜欢把复杂问题拆开、写清楚,也把踩坑过程整理成文章留给后来的人。</p> <div class="aboutme-tags"> <span>Java</span> <span>Full Stack</span> <span>Backend</span> <span>Frontend</span> <span>Extreme Sports</span> </div> <p>工作之外偏爱冲浪等极限运动,享受在浪上找平衡,也享受在代码里找边界。</p> <div class="aboutme-contact"> <a href="mailto:[email protected]">Gmail</a> <a href="mailto:[email protected]">QQ Mail</a> </div> </div>