最近回北京重新找工作,面试(2.5年工作经验Java开发)
也没好好准备背题啥的,就直接上阵了,那肯定是会被怼的
现整理一波不会的不熟的以作记录 我也没查正确答案 完全就是自己的理解
不分先后,想起来啥写啥
1、MySQL优化 这个是必问的 我就把日常会用到的说一说 欢迎大神补充重点
a)表结构:用适用字段,能用int不用vachar 前者对于mysql来说处理速度是比较快的
b) sql语句:一般就是从sql优化说起来,sql优化一般就是从索引说起来,要适量加索引,这里可以展开说好多关于索引的东西 比如mysql的innodb引擎是b+tree聚簇索引 聚簇索引的索引和数据文件是在一起的(每个叶子节点包含主键值、事务ID、回滚指针和余下的列)innodb二级索引 叶子节点中存储的是数据的主键,因为硬盘的查询机制(不知道这样说对不对),存储数据数据时分页的,主键非必须外尽量用自增主键,这样再插入数据时不会造成频发的页分裂,索引要遵循最左匹配原则,即有(a,b,c)where b and c 是不会用到索引的 如果是(c,a)是可以的,mysql自己会作顺序处理。区间查询 只有第一个会用到索引,like 左 ‘%’ 不会用到索引。还有就是mysql自己会判断,如果用索引的查询速度比不用慢,那么就不会用索引。
2、工作中遇到的难受问题:这个就看自己发挥了。我有记录的习惯,所以有几篇博客记录,并且一时间确实不会忘记某些坑爹问题。。
3、LinkedHashMap 数据结构: 在HashMap的基础上多加了单向链表,这个可以拿个笔画一下 大概说一下 说深了我也不会
4、String | StringBuffer | StringBuilder 区别 以及一些常用API :不知道为什么,这个问题遇到好多人问,就看自己平时用的多不多了 没事可以看看 API啥的
5、你写到的框架知识:像spring常用注解 张嘴就说个十来个应该不是啥问题吧,基本天天写的。Spring事务相关,这个我真的不熟。
6、一些基础算法问题,比如链表,数组操作啥的 这个也是靠平时积累了,,基本答不太好 哈哈哈
7、多线程相关:volatile synchronized 区别,业务中哪里用到了。
8、数据库事务特性,隔离级别:ACID是啥,张嘴就来没问题吧,隔离级别自己可以延伸一下innodb级别,如果是大神,可以解释一波MVCC实现原理,我是只有知道的级别,说不上来原理
8、其余主要还是Java基础知识,基础很重要很重要。
就酱。
相关推荐
工业互联网工控安全与工业质检AI大模型建设方案.pptx
工业互联网工控安全与工业质检AI大模型建设方案.pptx
Java 实现异步调用
首先 我遇到的问题是 接口调用时需要更新缓存 而更新缓存又是个说快不快的过程 所以打算做异步调用 返回我所需要的结果即可 ,至于缓存什么时候更新完 就不是我所需要关注的了废话不多说 上代码public class MyExecutor { private ExecutorService executor = Executors.newCachedThreadPool() ; publi...
通信行业CentOS 7内核网络栈优化:高并发连接下UDP/TCP性能调优与系统资源管理
内容概要:本文聚焦于CentOS 7系统在通信行业高并发场景下的性能调优实践,重点围绕内核网络栈优化展开,涵盖UDP/TCP缓冲区调整、文件句柄与连接跟踪表扩容、TIME_WAIT状态复用、软中断分布优化及tuned工具的自动化调优。通过具体配置参数和实际案例(如VoIP软交换系统)深入解析各项调优措施的设计原理与实施效果,有效解决高CPS下丢包、连接失败等问题,并展望了向云化、eBPF等动态智能调优方向的发展趋势。; 适合人群:从事通信系统运维、网络开发或Linux系统性能优化的技术人员,具备一定操作系统和网络基础知识,工作经验1年以上的中初级工程师。; 使用场景及目标:①应用于软交换、媒体网关、信令网关等高并发通信设备的系统调优;②解决UDP丢包、conntrack表满、TCP连接队列溢出等典型性能瓶颈;③提升系统在小包高频、低时延要求场景下的稳定性和吞吐能力。; 阅读建议:建议结合实际生产环境或测试平台同步验证文中配置,重点关注参数背后的物理意义(如BDP、softirq、conntrack机制),并配合ss、conntrack、dmesg等命令进行调优前后对比分析,确保安全可控地实施变更。
Springboot创建找不到@SpringBootApplication注解的解决办法
今天在练习springcloud的时候创建springboot 工程发现找不到@SpringBootApplication注解我是用的编辑器是intellij 后发现和我其他springboot工程的版本不一致 就是这里究其原因是因为两个springboot工程的依赖版本不一致 改变了创建的依赖版本后重新打开工程后解决了这个问题 特此记录 希望能帮到遇到同样问题的人...
2024 《计算机网络》实验教学指导书.doc
2024 《计算机网络》实验教学指导书.doc
不平衡电网下自抗扰顺序模型预测PWM整流器控制仿真模型(Simulink仿真实现)
内容概要:本文围绕面向城市空中交通的多无人机路径规划问题展开研究,提出了一套融合全局规划、动态避障与局部协同调整的综合路径规划方法。研究内容涵盖基于改进RRT算法与图论的全局路径规划、基于动态风险场和动态窗口法(DWA)的模型预测控制实现动态避障,以及基于分布式协同控制的多无人机局部路径协同策略。通过Matlab平台构建仿真环境,在多种典型城市交通场景下对所提方法进行了系统性验证,结果表明该方法在路径安全性、编队稳定性与任务效率方面表现优异。文章还深入探讨了算法的创新点与未来研究方向,为复杂城市环境下多无人机系统的自主协同提供了理论支撑与技术路径。; 适合人群:具备自动化、控制理论、计算机科学或相关领域基础知识,从事无人机系统、智能交通、路径规划、多智能体协同控制等方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①为城市空中交通系统中的多无人机安全、高效飞行提供可靠的路径规划解决方案;②支持在复杂、动态的城市场景中开展无人机自主导航、编队飞行与协同控制的技术研究与仿真验证。; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点关注算法的具体实现细节、参数配置对性能的影响以及不同仿真场景下的实验设计,以深入理解各模块的集成逻辑与实际应用效果。
dubbo之奇怪的问题---No such application config Please add dubbo application name=...
今天调dubbo 我是客户端 于是写好了代码测试 就发现了这个错误 项目是springboot + dubbo xml配置 搜了好多地方没有一个正确的答案 github好像有人提问也没有人解答 至今我也不知道为什么 只知个大概 和我的解决办法 仅供参考 dubbo读取配置文件 首先会读xml 然后会去找dubbo.properties 这个错误的意思是 没有读取到配置文件中 dubbo:app...
Simulink单相桥式有源逆变电路仿真:从器件选型到波形分析(MATLAB 2018a实战)
本文基于MATLAB 2018a的Simulink平台,详细演示了单相桥式有源逆变电路的完整仿真流程。从Simscape/Power Systems库的器件选型、参数配置,到触发脉冲设置与电路连接,逐步指导搭建仿真模型。通过调整触发角α,直观展示了电路从整流到有源逆变的工作状态切换,并深入分析了负载电压、电流波形,以及逆变颠覆现象的产生条件与特征。
Dubbo异常之Dubbo client can not supported string message记录
今天系统上线,之前没有出现错误的war包在运行时突然出现如下错误一开始我是懵逼的 这个LOG臣妾是看不懂的,一开始还以为是什么编码格式错了,找了半天发现全是UTF-8后来注意到这段异常:[DUBBO] Dubbo client can not supported string message是说dubbo 不支持字符串信息,可能是没序列化?查看配置 使用了kryo序列化再后来,用某接口工具测试...
基于PID算法的循迹小车
这一期为创客们带来基于PID算法的循迹小车制作 1.标准赛道示意图: (该赛道包含了:左直角、右直角、十字路口等路况) 2.灰度传感器安装示意图: (可根据实际情况调节各传感器之间的间距) 3.硬件原理图: 4.控制逻辑: 5.程序如下: #define leftA_PIN 7 #define leftB_PIN 6 #define left_Pwm_PIN 5 #define STBY...
地瓜派RDK X5部署YOLOv11n避坑指南:手把手教你解决Softmax算子导致的性能暴跌问题
本文详细介绍了在地瓜派RDK X5开发板上部署YOLOv11n模型时遇到的性能问题及解决方案。通过强制BPU部署Softmax算子,成功将推理速度从7FPS提升至47FPS,并提供了完整的优化流程和技术细节,帮助开发者避免类似性能陷阱。
xxl-job基本使用
前文 首先要知道它的官网 http://www.xuxueli.com/xxl-job/#/ 首页几个大字介绍的简单明了: 轻量级分布式任务调度平台 开发迅速、学习简单、轻量级、易扩展 然后是详细的官方文档位置,全中文喔~ http://www.xuxueli.com/xxl-job/#/?id=%e3%80%8a%e5%88%86%e5%b8%83%e5%bc%8f%e4%bb%bb%e5%8a...
车载以太网测试技术解析
在智能汽车与HiL测试领域,高效解析与模拟车载网络通信是开发验证的关键。ZD-Converter 2000以媒体/介质转换器、嗅探器、拦截器、仿真器四合一的颠覆性设计,成为工程师应对复杂车载以太网测试的瑞士军刀。它支持双路车载/标准以太网智能转换、实时通信嗅探、硬件级数据拦截及ECU通信模拟,更通过串口命令实现全参数远程配置,赋能自动化测试流程。本文将深度解析其核心功能与实战应用场景。
SpringBoot————Flyway的使用
Flyway是什么我就不再赘述了 度娘随便搜搜有很多,大概就是一个帮你打数据库脚本的东西吧..不用手动执行sql了 我只是大概记录一下Flyway的使用。 首先想使用一个功能模块当然要添加依赖了 flyway是会扫描classpath下/db/migration下是否有sql需要执行的,所以需要创建这个目录 flyway通过一张叫做schema_version 来记录每次脚本的执行...
浅谈天线 - - - GNSS/BT/4G/2.4G
全球定位导航系统,最成熟的就是美利坚,我大中华,俄罗斯,还有就是欧洲的一个(太次不谈)所以我们在项目调试的时候,小尺寸的陶瓷天线上一般兼容2个频段,体积大一点的可以兼容三个频段,采用组合的形式 GPS+BD GPS+GLONASS GLONASS+BD 或者是单频段的定位天线陶瓷PATC陶瓷片:陶瓷片面积越大,介电常数越大,其共振频率越高,接收效果越高,这就是为什么都推荐使用大一点的陶瓷天线的原因银层:陶瓷天线表面的银层可以影响天线的共振频率,理想的GNSS陶瓷片频点准确落在1575.42MH
【OCPP】ocpp1.6J协议框架说明
本文档的目的是为读者提供创建正确的可互操作 OCPP JSON 实现 (OCPP-J) 所需的信息。我们将根据我们自己的经验,尝试解释什么是强制性的、什么是良好做法以及什么是不应该做的。毫无疑问,误解或歧义仍然存在,但我们旨在通过本文件尽可能地防止它们。IANA:互联网数字分配机构(OCPP-J:使用JSON通过WebSocket进行OCPP通信。特定的OCPP版本应使用J扩展进行指示。OCPP1.5J表示我们正在讨论1.5版本的JSON/WebSocket实现。
Java8特性----lambda表达式之Collection常见操作
现在越来越多的公司开始使用jdk8了,jdk8有许多新特性,其中一个特性便是流式处理,进而有好多对于集合的便利操作我自己也是刚开始熟悉jdk8,便在此记录一些基本的关于集合的操作 至于一些理论上的东西我就不写了,某度一大堆,因为一点点介绍每段的含义来路也不是一篇博客就能写完的,我只会简单说一下每段的意思,废话不多说,上代码先创建一下的练习会用到的类 package com.chunying....
使用CubeMX配置STM32H7的FreeRTOS
本文将介绍如何使用CubeMX配置STM32H7的FreeRTOS,并提供相应的源代码示例。通过使用CubeMX,你可以轻松地配置FreeRTOS和系统资源,并生成相应的初始化代码和配置文件。在"FreeRTOS"选项卡的"Tasks"部分,可以配置系统中的任务。首先,打开CubeMX软件。在"FreeRTOS"选项卡的"Resources"部分,你可以配置FreeRTOS使用的资源,例如,堆内存和信号量。例如,我们可以创建两个简单的任务,一个任务将在循环中切换LED的状态,另一个任务将通过串口打印消息。
Could Not find resource [logback.groovy] ; Cound Not find resource [logback-test.xml]
今天上线由于分支没有从master切分支,于是手动把master分支合并过来。 部署时启动出现报错 报错大致意思是找不到两个日志配置文件 找的到logback.xml 一开始没有仔细看 怀疑是 配置被改过。查看pom.xml, application.properties 提交历史 都没有相关变动 继续向下看报错 出现UTF-8 字样 于是怀疑编码问题。 查看logback,xml 在合并m...
Nmap源码分析(端口扫描)
端口扫描是Nmap的核心功能,用于确定目标机的端口状态(开放、关闭、过滤等),也为Nmap的服务与版本扫描、OS扫描、脚本扫描提供基本的指引信息。所以,深入理解端口扫描的实现对分析其他的扫描方式很有帮助。 1简单回顾 首先简要回顾一下端口扫描的原理以及命令行选项。 1.1扫描原理 Nmap提供的10多种类型的端口扫描方法,如TCP SYN/ACK/FIN/Xmas/NULL/ Windows/Connect,FTP Bounce, Idle scan, UDP port u...
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
工作流之Camunda开发记录(二)---- 用户任务、服务任务、全局变量的使用
前言 上篇文章我们简单介绍了工作流的发布与启动 直通车 这篇文章 我们介绍几种常用任务与全局变量的使用 全局变量会穿插在任务中介绍 不会单独列出来了奥 用户任务 用户任务 可以理解为我们常说的审批,工作流本身的意义在于自动执行某些业务逻辑,然而用户任务打断了所谓的自动,用户任务需要用户进行审批通过才能继续执行当前流程实例 既然是需要审批的 那么就需要一个审批人,这个审批人Camunda 本身是维护一个用户列表的 但是使用中肯定是不方便的,我看其他有些人是通过把自己的用户信息同步到Camunda
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
工作流之Camunda开发记录(三)---- 监听器的基本使用
前情纪要 前面我记录了camunda的基本使用 传送门 还有用户任务和服务任务 以及 全局变量的使用 传送门 目前camunda已经可以正常运行,但是不正常的时候我们怎么办,就需要用到监听,需要程序帮我们盯着他看,到底执行到哪了,到哪坏了,方便事后查错(ps:我就是干这个用)还有前端实时显示目前工作流执行情况 监听器简介 监听器顾名思义,就是监听的机器(/手动滑稽),言归正传 这里我用到的监听大概有三种 分别是 start:启动监听 不能加在序列流上面 end:结束监听 不能加在序列流上面 ta
深度学习工具包 DeepLearningToolbox
深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[](https://bitdeli.com/free "Bitdeli Badge")
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片
基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正
面试题---------dubbo服务中zookeeper挂掉了 消费者还可以正常消费吗
答案是可以的,启动时 dubbo服务端会从服务端拉取接口信息缓存到本地 调用时直接调用本地缓存的地址,但是由于zk挂掉了 是无法注册新的服务的
Java原子性操作之——Atomic包的原理分析
Atomic: Atomic包是java.util.concurrent下的另一个专门为线程安全设计的java的包,包含多个原子性操作的类。基本特性就是在多线程情况下,当多个线程想要同时操作这些类的某些实例方法时,具有排他性,也就是当某个线程在执行某个方法时,不会被其他线程打断,其他线程会在外部等待,一直等到该方法执行完毕,才由JVM从等待队列中选择另一个线程进入,这只是一种逻辑上的理解。实...
Java转换xml格式时间 (yyyy-MM-ddTHH:mm:ss.SSSZ)
public void xmlDate2Java(String date) { DatatypeFactory dtf = null; try { dtf = DatatypeFactory.newInstance(); } catch (DatatypeConfigurationException e) { } Timestamp timestamp = nul...
Apache-POI 设置excel单元格样式字体等
大概思路就是设置样式以及字体后添加进单元格中 Workbook wb = new XSSFWorkbook(); Sheet sheet = wb.getSheetAt(0); //创建单元格 Row row = sheet.getRow(0); if(null == row){ row = sheet.createRow(0); } Cell cell = row.getCell...
5万+



被折叠的 条评论
为什么被折叠?



