[杂谈]杂谈章1 问几个JAVA问题

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

    1.面向对象、面向过程 区别

    2.Java 如何实现的平台无关

    和C/C++不同的是,Java语言提供的编译器不针对特定的操作系统和CPU芯片进行编程,而是针对Java虚拟机把Java源程序编译成称为字节码的“中间代码”,然后Java虚拟机负责将字节码翻译成虚拟机所在平台的机器码,并让当前平台运行该机器码。
    Java语言的运行原理:
    在一个计算机上编译得到的字节码文件(就是.class文件),可以复制到任何一个安装了Java运行环境的计算机上直接运行。然后字节码文件由虚拟机负责解释执行,即Java虚拟机将字节码翻译成本地计算机的机器码,然后将机器码交给本地的操作系统运行。
    由于在一个计算机上编译得到的字节码文件可以复制到任何一个安装了Java运行环境的计算机上直接使用,所以字节码其实是一种“中间代码”,这也就是为什么“Java语言能够一次编译,处处运行,也就是Java跨平台的原因。”所以称Java是一种“半编译,半解释的语言”,即源程序——>编译——>字节码——>字节码解释程序——>对应平台的机器语言。

    3.值传递、引用传递

    4.什么是序列化与反序列化、为什么序列化

    5.死锁、死锁如何排查、如何确保线程安全

    6.有哪些虚拟机性能监控与故障处理工具;(ps, jstack, jmap, jstat, jconsole, jinfo, jhat, javap, btrace, TProfiler)

    7.了解 23 种设计模式

    创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。

    结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。

    行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter 模式)、状态模式、策略模式、职责链模式(责任链模式)、访问者模式。

    → 会使用常用设计模式
    单例的七种写法:懒汉——线程不安全、懒汉——线程安全、饿汉、饿汉——变种、静态内部类、枚举、双重校验锁

    8.filter 和 listener

    web.xml 中常用配置及作用

    9.线上问题分析

    → dump 获取

    线程 Dump、内存 Dump、gc 情况

    → dump 分析
    分析死锁、分析内存泄露

    → dump 分析及获取工具
    jstack、jstat、jmap、jhat、Arthas

    10.常见问题解决思路

    内存溢出、线程死锁、类加载冲突

    → 使用工具尝试解决以下问题,并写下总结
    当一个 Java 程序响应很慢时如何查找问题

    当一个 Java 程序频繁 FullGC 时如何解决问题

    如何查看垃圾回收日志

    当一个 Java 应用发生 OutOfMemory 时该如何解决

    如何判断是否出现死锁

    如何判断是否存在内存泄露

    11.Java 的反编译工具

    12.排序算法

    13. 海量数据处理

    14.大数据知识

    15.网络安全知识

    16. 注入攻击
    SQL 注入、XML 注入、CRLF 注入

    17.加密与解密

    对称加密、非对称加密、哈希算法、加盐哈希算法

    MD5,SHA1、DES、AES、RSA、DSA

    18.分布式

    数据一致性、服务治理、服务降级

    19.算法
    共识算法、Raft 协议、Paxos 算法与 Raft 算法、

    20.微服务

    → Docker & Kubernets
    → Spring Boot
    → Spring Cloud

    21.高并发

    → 分库分表
    → CDN 技术
    → 消息队列

    22.监控

    → 监控什么

    CPU、内存、磁盘 I/O、网络 I/O 等

    监控手段
    进程监控、语义监控、机器资源监控、数据波动

    → 监控数据采集
    日志、埋点

    23.搜索引擎

    Solr、Lucene、Nutch、Elasticsearch

    24.区块链

    哈希算法、Merkle 树、公钥密码算法、共识算法、

    Raft 协议、Paxos 算法与 Raft 算法、拜占庭问题与算法、消息认证码与数字签名

    25.人工智能

    数学基础、机器学习、人工神经网络、深度学习、应用场景。

    → 常用框架
    TensorFlow、DeepLearning4J

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
    标签: Java

    “[杂谈]杂谈章1 问几个JAVA问题” 的相关文章

    怎么使用Node.js来读取表格的数据 - web开发

    这篇文章主要介绍“怎么使用Node.js来读取表格的数据”,在日常操作中,相信很多人在怎么使用Node.js来读取表格的数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Node.js来读取表格的数据”的疑惑有所帮助!接下来,请...

    Redis中的List列表

    List 文章目录 List常用命令lpush/rpush/lrangelpop/rpoplindex 按照下标取得值llen 获取元素个数lrem keyltrim keyrpoplpushlset key index valuelinsert key before/after 已有值...

    python爬虫的学习总结

    背景 基于django框架完成jira网页数据的爬取。由于对爬虫知识知道的太少,我开始了新的学习之旅。本文前半部分都是记录这一周主要的错误,如果想直接看最终成果,可以跳到本文“成功爬取”部分浏览。 学习爬虫知识 在知道了本项目可能需要爬虫后࿰...

    mybatis-plus的批量新增/批量更新问题怎么解决 - 开发技术

    本文小编为大家详细介绍“mybatis-plus的批量新增/批量更新问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“mybatis-plus的批量新增/批量更新问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。现工作中有...

    蛮力调试

    蛮力调试指的是一种或许会被认为乏味,费神,耗时但能确保最终可以解决问题的方法 1.对崩溃代码的设计和编码进行彻底检查 2.抛弃有问题的代码,从头开始设计和编程 3.抛弃整个程序,从头开始设计和编程 4.编译代码时生成全部的高度信息 5.在最为苛刻的警告级别中...

    Linux之设置防火墙、开放端口

    目录 1. 开放防火墙端口 1.1 查看firewall服务状态 1.2 开启、重启、关闭、firewalld.service服务 1.2.1 开启 1.2.2 重启 1.2.3 关闭 1.2.4 查看防火墙规则 1.2.5 开启端口 1. 3 开放指定的3306端口号 2. 查...