- 博客(13)
- 收藏
- 关注
原创 Jdk17新特性及未来发展趋势
虽然我们在代码中使用var进行了定义,但是对于虚拟机来说他是不认识这个var的,在java文件编译成class文件的过程中,会进行解糖,使用变量真正的类型来替代var(详细信息可以参考:我反编译了Java 10的本地变量类型推断)可以看到,这里使用了很多if-else,其实,Java中给我们提供了一个多路比较的工具,那就是switch,而且从Java 14开始支持switch表达式,但switch的功能一直都是非常有限的。其实,众多的版本中,还有一些其他的特性及优化,我们没有在这里一一展开。
2023-06-18 14:14:34 8379
原创 信息系统项目管理师考试看这一篇就够了
考试大纲中对论文的要求根据试卷上给出的与项目管理有关的四个论文题目,选择其中一个题目,按照规定的要求写论文和摘要。最近几年都是从给定的两个论文题目中,选择其中一个题目来进行写作。摘要 330 字,正文 2750 字以内,请大家在准备的时候注意字数的调整。
2023-06-17 17:21:50 180 1
原创 高效编程框架之——面向语义的低代码数据持久层编程框架
一、前言实际开发工作中,往往会对系统进行领域模型的设计,设计系统的可扩展性、健壮性等。同时也避免不了对数据的基本管理,比如增删改查、接口的定义与实现等。有些工作其实是类似的重复的,与业务逻辑关系不大的,这些工作往往可以通过系统自动完成,进而可以将人力成本主要集中在领域模型的设计与实现上。为了实现这个小目标,调研了业界用的比较好的框架,用得比较广泛的就是MybatisGenerator、MyBatis-Plus BaseMapper。这些框架的核心能力都是减少持久层功能的开发工作量。相信用过的同学都应
2021-06-17 23:10:15 187
原创 浅谈应用架构之领域驱动设计
一、架构是什么架构广义的说就是组合构造,有产品架构、有系统架构等,好的架构能够使产品、系统更好地呈现,更好地迭代与维护。好的架构是演进出来的,好的代码是重构出来的。我们经常听到中台、平台、系统、应用等名词,它们之前有何关系?1)应用:是最小粒度的,用于实现业务系统功能的。比如现在流行微服务,实现一个业务系统的应用一般都包括:web应用、service应用。2)系统:这里说的系统都是业务系统,一般一个业务系统都至少是一个完整的商业产品。比如寻源系统、招投标系统等。3)平台:由多个业务系统组
2021-05-13 01:26:16 331
原创 揭秘Netty之——pipeline的设计与使用
责任链模式,相信大家都不陌生。tomcat、spring等各种开源产品中都有大量使用。责任链设计模式抽象如上图所示,责任链工程实现中,本质上是维护了一个链表或者数组,以及当前执行位置的索引currentIndex,每次调用责任链的doFilter()方法时,就会基于currentIndex执行下一个Filter。Netty中PipeLine的设计通过这个类图也可以大致看出netty中pipeline的设计也是采用了责任链模式,ChannelHandler外包装了一层ChannelHa
2021-04-22 00:17:43 900
原创 揭秘Netty之——线程模型以及网络编程抽象概念建模
Netty中所有的IO操作都是异步的,这是如何做到的呢?netty的高性能与它独有的线程模型设计有很大的关系,到底是怎么设计的?netty中reactor模式的线程模型号称是极品中的精品基于jdk中的线程池、Future等,netty做了哪些优化?从中可以感受到在多线程编程中如何设计一个好的Future、Promise?如何优雅地关闭一个线程池?对于周期任务,fix rate 与 fix delay有何区别?netty是如何将周期任务与普通任务合二为一实现的?核心实现类Multith
2021-04-19 23:53:58 125
原创 揭秘Netty之——快速启动netty
netty作为当今最为流行的网络通信框架之一,包括RPC、消息等中间件都在用,很有必要深入研究一下。下面从netty的快速启动开始分析。netty的启动包括服务端的启动与客户端的启动,入口主要是ServerBootstrap、Bootstrap。ServerBootstrap启动服务端,Bootstrap启动客户端。服务端的启动比较复杂,客户端启动相对简单。TCP握手过程启动的过程其实就是建立网络连接的过程,所以首先得回顾一下TCP的三次握手和4次挥手。建立连接的过程断开连接的.
2021-04-16 00:40:49 238
原创 机器学习概要
当前非常热门的莫过于大数据、云计算、机器学习等这些名词。无论什么产品,好像没有机器学习就不值得一谈,没有机器学习就没有先进性。今天跟大家一起看看机器学习到底是啥玩意儿。这里不对具体算法做过多解读,只是从整体阐述机器学习是何物。1)如何判断机器学习的效果如何?为什么需要机器学习,而不是使用专家经验或着规则?2)常用的机器学习方法有哪些?3)工业界机器学习的流程是怎样的?4)为什么需要特征工程,特征工程在机器学习中的作用是怎样的?阅读完本篇文章之后,这些问题都将豁然开朗。1 算法分类
2021-04-13 00:17:05 318
原创 算法揭秘之——排序与搜索
计算机的核心作用就是计算、存储,其中数据结构与算法直接决定了计算机的计算效率。所以学好数据结构与算法是做好计算机软件工作非常基础的能力。日常工作中遇到最多的莫过于排序、搜索,本文将针对这两类算法做个探索。1 时间复杂度在介绍具体的算法之前,先看下不同的时间复杂度的区别如下图所示。2 排序算法排序算法常见的主要有交换排序、插入排序、选择排序、计数排序等一般算法都是优先考虑时间复杂度,故下面先根据时间复杂度进行分类分析2.1 对于冒泡排序、直接选择排序、简单...
2021-04-11 18:56:32 396
原创 结合DDD设计理念实现零编码
实际开发工作中,往往会对系统进行领域模型的设计,设计系统的可扩展性、健壮性等。同时也避免不了对数据的基本管理,比如增删改查、接口的定义与实现等。有些工作其实是类似的重复的,与业务逻辑关系不大的,这些工作往往可以通过系统自动完成,进而可以将人力成本主要集中在领域模型的设计与实现上。DDD设计理念一般分几层,分别是:表现层:主要用于与外界的交互,包括UI界面、开放接口等应用层:面向用例的,复杂服务的编排等领域层:核心业务逻辑层基础设施层:用于对外交互,比如数据库、消息、搜索等..
2020-07-26 13:21:21 478
原创 JavaScript语言核心知识
一、核心知识1. 对象对象(inherit)类(extend)函数(protype)2.数组数组是特殊形式的函数,只不过它的属性都是数字索引3.函数闭包:函数中嵌套函数,被嵌套的函数可以使用嵌套它的函数中的变量4.类和模块创建对象的方式:构造函数或者inherit...
2018-11-11 16:29:05 411
原创 文件inode
一、什么是空洞文件?+=======+——-+====+start end a b 定义:从文件结尾到新写入的文件之间的这段空间被称之为:文件空洞,如上图中从end到a之间的一段就是文件空洞。空洞文件必须满足2个条件:(1)写文件时超出文件结尾(2)超出之后继续写文件lseek()系统调用可以改变文件的偏移量,但如果程序调...
2018-07-11 22:40:53 839
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人