我会什么开发技能

java我会什么?

一、并发编程

1、并发编程:jdk中的courren包只能够类实现(seamplore,CountDownLaunch,Pharse,CycliBarrier,CompletableFuture),AQS的原理,线程,线程同步(如何控制多个线程),锁(控制多个线程对一个数据结构并发),CAS,synchronized,voliatle,线程池

2、并发数据结构:concurrentHashMap,ArrayBlockIngQueue,LinkedBlockingQueue,PriorityBlockingQueue

并发编程能干什么?

主要就是在写代码的时候,多个线程需要控制同一个成员变量,才会出现,如果业务上没有这个场景,都可以不用考虑并发的case

实战:

在工作中,我用到比较多的一般使用spring容器,系统在启动的时候,如果需要往成员变量集合或者队列中注入对象,一般在启动时候完成,所有没有啥并发

一般在懒加载的时候是需要控制并发的,防止多次初始化一个对象。这种控制并发的代码一般在中间件中使用,因为涉及到操作成员变量操作的时候,就需要考虑。

假设没有线程池这个工具类,让你自己写的时候,你就需要思考如何实现这个池子,以及创建池子,创建线程是否超过总数,系统并发就来了。

目前在工作中使用更多的是分布式的锁,防止同一个请求连续请求2次,控制不住;

需要对一个文件追加数据,如果并发时候会报错,因为需要知道上一个位置?需要落一个任务,然后每次执行最新的一个,单机控制并发可以实现吗?不可以 需要落任务解决

二、类加载器

都知道基本原理,双亲委托,但是自己应该在哪些场景

1、数据订正工厂,使用自定义类加载器加载把业务上传的jar包,然后在写一个groovy脚本,上传,系统定时加载新的脚本,然后编译,且用指定的类加载器加载,做到类隔离

2、动态测试工具

3、如何做到中间件和中间件,应用程序和中间件进行类隔离

4、artahs这个软件也是使用了 agent+类隔离的方式进行请求增强

三 、IO模型

BIO,NIO,AIO,io多路复用, 网络编程 reactor模式,单线程,多线程,多reactor的多线程模式,netty实现reactor模式。tcp的通信原理。java中nio可以实现io多路复用,太复杂使用netty

计算机网络:了解(物理层、数据链路层、网络、传输层)---内核层,应用层---用户空间

网络io有各种概念,用户空间:阻塞和非阻塞 内核层:同步和异步  数白了 就是线程要不要等待;

网路请求就是要 先建立连接,然后在读写通信交互,进而衍生出网络通信架构以及io多路复用;

自己写一个rpc的框架demo,主要涉及zk,序列化和反序列化(hession),动态代理,网络通信(netty)

做过一个将aws的base64图片转存在公司s3中,如何防止一次把所有数据加载到内存中。使用了commons-io的类,然后在获取流数据的时候,把前缀剔除,然后然后阶段之后进行commons-io的经过base64解码;然后在直接把这个流输出到s3中

一般需要把图片上传的文件服务器,不能占用太大的内存,因此都是流的存储

文件下载,比较low的就是查询出全部,然后文件输出下载。一般采用实时数仓的方式下载

营业执照的图片识别,可以自己训练模型,然后进行图片的识别,一般都是传递文件的地址,然后对方拉去数据,然后进行识别

发起http请求,一般使用okhttp,httpclient进行http的外围调用,主要控制超时时间。

rpc服务使用netty进行服务的监听

四、spi业务回掉机制

serviceLoader是java中比较常用的,C端业务想开发的好,那就扩展一定要设计好,就一个原则面向接口编程,一般都是要定以后业务身份,Map<String,Map<String,Extend>>   在你的系统定义好接口,外围实现这个jar包,自己的系统使用serviceLoader加载这些jar包 到内存中

一个系统是否扩展,主要就是一个接口的实现不要在系统启动的时候注入好,而是在运行的时候动态的决策走哪个?怎么实现

1、定义数据结构Map<String,Map<String,接口>> 运行的根据传入的参数,自然会找到对应的实现类

2、针对接口系统启动的时候注入一个动态代理,运行的时候写逻辑决策走哪个业务身份

3、一个接口定义标准,然后spi回掉外围,还可以使用rpc的方式进行调用,下游实现

五、面向对象的基本想法

DDD设计(就是把方法放到一个类中,不好理解,后续很难维护)、多态(父类的对象指向子类的引用),设计模式一定要多使用,否则业务代码很难扩展也很容易出问题,策略,工厂,构建者,单例,抽象工厂,动态代理,模版,装饰,适配器

六、中间件

springboot,mybatis,docker,netty,xxxjob,zk,redis,配置中心,kafka,rocketmq,hbase,mysql,hadoop,hive,postgresql,这些中间件要详细了解,否则学习不到东西

七、大数据开发

了解hadoop的生态系统,hdfs,mapreduce,hbase

实时计算 flink,storm

数据同步 datax,sqoop,cancel

八:数据挖掘、数仓搭建、数据分析

数仓搭建:基础表,中间层,BI报表

基本的机器学习算法、分类、聚类、神经网络、深度学习

llm大模型,langchain二次开发,rag

算法平台

八、最值钱的就是业务

此处省略1w字

九、前端

h5、小程序主流

低代码开发平台,动态化、报表系统

后续想做一些基础系统的能力

### 回答1: 作为AI语言模型,我不会区分问题的性质,但是我可以回答你的问题。从业AI行业需要掌握的技能包括:数学、编程、机器学习、深度学习、自然语言处理、数据分析、数据可视化等。另外还需要掌握相关领域的知识,如图像处理、语音识别、推荐算法等。学习这些技能需要坚持不懈、持续学习和不断实践。 ### 回答2: 从业AI行业需要掌握的技能包括以下几个方面: 1. 编程技能:AI行业离不开编程,特别是掌握Python编程语言是必不可少的。另外,也需要了解常用的机器学习和深度学习框架,如TensorFlow和PyTorch,以便构建和训练模型。 2. 数学与统计学知识:对于AI从业者来说,具备扎实的数学和统计学基础非常重要。线性代数、概率论和统计学等知识将帮助他们理解和应用机器学习算法。 3. 机器学习和深度学习算法:AI行业要求从业者熟练掌握各种机器学习和深度学习算法,并了解其原理和应用。掌握算法的优化和调参技巧也是非常重要的。 4. 数据处理和数据分析技能:对于从业AI行业的人员来说,处理和分析大量数据的能力是必不可少的。他们需要具备数据清洗、特征提取和数据可视化等方面的技能。 5. 领域知识:AI涉及各个领域,从金融到医疗再到农业等等。从业者需要了解所从事领域的专业知识,以便将AI技术应用到实际问题中。 6. 解决问题的能力:AI行业需要人员具备解决问题的能力和创新思维。他们需要能够快速分析和解决各种技术和业务难题。 总之,从业AI行业需要具备一定的编程基础、数学与统计学知识、机器学习和深度学习算法的理解和应用能力,以及数据处理和分析能力。此外,拥有领域知识和解决问题的能力也将使AI从业者更具竞争力。 ### 回答3: 从业AI行业需要具备一定的技能和知识。首先,必须具备扎实的计算机科学和数学基础。AI是建立在计算机领域的基础上的,理解计算机的工作原理和算法是至关重要的。 其次,熟悉编程语言和工具也是必不可少的。AI行业常用的编程语言包括Python、Java、C++等,掌握其中一种或多种语言,能够高效地进行算法实现和开发。 此外,对数据处理和分析有一定的经验也是必备的技能。AI的核心是数据驱动,通过对大量的数据进行处理和分析,才能提取有用的信息和建立有效的模型。数据处理技术如数据清洗、特征提取等,以及数据分析方法如统计学、机器学习等是非常重要的。 还需要了解机器学习和深度学习的概念和算法。机器学习是AI的重要分支,通过大量的训练数据和算法来构建模型并进行预测和决策。而深度学习则是机器学习的一种形式,通过深层神经网络的学习和优化来实现更复杂的任务。 此外,AI行业还需要具备良好的问题解决能力和创新思维。AI领域的问题常常是复杂且多样的,需要能够将实际问题抽象化并解决的能力。此外,创新思维能够帮助从业者在解决问题时找到新的、有效的方法和思路。 综上所述,从业AI行业需要具备计算机科学和数学基础、编程能力、数据处理和分析经验、机器学习和深度学习的知识,以及良好的问题解决能力和创新思维。这些技能的掌握将有助于在AI行业中取得成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值