常见面试基础知识
文章平均质量分 80
xyzhang2018
这个作者很懒,什么都没留下…
展开
-
Go | Go和Java区别
Go和Java作为在世界上影响巨大的两门开发语言,在语言特点和应用领域上都存在共通和相似之处。Go从2009年开源至今,在docker、K8s、企业后台等领域都取得了非凡的影响。本文以Golang的主要feature为研究对象,共分为6个章节,在学习这些特性的同时,给出其在Java中对应的实现方式,并会详细分析其中的原理和差异。原创 2022-03-11 22:33:33 · 1202 阅读 · 0 评论 -
Network | 跨域及其解决方案
一、跨域问题1. 概念在 HTML 中,<a>, <form>, <img>, <script>, <iframe>, <link> 等标签以及 Ajax 都可以指向一个资源地址当前发起请求的域和该请求指向资源所在的域不同源(协议+域名+端口号均相同,才算同域)2. 跨域的安全问题:CSRF攻击2.1 概念跨站请求伪造(Cross-site request forgery,CSRF),是攻击者通过一些技术手段欺骗用户的浏览器原创 2022-03-06 10:13:23 · 324 阅读 · 0 评论 -
[OS]-bit与byte的区别
在工作中遇到一些概念模糊的地方, 需要记住了bit意为“位”或“比特”,是计算机运算的基础;byte意为“字节”,是计算机文件大小的基本计算单位;说到usb2.0标准接口传输速率。许多人都将“480mbps”误解为480兆/秒。其实,这是错误的,事实上“480mbps”应为“480兆比特/秒”或“480兆位/秒”,它等于“60兆字节/秒”,大家看到差距了吧。这要从bit和byte说起:bit和byte同译为"比特",都是数据量度单位,bit=“比特”或“位”。1byte=8bits,两者换算是1:转载 2022-01-30 21:41:50 · 124 阅读 · 0 评论 -
[Java]-理解String拼接,+运算符重载的实际效果
引申:一个常见的String的面试题public static void main(String[] args) { // TODO Auto-generated method stub String s1 = "Hello"; String s2 = "World"; String s3 = "Hello"+"World"; String s4 = s1+s2; String s5 = "HelloWorld转载 2022-01-02 16:54:20 · 135 阅读 · 0 评论 -
[Network]-RESTful API设计规范
REST与技术无关,它代表的是一种软件架构风格,REST它是 Representational State Transfer的简称,中文的含义是: “表征状态转移” 或 “表现层状态转化”。它是基于HTTP、URI、XML、JSON等标准和协议,支持轻量级、跨平台、跨语言的架构设计。一. 理解为什么要使用RESTful API设计规范?在很久以前,工作时间长的同学肯定经历过使用velocity语法来编写html模板代码,也就是说我们的前端页面放在服务器端那边进行编译的,更准确的可以理解为 “前后端没.原创 2021-12-26 20:38:20 · 116 阅读 · 0 评论 -
HashMap源码分析及线程安全性
存储结构-字段// 哈希桶 用于存放链表// 第一次使用时初始化 而非在定义时初始化 长度为2^ntransient Node<K,V>[] table;// 保存缓存的entrySettransient Set<Map.Entry<K,V>> entrySet;// 当前map拥有的键值对数量transient int size;// 记录HashMap内部结构被更改的次数(如:重新Hash)用于并发异常时使用transient int modC原创 2021-11-09 16:36:57 · 259 阅读 · 0 评论 -
[DB]-Redis穿透、雪崩、击穿
缓存一致性读请求,先读缓存,再读数据库写请求,先更新数据库,再写缓存每次更新数据后,需要清楚缓存缓存雪崩原理缓存中大量数据过期,且查询数据量巨大,请求都直接访问数据库,引起数据库压力过大。解决方案均匀设置过期时间:批量向Redis存数据时,把每个Key的失效时间都添加随机值(较大的固定值+较小的随机值),避免同时大面积失效。setRedis(Key,value,time + Math.random() * 10000);Redis集群部署:将热点数据均匀分布在不同的Redis原创 2021-06-10 17:22:58 · 124 阅读 · 1 评论 -
[DB]-Redis基础数据类型及数据结构
1、数据类型Redis中数据类型-《Redis In Action》数据类型可以存储的值操作STRING字符串、整数或浮点数对整个字符串或字符串其中一部分执行操作,对整数和浮点数执行自增自减LIST列表从两端压入弹出元素;对单个或多个元素进行修剪;只保留一个范围内的元素SET无序集合添加获取移出单个元素;检查元素是否存在;计算交并差集;从集合中随机获取元素HASH键值对检查键是否存在ZSET有序集合根据分值范围或成员获取元素;计算键的排名原创 2021-06-10 15:21:39 · 203 阅读 · 0 评论 -
布隆过滤器简介与使用
常见的一台MySql服务器的并发量为600左右redis数据类型:(9种) string、hash、list、set、zset、bitmap、hyperloglogs、geo、streams爬虫判断url是否爬取过?url地址过滤方法布隆过滤器BloomFilter本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。如果布隆过滤器判断存在的,可能存.原创 2021-04-27 22:26:21 · 129 阅读 · 0 评论 -
[Linux]-服务器CPU占用过高处理方案
一、使用top命令找出CPU占比最高的进程top命令定位异常进程如果确定是Java进程则进行下一步详细定位举个栗子:可以看出CPU占比最高的为Java进程top - 09:11:37 up 21 min, 3 users, load average: 0.54, 0.25, 0.16Tasks: 94 total, 1 running, 93 sleeping, 0 stopped, 0 zombie%Cpu(s): 3.0 us, 6.4 sy, 0.0转载 2021-04-24 23:24:58 · 2225 阅读 · 1 评论 -
HTTPS及加密算法总结
加密算法整体可以分为:可逆加密、不可逆加密可逆加密又可以分为对称加密和非对称加密一、可逆加密1. 对称加密算法对称加密算法,又称为共享密钥加密算法。在数据加密和解密时使用的是同一个密钥,这就导致密钥管理困难的问题。常见的对称加密算法有DES, 3DES, AES128, AES192, AES256。其中AES后面的数字代表的是密钥长度。对称加密算法的安全性相对较低,比较适合内网环境中加解密。1.1 DESDES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加解密用.原创 2021-04-19 22:28:29 · 5846 阅读 · 0 评论 -
前中后序遍历树--递归非递归方法Java实现
import java.util.Stack;class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}public class Tree { //递归先序 public void REPreOrder(TreeNode...原创 2020-03-21 14:28:36 · 333 阅读 · 0 评论 -
软件构造 - 设计模式总结之可复用性
一.Structural patterns 结构型模式Adapter 适配器模式将某个类/接口转换为client期望的其他形式通过增加一个接口,将已存在的子类封装起来,client面向接口编程,从而隐藏了具体子类。//定义一个shape接口,四个参数为两个顶点坐标interface Shape { void display(int x1, int y1, int x2, int ...原创 2019-06-18 20:56:23 · 339 阅读 · 0 评论 -
软件构造 - 设计模式总结之可维护性
一.Creational patterns创建类的新实例Factory Method pattern当client不知道要创建哪个具体类的实例,或者不想在client代码中指明要具体创建的实例时,用工厂方法。定义一个用于创建对象的接口,让其子类来决定实例化哪一个类,从而使一个类的实例化延迟到其子类。区别:通常情况下进行对象创建:(client直接创建具体对象)Product p ...原创 2019-06-21 17:14:33 · 313 阅读 · 0 评论 -
软件构造 - 设计模式总结之性能调优
针对对象创建与复用的设计模式Singleton Pattern 单例模式某些类在应用运行期间只需要一个实例,而需要对象时就new,导致创建多个object。更好的选择:强制client只能创建一个object实例,避免因为new操作和GC所带来的时空性能损失,也便于复用单例模式的使用要点:1. 设置静态和final变量来存储单一实例对象2. 将构造器设置为private,从而cli...原创 2019-06-23 20:44:22 · 238 阅读 · 0 评论