从面试出发学习java
文章平均质量分 76
从面试题提问的知识点出发,学习Java知识
loyd3
不加微信捏
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【从面试出发学习java】- Java - 垃圾回收
在 Java 中,引用和对象是有关联的。如果要。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,,则说明,那么这个对象就是。收集:执行效率高,程序执行受影响小:无法检测出循环引用的情况,导致内存泄漏,就是两个或多个bean相互之前间的持有对方,比如对象CycleA,CycleB两个对象,如果CycleA引用了CycleB实例,CycleB引用了CycleA实例,它们最终反应为一个环。(两个对象,你中有我,我中有你)关于,可以看下面例子为了解决引用计数法的。原创 2022-09-16 16:07:47 · 169 阅读 · 0 评论 -
【从面试出发学习java】- Java - JVM
Java源码首先被编译成字节码,再由不同平台的JVM进行解析,Java语言在不同的平台上运行时不需要进行重新编译,Java虚拟机在执行字节码的时候,把字节码转换成具体平台上的机器指令如果每次将源码解析成机器码去执行,那么每次执行都需要各种语法,句法,语义的检查。每次都要重新分析,做重复的事情。 还可以把别的语言解析成字节码,摆脱Java的束缚。JVM基本概念 JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。 JVM 是运行在操作原创 2022-06-22 11:14:57 · 207 阅读 · 0 评论 -
【从面试出发学习java】- Linux - 面试向
要在windows上运行linux指令,可以通过安装cygwin,具体参考下面链接 https://blog.youkuaiyun.com/u010356768/article/details/90756742 面试题: 如何查找特定的文件 使用 find 命令 find语法 find path -option [ -print ] [ -exec -ok command ] {} ; 一般实例 将当前目录及其子目录下所有文件后缀为 .c 的文件列出来: # find . -name "原创 2022-03-14 09:02:58 · 197 阅读 · 0 评论 -
【从面试出发学习java】- Linux - 基础知识
Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /。 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。 绝对路径: 路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。 相对路径: 路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd …/man 这就是相对路径的写法。 处理目录的常用命令 接下来我们就来看几个常见的处理目录的命令吧: ls(英文全原创 2022-01-25 13:59:22 · 371 阅读 · 0 评论 -
【从面试出发学习java】- 缓存 - Redis面试题
为什么要使用redis呢? 原因一、避免反复请求数据库造成效率低下 针对这种信息不经常变动并且数据量,为了提高访问效率,将其加入缓存中,避免频繁访问数据库 原因二、需要在 秒杀,热点数据和DB数据库之间加入缓存中间件 深层次原因同原因一 Redis 也就是NoSQL数据库 缓存中间件 Memcache和Redis的区别 Memche 代码层次类似Hash 缺点: 支持简单数据类型,只有String类型 每个key保存的数据量小只有1M 不支持数据持久化存储,把数据全部存在内存中,数据不能超过内存大小 不支.原创 2022-01-24 08:27:56 · 408 阅读 · 0 评论 -
【从面试出发学习java】- 缓存 - Redis基础
Redis 持简单的key-value类型的数据 支持数据的备份,即master-slave模式的数据备份 Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。 Redis 启动 https://www.runoob.com/redis/redis-install.html Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)原创 2022-01-22 22:09:26 · 135 阅读 · 0 评论 -
【从面试出发学习java】- 数据库 - 关键语法
GROUP BY 满足**“select字句中的列名必须为分组列或列函数”** 列函数对于group by 子句定义的每个组各返回一个结果 #查询所有同学的学号,选课数,总成绩 先把子查询写出来,再拼接成完整的sql语句 字段名学号 student_id 课程id course_id 成绩 score select student_id, count(course_id), sum(score) from score group by student_id; 列函数对于group by子句定义的每个组各返原创 2022-01-14 08:40:56 · 181 阅读 · 0 评论 -
【从面试出发学习java】- 数据库 - 事务
数据库四大特性 1、原子性(Atomicity) 事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。 2、一致性(Consistency) 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 3、隔离性(Isolation) 一个事务的执行不能被其他事务干扰。 4、持续性/永久性(Durability) 一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。 事务隔离级别以及各级别下的并发访问问题 更新丢失 即一个事务的更新覆盖了另一个事务的原创 2021-12-30 21:23:31 · 140 阅读 · 0 评论 -
【从面试出发学习java】- 数据库 - 锁
数据库并发策略 并发控制一般采用三种方法,分别是乐观锁和悲观锁以及时间戳。 乐观锁 乐观锁认为一个用户读数据的时候,别人不会去写自己所读的数据;悲观锁就刚好相反,觉得自己读数据库的时候,别人可能刚好在写自己刚读的数据,其实就是持一种比较保守的态度;时间戳就是不加锁,通过时间戳来控制并发出现的问题。 悲观锁 悲观锁就是在读取数据的时候,为了不让别人修改自己读取的数据,就会先对自己读取的数据加锁,只有自己把数据读完了,才允许别人修改那部分数据,或者反过来说,就是自己修改某条数据的时候,不允许别人读取该数据,只有原创 2021-12-03 14:36:27 · 192 阅读 · 0 评论 -
【从面试出发学习java】- 数据库 - 索引
索引(Index)是帮助 MySQL 高效获取数据的数据结构。常见的查询算法 顺序查找 二分查找 二叉排序树查找 哈希散列法 分块查找 平衡多路搜索树B树(B-tree) 索引原则 选择唯一性索引:唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录 为经常需要排序、分组和联合操作的字段建立索引 为常作为查询条件的字段建立索引 限制索引的数目:越多的索引,会使更新表变得很浪费时间。尽量使用数据量少的索引 如果索引的值很长,那么查询的速度会受到影响。尽量使用前缀来索引 删除不再使用或者很少使用的索引原创 2021-11-29 08:55:52 · 185 阅读 · 0 评论 -
【从面试出发学习java】- 数据库 - 数据库架构
数据库 存储引擎 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引 擎。 存储引擎主要有: MyIsam InnoDB Memory Archive Federated 最重要的是索引和锁 一个面试题 如何设计一个关系型数据库? 首先要了解开发一个数据库需要什么模块 要设计一个关系型数据库,首相原创 2021-11-16 08:18:42 · 298 阅读 · 0 评论 -
【从面试出发学习java】- 网络 - Socket
Socket简介 Socket是对TCP/IP协议的抽象,是操作系统对外开放的接口 Socket的出现是是的程序员更方便的使用TCP/IP协议,是对TCP/IP协议的抽象,从而形成了一些最基本的函数接口,如**create(),listen()**等 Socket起源于Unix,而UNIX基于一切皆文件的原则。服务器和客户端各自维护一个文件。在建立连接打开后,可以向自己的文件写入内容供对方读取或者读取对方的内容。在通信结束时就会关闭文件 Socket通信流程 面试题 ...原创 2021-11-10 14:03:08 · 123 阅读 · 0 评论 -
【从面试出发学习java】- 网络 - TCP的滑动窗口
TCP的滑动窗口 RTT和RTO RTT:发送一个数据包到收到对应的ACK,所花费的时间 RTO:重传时间间隔 TCP使用滑动窗口做流量控制与乱序重排 滑动窗口主要有两个作用: 保证TCP的可靠性 保证TCP的流控特性 窗口数据的计算过程 AdvertisedWindow = MaxRcvBuffer - (LastByteRcvd - LastByteRead) EffectiveWindow = AdvertisedWindow - (LastByteSent - LastByteAcked) TC原创 2021-11-08 08:27:17 · 209 阅读 · 0 评论 -
【从面试出发学习java】- 网络 - TCP和UDP的区别
UDP简介 User Datagram Protocol(用户数据管理协议) UDP特点 面向非连接,传输数据之前源端和终端不建立数据连接,当UDP想传输时就简单的抓取来自应用程序的数据,并尽可能快的将其放到网络上,在发送端UDP传输数据的速度仅受应用程序生成数据的速度,计算机的能力和传输带宽的限制,在接收端UDP把每个消息段放在队列中,应用程序每次从队列中读取一个消息段 不维护连接状态,支持同时向多个客户端传输相同的数据, UDP数据包报头只有8个字节 吞吐量只首先数据生成速率,传输数据和机器性能 尽原创 2021-11-02 08:08:33 · 101 阅读 · 0 评论 -
【从面试出发学习java】- 网络 - HTTP和HTTPS的区别
HTTPS简介 以计算机网络安全通信为目的的传输协议。 HTTPS相比HTTP多了一个SSL(或TLS)层,用来保护交互数据隐私以及完整性还有提供对网站服务器身份认证的功能。简单来说就是安全版的HTTP。 SSL(Security Sockets Layer,安全套接层) 为网络通信提供安全及数据完整性的一种安全协议 是操作系统对外提供的API,SSL3.0后更名为TLS 采用身份验证和数据加密保证网络通信的安全和数据的完整性 加密的方式 对称加密:加密和解密都使用同一密钥,相比非对称加密效率原创 2021-10-28 13:02:18 · 157 阅读 · 0 评论 -
【从面试出发学习java】-网络 - HTTP简介
HTTP 原理 HTTP 是一个无状态的协议。无状态是指客户机(Web 浏览器)和服务器之间不需要建立持久的连接, 这意味着当一个客户端向服务器端发出请求,然后服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息.HTTP 遵循请求(Request)/应答(Response)模型。客户机(浏览器)向服务器发送请求,服务器处理请求并返回适当的应答。所有 HTTP 连接都被构造成一套请求和应答 超文本传输协议HTTP主要特点 支持客户/服务器模式 C/S模式 HTTP协议工作于原创 2021-10-21 09:52:03 · 173 阅读 · 0 评论 -
【从面试出发学习java】- 网络 - TCP三次握手&四次挥手
TCP 在传输之前会进行三次沟通,一般称为“三次握手”, 传完数据断开的时候要进行四次沟通,一般称为“四次挥手”。 数据包说明 源端口号(16位):它(连同源主机 IP 地址)标识源主机的一个应用进程。 目的端口号(16位):它(连同目的主机 IP 地址)标识目的主机的一个应用进程。这两个值加上IP报头中的源主机IP地址和目的主机IP地址唯一确定一个TCP连接。 顺序号 seq(32位):用来标识从 TCP 源端向TCP目的端发送的数据字节流,它表示在这个 报文段中的第一个数据字节的顺序号。如果将字节流看原创 2021-10-20 16:34:58 · 221 阅读 · 0 评论 -
【从面试出发学习java】- 网络 - 网络基础知识
网络 7 层架构 7 层模型主要包括: 物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率 等。它的主要作用是传输比特流(就是由 1、0 转化为电流强弱来进行传输,到达目的地后在转化为 1、0,也就是我们常说的模数转换与数模转换)。这一层的数据叫做比特。 数据链路层:主要将从物理层接收的数据进行 MAC 地址(网卡的地址)的封装与解封装。常把这 一层的数据叫做帧。在这一层工作的设备是交换机,数据通过交换机来传输。 网络层:主要将从下层接收到的数据进行 IP 地址(例 1原创 2021-10-19 13:15:55 · 115 阅读 · 0 评论
分享