我会什么开发技能

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、动态测试工具

三 、IO模型

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

自己写一个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

八:数据挖掘、数仓搭建

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

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

算法平台、数仓搭建

八、最值钱的就是业务

此处省略1w字

九、前端

h5、小程序主流

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

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

相关推荐
Javatutouhouduan5 小时前
2026Java面试的正确打开方式!
java·高并发·java面试·java面试题·后端开发·java编程·java八股文
chao1898446 小时前
基于 SPEA2 的多目标优化算法 MATLAB 实现
开发语言·算法·matlab
JAVA面经实录9176 小时前
Java初级最终完整版学习路线图
java·spring·eclipse·maven
赏金术士6 小时前
Kotlin 习题集 · 高级篇
android·开发语言·kotlin
Cat_Rocky7 小时前
k8s-持久化存储,粗浅学习
java·学习·kubernetes
楼兰公子7 小时前
buildroot 在编译rust时裁剪平台类型数量的方法
开发语言·后端·rust
知识领航员7 小时前
蘑兔AI音乐深度实测:功能拆解、实测表现与适用场景
java·c语言·c++·人工智能·python·算法·github
吴声子夜歌8 小时前
Go——并发编程
开发语言·后端·golang
释怀°Believe8 小时前
Spring解析
java·后端·spring
ooseabiscuit8 小时前
Laravel4.x:现代PHP框架的奠基之作
java·开发语言·php