- 博客(86)
- 资源 (1)
- 收藏
- 关注
原创 浅析java编程优势略举一二
如果要执行的任务是计算密集型的并且没有IO操作,推荐使用并行流parallelStream,因为实现简单效率也高,其使用的线程池ForkJoinPool.commonPool()设置的线程数默认为CPU数量-1,可最大化利用CPU,CPU密集型任务各个线程都很忙碌(运行状态),没有必要创建比核数更多的线程。对于问题3,由于在并行环境中任务的执行顺序是不确定的,因此对于依赖于顺序的任务而言,并行化也许不能给出正确的结果。applyToEither():两个任务哪个执行的快,就使用哪一个结果,有返回值。
2023-12-18 16:45:08
967
原创 聊一聊后端语言的差异和特性差异
假如有一个需求要实现一个统计的需求,可能不同的人会有不同的实现方式,最为掌握一门编程语言和掌握多门编程语言,以及一年工作经验的编程人员和多年的编程人员的实现思路肯定是不一样的。总结:对于同一个需求可能需要考虑基于现有编程语言的特性,已有手脚架等,在对扩展和性能以及编程规范等等进行达到最优的实现。例子一:要实现A表中某个条件下,a字段、b字段、c字段对应不同数值的出现次数。java的compute函数能统计map中出现的次数。
2023-12-18 15:56:00
580
原创 java编程规范-异常处理\mysql(阿里手册)
【强制】捕获异常是为了处理它,不要捕获了却什么都不处理而抛弃之,如果不想处理它,请。随意复制和粘贴代码,必然会导致代码的重复,在以后需要修改时,需要修改所有的副。【强制】业务上具有唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引。另外,即使在应用层做了非常完善的校验控制,只要没有唯一索引,根据墨菲定律,必。【强制】异常不要用来做流程控制,条件控制,因为异常的处理效率比条件分支低。【强制】捕获异常与抛异常,必须是完全匹配,或者捕获异常是抛异常的父类。必要时抽取共性方法,或者抽象公共类,甚至是组件化。
2023-11-26 15:25:35
1247
原创 JAVA编程规范-集合、并发(阿里手册)
【强制】对多个资源、数据库表、对象同时加锁时,需要保持一致的加锁顺序,否则可能会造。这个变量是针对一个线程内所有操作共享的,所以设置为静态变量,所有此类实例共享。此静态变量 ,也就是说在类第一次被使用时装载,只分配一块存储空间,所有此类的对象。使用线程池的好处是减少在创建和销毁线程上所花的时间以及系统资源的开销,解决资。【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。体现的是适配器模式,只是转换接口,后台的数据仍是数组。
2023-11-26 14:11:05
1249
原创 设计模式之装饰模式
该变量的类型应当被声明为通用部件接口,这样它就可以引用具体的部件和装饰。装饰基类会将所有操作委派给被封装的对象。具体装饰类会重写装饰基类的方法,并在调用父类方法之前或之后进行额外的行为。(Concrete Component)类是被封装对象所属的类。是一种结构型设计模式,允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。(Client)可以使用多层装饰来封装部件,只要它能使用通用接口与所有对象互动即可。(Component)声明封装器和被封装对象的公用接口。
2023-11-05 21:12:11
358
原创 设计模式之门面模式
在我们日常编码中也在无意中大量的使用着门面模式,例如ServiceA中调用其他多个Service的方法,然后再将ServiceA的方法暴露给Controller调用,ServiceA就相当于一个门面使得Controller能够间接的调用其他Service子系统,这也就是门面模式的一种应用。每个SubSystem都不是一个单独的类,而是一个类的集合。Laravel 中的门面是为应用的服务容器提供一个【静态】接口,相当于是服务容器底层类中的一个【静态代表】,能够提供更加灵活、易于测试、优雅的语法。
2023-11-05 15:15:27
409
原创 基于Azure OpenAI Service 的知识库搭建实验⼿册
是浮点数的⼀个向量,向量空间中两个嵌⼊之间的距离与原始格式的两个输⼊之间的语义相似性相关。延,建议将资源组以及内含的资源也创建在这三个数据中⼼之中。按钮,在弹出的新建资源组窗⼝中输⼊相关信息,包括资源组名称、订阅、区域等,区域选择美国东部。按钮,根据提⽰填写相关信息,包括名称、订阅、资源组、地区、定价层等,地区选择。为了回答⽤户的问题,它检索最相关的⽂档,然后使⽤。按钮,根据提⽰填写相关信息,包括名称、订阅、资源组、地区等,地区选择。按钮,根据提⽰填写相关信息,包括名称、订阅、资源组、地区等,地区选择。
2023-08-06 13:49:28
1226
原创 JAVA基础JVM讲解
1、原子性使用 synchronized 互斥锁来保证操作的原子性2、可见性:volatile,会强制将该变量自己和当时其他变量的状态都刷出缓存。synchronized,对一个变量执行 unlock 操作之前,必须把变量值同步回主内存。final,被 final 关键字修饰的字段在构造器中一旦初始化完成,并且没有发生 this 逃逸(其它线程通过 this 引用访问到初始化了一半的对象),那么其它线程就能看见 final 字段的值。3、有序性。
2023-05-31 17:52:12
1231
原创 JAVA并发编程之多线程
3、newSingleThreadExecutor:创建一个单线程的线程池,即只创建唯一的工作者线程来执行任务,,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。1、newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理所需,可灵活回收空闲线程,若线程数不够,则新建线程。那个类然后重写run类的方法。如果无限制的创建线程,不仅会消耗系统资源,还会降低系统的稳定性,通过线程池可以进行统一的分配,调优和监控。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
2023-05-31 15:31:48
1158
原创 JAVA并发编程之锁应用
Java并发包是Java中提供的一个用于支持多线程编程的工具包。Java并发包提供了多种机制来控制线程的执行,保证线程的安全性和可靠性。下面我们将介绍Java并发包的使用方法,并给出示例。java编译器会在synchronized修饰的方法或代码块前后自动Lock,unlock。synchronized修饰代码块,锁定是个obj对象,或者是一个类,sychronized(this.class)synchronized修饰静态方法,锁定是当前类的class对象。
2023-05-31 15:10:34
829
原创 JAVA容器类
也就是说假设实现Iterator接口,那么在遍历集合中元素的时候,仅仅能往后遍历,被遍历后的元素不会在遍历到,通常无序集合实现的都是这个接口。抽象类AbstractCollection、AbstractList和AbstractSet分别实现了Collection、List和Set接口,这就是在Java集合框架中用的非常多的适配器设计模式,用这些抽象类去实现接口,在抽象类中实现接口中的若干或所有方法,这样以下的一些类仅仅需直接继承该抽象类,并实现自己须要的方法就可以,而不用实现接口中的所有抽象方法。
2023-05-31 11:03:41
860
原创 JAVA基础知识问答
工作原理是这样的,创建一个字符串时,JVM首先为检查字符串常量池中是否有值相等的字符串,如果有,则不再创建,直接返回该字符串的引用地址,若没有,则创建,然后放到字符串常量池中,并返回新创建的字符串的引用地址。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。③线程的切换成本高,操作系统发生线程切换的时候,需要保留线程的上下文,然后执行系统调用,如果线程数过高可能执行线程切换的时间甚至大于线程执行的时间,这时候带来的表现是系统load偏高,CPUsy使用率很高。
2023-05-31 10:56:15
702
原创 Tars协议的几点创新之举
TARS会将请求先加入请求队列,工作线程从请求队列中获取请求进行处理,如果短时间内大量请求到达只会被缓存到请求队列中并不会影响工作线程池的处理能力。如果工作线程池从队列中取到请求发现其已经超时则会直接丢弃请求避免处理无效的请求。
2022-11-21 16:20:40
447
原创 MQTT协议
MQTT协议工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:(1)使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。这一点很类似于XMPP,但是MQTT的信息冗余远小于XMPP,,因为XMPP使用XML格式文本来传递数据。(2)对负载内容屏蔽的消息传输。(3)使用TCP/IP提供网络连接。主流的MQTT是基于TCP连接进行数据推送的,但是同样有基于UDP的版本,叫做MQTT-SN。这两种版本由于基于不同的连接方
2022-11-09 15:43:29
1157
原创 Kubeflow组件和架构
(1)Central Dashboard:Kubeflow的dashboard看板页面(2) Metadata:用于跟踪各数据集、作业与模型(3) Jupyter Notebooks:一个交互式业务IDE编码环境(4) Frameworks for Training:支持的ML框架ChainerMPIMXNetPyTorchTensorFlow(5) Hyperparameter Tuning:Katib,超参数服务器(6) Pipelines:一个ML的工作流组件,用于定义复杂的
2022-11-09 14:14:14
1870
原创 大数据生态介绍
HBASE适合存储检索方式单一、列需要动态增加、数据量巨大的数据;Spark 是一个通用引擎,可用它来完成各种各样的运算,包括 SQL 查询、文本处理、机器学习等;Hive是用于解决海量结构化数据分析的一种数仓工具。本质是将sql语句解析成MR程序,并计算出结果。Flink是分布式、高性能、随时可以用以及准确的流处理应用程序打造的开源流处理框架
2022-10-09 14:10:00
708
原创 kubernetes实战一二三
kubernetes日常工作最多也就是在管理pod的服务,针对pod的调度配置和服务迁移升级过程也会有各种问题,了解deloy配置项以及其运行机制,针对日常运维工作很有帮助
2022-10-09 11:49:25
124
原创 c++ 异步编程基础async、thread
std::async异步调用函数,在某个时候以Args作为参数(可变长参数)调用Fn,无需等待Fn执行完成就可返回,返回结果是个std::future对象。
2022-10-09 10:27:03
430
原创 神奇的python,不为人知的地方
1.灵活的变量定义输出:('a',)a2. python 传引用和传值 -> 可变对象/不可变对象输出:a = 1print(id(a))a = 2print(id(a))15515249601551524976347174483. 类继承
2022-06-14 22:09:51
143
原创 python类特性
1. python 类对象可进行格式化和转换,输出对应的内置object方法,以及与运算符重载2. __new__是在创建实例的时候调用,__init__是在初始化时候调用;__new__在前,__init__在后,__new__是类级别的,__init__是对象级别的;__new__必须有返回值;...
2022-06-14 21:56:09
296
原创 python深拷贝和浅拷贝
import copy# copy deep copy 浅拷贝是对一个对象的顶层拷贝。只拷贝了引用,没拷贝内容 深拷贝就是真的开辟一段新的空间存它
2022-06-14 21:21:02
90
原创 python高级特性
一、一切皆对象二、可变对象和不可变对象三、隐藏的方法和属性四、迭代器、生成器、装饰器五、异步编程:多线程、多进程、协程六、并发编程:asyncio、threading七,cpython、GIL
2022-06-11 15:34:51
518
原创 python常用的基础库
一、os库系统文件,环境等常用的库,对文件和环境等进行操作,os.path.dirname(url) 获取传入url的路径os.path.basename(url) 获取url的文件名+后缀os.path.isdir(url) 判断url是否是路径os.path.isfile(url) 判断url是否是文件os.path.abspath(__file__) 获取绝对路径os.path.join(folder1,folder2,folder3) 把目录串成路径os.path.split(
2022-05-21 14:13:22
4886
原创 技术总监面试有什么技巧
这几天试投了一下简历,一来是考验自己的能力,二是看看能否找到一个理想的工作。然鹅,当前的情况并不乐观,金三银四,2022年的今天,疫情严重,全球经济不乐观,感觉工作也难找了,可能一方面也是目前已经算是高龄程序员了,所以想尽量往高的职位试试,所以投了一家创业公司的cto岗位,hr热心的安排了面试在视频面试中,部门负责人和hr坐在一起,但是整个面试才持续了九分钟就结束了,技术人提了两个问题,说介绍一下自己,然后谈谈自己对cto岗位的认识?说面对高并发如何选择数据库?hr问了一个说你了解算法吗?我心中一愣
2022-03-23 22:30:44
3666
原创 flask框架的使用总结
作为一个轻量级的web框架,flask是相当优秀的,使用的多,历史也比较悠久一、相关的插件flask_restful:规范的resetful api操作,通过封装api操作,对返回和请求参数做了统一调用marshal_with定义返回数据的格式和过滤对应数据。字段的类型包含在fields对象中,这种形式对于解析式语言来说是比较优秀的,相对pb格式的定义没有那么严谨,但是相对灵活。request和Resource作为web请求中,每一次http链接的请求和响应上下文,对我们封装基础操作还
2021-10-18 18:09:47
361
原创 认识微服务架构Spring Cloud
1.主要的子项目1)spring cloud config是配置管理工具,通过它可以把配置信息放到远程服务器中,从而集中管理集群配置。目前支持本地存储、git和subvesion三种存储方式。所有实例都可以通过config server来获取配置文件,每个服务实例相当于配置服务的客户端。2)spring cloud consul封装了consul。consul是HashiCorp公司用GO语言开发的一个服务治理软件。它包含服务治理、健康检查、Key-Value存储、多数据中心功能。3)spr
2021-09-21 16:44:16
171
原创 React中的重要思想
1.函数式组件思考,为什么会有函数式组件:因为js的渲染是一件很负担的事情,生命周期和状态管理导致程序运行的开销太大,所以这种没有上下文语境的开发技术出现。函数式组件接收prop传递,React渲染过程本质上是在:根据数据模型(应用状态)来计算出视图内容。const A=(props)=>{ return <div>{props.name}+{props.age}</div>}2.单向数据流单向数据流的好处,在数据定义和逻辑定义方面更加严谨,代码
2021-09-20 18:03:48
284
原创 tensorflow入门
一、什么是tensorflowtensorflow这个名字中包含两个概念:tensor和flow。tensor就是张量,flow体现计算模型,表达了张量之间通过相互转化的过程。tensorflow是一个通过计算图的形式来表述计算的编程系统。tensorflow中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。如上图,每个节点都是一个运算,而每一条边代表了计算之间的依赖关系。代码实现:import tensorflow as tftf.compat.v1.
2021-09-12 11:51:38
162
原创 Swift View 简单布局
var body: some View { // 垂直排列元素,如果VStack中有两个元素,则垂直排列。 VStack{ ActivityIndicator(startAnimating: self.$shouldAnimate) Button(action:{self.shouldAnimate = !self.shouldAnimate},label:{ .
2021-09-04 22:42:58
358
原创 网络协议基础
以太网帧目前的局域网大多数是以太网,在以太网中传输的数据叫做以太网帧。我们抓包后发现数据都包裹在一个以太网帧头和帧尾之间。通过该协议把数据从源MAC主机发送到目标MAC主机。ethernet帧历史1980年:由DEC,Intel,Xerox联合公布了Ethernet 1的标准;1982年:DEC,Intel,Xerox又公布了Ethernet 2的标准;1983年:Novell公布的专用以太网标准帧格式RAW 802.3;1985年:IEEE公布了Ethernet 802.3的.
2021-09-04 16:39:37
554
1
原创 win下网络编程
TCP编程1. 包含必要的头文件及库#include <winsock2.h>#pramgma comment(lib,"ws2_32.lib")2. 指定需要使用的Winsock规范的最高版本,并初始化Winsock,装入Winsock.dllWSAStartip(MAKEWORD(2,2),&wsaDATA);3. 创建套接字socket(AF_INET,SOCK_STREAM,IPPRTO_TCP);4. 绑定ip和端口bind(sock,(so
2021-09-04 15:51:19
213
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人