[杂谈]杂谈章1 问几个JAVA问题
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
[杂谈]杂谈章1 问几个JAVA问题的更多相关文章
- 《算法导论》第二章demo代码实现(Java版)
<算法导论>第二章demo代码实现(Java版) 前言 表示晚上心里有些不宁静,所以就写一篇博客,来缓缓.囧 拜读<算法导论>这样的神作,当然要做一些练习啦.除了练习题与思考题 ...
- “全栈2019”Java第四章:创建第一个Java程序
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 当阿里面试官问我:Java创建线程有几种方式?我就知道问题没那么简单
这是最新的大厂面试系列,还原真实场景,提炼出知识点分享给大家. 点赞再看,养成习惯~ 微信搜索[武哥聊编程],关注这个 Java 菜鸟. 昨天有个小伙伴去阿里面试实习生岗位,面试官问他了一个老生常谈的 ...
- [杂谈]杂谈章3 JAVA中如何用自动注入
PART1 加配置文件 创建自动加载bean的配置文件 <beans xmlns="http://www.springframework.org/schema/beans" ...
- [杂谈]杂谈章2 eclipse没有(添加)“Dynamic Web Project”
原因:你安装的是专门开发java项目的,而Dynamic Web Project 属于J2EE技术 第一种方法: 你要专门下载一个集成了J2EE插件的Eclipse,到eclipse官网下载相对应版 ...
- 求求你,别问了,Java字符串是不可变的
最近,又有好几个小伙伴问我这个问题:"二哥,为什么 Java 的 String 要设计成不可变的啊?"说实话,这也是一道非常经典的面试题,面试官超喜欢问.我之前写过这方面的文章,现 ...
- 每日一问:讲讲 Java 虚拟机的垃圾回收
昨天我们用比较精简的文字讲了 Java 虚拟机结构,没看过的可以直接从这里查看: 每日一问:你了解 Java 虚拟机结构么? 今天我们必须来看看 Java 虚拟机的垃圾回收算法是怎样的.不过在开始之前 ...
- 新鲜出炉!面试90%会被问到的Java多线程面试题,史上最全系列!
前言 最近很多粉丝朋友私聊我说能不能给整理出一份多线程面试题出来,说自己在最近的面试中老是被问到这一块的问题被问的很烦躁,前一段时间比较忙没时间回私信,前两天看到私信我也是赶紧花了两天给大家整理出这一 ...
- 面试阿里,字节跳动99%会被问到的java线程和线程池,看完这篇你就懂了!
前言: 最近也是在后台收到很多小伙伴私信问我线程和线程池这一块的问题,说自己在面试的时候老是被问到这一块的问题,被问的很头疼.前几天看到后帮几个小伙伴解决了问题,但是问的人有点多我一个个回答也回答不过 ...
随机推荐
- Linux系统时钟的更改
linux系统时钟有两个,一个是硬件时钟,即BIOS时间,就是我们进行CMOS设置时看到的时间,另一个是系统时钟,是linux系统Kernel时间. 查看.设置硬件时间: 查看系统硬件时钟 hwclo ...
- 学习 MeteoInfo二次开发教程(五)
1.ActiveMapFrame部分没有大问题,按教程来就行. private void SetMapView()和private void ActiveMapFrameChanged(object ...
- 时间的转化 js
php 和java是不一样的 PHP 需要先乘1000 java 不需要 因为PHP传过来的是十位数 java传过来是十三位数 function formatDate() { var now = n ...
- 微信小程序 实现三级联动-省市区
github项目地址 https://github.com/z1511676208/chooseAddr 序:项目中需要用到三级联动,自己试着写了下,也查了一些资料,现在把这个记录一下,里面地区数 ...
- SpringBoot 之jsp
Boot 内嵌的tomcat 是不支持jsp 的, jetty 也是. 虽然boot也是有默认配置一个InternalResourceViewResolver ,但是它并不像我们在springmvc ...
- <记录> HtmlHelper和 强类型页面
HtmlHelper 路径生成 <!--普通写法--> <a href="/home/index">超链接</a> <!--利用Url类 ...
- Django02-路由系统urls
一.路由配置系统(URLconf) 分为:静态路由动态路由 1.URL配置 URL配置(URLconf)就像Django所支撑网站的目录.它的本质是URL与该URL调用的视图函数之间的映射表 语法: ...
- VSCode搭建Java开发运行环境
用了一段时间VSCode,觉得还可以,想用VSCode整合不同的开发语言,于是研究了一下利用VSCode搭建Java环境.开发Java程序.网上这方面的帖子有不少,但每人的经历不同,把自己的经历记下来 ...
- javaScript+html5实现图片拖拽
源码: <!DOCTYPE html><html><head> <meta charset="utf-8"/> <title& ...
- 【VBA】杨辉三角
Private Sub Workbook_Open() Dim loopA As Integer Dim loopB As Integer Dim loopNum As Integer Dim top ...