首页 文章 精选 留言 我的

精选列表

搜索[java],共10000篇文章
优秀的个人博客,低调大师

【从入门到放弃-Java】并发编程-线程安全

概述 并发编程,即多条线程在同一时间段内“同时”运行。 在多处理器系统已经普及的今天,多线程能发挥出其优势,如:一个8核cpu的服务器,如果只使用单线程的话,将有7个处理器被闲置,只能发挥出服务器八分之一的能力(忽略其它资源占用情况)。同时,使用多线程,可以简化我们对复杂任务的处理逻辑,降低业务模型的复杂程度。 因此并发编程对于提高服务器的资源利用率、提高系统吞吐量、降低编码难度等方面起着至关重要的作用。 以上是并发编程的优点,但是它同样引入了一个很重要的问题:线程安全。 什么是线程安全问题 线程在并发执行时,因为cpu的调度等原因,线程会交替执行。如下图例子所示 public class SelfIncremental { private static int count; public static void main(S

优秀的个人博客,低调大师

突破Java面试(36)-聊聊Dubbo的SPI机制

0 Github 1 面试题 Dubbo中的SPI是什么? 2 考点分析 前面基础性的东西问完了,确定你应该了解Dubbo,那么自然问个稍微难的问题,就是SPI,先问问你这是个啥,然后问问你怎么实现的! 其实就是看看你对dubbo的掌握如何 3 SPI简介 SPI 全称为 Service Provider Interface,是一种服务发现机制. 说白了是啥呢,比如你有个接口,该接口有3个实现类,那么在系统运行时,这个接口到底选择哪个实现类呢?这就需要SPI了,需要根据指定的配置或者是默认的配置,找到对应的实现类加载进来,然后使用该实现类的实例. 接口A => 实现A1,实现A2,实现A3配置一下,接口A = 实现A2在系统实际运行的时候,会加载你的配置,用实现A2实例化一个对象来提供服务 比如说你要通过jar包的方式给某个接口提供实现,然后

优秀的个人博客,低调大师

突破Java面试(24)-Redis的持久化机制

0 Github Github 面试题 Redis的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的? 考点分析 Redis如果仅仅只是将数据缓存在内存里面,假若宕机了,再重启,内存里的数据就全部丢失了! 你必须得用Redis的持久化机制,将数据写入内存的同时,异步的慢慢的将数据写入磁盘 若Redis宕机了,重启启动,自动从磁盘上加载之前持久化的一些数据即可,也许会丢失少许数据,但至少不会将所有数据都弄丢 针对的都是Redis的生产环境可能遇到的一些问题,就是Redis要是挂了再重启,内存里的数据不就全丢了?能不能重启的时候把数据给恢复了? 1 Redis持久化的意义 很多同学,自己也看过一些redis的资料和书籍,当然可能也看过一些redis视频课程 所有的资料,其实都会讲解redis持久化,但是有个问题,我到目前

优秀的个人博客,低调大师

突破Java面试(25)-Redis集群模式的原理

1 面试题 Redis集群模式的工作原理说一下?在集群模式下,key是如何寻址的?寻址都有哪些算法?了解一致性hash吗? 2 考点分析 Redis不断在发展-Redis cluster集群模式,可以做到在多台机器上,部署多个实例,每个实例存储一部分的数据,同时每个实例可以带上Redis从实例,自动确保说,如果Redis主实例挂了,会自动切换到redis从实例顶上来。 现在新版本,大家都是用Redis cluster的,也就是原生支持的集群模式,那么面试官肯定会就redis cluster对你来个几连炮。要是你没用过redis cluster,正常,以前很多人用codis之类的客户端来支持集群,但是起码你得研究一下redis cluster 3 Redis如何在保持读写分离+高可用的架构下,还能横向扩容支撑1T+海量数据 redis单mast

优秀的个人博客,低调大师

突破Java面试(18)-消息队列面试技巧总结

Github 其实如果我是面试官的话,我如果感觉你都把刚才那些问题都答出来了,我可能会继续刨根问底,深挖,问你,直到把你给问倒 消息队列,kafka,复制的底层原理,leader选举的算法,增加partition以后的rebalance算法,扣很多很多的细节,如何优化kafka写入的吞吐量 其实这块如果挖深了可以问的极其深,如果是我来深挖,可能会挖到ES底层的相关度评分算法(TF/IDF算法)、deep paging、上千万数据批处理、跨机房多集群同步、搜索效果优化,等等很多的实际生产问题。 一种比较水的面试官,他可能还掌握不到我们这个面试突击教程水准,他其实连我们教程里的这些问题都没问到位 比较nice的面试官,问的差不多了,对你还挺欣赏的,基本上就让你过了 比较hard的面试官,干倒,虐你,故意要让你出丑,我不是这种,我只不过严格,我希望

优秀的个人博客,低调大师

【从入门到放弃-Java】并发编程-NIO使用

前言 上文【从入门到放弃-SpringBoot】SpringBoot源码分析-请求过程中我们了解到,tomcat接收、返回请求的过程都是基于NIO实现的。日常工作中有很多基于NIO的使用,我们知道NIO可以提高系统的并发度,接下来的系列我们来深入学习下NIO,本文先从使用上简单概述。 NIO概述 NIO即non-blocking(New IO),是指jdk1.4 及以上版本里提供的新api。 NIO和IO最大的区别:IO是以流的方式处理数据,而NIO是以块的方式处理数据;IO对事件的处理是阻塞的,NIO是非阻塞的 NIO的核心部分: Channel Buffer Selector NIO主要分为标准输入输出和网络请求 标准输入输出NIO 读取 private static void readNio() { try { //1、开启

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册