第9页

  • 建议大家,隔三岔五的,就出去面试一下

    建议大家,隔三岔五的,就出去面试一下

    前阵子某大厂曝出要求员工每月工作 380 小时,这是什么概念?全年无休,每天工作 13 个小时。看到这个消息,我挺震惊的。...

    Java知识 2021-09-16 68 0
  • NoOptimization

    如果没有优化,读取磁盘数据,再通过网卡传输的场景性能比较差:

    4 次 copy:

    4 次上下文切换:

    我们不免发出抱怨:

    推荐下自己做的 Spring Boot 的实战项目:

    https://github.com/YunaiV/ruoyi-vue-pro

    2. DMA 参与下的数据四次拷贝

    DMA 技术很容易理解,本质上,DMA 技术就是我们在主板上放一块独立的芯片。在进行内存和 I/O 设备的数据传输的时候,我们不再通过 CPU 来控制数据传输,而直接通过 DMA 控制器(DMA Controller,简称 DMAC)。这块芯片,我们可以认为它其实就是一个协处理器(Co-Processor)。

    DMAC 的价值在如下情况中尤其明显:当我们要传输的数据特别大、速度特别快,或者传输的数据特别小、速度特别慢的时候。

    比如说,我们用千兆网卡或者硬盘传输大量数据的时候,如果都用 CPU 来搬运的话,肯定忙不过来,所以可以选择 DMAC。而当数据传输很慢的时候,DMAC 可以等数据到齐了,再发送信号,给到 CPU 去处理,而不是让 CPU 在那里忙等待。

    注意 :这里面的“协”字。DMAC 是在“协助”CPU,完成对应的数据传输工作。在 DMAC 控制数据传输的过程中,DMAC 还是被 CPU 控制,只是数据的拷贝行为不再由 CPU 来完成。

    原本,计算机所有组件之间的数据拷贝(流动)必须经过 CPU。以磁盘读写为例,如下图所示:

    深入理解零拷贝技术

    深入理解零拷贝技术

    来源:spongecaptain.cool/SimpleClearFileIO/2.%20DMA%20%E4%B8%8E%E9%9B%B6%E6%8B%B7%E8%B4%9D%E6%8A%80%E6%9C%AF.html注意事项 :除了 Direct I/O,与磁盘相关的文件读写操作都有使用到 page c...

    Java知识 2021-09-16 63 0

  • 前言


    我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。

    该系统具备的功能:

    推荐下自己做的 Spring Boot 的实战项目:

    https://github.com/YunaiV/ruoyi-vue-pro

    阶段一、单机构建网站

    网站的初期,我们经常会在单机上跑我们所有的程序和软件。此时我们使用一个容器,如tomcat、jetty、jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架如maven+spring+struct+hibernate、maven+spring+springmvc+mybatis;最后再选择一个数据库管理系统来存储数据,如mysql、sqlserver、oracle,然后通过JDBC进行数据库的连接和操作。

    把以上的所有软件都装载同一台机器上,应用跑起来了,也算是一个小系统了。此时系统结果如下:

    互联网大厂的架构演变过程,想做架构师必看!

    互联网大厂的架构演变过程,想做架构师必看!

    来源:cnblogs.com/xiaoMzjm/p/5223799.html 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。该系统具备的功能:推荐下自己做的 Spring Boot 的实战项目:https://github.com/YunaiV/ruoyi-vue...

    Java知识 2021-09-15 52 0
  • 二本非科班的新同事上来就把项目性能优化了一遍,看完我瑟瑟发抖...

    公司来了个新同事,一看是个二本生,还是非科班出身,刚30岁。。。结果没想到人家上来就把现有项目的性能优化了一遍,直接给公司节省了一半的成本,这种“王炸”打法,直接给所有人整懵了。一问情况,才知道这位仁兄也是一路被虐过来的。去年年底被裁,本以为自己技术还行,看了一段时间面经,复习了基础知识,就开始投大厂简历。...

    Java知识 2021-09-15 66 0
  • 面试官:如果要存 IP 地址,用什么数据类型比较好?大部人都会答错!

    面试官:如果要存 IP 地址,用什么数据类型比较好?大部人都会答错!

    来源:blog.csdn.net/mhmyqn/article/details/48653157通常,在保存IPv4地址时,一个IPv4最小需要7个字符,最大需要15个字符,所以,使用VARCHAR(15)即可。MySQL在保存变长的字符串时,还需要额外的一个字节来保存此字符串的长度。而如果使用无符号整数来...

    Java知识 2021-09-15 55 0
  • 面了小 100 人,90% 都背了面试题......

    有个朋友去阿里面试,面试总共花费了 20 天左右,包含了 4 轮电话面试、1 轮笔试、1 轮主管视频面试、1 轮 hr 视频面试。 据他所说,70% 的人都会载在第一轮面试,要不是他面试之前做足了准备,估计都坚持不到接下来的面试。 其实,第一轮的电话面试除了一些常规的自我介绍外,问的都是...

    Java知识 2021-09-14 73 0

  • 简介

    在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类,用于定义类似于线程的自定义子系统,包括线程池,异步 IO 和轻量级任务框架;还提供了设计用于多线程上下文中的 Collection 实现等

    推荐下自己做的 Spring Boot 的实战项目:

    https://github.com/YunaiV/ruoyi-vue-pro

    volatile 关键字

    内存可见性

    内存可见性(Memory Visibility)是指当某个线程正在使用对象状态而另一个线程在同时修改该状态,需要确保当一个线程修改了对象状态后,其他线程能够看到发生的状态变化。

    可见性错误是指当读操作与写操作在不同的线程中执行时,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。

    我们可以通过同步来保证对象被安全地发布。除此之外我们也可以使用一种更加轻量级的 volatile 变量。

    Java 提供了一种稍弱的同步机制,即 volatile 变量,用来确保将变量的更新操作通知到其他线程。可以将 volatile 看做一个轻量级的锁,但是又与锁有些不同:

    问题代码示例

    /**
     * @ClassName TestVolatile
     * @Description: Thread 已经修改了flag,但是main线程还是拿到的false
     * @Author: WangWenpeng
     * @Version 1.0
     */

    public class TestVolatile {
        public static void main(String[] args) {
            ThreadDemo td = new ThreadDemo();
            new Thread(td).start();
            while (true) {
                if (td.isFlag()) {
                    System.out.println("______________");
                    break;
                }
            }
        }
    }

    class ThreadDemo implements Runnable {
        private boolean flag = false;

        public boolean isFlag() {
            return flag;
        }

        public void setFlag(boolean flag) {
            this.flag = flag;
        }

        @Override
        public void run() {
            try {
                //增加这种出现问题的几率
                Thread.sleep(200);
            } catch (Exception e) {
            }
            flag = true;
            System.out.println("flag=" + isFlag());
        }
    }
    彻底搞懂JUC

    彻底搞懂JUC

    来源:blog.csdn.net/wangwenpeng0529/article/details/105769978/ 简介 在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类,用于定义类似于线程的自定义子系统,包括线程池,异步...

    Java知识 2021-09-14 53 0

  • 用Scale Cube方法设计应用架构,将应用服务按功能拆分成一组相互协作的服务。每个服务负责一组特定、相关的功能。每个服务可以有自己独立的数据库,从而保证与其他服务解耦。

    1、聚合器微服务设计模式

    打死都要记住!微服务架构的常用设计模式!

    打死都要记住!微服务架构的常用设计模式!

    来源:cnblogs.com/duanxz/p/3514895.html用Scale Cube方法设计应用架构,将应用服务按功能拆分成一组相互协作的服务。每个服务负责一组特定、相关的功能。每个服务可以有自己独立的数据库,从而保证与其他服务解耦。 1、聚合器微服务设计模式 聚合器调用多个服务实现应用程序所需的...

    Java知识 2021-09-13 60 0

  • 总有童鞋问,这个流程图图怎么绘制的,这个UML类图用什么工具做的等等,今天给大家推荐一款idea插件PlantUml,来帮助大家快速快速完成绘制。

    PlantUml是什么

    PlantUml是一个支持快速绘制的开源项目。其定义了一套完整的语言用于实现UML关系图的描述,并基于强大的Graphviz图形渲染库进行UML图的生成。绘制的UML图还可以导出为图片,以及通用的矢量SVG格式文件。

    推荐下自己做的 Spring Boot 的实战项目:

    https://github.com/YunaiV/ruoyi-vue-pro

    PlantUML的优点

    作为一个Java coder,通常使用idea作为首选开发工具,我们以idea中的使用为主作介绍

    推荐下自己做的 Spring Cloud 的实战项目:

    https://github.com/YunaiV/onemall

    idea安装 PlantUML插件

    File -> Settings -> Plugins 搜索 PlantUML ,找到 PlantUML integration 并安装

    电脑安装graphviz

    下载地址

    https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi

    配置环境变量

    首先添加一个变量名GRAPHVIZ_HOME, 变量值为安装路径 D:\WorkWare\Graphviz2.38 在Path目录下添加 %GRAPHVIZ_HOME%\bin, 多个配置之间要用 “;” 隔开 配置GRAPHVIZ_DOT, 变量值为 %GRAPHVIZ_HOME%\bin\dot.exe

    横空出世,比Visio快10倍的画图工具来了。

    横空出世,比Visio快10倍的画图工具来了。

    来源:网络总有童鞋问,这个流程图图怎么绘制的,这个UML类图用什么工具做的等等,今天给大家推荐一款idea插件PlantUml,来帮助大家快速快速完成绘制。 PlantUml是什么 PlantUml是一个支持快速绘制的开源项目。其定义了一套完整的语言用于实现UML关系图的描述,并基于强大的Graphviz图...

    Java知识 2021-09-12 62 0

  • 你好呀,我是why哥。

    前几天,有个朋友在微信上找我。他问:why哥,在吗?

    我说:发生肾么事了?

    他啪的一下就提了一个问题啊,很快。

    我大意了,随意瞅了一眼,这题不是很简单吗?

    结果没想到里面还隐藏着一篇文章。

    故事,得从这个问题说起:

    面试官一个线程池问题把我问懵逼了。

    面试官一个线程池问题把我问懵逼了。

    你好呀,我是why哥。前几天,有个朋友在微信上找我。他问:why哥,在吗?我说:发生肾么事了?他啪的一下就提了一个问题啊,很快。我大意了,随意瞅了一眼,这题不是很简单吗?结果没想到里面还隐藏着一篇文章。故事,得从这个问题说起:图片上面的图中的线程池配置是这样的:ExecutorService ex...

    Java知识 2021-09-12 68 0
识海教程

识海教程

每天学习技术知识,每天进步多一点点。

  • 228958阅读数
  • 4评论数

关于识海

网站将会逐步收集越来越多的技术文章,当然将来也会开启投稿功能,各位朋友们有好的文章可以分享给大家